using System.Collections.Generic; using Continentis.MainGame.Character; using UnityEngine; namespace Continentis.MainGame.Card { public abstract class CardLogicBase_MagicalAttack : CardLogicBase_Attack { protected override int GetFinalDamage(CharacterBase target, List elementalTags = null) { elementalTags ??= this.elementalTags; float elementalAmplifier = 1; foreach (var element in elementalTags) //计算元素伤害加成 { elementalAmplifier *= user.attributeSubmodule.GetCurrentGeneralAttribute(element + "DamageDealtMultiplier", 1); elementalAmplifier *= target.attributeSubmodule.GetCurrentGeneralAttribute(element + "DamageGainMultiplier", 1); } float finalDamage = attributeSubmodule.GetRoundCurrentAttribute("Damage") * elementalAmplifier * user.attributeSubmodule.GetCurrentGeneralAttribute("MagicDamageDealtMultiplier", 1) * target.attributeSubmodule.GetCurrentGeneralAttribute("MagicDamageGainMultiplier", 1) * attributeSubmodule.GetCurrentAttribute("FinalDamageDealtMultiplier", 1) * target.attributeSubmodule.GetCurrentGeneralAttribute("FinalDamageGainMultiplier", 1); return Mathf.RoundToInt(finalDamage); } } }