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.
151 lines
4.1 KiB
C#
151 lines
4.1 KiB
C#
using System;
|
|
using LitJson;
|
|
|
|
namespace Wizard;
|
|
|
|
public class BattleRecoveryInfo : ReplayDetailInfo
|
|
{
|
|
public int turn_state;
|
|
|
|
public string node_server_url = "";
|
|
|
|
public int Play_seq;
|
|
|
|
public bool is_owner;
|
|
|
|
public bool _isConventionRoom;
|
|
|
|
public bool is_opponent_master_rank;
|
|
|
|
public bool IsReceivedDeal;
|
|
|
|
public bool IsMulliganEnd;
|
|
|
|
public string roomId;
|
|
|
|
private const string NODE_SERVER_URL_KEY = "node_server_url";
|
|
|
|
private const string TURN_STATE_KEY = "turn_state";
|
|
|
|
private const string PUB_SEQ_1_KEY = "pubSeq1";
|
|
|
|
private const string PLAY_SEQ_1_KEY = "playSeq1";
|
|
|
|
private const string IS_OWNER_KEY = "isOwner";
|
|
|
|
private const string IS_MASTER_RANK_2_KEY = "isMasterRank2";
|
|
|
|
private const string MAX_RANK_2_KEY = "maxRank2";
|
|
|
|
private const string IS_COLOSSEUM_RANK_BATTLE_KEY = "is_colosseum_rank_battle";
|
|
|
|
private const string IS_COMPETITION_RANK_BATTLE_KEY = "is_competition_rank_battle";
|
|
|
|
private const string ROOM_ID_KEY = "roomId";
|
|
|
|
private const string TOURNAMENT_KEY = "tournament";
|
|
|
|
private const string IS_INVITATION_USER_KEY = "is_invitation_user";
|
|
|
|
public DataMgr.BattleType BattleType { get; private set; } = DataMgr.BattleType.None;
|
|
|
|
public int Pub_seq { get; private set; }
|
|
|
|
public BattleParameter BattleParameterInstance { get; private set; }
|
|
|
|
public int OpponentHighFormatRank { get; private set; }
|
|
|
|
public bool IsEnableGuildInviteButton { get; private set; }
|
|
|
|
public ConventionInfo ConventionInfo { get; private set; }
|
|
|
|
public bool IsGatheringRoom { get; private set; }
|
|
|
|
public bool CanUseNonPossessionCard { get; private set; }
|
|
|
|
public BattleRecoveryInfo(JsonData data)
|
|
: base(data)
|
|
{
|
|
BattleParameterInstance = BattleParameter.JsonToBattleParameter(data);
|
|
BattleType = BattleParameterInstance.ConvertClientBattleType();
|
|
if (BattleType == DataMgr.BattleType.Gathering)
|
|
{
|
|
IsGatheringRoom = true;
|
|
BattleType = DataMgr.BattleType.RoomBattle;
|
|
}
|
|
if (BattleType == DataMgr.BattleType.OfflineEvent)
|
|
{
|
|
_isConventionRoom = true;
|
|
BattleType = DataMgr.BattleType.RoomBattle;
|
|
}
|
|
Data.CurrentFormat = BattleParameterInstance.DeckFormat;
|
|
GameMgr.GetIns().GetDataMgr().TwoPickFormat = BattleParameterInstance.TwoPickFormat;
|
|
node_server_url = data["node_server_url"].ToString();
|
|
turn_state = data["turn_state"].ToInt();
|
|
Pub_seq = data["pubSeq1"].ToInt();
|
|
Play_seq = data["playSeq1"].ToInt();
|
|
if (data.Keys.Contains("isOwner"))
|
|
{
|
|
is_owner = data["isOwner"].ToInt() == 1;
|
|
}
|
|
if (data.Keys.Contains("is_colosseum_rank_battle"))
|
|
{
|
|
Data.ArenaData.ColosseumData.IsRankMatching = true;
|
|
}
|
|
if (data.Keys.Contains("is_competition_rank_battle"))
|
|
{
|
|
Data.ArenaData.CompetitionData.IsRankMatching = true;
|
|
}
|
|
if (data.Keys.Contains("maxRank2"))
|
|
{
|
|
OpponentHighFormatRank = data["maxRank2"].ToInt();
|
|
}
|
|
if (data.Keys.Contains("roomId"))
|
|
{
|
|
roomId = data["roomId"].ToString();
|
|
}
|
|
if (data.Keys.Contains("tournament"))
|
|
{
|
|
ConventionInfo = new ConventionInfo(data["tournament"]);
|
|
}
|
|
if (data.Keys.Contains("is_invitation_user"))
|
|
{
|
|
IsEnableGuildInviteButton = data["is_invitation_user"].ToBoolean();
|
|
}
|
|
is_opponent_master_rank = data["isMasterRank2"].ToInt() == 1;
|
|
CanUseNonPossessionCard = data.GetValueOrDefault("is_enabled_all_card", defaultValue: false);
|
|
}
|
|
|
|
protected override void SetOpponentDeck(JsonData data)
|
|
{
|
|
}
|
|
|
|
protected override void CheckMulliganFlags(JsonData data)
|
|
{
|
|
if (IsMulliganEnd && IsReceivedDeal)
|
|
{
|
|
return;
|
|
}
|
|
foreach (string key in data.Keys)
|
|
{
|
|
if (!(key == "uri"))
|
|
{
|
|
continue;
|
|
}
|
|
JsonData jsonData = data[key];
|
|
if (Enum.IsDefined(typeof(NetworkBattleDefine.NetworkBattleURI), jsonData.ToString()))
|
|
{
|
|
switch ((NetworkBattleDefine.NetworkBattleURI)Enum.Parse(typeof(NetworkBattleDefine.NetworkBattleURI), jsonData.ToString()))
|
|
{
|
|
case NetworkBattleDefine.NetworkBattleURI.Deal:
|
|
IsReceivedDeal = true;
|
|
break;
|
|
case NetworkBattleDefine.NetworkBattleURI.Ready:
|
|
IsMulliganEnd = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|