30 lines
1.4 KiB
C#
30 lines
1.4 KiB
C#
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<string> 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);
|
|
}
|
|
}
|
|
} |