Example #1
0
 public Command(CommandEffect effect, string info = "")
 {
     this.effect = effect;
     this.info   = info;
     lastUsed    = DateTime.Now;
     cooldown    = 0;
 }
Example #2
0
    public void DoEffect(CommandEffect commandEffect, PlayerCharacter target)
    {
        switch (commandEffect)
        {
        //回復効果
        case HealEffect healEffect:
            target.Recover(healEffect.healAmount);
            selectTargetWindow.Flash(target, new Color(0, 1, 0, 0.5f), 1f);
            break;

        //蘇生効果
        case ResuscitationEffect resuscitationEffect:
            if (target.status.hp >= 0)
            {
                return;
            }
            target.Recover(target.status.maxHp / resuscitationEffect.healRate);
            break;

        default:
            Debug.Log("not effect");
            break;
        }
        //ステータス更新
        characterWindow.UpdateShow();
        Debug.Log(target + commandEffect.ToString());
    }
Example #3
0
    //CommandEffectの継承している型によって処理が決まります
    private IEnumerator EffectExecution(CommandEffect effect, BattleCharacter owner, BattleCharacter target)
    {
        switch (effect)
        {
        case PhysicalAttackEffect physicalAttackEffect:
            yield return(StartCoroutine(PhysicalAttack(physicalAttackEffect, owner, target)));

            break;

        case SpellDamageEffect spellDamageEffect:
            yield return(StartCoroutine(SpellDamage(spellDamageEffect, owner, target)));

            break;

        case HealEffect healEffect:
            yield return(StartCoroutine(Heal(healEffect, owner, target)));

            break;

        case ResuscitationEffect resuscitationEffect:
            yield return(StartCoroutine(Resuscitation(resuscitationEffect, owner, target)));

            break;

        default:
            break;
        }
        yield break;
    }