2026-04-01 12:23:27 -04:00
|
|
|
|
using System.Collections.Generic;
|
2025-10-23 00:49:44 -04:00
|
|
|
|
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)
|
|
|
|
|
|
{
|
2026-04-08 04:48:35 -04:00
|
|
|
|
card.SetAttribute("Display_Damage", mainLogic.GetTargetedFinalDamage(target));
|
2025-10-23 00:49:44 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected override void UntargetingEffect()
|
|
|
|
|
|
{
|
2026-04-08 04:48:35 -04:00
|
|
|
|
card.SetAttribute("Display_Damage", mainLogic.GetNoTargetFinalDamage());
|
2025-10-23 00:49:44 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 设置伤害值
|
|
|
|
|
|
/// </summary>
|
2026-04-01 12:23:27 -04:00
|
|
|
|
/// <param name="damageAttributeName">要写入的属性名,默认为 "Damage"</param>
|
2025-10-23 00:49:44 -04:00
|
|
|
|
/// <param name="damageOffset">伤害增量</param>
|
2026-04-01 12:23:27 -04:00
|
|
|
|
/// <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)
|
2025-10-23 00:49:44 -04:00
|
|
|
|
{
|
2026-04-01 12:23:27 -04:00
|
|
|
|
card.SetVariableAttribute(damageAttributeName, damageOffset, additive, originalDamage);
|
2025-10-23 00:49:44 -04:00
|
|
|
|
}
|
2025-12-13 23:28:23 -05:00
|
|
|
|
|
2026-03-20 11:56:50 -04:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 默认伤害计算,仅使用卡牌基础伤害(无任何属性加成)
|
|
|
|
|
|
/// </summary>
|
2026-04-01 12:23:27 -04:00
|
|
|
|
public void SetDamage_Default(string damageAttributeName = "Damage")
|
2025-12-13 23:28:23 -05:00
|
|
|
|
{
|
2026-04-01 12:23:27 -04:00
|
|
|
|
SetDamage(0, damageAttributeName);
|
2025-12-13 23:28:23 -05:00
|
|
|
|
}
|
2025-10-23 00:49:44 -04:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-04-08 04:48:35 -04:00
|
|
|
|
/// 物理伤害计算,伤害=基础伤害+物理伤害加成
|
2025-10-23 00:49:44 -04:00
|
|
|
|
/// </summary>
|
2026-04-08 04:48:35 -04:00
|
|
|
|
public void SetDamage_Physics(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
|
2025-10-23 00:49:44 -04:00
|
|
|
|
{
|
2026-04-08 04:48:35 -04:00
|
|
|
|
int damageOffset = user.GetAttribute("PhysicsDamageDealtOffset");
|
2026-04-01 12:23:27 -04:00
|
|
|
|
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
|
2025-10-23 00:49:44 -04:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
2026-04-08 04:48:35 -04:00
|
|
|
|
/// 魔法伤害计算,伤害=基础伤害+魔法伤害加成
|
2025-10-23 00:49:44 -04:00
|
|
|
|
/// </summary>
|
2026-04-08 04:48:35 -04:00
|
|
|
|
public void SetDamage_Magic(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
|
2025-10-23 00:49:44 -04:00
|
|
|
|
{
|
2026-04-08 04:48:35 -04:00
|
|
|
|
int damageOffset = user.GetAttribute("MagicDamageDealtOffset");
|
2026-04-01 12:23:27 -04:00
|
|
|
|
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
|
2025-10-23 00:49:44 -04:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|