public void ConstructScene(MatchLogResponseParameter param) { BattleRandomer.Instance.SetSeed(param.RandomSeed); for (int i = 0; i < param.DropArmyCommands.Count; i++) { DropArmyResponseParameter army = param.DropArmyCommands[i]; this.m_DropCommands.Enqueue(army); } for (int i = 0; i < param.DropMercenaryCommands.Count; i++) { DropMercenaryResponseParameter mercenary = param.DropMercenaryCommands[i]; this.m_DropMercenaryCommands.Enqueue(mercenary); } for (int i = 0; i < param.UsePropsCommands.Count; i++) { UsePropsResponseParameter props = param.UsePropsCommands[i]; this.m_UsePropsCommands.Enqueue(props); } BattleSceneHelper.Instance.ClearObject(); this.m_SceneDirector.ClearAllActors(); Resources.UnloadUnusedAssets(); this.m_BuildingFactory.ConstructBuilding(param.RivalInformation); this.m_Map.SetMap(this.CurrentAge); BattleMapData.Instance.ConstructGridArray(); this.m_SceneDirector.GenerateActors(); BattleRecorder.Instance.ClearRecords(); }
void Start() { Resources.UnloadUnusedAssets(); AudioController.PlayMusic("BattleStart"); this.m_DropCommands = new Queue <DropArmyResponseParameter>(); this.m_DropMercenaryCommands = new Queue <DropMercenaryResponseParameter>(); this.m_UsePropsCommands = new Queue <UsePropsResponseParameter>(); this.m_Match = this.m_Reader.GetReplayData(); this.ConstructScene(this.m_Match); this.m_TotalCGTick = this.m_Match.TotalTime; this.StartCoroutine("DelayCloudFadeOut"); }
public void GetReplayDetail(Hashtable result) { MatchLogResponseParameter param = new MatchLogResponseParameter(); param.InitialParameterObjectFromHashtable(result); Dictionary <ArmyType, int> armies = new Dictionary <ArmyType, int>(); List <MercenaryType> mercenaries = new List <MercenaryType>(); List <PropsType> props = new List <PropsType>(); foreach (DropArmyResponseParameter drop in param.DropArmyCommands) { if (!armies.ContainsKey(drop.ArmyType)) { armies.Add(drop.ArmyType, drop.Level); } } foreach (DropMercenaryResponseParameter drop in param.DropMercenaryCommands) { if (!mercenaries.Contains(drop.MercenaryType)) { mercenaries.Add(drop.MercenaryType); } } foreach (UsePropsResponseParameter command in param.UsePropsCommands) { if (!props.Contains(command.PropsType)) { props.Add(command.PropsType); } } this.m_PreloadManager.Preload(armies, mercenaries, props); this.m_TotalReplayTick = param.TotalTime; this.ConstructScene(param); StartCoroutine("DelayCloudFadeOut"); }
void Start() { Resources.UnloadUnusedAssets(); AudioController.PlayMusic("BattleStart"); this.m_DropCommands = new Queue <DropArmyResponseParameter>(); this.m_DropMercenaryCommands = new Queue <DropMercenaryResponseParameter>(); this.m_UsePropsCommands = new Queue <UsePropsResponseParameter>(); this.m_Match = this.m_Reader.GetReplayData(); Dictionary <ArmyType, int> armies = new Dictionary <ArmyType, int>(); List <MercenaryType> mercenaries = new List <MercenaryType>(); List <PropsType> props = new List <PropsType>(); foreach (DropArmyResponseParameter army in this.m_Match.DropArmyCommands) { if (!armies.ContainsKey(army.ArmyType)) { armies.Add(army.ArmyType, army.Level); } } foreach (DropMercenaryResponseParameter mercenary in this.m_Match.DropMercenaryCommands) { mercenaries.Add(mercenary.MercenaryType); } foreach (UsePropsResponseParameter p in this.m_Match.UsePropsCommands) { props.Add(p.PropsType); } this.m_PreloadManager.Preload(armies, mercenaries, props); this.ConstructScene(this.m_Match); this.m_TotalReplayTick = this.m_Match.TotalTime; this.StartReplay(); }
public MatchLogResponseParameter GetReplayData() { MatchLogResponseParameter result = new MatchLogResponseParameter(); result.RandomSeed = 0; result.RivalInformation = DataConvertor.ConvertJSONToParameter((Hashtable)(JSONHelper.jsonDecode(this.GetMapInformation()))); Hashtable battleInfo = (Hashtable)JSONHelper.jsonDecode(this.GetBattleInformation()); result.TotalTime = Convert.ToInt32(battleInfo[EditorConfigInterface.Instance.BattleTimeKey]); result.DropArmyCommands = new List <DropArmyResponseParameter>(); result.DropMercenaryCommands = new List <DropMercenaryResponseParameter>(); result.UsePropsCommands = new List <UsePropsResponseParameter>(); if (battleInfo.ContainsKey(EditorConfigInterface.Instance.BattleArmyKey)) { ArrayList dropArmies = (ArrayList)battleInfo[EditorConfigInterface.Instance.BattleArmyKey]; foreach (var army in dropArmies) { DropArmyResponseParameter param = new DropArmyResponseParameter(); Hashtable a = (Hashtable)army; param.ArmyType = (ArmyType)(Convert.ToInt32(a[EditorConfigInterface.Instance.DropTypeKey])); param.Level = Convert.ToInt32(a[EditorConfigInterface.Instance.ArmyLevelKey]); param.PositionX = float.Parse(a[EditorConfigInterface.Instance.DropPositionXKey].ToString()); param.PositionY = float.Parse(a[EditorConfigInterface.Instance.DropPositionYKey].ToString()); param.OperateTime = Convert.ToInt32(a[EditorConfigInterface.Instance.DropTimeKey]); result.DropArmyCommands.Add(param); } } if (battleInfo.ContainsKey(EditorConfigInterface.Instance.BattleMercenaryKey)) { ArrayList dropMercenaries = (ArrayList)battleInfo[EditorConfigInterface.Instance.BattleMercenaryKey]; foreach (var mercenary in dropMercenaries) { DropMercenaryResponseParameter param = new DropMercenaryResponseParameter(); Hashtable a = (Hashtable)mercenary; param.MercenaryType = (MercenaryType)(Convert.ToInt32(a[EditorConfigInterface.Instance.DropTypeKey])); param.PositionX = float.Parse(a[EditorConfigInterface.Instance.DropPositionXKey].ToString()); param.PositionY = float.Parse(a[EditorConfigInterface.Instance.DropPositionYKey].ToString()); param.OperateTime = Convert.ToInt32(a[EditorConfigInterface.Instance.DropTimeKey]); result.DropMercenaryCommands.Add(param); } } if (battleInfo.ContainsKey(EditorConfigInterface.Instance.BattlePropsKey)) { ArrayList useProps = (ArrayList)battleInfo[EditorConfigInterface.Instance.BattlePropsKey]; foreach (var props in useProps) { UsePropsResponseParameter param = new UsePropsResponseParameter(); Hashtable p = (Hashtable)props; param.PropsType = (PropsType)(Convert.ToInt32(p[EditorConfigInterface.Instance.DropTypeKey])); param.PositionX = float.Parse(p[EditorConfigInterface.Instance.DropPositionXKey].ToString()); param.PositionY = float.Parse(p[EditorConfigInterface.Instance.DropPositionYKey].ToString()); param.OperateTime = Convert.ToInt32(p[EditorConfigInterface.Instance.DropTimeKey]); result.UsePropsCommands.Add(param); } } return(result); }