Files
Continentis/Assets/Scripts/MainGame/Card/LogicComponents/CardLogicComponent_Attack.cs
SoulliesOfficial dd2657573a 卡牌更新
2026-04-08 04:48:35 -04:00

58 lines
2.3 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System.Collections.Generic;
using Continentis.MainGame.Character;
using Continentis.Mods.Basic.Cards;
using UnityEngine;
namespace Continentis.MainGame.Card
{
public class CardLogicComponent_Attack : CardLogicComponentBase
{
protected override void TargetingEffect(CharacterBase target)
{
card.SetAttribute("Display_Damage", mainLogic.GetTargetedFinalDamage(target));
}
protected override void UntargetingEffect()
{
card.SetAttribute("Display_Damage", mainLogic.GetNoTargetFinalDamage());
}
/// <summary>
/// 设置伤害值
/// </summary>
/// <param name="damageAttributeName">要写入的属性名,默认为 "Damage"</param>
/// <param name="damageOffset">伤害增量</param>
/// <param name="additive">是否为叠加true为叠加false为覆盖</param>
/// <param name="originalDamage">原始伤害值仅在additive为true时有效</param>
public void SetDamage(int damageOffset, string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
card.SetVariableAttribute(damageAttributeName, damageOffset, additive, originalDamage);
}
/// <summary>
/// 默认伤害计算,仅使用卡牌基础伤害(无任何属性加成)
/// </summary>
public void SetDamage_Default(string damageAttributeName = "Damage")
{
SetDamage(0, damageAttributeName);
}
/// <summary>
/// 物理伤害计算,伤害=基础伤害+物理伤害加成
/// </summary>
public void SetDamage_Physics(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
int damageOffset = user.GetAttribute("PhysicsDamageDealtOffset");
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
}
/// <summary>
/// 魔法伤害计算,伤害=基础伤害+魔法伤害加成
/// </summary>
public void SetDamage_Magic(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
int damageOffset = user.GetAttribute("MagicDamageDealtOffset");
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
}
}
}