//実際のEffect一つの処理 void resolveEffect(BattleCharacter actor, ref BattleCharacter target, Effect effect) { Instantiate(effectSystem.getEffectByActionName(effect.actionName), target.transform); switch (effect.effectType) { case Effect.EffectType.DAMAGE: tryRemoveShieldEffect(ref target, effect); tryInterrptEffect(target, effect); int damage = calcDamage(actor, target, effect); resolveDamage(actor, ref target, damage); playDamageEffect(damage, effect.hasAttribute(Effect.Attribute.MAGIC), target); checkEnchantedAttack(actor, effect); break; case Effect.EffectType.HEAL: int value = calcDamage(actor, target, effect); resolveHeal(actor, ref target, value); break; case Effect.EffectType.CONSTANTHEAL: resolveHeal(actor, ref target, effect.effectAmount); break; case Effect.EffectType.CONSTANTEXCEEDHEAL: resolveHeal(actor, ref target, effect.effectAmount, true); break; case Effect.EffectType.MPHEAL: int mpvalue = calcDamage(actor, target, effect); resolveMpHeal(actor, ref target, mpvalue); break; case Effect.EffectType.CONSTANTMPHEAL: resolveMpHeal(actor, ref target, effect.effectAmount); break; case Effect.EffectType.CONSTANTEXCEEDMPHEAL: resolveMpHeal(actor, ref target, effect.effectAmount, true); break; case Effect.EffectType.BUFF: enchantBuff(effect.buffID, ref target); break; } }