void Update() { if (!this.m_IsLoadSceneFromDisk) { Hashtable map = MapReader.Instance.LoadMap(); if (map != null) { FindRivalResponseParameter param = DataConvertor.ConvertJSONToParameter(map); foreach (var building in param.Buildings) { EditorFactory.Instance.ConstructBuilding(building.BuildingType, building.Level, new TilePosition(building.PositionColumn, building.PositionRow)); } foreach (var removableObject in param.Objects) { EditorFactory.Instance.ConstructRemovableObject(removableObject.ObjectType, new TilePosition(removableObject.PositionColumn, removableObject.PositionRow)); } foreach (var achievementBuilding in param.AchievementBuildings) { EditorFactory.Instance.ConstructAchievementBuilding(achievementBuilding.AchievementBuildingType, new TilePosition(achievementBuilding.PositionColumn, achievementBuilding.PositionRow)); } foreach (var defenseObject in param.DefenseObjects) { EditorFactory.Instance.ConstructDefenseObject(defenseObject.PropsType, new TilePosition(defenseObject.PositionColumn, defenseObject.PositionRow)); } } this.m_IsLoadSceneFromDisk = true; } }
void Start() { Hashtable map = MapReader.Instance.LoadMap(); BattleSceneHelper.Instance.ClearObject(); int battleRandomSeed = 0; BattleRandomer.Instance.SetSeed(battleRandomSeed); if (map != null) { this.m_Factory.ConstructBuilding(DataConvertor.ConvertJSONToParameter(map)); this.m_Map.SetMap(this.CurrentRivalAge); BattleMapData.Instance.ConstructGridArray(); this.m_GridFactory.ConstructGird(); } //AudioController.PlayMusic("BattleStart"); BattleSceneHelper.Instance.EnableBuildingAI(); BattleRecorder.Instance.BattleStartTime = TimeTickRecorder.Instance.CurrentTimeTick; }
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); }