feat(battle-engine): M1 auto-copy closure (782 battle-logic files)
Compile-driven bulk-copy loop (tools/engine-port/m1_copy_loop.py) pulled the precise reference closure of the battle-core roots, stopping at the classify god-object/View-VFX-UI boundary. 782 files; no re-explosion (M0 had estimated ~order 1000). Residual frontier = 52 shim-classified + 80 external (Unity/BCL) types to author next.
This commit is contained in:
192
SVSim.BattleEngine/Engine/Wizard/BattleParameter.cs
Normal file
192
SVSim.BattleEngine/Engine/Wizard/BattleParameter.cs
Normal file
@@ -0,0 +1,192 @@
|
||||
using LitJson;
|
||||
using Wizard.RoomMatch;
|
||||
|
||||
namespace Wizard;
|
||||
|
||||
public class BattleParameter
|
||||
{
|
||||
public NetworkDefine.ServerBattleType BattleType { get; set; }
|
||||
|
||||
public Format DeckFormat { get; set; }
|
||||
|
||||
public RoomConnectController.BattleRule Rule { get; set; }
|
||||
|
||||
public TwoPickFormat TwoPickFormat { get; set; }
|
||||
|
||||
public bool IsOpenDeckRoom { get; private set; }
|
||||
|
||||
public bool IsTwoPick
|
||||
{
|
||||
get
|
||||
{
|
||||
if (BattleType != NetworkDefine.ServerBattleType.TwoPick && BattleType != NetworkDefine.ServerBattleType.RoomTwoPick && BattleType != NetworkDefine.ServerBattleType.ColosseumTwoPick)
|
||||
{
|
||||
return BattleType == NetworkDefine.ServerBattleType.CompetitionTwoPick;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsDisplayTwoPickIcon
|
||||
{
|
||||
get
|
||||
{
|
||||
if (TwoPickFormat != TwoPickFormat.Normal && TwoPickFormat != TwoPickFormat.Backdraft && (TwoPickFormat != TwoPickFormat.Chaos || Data.MyPageNotifications.data.RoomRule.ChallengePickFormat != TwoPickFormat.Chaos) && (TwoPickFormat != TwoPickFormat.BackdraftChaos || Data.MyPageNotifications.data.RoomRule.ChallengePickFormat != TwoPickFormat.Chaos) && (TwoPickFormat != TwoPickFormat.Cube || Data.MyPageNotifications.data.RoomRule.ChallengePickFormat != TwoPickFormat.Cube))
|
||||
{
|
||||
if (TwoPickFormat == TwoPickFormat.BackdraftCube)
|
||||
{
|
||||
return Data.MyPageNotifications.data.RoomRule.ChallengePickFormat == TwoPickFormat.Cube;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsBackDraft
|
||||
{
|
||||
get
|
||||
{
|
||||
if (TwoPickFormat != TwoPickFormat.Backdraft && TwoPickFormat != TwoPickFormat.BackdraftCube)
|
||||
{
|
||||
return TwoPickFormat == TwoPickFormat.BackdraftChaos;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public bool IsSealed => BattleType == NetworkDefine.ServerBattleType.Sealed;
|
||||
|
||||
public BattleParameter(NetworkDefine.ServerBattleType battleType, Format format, TwoPickFormat deckFormatType, RoomConnectController.BattleRule rule, bool isOpenDeckRoom)
|
||||
{
|
||||
BattleType = battleType;
|
||||
DeckFormat = format;
|
||||
TwoPickFormat = deckFormatType;
|
||||
Rule = rule;
|
||||
IsOpenDeckRoom = isOpenDeckRoom;
|
||||
}
|
||||
|
||||
public void SetBattleParameter(BattleParameter battleParameter)
|
||||
{
|
||||
BattleType = battleParameter.BattleType;
|
||||
DeckFormat = battleParameter.DeckFormat;
|
||||
Rule = battleParameter.Rule;
|
||||
TwoPickFormat = battleParameter.TwoPickFormat;
|
||||
IsOpenDeckRoom = battleParameter.IsOpenDeckRoom;
|
||||
}
|
||||
|
||||
public bool IsSame(BattleParameter battleParameter)
|
||||
{
|
||||
if (BattleType == battleParameter.BattleType && DeckFormat == battleParameter.DeckFormat && Rule == battleParameter.Rule && TwoPickFormat == battleParameter.TwoPickFormat)
|
||||
{
|
||||
return IsOpenDeckRoom == battleParameter.IsOpenDeckRoom;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public DataMgr.BattleType ConvertClientBattleType()
|
||||
{
|
||||
DataMgr.BattleType result = DataMgr.BattleType.None;
|
||||
switch (BattleType)
|
||||
{
|
||||
case NetworkDefine.ServerBattleType.Practice:
|
||||
result = DataMgr.BattleType.Practice;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.Story:
|
||||
result = DataMgr.BattleType.Story;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.Free:
|
||||
result = DataMgr.BattleType.FreeBattle;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.Rank:
|
||||
result = DataMgr.BattleType.RankBattle;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.OpenRoom:
|
||||
result = DataMgr.BattleType.RoomBattle;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.TwoPick:
|
||||
result = DataMgr.BattleType.TwoPick;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.RoomTwoPick:
|
||||
switch (TwoPickFormat)
|
||||
{
|
||||
case TwoPickFormat.Normal:
|
||||
result = DataMgr.BattleType.RoomTwoPick;
|
||||
break;
|
||||
case TwoPickFormat.Backdraft:
|
||||
case TwoPickFormat.BackdraftCube:
|
||||
case TwoPickFormat.BackdraftChaos:
|
||||
result = DataMgr.BattleType.TwoPickBackdraft;
|
||||
break;
|
||||
case TwoPickFormat.Cube:
|
||||
result = DataMgr.BattleType.RoomTwoPick;
|
||||
break;
|
||||
case TwoPickFormat.Chaos:
|
||||
result = DataMgr.BattleType.RoomTwoPick;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.Quest:
|
||||
result = DataMgr.BattleType.Quest;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.BossRushQuest:
|
||||
result = DataMgr.BattleType.BossRushQuest;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.SecretBossQuest:
|
||||
result = DataMgr.BattleType.SecretBossQuest;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.Colosseum:
|
||||
result = ((DeckFormat != Format.Hof) ? ((DeckFormat != Format.Windfall) ? DataMgr.BattleType.ColosseumNormal : DataMgr.BattleType.ColosseumWindFall) : DataMgr.BattleType.ColosseumHof);
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.ColosseumTwoPick:
|
||||
result = DataMgr.BattleType.ColosseumTwoPick;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.Competition:
|
||||
result = DataMgr.BattleType.CompetitionNormal;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.CompetitionTwoPick:
|
||||
result = DataMgr.BattleType.CompetitionTwoPick;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.Sealed:
|
||||
result = DataMgr.BattleType.Sealed;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.Gathering:
|
||||
result = DataMgr.BattleType.Gathering;
|
||||
break;
|
||||
case NetworkDefine.ServerBattleType.OfflineEvent:
|
||||
result = DataMgr.BattleType.OfflineEvent;
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static BattleParameter JsonToBattleParameter(JsonData json)
|
||||
{
|
||||
TwoPickFormat deckFormatType = TwoPickFormat.None;
|
||||
RoomConnectController.BattleRule rule = RoomConnectController.BattleRule.None;
|
||||
bool isOpenDeckRoom = false;
|
||||
if (json.Keys.Contains("battle_type"))
|
||||
{
|
||||
NetworkDefine.ServerBattleType battleType = (NetworkDefine.ServerBattleType)json["battle_type"].ToInt();
|
||||
if (json.Keys.Contains("deck_format"))
|
||||
{
|
||||
Format format = Data.ParseApiFormat(json["deck_format"].ToInt());
|
||||
if (json.Keys.Contains("two_pick_type"))
|
||||
{
|
||||
deckFormatType = (TwoPickFormat)json["two_pick_type"].ToInt();
|
||||
}
|
||||
if (json.Keys.Contains("battle_rule"))
|
||||
{
|
||||
rule = (RoomConnectController.BattleRule)json["battle_rule"].ToInt();
|
||||
}
|
||||
if (json.TryGetValue("is_deck_confirmable", out var value))
|
||||
{
|
||||
isOpenDeckRoom = value.ToInt() == 1;
|
||||
}
|
||||
return new BattleParameter(battleType, format, deckFormatType, rule, isOpenDeckRoom);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user