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(); }
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(); } } }); }