예제 #1
0
    /// <summary>
    /// 現在の状態に合った行動をする 毎ループ呼び出す ここでゲームオーバー判定を行う
    /// </summary>
    public void Run_Action()
    {
        // プレイヤーのステータス関係のクラス 死亡判定に使用
        Player_Status player_status = Player_Manager.Instance.player_status;

        Debug.Log(player.player_state);
        Debug.Log(player.player_mode);
        Debug.Log(player.direction);
        Debug.Log("player_feet = " + player.Feet);

        switch (player.player_state)
        {
        case ePlayer_State.Move:
            player_move.Action_Move();
            break;

        case ePlayer_State.Attack:
            player_attack.Action_Attack();
            break;

        case ePlayer_State.On_Stair:
            action_stair.Action_Stair();
            break;

        case ePlayer_State.Decide_Command:
            var decide_dungeon = new Decide_Dungeon();
            decide_dungeon.In_Decide();
            break;

        case ePlayer_State.Battle_Menu:
            Action_Battle_Menu();
            break;

        case ePlayer_State.Game_Over:
            SceneManager.LoadScene("Result");
            Enemy_Manager.Instance.enemies.Clear();
            break;
        }

        if (player.Feet == Define_Value.ENTRANCE_LAYER_NUMBER)
        {
            player_status.Where_Floor((int)player.position.x, (int)player.position.y);
        }

        // プレイヤーが生きていたら死亡判定をする
        if (player.Exist == true)
        {
            // 体力が 0 以下ならゲームオーバー処理に切り替える
            if (player.player_state != ePlayer_State.Game_Over && player_status.Is_Dead(player_status.hit_point.Value))
            {
                Set_Action(ePlayer_State.Game_Over);
            }
        }
    }