/// <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; }
/// <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; }
/// <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; } }