/// <summary> /// 宝箱を開ける処理。(全てのリストが1以上要素を持つ前提) /// </summary> private void OpenCursedTreasureChest(DungeonManager dm) { if (UnityEngine.Random.Range(0f, 1f) > dm.SuccessRateOfUnlockTreasureChest) { Debug.Log("宝箱の解除に失敗した"); /* あるいは鍵がかかっていないものも用意or成功率を宝箱ごとにわける */ dm.MoveScene(E_DungeonScene.SelectAction); return; } switch (UnityEngine.Random.Range(0, 9)) { case 0: case 1: DungeonActiveItem daItem = this.mayAppearDungeonActiveItems[UnityEngine.Random.Range(0, this.mayAppearDungeonActiveItems.Count)]; Debug.Log(daItem.EffectName + "を入手した"); dm.HaveDungeonActiveItems.Add(daItem); break; case 2: case 3: DungeonPassiveItem dpItem = this.mayAppearDungeonPassiveItems[UnityEngine.Random.Range(0, this.mayAppearDungeonPassiveItems.Count)]; Debug.Log(dpItem.EffectName + "を入手した"); dm.AddDungeonPassiveItem(dpItem); break; case 4: case 5: BattleActiveItem baItem = this.mayAppearBattleActiveItems[UnityEngine.Random.Range(0, this.mayAppearBattleActiveItems.Count)]; Debug.Log(baItem.EffectName + "を入手した"); dm.HaveBattleActiveItems.Add(baItem); break; case 6: case 7: BattlePassiveItem bpItem = this.mayAppearBattlePassiveItems[UnityEngine.Random.Range(0, this.mayAppearBattlePassiveItems.Count)]; Debug.Log(bpItem.EffectName + "を入手した"); dm.HaveBattlePassiveItems.Add(bpItem); break; case 8: BattleCharacter enemy = Instantiate(this.mayAppearEnemy[UnityEngine.Random.Range(0, this.mayAppearEnemy.Count)], dm.EnemysRootObject.transform); Debug.Log(enemy.CharaClass.CharaName + "が出現した"); dm.Enemys = new List <BattleCharacter>() { enemy }; dm.MoveBattleScene(); return; } dm.ElapseTurn(); dm.MoveScene(E_DungeonScene.SelectAction); }
/// <summary> /// 宝箱を開ける処理。ランダムでアイテムかモンスター戦闘。(アイテム獲得処理は参照渡しのため修正が必要かも) /// </summary> /// <param name="dm">DungeonManager</param> private void OpenChest(DungeonManager dm) { switch (UnityEngine.Random.Range(0, 9)) { case 0: case 1: DungeonActiveItem daItem = this.mayAppearDungeonActiveItems[UnityEngine.Random.Range(0, this.mayAppearDungeonActiveItems.Count)]; Debug.Log(daItem.EffectName + "を入手した"); dm.HaveDungeonActiveItems.Add(daItem); break; case 2: case 3: DungeonPassiveItem dpItem = this.mayAppearDungeonPassiveItems[UnityEngine.Random.Range(0, this.mayAppearDungeonPassiveItems.Count)]; Debug.Log(dpItem.EffectName + "を入手した"); dm.AddDungeonPassiveItem(dpItem); break; case 4: case 5: BattleActiveItem baItem = this.mayAppearBattleActiveItems[UnityEngine.Random.Range(0, this.mayAppearBattleActiveItems.Count)]; Debug.Log(baItem.EffectName + "を入手した"); dm.HaveBattleActiveItems.Add(baItem); break; case 6: case 7: BattlePassiveItem bpItem = this.mayAppearBattlePassiveItems[UnityEngine.Random.Range(0, this.mayAppearBattlePassiveItems.Count)]; Debug.Log(bpItem.EffectName + "を入手した"); dm.HaveBattlePassiveItems.Add(bpItem); break; case 8: BattleCharacter enemy = Instantiate(this.mayAppearEnemy[UnityEngine.Random.Range(0, this.mayAppearEnemy.Count)], dm.EnemysRootObject.transform); Debug.Log(enemy.CharaClass.CharaName + "が出現した"); dm.Enemys = new List <BattleCharacter>() { enemy }; dm.MoveBattleScene(); return; } dm.ElapseTurn(); dm.MoveScene(E_DungeonScene.SelectAction); }
private void InputBuyOrNot(DungeonManager dm) { if (Input.GetKeyDown(KeyCode.Y)) { //購入処理 if (selectItemIndex == 0) { dm.HaveDungeonActiveItems.Add(this.appearDungeonActiveItem); dm.AnnounceByText(this.appearDungeonActiveItem.EffectName + "を購入しました"); dm.HaveGold -= this.appearDungeonActiveItem.BuyPrice; } else if (selectItemIndex == 1) { dm.AddDungeonPassiveItem(this.appearDungeonPassiveItem); dm.AnnounceByText(this.appearDungeonPassiveItem.EffectName + "を購入しました"); dm.HaveGold -= this.appearDungeonPassiveItem.BuyPrice; } else if (selectItemIndex == 2) { dm.HaveBattleActiveItems.Add(this.appearBattleActiveItem); dm.AnnounceByText(this.appearBattleActiveItem.EffectName + "を購入しました"); dm.HaveGold -= this.appearBattleActiveItem.BuyPrice; } else { dm.HaveBattlePassiveItems.Add(this.appearBattlePassiveItem); dm.AnnounceByText(this.appearBattlePassiveItem.EffectName + "を購入しました"); dm.HaveGold -= this.appearBattlePassiveItem.BuyPrice; } this.isBought[selectItemIndex] = true; SetSelectItemIndex(dm); dm.NeedAnnounce = true; this.currentScene = E_ShopScene.SelectItem; } if (Input.GetKeyDown(KeyCode.N)) { dm.NeedAnnounce = true; this.currentScene = E_ShopScene.SelectItem; } }