Beispiel #1
0
    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);
        });
    }
Beispiel #2
0
        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();
        }
Beispiel #3
0
    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);
    }
Beispiel #4
0
    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";
        }
    }
Beispiel #5
0
        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");
            }
        }
Beispiel #6
0
    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);
    }
Beispiel #7
0
    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);
    }
Beispiel #8
0
        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();
        }
Beispiel #9
0
        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");
            }
        }