예제 #1
0
    /// <summary>
    /// 草原への移動が選択されたときに呼ばれる
    /// </summary>
    public void Move_Grass()
    {
        var player = Player_Manager.Instance.player_script;

        // 移動先のダンジョンの情報をcsvファイルからロード
        dungeon_data.Load_Dungeon(eDungeon_Type.Beginning_Grass);
        // そのダンジョンに出現するエネミーをcsvファイルからロードする
        enemy_status.Create_Enemy();
        // そのダンジョンの最終階層を設定
        dungeon_manager.max_floor.Value = dungeon_data.max_floor;
        // ゲームの状態をダンジョン制作のものに
        game_manager.Set_Game_State(eGame_State.Create_Dungeon);
        // 配置する床を進入ダンジョンに合ったのものに
        dungeon_manager.tile_state.Value = eTile_State.Grass;
        // 配置する壁を進入ダンジョンに合ったのものに
        dungeon_manager.wall_state.Value = eWall_State.Tree;
        // ダンジョン選択UIを消す
        base_manager.dungeon_command.Value = false;
        // ダンジョンの進入するので拠点を消去
        Reset();
        // ダンジョン移動後はプレイヤーのターンから
        player_action.Set_Action(ePlayer_State.Move);
        // 選択中は0なので1に戻して歩けるように
        player.Move_Value = Define_Value.MOVE_VAULE;
    }
예제 #2
0
    /// <summary>
    /// 進むボタンを押したときの処理
    /// </summary>
    public void Decide_Progress()
    {
        var dungeon_manager = Dungeon_Manager.Instance;
        var dungeon_data    = new Dungeon_Data();

        dungeon_data.Load_Dungeon(Dungeon_Manager.Instance.dungeon_type);

        dungeon_manager.Next_Level(dungeon_data.level);
        player_script.Move_Value = Define_Value.MOVE_VAULE;
        player_action.Set_Action(ePlayer_State.Move);
        action_stair.said_stair_command.Value = false;
    }
예제 #3
0
    /// <summary>
    /// プレイヤーの攻撃処理
    /// </summary>
    public void Action_Attack()
    {
        // プレイヤーの座標
        var player_x = (int)player_script.position.x;
        var player_y = (int)player_script.position.y;
        // タイルの大きさ
        int tile_scale = Define_Value.TILE_SCALE;
        // 調整用変数 4方向は斜めがいらないので0
        int adjust_value_zero = 0;
        // 調整用変数 1マス先
        int adjust_value_add = Define_Value.TILE_SCALE;

        switch (player_script.direction)
        {
        case eDirection.Up:
            // 自分の向いている方向の1マス先に敵がいるか判断 上から順に時計回りに検索
            if (map_layer.Get(player_x, player_y + tile_scale) !=
                Define_Value.ENEMY_LAYER_NUMBER)
            {
                player_action.Set_Action(ePlayer_State.Move);
                return;
            }
            Attack_Process(adjust_value_zero, adjust_value_add);
            break;

        case eDirection.Upright:
            if (map_layer.Get(player_x + tile_scale, player_y + tile_scale) !=
                Define_Value.ENEMY_LAYER_NUMBER)
            {
                player_action.Set_Action(ePlayer_State.Move);
                return;
            }
            Attack_Process(adjust_value_add, adjust_value_add);
            break;

        case eDirection.Right:
            if (map_layer.Get(player_x + tile_scale, player_y) !=
                Define_Value.ENEMY_LAYER_NUMBER)
            {
                player_action.Set_Action(ePlayer_State.Move);
                return;
            }
            Attack_Process(adjust_value_add, adjust_value_zero);
            break;

        case eDirection.Downright:
            if (map_layer.Get(player_x + tile_scale, player_y - tile_scale) !=
                Define_Value.ENEMY_LAYER_NUMBER)
            {
                player_action.Set_Action(ePlayer_State.Move);
                return;
            }
            Attack_Process(adjust_value_add, -adjust_value_add);
            break;

        case eDirection.Down:
            if (map_layer.Get(player_x, player_y - tile_scale) !=
                Define_Value.ENEMY_LAYER_NUMBER)
            {
                player_action.Set_Action(ePlayer_State.Move);
                return;
            }
            Attack_Process(adjust_value_zero, -adjust_value_add);
            break;

        case eDirection.Downleft:
            if (map_layer.Get(player_x - tile_scale, player_y - tile_scale) !=
                Define_Value.ENEMY_LAYER_NUMBER)
            {
                player_action.Set_Action(ePlayer_State.Move);
                return;
            }
            Attack_Process(-adjust_value_add, -adjust_value_add);
            break;

        case eDirection.Left:
            if (map_layer.Get(player_x - tile_scale, player_y) !=
                Define_Value.ENEMY_LAYER_NUMBER)
            {
                player_action.Set_Action(ePlayer_State.Move);
                return;
            }
            Attack_Process(-adjust_value_add, adjust_value_zero);
            break;

        case eDirection.Upleft:
            if (map_layer.Get(player_x - tile_scale, player_y + tile_scale) !=
                Define_Value.ENEMY_LAYER_NUMBER)
            {
                player_action.Set_Action(ePlayer_State.Move);
                return;
            }
            Attack_Process(-adjust_value_add, adjust_value_add);
            break;
        }
    }