async public static void game_over()
        {
            // プレイヤー操作禁止
            Time.timeScale = 0f;

            // 画面フェードを有効化(有効な間はuGUIのボタンが押せないので注意)
            GuiService.fadeEnable();

            // 画面を半フェード
            await GuiService.fadeBacground(0.5f);

            // ゲームオーバー表示
            GuiService.showGameOver();

            MessageBroker.Default.Publish <PlaySe>(new PlaySe {
                name = "GameOver"
            });

            await in_fade(game_over_room_adjust, game_over_strength_adjust, game_over_nums_adjust);

            // 敵を全部消す
            EnemyService.destroyEnemy();

            // プレイヤー復帰
            Time.timeScale = 1f;
            await PlayerService.respawn();

            Time.timeScale = 0f;

            // GameOver表示クリア
            GuiService.hideGameOver();

            // 画面のフェードを戻す
            await GuiService.fadeBacground(0f);

            // 画面フェードを無効化
            GuiService.fadeDisable();

            // ドア開ける

            // 敵スポーン開始
            EnemyService.startSpawn();

            // プレイヤー操作再開
            Time.timeScale = 1f;
        }
 public static Rank props()
 {
     return(entity.rand(Mathf.FloorToInt(PlayerService.lv() * props_rank_scale)));
 }
        public static IEnumerator in_fade(int add_clear_count, int add_strength, int add_num)
        {
            // 操作があるまで待つ
            while (!Input.GetMouseButtonUp(0) && !Input.GetKeyUp(KeyCode.Space) && !Input.GetKeyUp(KeyCode.Return))
            {
                yield return(null);
            }

            // 画面をフルフェード
            yield return(GuiService.fadeBacground(1f));

            Time.timeScale = 1f;

            // プレイヤー再初期化
            PlayerService.reset();
            yield return(new WaitForEndOfFrame());

            // BGMチェック
            MessageBroker.Default.Publish <BgmCheck>(new BgmCheck());
            yield return(null);

            // 次のステージ情報更新
            _room_clear_count += add_clear_count;
            if (_room_clear_count < 1)
            {
                _room_clear_count = 1;
            }

            _enemy_strength += add_strength;
            if (_enemy_strength < 1)
            {
                _enemy_strength = 1;
            }

            _enemy_num += add_num;
            if (_enemy_num < 1)
            {
                _enemy_num = 1;
            }

            // ドア閉める

            // NextRoomのエフェクトを消去
            EffectService.nextRoomOff();
            yield return(new WaitForEndOfFrame());

            // 地面に落ちてる装備品を削除
            ItemEquipService.ClearTarget();
            ItemEquipService.destroyEquipItem();
            yield return(new WaitForEndOfFrame());

            // 家具配置範囲再初期化
            EffectiveFloorService.reset();

            // 家具再初期化
            FieldObjectService.reset();
            yield return(new WaitForEndOfFrame());

            // 敵削除
            EnemyService.destroyEnemyDead();
            yield return(new WaitForEndOfFrame());

            // リセット後の状態を保存
            MessageBroker.Default.Publish <SaveDataSave>(new SaveDataSave());
            yield return(new WaitForEndOfFrame());

            Time.timeScale = 0f;
        }