//============================================================== //位置情報を適用する // moveX -> 動く方向 // moveY -> 動く方向 private void ApplyPosition(int moveX, int moveY) { PosX += moveX; PosY += moveY; //壁なら位置情報を適用しない if (manager.GetFieldData(PosX, PosY) == 1) { dismovable = true; PosX -= moveX; PosY -= moveY; } //ななめ移動状態の時、「現在位置」と「進行予定位置」が部屋じゃない場所なら位置情報を適用しない if (dismovable == false) { if (IsDiagonal) { if (fieldManager.IsRoom(PosX, PosY) == false || fieldManager.IsRoom(PosX - moveX, PosY - moveY) == false) { dismovable = true; PosX -= moveX; PosY -= moveY; } } } //方向選択状態なら位置情報を適用しない if (dismovable == false) { if (manager.IsSelectDirection) { dismovable = true; PosX -= moveX; PosY -= moveY; } } //進行先に敵がいたら位置情報を適用しない if (dismovable == false) { for (int i = 0; i < manager.GetEnemyNum(); i++) { if (manager.GetEnemyPos(i).x == PosX && manager.GetEnemyPos(i).y == PosY) { dismovable = true; PosX -= moveX; PosY -= moveY; } } } //動いたなら if (dismovable == false) { actionSaver.AddAction(0); } }
//================================================================= public IEnumerator UseItemRoutine() { //使用アイテムのIDを一時保存 int usedItemId = parameterManager.playerParameters.HoldItems[itemDisplayer.CursorPoint_UseItemIndex]; //アイテムの使用 parameterManager.playerParameters.UseItem(itemDisplayer.CursorPoint_UseItemIndex); //Debug.Log(usedItemId); //エフェクト manager.Player.GetComponent <Player>().CreateEffect(usedItemId); //アクションセーバーに適用 actionSaver.AddAction(1); if (usedItemId != 2) { //テキストボックス表示 textBox.Apply(ValueDefinition.ITEMS_USED_TEXT[usedItemId], false); } //初期化 itemDisplayer.Initialize(); Initialize(); manager.IsDisplayingItemDisplayer = false; //ターン処理 manager.WasPlayerAct = true; manager.IsActiceActPlayer = true; manager.Turn++; //ターンを追加 //アイテム使用と敵の行動の間に時間を設ける yield return(new WaitForSeconds(0.5f)); manager.EndedPlayerAct = true; yield break; }