예제 #1
0
    public void InitStage(string stageId)
    {
        StageData crntStageData = StageDataTableObject.Instance.Table.All.First(stgData => stgData.ID == stageId);          //一番最初のだからWhereではなくFirstを使う。Whereは複数

        if (CurrentStageObject != null)
        {
            DestroyImmediate(CurrentStageObject);
        }
        //敵があまっていれば削除
        DeleteAllEnemies();

        CurrentStageObject = (GameObject)Instantiate(Resources.Load("Prefabs/Stages/" + crntStageData.BG));
        CurrentStageObject.GetComponent <StageObject> ().InitStageObject(crntStageData);

        //バトル参加してるキャラのハンガーレベル調整
        ChangeHungerLevel();
    }
예제 #2
0
    public void InitResult()
    {
        //ドロップのトータルを表示
        string          dropResult = "";
        List <DropData> dropList   = CurrentStageObject.GetComponent <StageObject> ().DropDataList;

        foreach (DropData drop in dropList)
        {
            if (CurrentStageObject.GetComponent <StageObject> ().DropItemNum.ContainsKey(drop.ID))
            {
                dropResult += drop.ID + ": " + CurrentStageObject.GetComponent <StageObject> ().DropItemNum [drop.ID] + "\n";
            }
        }

        //Npcドロップを表示&追加
        string    npcResult   = "";
        CharaData dropNpcData = CurrentStageObject.GetComponent <StageObject> ().DropNpcData;

        if (dropNpcData != null)
        {
            PlayerData.AddNpcData(dropNpcData);
            npcResult = "NPC added! \n MAX ATK: " + dropNpcData.MaxAtk;
        }


        //ステージクリア情報表示
        UiController.Instance.OpenDialogPanel("Result\n\n" + dropResult + "\n" + npcResult, () => {
            //ハンガーレベル調査。
            //死にそうな人がいればワーニング。
            List <CharaData> hungryCharList = GameManager.Instance.CheckHungerLevel(true);
            if (hungryCharList.Count > 0)
            {
                UiController.Instance.OpenDialogPanel2("There are some hungry characters.\nGoing to battle will kill these characters.\nAre you sure?",
                                                       //はい
                                                       () => {
                    //OKボタンでステージ移動。
                    int stgNum = Int32.Parse(PlayerData.crntStageID.Replace("stg", ""));
                    stgNum++;
                    string nextStgId    = "stg" + stgNum;
                    StageData nextStage = StageDataTableObject.Instance.Table.All.FirstOrDefault(stgData => stgData.ID == nextStgId);
                    if (nextStage != null)
                    {
                        PlayerData.crntStageID = nextStgId;
                        TransitionManager.Instance.FadeTo("Main");
                    }
                    //なかった場合はMapを開く
                    else
                    {
                        UiController.Instance.OpenMapPanel();
                    }
                },
                                                       //いいえ
                                                       () => {
                    TransitionManager.Instance.FadeTo("HomeScene");
                }
                                                       );
            }
            //ハンガーレベル = 0がない
            else
            {
                //ステージ移動。
                int stgNum = Int32.Parse(PlayerData.crntStageID.Replace("stg", ""));
                stgNum++;
                string nextStgId    = "stg" + stgNum;
                StageData nextStage = StageDataTableObject.Instance.Table.All.FirstOrDefault(stgData => stgData.ID == nextStgId);
                if (nextStage != null)
                {
                    PlayerData.crntStageID = nextStgId;
                    TransitionManager.Instance.FadeTo("Main");
                }
                //なかった場合はMapを開く
                else
                {
                    UiController.Instance.OpenMapPanel();
                }
            }
        });
    }