Files
Continentis/Assets/Scripts/MainGame/Card/Templates/CardLogicBase_MagicalAttack.cs
SoulliesOfficial 9b1b5ca93f initial
2025-10-03 00:02:43 -04:00

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);
}
}
}