Beispiel #1
0
    public override IEnumerator Execute(BattleContext battleContext)
    {
        // アイテム一覧の表示
        battleContext.windowBattleItemCommand.CreateSelectableText(battleContext.player.GetStringOfItem());
        yield return(null);

        battleContext.windowBattleItemCommand.Open();

        yield return(new WaitUntil(() => Input.GetKeyDown(KeyCode.Space) || Input.GetKeyDown(KeyCode.Escape)));

        if (Input.GetKeyDown(KeyCode.Space))
        {
            // 選択したアイテム
            int currentID = battleContext.windowBattleItemCommand.currentID;
            // コマンドの設定
            battleContext.player.selectCommand = battleContext.player.inventory[currentID];
            //ターゲットの設定
            battleContext.player.SetTarget();
            next = new EnemyPhase();
        }
        else
        {
            // escの処理
            battleContext.windowBattleMenuCommand.Select();
            next = new ChooseCommandPhase();
        }

        battleContext.windowBattleItemCommand.gameObject.SetActive(false);
    }
    // 引数で必要なデータを受け取ればいいのでは?
    public override IEnumerator Execute(BattleContext battleContext)
    {
        // 技選択をしたら次のフェーズにいく
        yield return(new WaitUntil(() => Input.GetKeyDown(KeyCode.Space)));

        int currentID = battleContext.windowBattleMenuCommand.currentID;

        if (currentID == 0)
        {
            // 0なら攻撃
            battleContext.player.selectCommand = battleContext.player.commands[0];
            battleContext.player.target        = battleContext.enemy;
            next = new EnemyPhase();
        }
        else if (currentID == 1)
        {
            next = new ChooseSpellCommandPhase();
        }
        else if (currentID == 3)
        {
            // アイテム使用
            next = new ChooseItemCommandPhase();
        }
        else
        {
            // それ以外なら再度ChooseCommandPhaseになる
            next = new ChooseCommandPhase();
        }


        Debug.Log("ChooseCommandPhase");
    }
Beispiel #3
0
    public override IEnumerator Execute(BattleContext battleContext)
    {
        yield return(null);

        Debug.Log("StartPhase");
        battleContext.SetEnemy();
        battleContext.windowBattleMenuCommand.Open();
        battleContext.windowLog.ShowLog(battleContext.enemy.name + "があらわれた!");
        next = new ChooseCommandPhase();
    }
Beispiel #4
0
    public override IEnumerator Execute(BattleContext battleContext)
    {
        yield return(battleContext.windowLog.WaitWriting());

        battleContext.windowBattleMenuCommand.Close();
        battleContext.windowBattleSpellCommand.Close();
        battleContext.player.selectCommand.Execute(battleContext.player, battleContext.player.target);
        battleContext.enemy.selectCommand.Execute(battleContext.enemy, battleContext.enemy.target);
        battleContext.windowLog.ShowLog("Executeフェーズ");
        // どちらかが死亡したら
        if (battleContext.player.hp <= 0 || battleContext.enemy.hp <= 0)
        {
            next = new ResultPhase();
        }
        else
        {
            battleContext.windowBattleMenuCommand.Open();
            next = new ChooseCommandPhase();
        }

        Debug.Log("ExecutePhase");
    }