using System.Collections.Generic; using UnityEngine; using Wizard; using Wizard.Scripts.Network.Data.TableData.Arena.TwoPick; using Wizard.Scripts.Network.Data.TaskData.Arena.TwoPick; public class ArenaColosseum : ArenaEntryDataBase { public enum eRound { FinalNotAdvance = -1, Undecided = 6, Lose = 7 } public enum eStageNo { } public enum eEntryStatus { TwoPickClassSelect = 1, SetUpComplete } public enum eRule { NONE = 0, RotationBo1 = 1, UnlimitedBo1 = 2, TwoPick = 3, TwoPickChaos = 4, Crossover = 5, MyRotation = 6, HOF = 31, WindFall = 33, Avatar = 39 } public enum eDeckIndex { First = 0 } public struct Detail { } public class TwoPick { public CandidateClass CandidateClass { get; set; } public CandidateCardInfo CandidateCard { get; set; } public CandidateChaos CandidateChaos { get; set; } } public enum eResultEffect { None, GroupA, Final, Clear } private bool _isRankMatching; public bool CanUseNonPossessionCard; public bool IsColosseumPeriod { get; set; } public bool IsRoundPeriod { get; set; } public eEntryStatus EntryStatus { get; set; } public Format DeckFormat { get; set; } public eRule Rule { get; set; } public bool IsNormalTwoPick { get; set; } public int ChaosNum { get; set; } public bool IsTwoPickRule { get { if (Rule != eRule.TwoPick) { return Rule == eRule.TwoPickChaos; } return true; } } public bool NeedsFirstTips { get; set; } public int ColosseumId { get; set; } public int ChaoseTipsId { get; set; } public bool IsRankMatching { get { return _isRankMatching; } set { if (_isRankMatching != value) { _isRankMatching = value; if (RealTimeNetworkAgent.FinishTaskBase != null) { RealTimeNetworkAgent.FinishTaskBase = new ColosseumBattleFinishTask(); } } } } public List DeckList { get; set; } public eRound Round { get; set; } public int ServerRoundId { get; set; } public eStageNo StageNo { get; set; } public string Name { get; set; } public List RewardList { get; set; } public eResultEffect ResultEffect { get; set; } public string ColorCodeId { get; set; } public string CardPool { get; set; } public int RetryRemainingNum { get; set; } public bool IsDeckEntry { get; set; } public bool IsFreeEntry { get { return Data.MyPageNotifications.data.IsColosseumFreeEntry; } set { Data.MyPageNotifications.data.IsColosseumFreeEntry = value; } } public bool IsRetry { get; set; } public bool IsLastDay { get; set; } public bool IsClear { get; set; } public bool IsDeckDeleted { get; set; } public bool IsFinalRoundTry { get; set; } public eRound NextRound { get; set; } public double RemainingUnixTime { get; set; } public float RemainingSinceTime { get; set; } public double RemainingServerUnixTime { get; set; } public string NowRoundTimeText { get; set; } public Detail[] DetailData { get; set; } public List BattleResultList { get; set; } public List BoxGradeList { get; set; } public TwoPick TwoPickData { get; set; } public ArenaColosseum() { base.LootBoxType = PlayerStaticData.LootBoxType.COLOSSEUM; DeckList = new List(); RewardList = new List(); BattleResultList = new List(); BoxGradeList = new List(); DetailData = new Detail[5]; Rule = eRule.TwoPick; TwoPickData = new TwoPick(); TwoPickData.CandidateClass = new CandidateClass(); TwoPickData.CandidateCard = new CandidateCardInfo(); TwoPickData.CandidateChaos = new CandidateChaos(); } public void ApiRuleParseAndSet(int apiRule) { ArenaColosseum colosseumData = Data.ArenaData.ColosseumData; colosseumData.Rule = (eRule)apiRule; colosseumData.DeckFormat = ArenaData.ApiDeckFormatParse(colosseumData.Rule); } }