public void Refresh() { TowerFloorParam towerFloor = MonoSingleton <GameManager> .Instance.FindTowerFloor(GlobalVars.SelectedQuestID); if (towerFloor == null) { return; } QuestParam questParam = towerFloor.GetQuestParam(); DataSource.Bind <QuestParam>(((Component)this).get_gameObject(), questParam); this.SetRecommendText((int)towerFloor.lv, (int)towerFloor.joblv); int downloadAssetNum = ((FlowNode_DownloadTowerMapSets)((Component)this).GetComponentInParent <FlowNode_DownloadTowerMapSets>()).DownloadAssetNum; TowerFloorParam currentFloor = MonoSingleton <GameManager> .Instance.TowerResuponse.GetCurrentFloor(); if (currentFloor == null) { return; } if ((int)towerFloor.FloorIndex < (int)currentFloor.FloorIndex + downloadAssetNum) { if (questParam.state == QuestStates.Cleared) { GameUtility.SetGameObjectActive(this.UnkownIcon, false); GameUtility.SetGameObjectActive((Component)this.RewardText, true); GameUtility.SetGameObjectActive(this.ClearIcon, true); for (int index = 0; index < this.EnemyList.Count; ++index) { ((Component)this.EnemyList[index]).get_gameObject().SetActive(false); } for (int index = 0; index < this.UnknownEnemyList.Count; ++index) { ((Component)this.UnknownEnemyList[index]).get_gameObject().SetActive(false); } this.SetRewards(MonoSingleton <GameManager> .Instance.FindTowerReward(towerFloor.reward_id)); } else { string path = AssetPath.LocalMap(towerFloor.map[0].mapSetName); string src = AssetManager.LoadTextData(path); if (string.IsNullOrEmpty(src)) { DebugUtility.LogError("配置ファイルがありません : QuestIname = " + towerFloor.iname + ",SetFilePath = " + path); return; } JSON_MapUnit jsonObject = JSONParser.parseJSONObject <JSON_MapUnit>(src); GameUtility.SetGameObjectActive(this.UnkownIcon, false); GameUtility.SetGameObjectActive((Component)this.RewardText, true); GameUtility.SetGameObjectActive(this.ClearIcon, false); TowerResuponse towerResuponse = MonoSingleton <GameManager> .Instance.TowerResuponse; if ((int)jsonObject.is_rand > 0) { if (towerResuponse.lot_enemies == null || (int)towerFloor.FloorIndex > (int)currentFloor.FloorIndex) { for (int index = 0; index < this.EnemyList.Count; ++index) { ((Component)this.EnemyList[index]).get_gameObject().SetActive(false); } this.EnemyTemplateUnKnown.SetActive(true); int num = 0; for (int index = 0; index < towerFloor.rand_tag.Length; ++index) { num += (int)towerFloor.rand_tag[index]; } for (int index = 0; index < num; ++index) { if (index >= this.UnknownEnemyList.Count) { TowerEnemyListItem component = (TowerEnemyListItem)((GameObject)Object.Instantiate <GameObject>((M0)this.EnemyTemplateUnKnown)).GetComponent <TowerEnemyListItem>(); ((Component)component).get_transform().SetParent(this.EnemiesRoot.get_transform(), false); this.UnknownEnemyList.Add(component); } ((Component)this.UnknownEnemyList[index]).get_gameObject().SetActive(true); } for (int index = num; index < this.UnknownEnemyList.Count; ++index) { ((Component)this.UnknownEnemyList[index]).get_gameObject().SetActive(false); } this.EnemyTemplateUnKnown.SetActive(false); } else { List <JSON_MapEnemyUnit> randFixedUnit = jsonObject.GetRandFixedUnit(); jsonObject.enemy = new JSON_MapEnemyUnit[towerResuponse.lot_enemies.Length]; for (int index = 0; index < jsonObject.enemy.Length; ++index) { jsonObject.enemy[index] = jsonObject.deck[(int)towerResuponse.lot_enemies[index]]; } List <JSON_MapEnemyUnit> jsonMapEnemyUnitList = new List <JSON_MapEnemyUnit>((IEnumerable <JSON_MapEnemyUnit>)jsonObject.enemy); jsonMapEnemyUnitList.AddRange((IEnumerable <JSON_MapEnemyUnit>)randFixedUnit); jsonObject.enemy = jsonMapEnemyUnitList.ToArray(); this.SetEnemies(jsonObject.enemy); } } else if (jsonObject.enemy != null) { this.SetEnemies(jsonObject.enemy); } this.SetRewards(MonoSingleton <GameManager> .Instance.FindTowerReward(towerFloor.reward_id)); } } else { GameUtility.SetGameObjectActive(this.UnkownIcon, true); GameUtility.SetGameObjectActive((Component)this.RewardText, true); GameUtility.SetGameObjectActive(this.ClearIcon, false); if (Object.op_Inequality((Object)this.UnkownIcon, (Object)null)) { Text component = (Text)this.UnkownIcon.GetComponent <Text>(); if (Object.op_Inequality((Object)component, (Object)null)) { component.set_text(LocalizedText.Get("sys.TOWER_UNKNOWN_TEXT", new object[1] { (object)((int)towerFloor.FloorIndex - downloadAssetNum + 1) })); } } for (int index = 0; index < this.EnemyList.Count; ++index) { ((Component)this.EnemyList[index]).get_gameObject().SetActive(false); } for (int index = 0; index < this.UnknownEnemyList.Count; ++index) { ((Component)this.UnknownEnemyList[index]).get_gameObject().SetActive(false); } this.SetRewards(MonoSingleton <GameManager> .Instance.FindTowerReward(towerFloor.reward_id)); } GameParameter.UpdateAll(((Component)this).get_gameObject()); this.FloorID = GlobalVars.SelectedQuestID; }
public bool Initialize(BattleCore core, MapParam param) { this.mBattle = core; this.MapSceneName = param.mapSceneName; this.BattleSceneName = param.battleSceneName; this.EventSceneName = param.eventSceneName; this.BGMName = param.bgmName; this.mWinMonitorCondition.Clear(); this.mLoseMonitorCondition.Clear(); if (string.IsNullOrEmpty(param.mapSceneName)) { DebugUtility.LogError("not found mapdata."); return(false); } string path1 = AssetPath.LocalMap(param.mapSceneName); string src1 = AssetManager.LoadTextData(path1); if (src1 == null) { DebugUtility.LogError("Failed to load " + path1); return(false); } if (!this.Deserialize(JSONParser.parseJSONObject <JSON_Map>(src1))) { DebugUtility.LogError("Failed to load " + path1); return(false); } string path2 = AssetPath.LocalMap(param.mapSetName); string src2 = AssetManager.LoadTextData(path2); if (src2 == null) { DebugUtility.LogError("マップ配置情報\"" + path2 + "\"に存在しない"); return(false); } JSON_MapUnit jsonObject = JSONParser.parseJSONObject <JSON_MapUnit>(src2); if (jsonObject == null) { DebugUtility.LogError("マップ配置情報\"" + path2 + "\"のパースに失敗"); return(false); } if (jsonObject.enemy == null && jsonObject.arena == null) { DebugUtility.LogError("敵ユニットの配置情報がマップ配置情報\"" + path2 + "\"に存在しない"); return(false); } if (jsonObject.party != null) { this.mPartyUnitSettings = new List <UnitSetting>(jsonObject.party.Length); for (int index = 0; index < jsonObject.party.Length; ++index) { this.mPartyUnitSettings.Add(new UnitSetting(jsonObject.party[index])); } } if (jsonObject.party_subs != null && jsonObject.party_subs.Length != 0) { this.mPartyUnitSubSettings = new List <UnitSubSetting>(jsonObject.party_subs.Length); foreach (JSON_MapPartySubCT partySub in jsonObject.party_subs) { this.mPartyUnitSubSettings.Add(new UnitSubSetting(partySub)); } } if (jsonObject.tricks != null && jsonObject.tricks.Length != 0) { this.mTrickSettings = new List <TrickSetting>(jsonObject.tricks.Length); foreach (JSON_MapTrick trick in jsonObject.tricks) { this.mTrickSettings.Add(new TrickSetting(trick)); } } if ((int)jsonObject.is_rand == 1) { List <JSON_MapEnemyUnit> randFixedUnit = jsonObject.GetRandFixedUnit(); jsonObject.enemy = this.GetRandUnit(core.GetQuest(), jsonObject, this.mRandDeckResult); List <JSON_MapEnemyUnit> jsonMapEnemyUnitList = new List <JSON_MapEnemyUnit>((IEnumerable <JSON_MapEnemyUnit>)jsonObject.enemy); jsonMapEnemyUnitList.AddRange((IEnumerable <JSON_MapEnemyUnit>)randFixedUnit); jsonObject.enemy = jsonMapEnemyUnitList.ToArray(); } if (jsonObject.enemy != null) { this.mNPCUnitSettings = new List <NPCSetting>(jsonObject.enemy.Length); for (int index = 0; index < jsonObject.enemy.Length; ++index) { this.mNPCUnitSettings.Add(new NPCSetting(jsonObject.enemy[index])); } } if (jsonObject.arena != null) { this.mArenaUnitSettings = new List <UnitSetting>(jsonObject.arena.Length); for (int index = 0; index < jsonObject.arena.Length; ++index) { UnitSetting unitSetting = new UnitSetting(); unitSetting.uniqname = (OString)jsonObject.arena[index].name; unitSetting.ai = (OString)jsonObject.arena[index].ai; unitSetting.pos.x = (OInt)jsonObject.arena[index].x; unitSetting.pos.y = (OInt)jsonObject.arena[index].y; unitSetting.dir = (OInt)jsonObject.arena[index].dir; unitSetting.waitEntryClock = (OInt)jsonObject.arena[index].wait_e; unitSetting.waitMoveTurn = (OInt)jsonObject.arena[index].wait_m; unitSetting.waitExitTurn = (OInt)jsonObject.arena[index].wait_exit; unitSetting.startCtCalc = (eMapUnitCtCalcType)jsonObject.arena[index].ct_calc; unitSetting.startCtVal = (OInt)jsonObject.arena[index].ct_val; unitSetting.DisableFirceVoice = jsonObject.arena[index].fvoff != 0; unitSetting.side = (OInt)1; unitSetting.ai_pos.x = (OInt)jsonObject.arena[index].ai_x; unitSetting.ai_pos.y = (OInt)jsonObject.arena[index].ai_y; unitSetting.ai_len = (OInt)jsonObject.arena[index].ai_len; unitSetting.parent = (OString)jsonObject.arena[index].parent; if (jsonObject.arena[index].trg != null) { unitSetting.trigger = new EventTrigger(); unitSetting.trigger.Deserialize(jsonObject.arena[index].trg); } this.mArenaUnitSettings.Add(unitSetting); } } if (jsonObject.w_cond != null) { jsonObject.w_cond.CopyTo(this.mWinMonitorCondition); } if (jsonObject.l_cond != null) { jsonObject.l_cond.CopyTo(this.mLoseMonitorCondition); } if (jsonObject.gs != null) { this.mGimmickEvents = new List <JSON_GimmickEvent>((IEnumerable <JSON_GimmickEvent>)jsonObject.gs); } return(true); }