public Command(CommandEffect effect, string info = "") { this.effect = effect; this.info = info; lastUsed = DateTime.Now; cooldown = 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()); }
//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; }