public void Initialize(MasterStageParam _master) { m_masterStageParam = _master; m_imgThumb.sprite = SpriteManager.Instance.Get(_master.thumb); m_txtName.text = _master.stage_name; m_txtOutline.text = _master.outline; m_txtWave.text = string.Format("Wave:{0}", _master.total_wave); DataStageParam data_stage = DMCamp.Instance.dataStage.list.Find(p => p.stage_id == _master.stage_id); if (data_stage != null) { m_imgClearStarArr[0].color = 0 < data_stage.clear_count ? Color.yellow : Color.white; m_imgClearStarArr[1].color = data_stage.best_reload <= m_masterStageParam.challenge_reload ? Color.yellow : Color.white; m_imgClearStarArr[2].color = data_stage.best_play <= m_masterStageParam.challenge_play ? Color.yellow : Color.white; } else { for (int i = 0; i < m_imgClearStarArr.Length; i++) { m_imgClearStarArr[i].color = Color.white; } } m_btn.onClick.AddListener(() => { SEControl.Instance.Play(Defines.KEY_SOUNDSE_DECIDE); // cursor_01 OnBanner.Invoke(this); }); }
public override void OnEnter() { base.OnEnter(); MasterStageParam master_stage = simulator.masterStage.list.Find(p => p.stage_id == stage_id.Value); DataSimulation dataSimulation = new DataSimulation(); dataSimulation.SetSaveFilename("data_simulation"); if (dataSimulation.LoadMulti()) { DataSimulationParam param = dataSimulation.list.Find(p => p.stage_id == stage_id.Value && p.level == level.Value); if (param == null) { param = new DataSimulationParam(); param.stage_id = stage_id.Value; param.level = level.Value; dataSimulation.list.Add(param); } param.count += 1; switch (wave.Value) { case 1: param.wave_1 += 1; break; case 2: param.wave_2 += 1; break; case 3: param.wave_3 += 1; break; case 4: param.wave_4 += 1; break; case 5: param.wave_5 += 1; break; } if (is_boss.Value) { param.arrive_boss += 1; } if (is_clear.Value) { param.clear += 1; param.clear_play_count += play_count.Value; param.clear_reload_count += reload_count.Value; } } dataSimulation.Save(); Finish(); }
public void create_stage(int _iStage, int _iWave) { MasterStageParam master_stage = masterStage.list.Find(p => p.stage_id == _iStage); dataCorridor.BuildDungeonSim( master_stage, _iWave, masterStageEvent, masterStageWave, masterCorridorEvent); }
public void BuildDungeonSim( MasterStageParam _master, int _iWave, MasterStageEvent _masterStageEvent, MasterStageWave _masterStageWave, MasterCorridorEvent _masterCorridorEvent) { list.Clear(); DataCorridorParam last = null; List <MasterStageEventParam> event_list = _masterStageEvent.list.FindAll(p => p.stage_id == _master.stage_id && p.wave == _iWave); if (event_list.Count == 0) { event_list = _masterStageEvent.list.FindAll(p => p.stage_id == 0 && p.wave == _iWave); } MasterStageWaveParam stage_wave = _masterStageWave.list.Find(p => p.stage_id == _master.stage_id && p.wave == _iWave); // 1からはじめたいため、ループがいつもと少し違う for (int i = 1; i <= stage_wave.length; i++) { DataCorridorParam cor = new DataCorridorParam(); cor.index = i; cor.x = i * 2; cor.y = 0; cor.next_index = i + 1; cor.corridor_event = _masterCorridorEvent.list.Find(p => p.corridor_event_id == 0);; if (i == 1) { cor.corridor_event = _masterCorridorEvent.list.Find(p => p.corridor_event_id == 1); } else { MasterStageEventParam stage_event = MasterStageEvent.GetRand(event_list); cor.corridor_event = _masterCorridorEvent.list.Find(p => p.corridor_event_id == stage_event.corridor_event_id); } list.Add(cor); last = cor; } last.corridor_event = _masterCorridorEvent.list.Find(p => p.corridor_event_id == 2); if (_master.total_wave == _iWave) { last.corridor_event.label = "BOSS"; } else { last.corridor_event.label = "NEXT"; } }
public override void OnEnter() { base.OnEnter(); MasterStageParam master_stage = simulator.masterStage.list.Find(p => p.stage_id == stage_id.Value); if (master_stage.total_wave <= wave.Value) { Fsm.Event("boss"); } else { Fsm.Event("next"); } }
public void Initialize(DataStageParam _data, MasterStageParam _master) { m_txtStage.text = string.Format("Stage{0}", _master.stage_id); if (_data.status == 1) { m_txtStatus.text = "<color=red>挑戦中</color>"; } else if (_data.status == 2) { m_txtStatus.text = "<color=#0FF>クリア</color>"; } m_imgThumb.sprite = m_spriteAtlas.GetSprite(_master.thumb_name); }
public int Initialize(int _iStageId) { int iRetRequestFood = 0; MasterStageParam masterStage = DMCamp.Instance.masterStage.list.Find(p => p.stage_id == _iStageId); m_txtStageName.text = masterStage.stage_name; m_imgStageThumb.sprite = SpriteManager.Instance.Get(masterStage.thumb); m_txtStageOutline.text = masterStage.outline; m_txtTotalWave.text = string.Format("Wave:{0}", masterStage.total_wave); m_txtTotalCorridor.text = string.Format("約{0}回廊", masterStage.total_length); m_txtStageMissionText[0].text = "クリア済み"; m_txtStageMissionText[1].text = string.Format("リロード{0}回以内", masterStage.challenge_reload); m_txtStageMissionText[2].text = string.Format("カードプレイ{0}以内", masterStage.challenge_play); List <DataUnitParam> party_members = DMCamp.Instance.dataUnitCamp.list.FindAll(p => p.unit == "chara" && p.position != "none"); int iPartyCost = 0; foreach (DataUnitParam unit in party_members) { MasterCharaParam master_chara = DMCamp.Instance.masterChara.list.Find(p => p.chara_id == unit.chara_id); iPartyCost += master_chara.food; } m_txtFoodParty.text = iPartyCost.ToString(); m_txtFoodStage.text = masterStage.food_rate.ToString(); iRetRequestFood = iPartyCost * masterStage.food_rate; m_txtFoodTotal.text = iRetRequestFood.ToString(); DataStageParam data_stage = DMCamp.Instance.dataStage.list.Find(p => p.stage_id == _iStageId); if (data_stage != null) { m_imgStageMissionStar[0].color = 0 < data_stage.clear_count ? Color.yellow : Color.white; m_imgStageMissionStar[1].color = data_stage.best_reload <= masterStage.challenge_reload ? Color.yellow : Color.white; m_imgStageMissionStar[2].color = data_stage.best_play <= masterStage.challenge_play ? Color.yellow : Color.white; } else { for (int i = 0; i < m_imgStageMissionStar.Count; i++) { m_imgStageMissionStar[i].color = Color.white; } } return(iRetRequestFood); }
public override void OnEnter() { base.OnEnter(); int enemy_chara_id = 0; if (is_boss.Value == false) { Debug.Log("battle_start"); List <MasterStageEnemyParam> appear_enemy_list = simulator.masterStageEnemy.list.FindAll(p => p.stage_id == stage_id.Value && p.wave == wave.Value); if (appear_enemy_list.Count == 0) { appear_enemy_list = simulator.masterStageEnemy.list.FindAll(p => p.stage_id == stage_id.Value && p.wave == 0); } int[] enemy_prob = new int[appear_enemy_list.Count]; for (int i = 0; i < appear_enemy_list.Count; i++) { enemy_prob[i] = appear_enemy_list[i].prob; } int index = UtilRand.GetIndex(enemy_prob); // chara_id = enemy_idです //GameMain.Instance.battleMain.RequestBattle.Invoke(false, appear_enemy_list[index].enemy_id); enemy_chara_id = appear_enemy_list[index].enemy_id; } else { MasterStageParam master_stage = simulator.masterStage.list.Find(p => p.stage_id == stage_id.Value); enemy_chara_id = master_stage.boss_chara_id; } create_enemy(enemy_chara_id); Finish(); }
public override void OnEnter() { base.OnEnter(); bool bFirstClear = false; int floor_id = DataManager.Instance.game_data.ReadInt("floor_id"); MasterFloorParam current_floor = DataManager.Instance.masterFloor.list.Find(p => p.floor_id == floor_id); MasterStageParam current_stage = DataManager.Instance.masterStage.list.Find(p => p.stage_id == current_floor.stage_id); DataFloorParam data_floor = DataManager.Instance.dataFloor.list.Find(p => p.floor_id == current_floor.floor_id); if (data_floor == null) { data_floor = new DataFloorParam(); DataManager.Instance.dataFloor.list.Add(data_floor); data_floor.floor_id = floor_id; } data_floor.count += 1; // 初クリア判定は2(クリア状態じゃなければ) bFirstClear = data_floor.status != 2; data_floor.status = 2; if (DataManager.Instance.IsTest) { // マジックナンバーか! DataManager.Instance.armor_interval = 5; DataWeaponParam weapon = DataManager.Instance.dataWeapon.list.Find(p => 0 < p.equip); data_floor.test_weapon_id = weapon.weapon_id; data_floor.test_weapon_level = weapon.level; DataArmorParam armor = DataManager.Instance.dataArmor.list[0]; data_floor.test_armor_level = armor.level; } // 次のフロアが必要な場合 if (0 < current_floor.next_floor_id) { DataFloorParam data_next_floor = DataManager.Instance.dataFloor.list.Find(p => p.floor_id == current_floor.next_floor_id); if (data_next_floor == null) { MasterFloorParam master_next_floor = DataManager.Instance.masterFloor.list.Find(p => p.floor_id == current_floor.next_floor_id); data_next_floor = new DataFloorParam(); data_next_floor.floor_id = master_next_floor.floor_id; data_next_floor.stage_id = master_next_floor.stage_id; data_next_floor.status = 1; data_next_floor.count = 0; DataManager.Instance.dataFloor.list.Add(data_next_floor); // ステージが異なる場合はここで追加 if (current_floor.stage_id != master_next_floor.stage_id) { DataStageParam data_new_stage = DataManager.Instance.dataStage.list.Find(p => p.stage_id == master_next_floor.stage_id); if (data_new_stage == null) { data_new_stage = new DataStageParam(); data_new_stage.stage_id = master_next_floor.stage_id; data_new_stage.status = 1; DataManager.Instance.dataStage.list.Add(data_new_stage); } } } } // 現在のフロア攻略チェック DataFloorParam check_stage_complete = DataManager.Instance.dataFloor.list.Find(p => p.stage_id == current_floor.stage_id && p.status != 2); if (check_stage_complete == null) { DataStageParam data_current_stage = DataManager.Instance.dataStage.list.Find(p => p.stage_id == current_floor.stage_id); data_current_stage.status = 2; } DataManager.Instance.dataStage.Save(); DataManager.Instance.dataFloor.Save(); DataManager.Instance.dataPotion.Save(); // 獲得Coinの補正 DataItemParam data_item_coin = DataManager.Instance.dataGetItem.list.Find(p => p.item_id == Defines.ITEM_ID_COIN); int get_coin_num = 0; if (data_item_coin != null) { get_coin_num = data_item_coin.num; } get_coin_num = Mathf.CeilToInt((float)get_coin_num * (float)((float)gamemain.player_chara.m_dataUnitParam.coin / 100.0f)); gamemain.m_goFadePanel.SetActive(true); gamemain.m_panelResult.Initialize(floor_id, (int)gamemain.m_fGameTime); gamemain.m_panelResult.gameObject.SetActive(true); foreach (DataItemParam get in DataManager.Instance.dataGetItem.list) { if (get.item_id == 1) { DataManager.Instance.AddCoin(get.num); } else if (get.item_id == 2) { DataManager.Instance.AddGem(get.num); } else if (get.item_id == 3) { DataManager.Instance.AddKey(get.num); } else if (get.item_id == 4) { DataManager.Instance.AddGoldKey(get.num); } else { DataManager.Instance.dataItem.Add(get.item_id, get.num); } } DataManager.Instance.dataItem.Save(); DataManager.Instance.dataGetItem.list.Clear(); DataManager.Instance.user_data.Save(); gamemain.m_panelResult.m_btnCamp.onClick.RemoveAllListeners(); gamemain.m_panelResult.m_btnCamp.onClick.AddListener(() => { Fsm.Event("camp"); }); gamemain.m_panelResult.m_btnRetry.onClick.RemoveAllListeners(); gamemain.m_panelResult.m_btnRetry.onClick.AddListener(() => { Fsm.Event("retry"); }); gamemain.m_panelResult.m_btnRetry10.onClick.RemoveAllListeners(); gamemain.m_panelResult.m_btnRetry10.onClick.AddListener(() => { Fsm.Event("retry10"); }); gamemain.m_panelResult.m_btnNext.interactable = 0 < current_floor.next_floor_id; gamemain.m_panelResult.m_btnNext.onClick.RemoveAllListeners(); gamemain.m_panelResult.m_btnNext.onClick.AddListener(() => { Fsm.Event("next"); }); gamemain.m_panelResult.m_btnContinueEnd.onClick.RemoveAllListeners(); gamemain.m_panelResult.m_btnContinueEnd.onClick.AddListener(() => { button_active(true); continue_count.Value = 0; }); gamemain.m_panelResult.m_btnQuickNext.onClick.RemoveAllListeners(); gamemain.m_panelResult.m_btnQuickNext.onClick.AddListener(() => { Fsm.Event("retry"); }); if (0 < continue_count.Value) { button_active(false); StartCoroutine(auto_retry()); } else { button_active(true); } if (DataManager.Instance.IsTest) { Fsm.Event("retry"); } if (current_floor.next_floor_id == 0 && bFirstClear) { Fsm.Event("ending"); } }