78 lines
3.1 KiB
C#
78 lines
3.1 KiB
C#
using Continentis.MainGame.Character;
|
||
using UnityEngine;
|
||
|
||
namespace Continentis.MainGame.Card
|
||
{
|
||
public abstract partial class CardLogicBase_Attack : CardLogicBase
|
||
{
|
||
protected override void TargetingEffect(CharacterBase target)
|
||
{
|
||
SetAttribute("DisplayDamage", GetFinalDamage(target));
|
||
}
|
||
|
||
protected override void UntargetingEffect()
|
||
{
|
||
SetAttribute("DisplayDamage", GetAttribute("Damage"));
|
||
}
|
||
}
|
||
|
||
public abstract partial class CardLogicBase_Attack
|
||
{
|
||
/// <summary>
|
||
/// 设置伤害值
|
||
/// </summary>
|
||
/// <param name="additive">是否为叠加,true为叠加,false为覆盖</param>
|
||
/// <param name="originalDamage">原始伤害值,仅在additive为true时有效,否则被覆盖为BaseDamage</param>
|
||
/// <param name="damageOffset">伤害增量</param>
|
||
protected void SetDamage(bool additive, int originalDamage, int damageOffset)
|
||
{
|
||
SetVariableAttribute("Damage", additive, originalDamage, damageOffset);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 斩击伤害计算,伤害=基础伤害+(力量加成+敏捷加成)/2
|
||
/// </summary>
|
||
protected void SetDamage_Slash(bool additive = false, int originalDamage = 0)
|
||
{
|
||
float rawDamageOffsetFromStrength = user.GetRawAttribute("PhysicsDamageDealtOffsetFromStrength");
|
||
float rawDamageOffsetFromAgility = user.GetRawAttribute("PhysicsDamageDealtOffsetFromAgility");
|
||
SetDamage(additive, originalDamage, Mathf.RoundToInt((rawDamageOffsetFromStrength + rawDamageOffsetFromAgility) / 2f));
|
||
}
|
||
|
||
/// <summary>
|
||
/// 打击伤害计算,伤害=基础伤害+力量加成
|
||
/// </summary>
|
||
protected void SetDamage_Strike(bool additive = false, int originalDamage = 0)
|
||
{
|
||
int damageOffset = user.GetAttribute("PhysicsDamageDealtOffsetFromStrength");
|
||
SetDamage(additive, originalDamage, damageOffset);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 突刺伤害计算,伤害=基础伤害+敏捷加成
|
||
/// </summary>
|
||
protected void SetDamage_Prick(bool additive = false, int originalDamage = 0)
|
||
{
|
||
int damageOffset = user.GetAttribute("PhysicsDamageDealtOffsetFromAgility");
|
||
SetDamage(additive, originalDamage, damageOffset);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 奥术伤害计算,伤害=基础伤害+智力加成
|
||
/// </summary>
|
||
protected void SetDamage_Arcane(bool additive = false, int originalDamage = 0)
|
||
{
|
||
int damageOffset = user.GetAttribute("MagicDamageDealtOffsetFromIntelligence");
|
||
SetDamage(additive, originalDamage, damageOffset);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 契术伤害计算,伤害=基础伤害+魅力加成
|
||
/// </summary>
|
||
protected void SetDamage_Sorcery(bool additive = false, int originalDamage = 0)
|
||
{
|
||
int damageOffset = user.GetAttribute("MagicDamageDealtOffsetFromCharisma");
|
||
SetDamage(additive, originalDamage, damageOffset);
|
||
}
|
||
}
|
||
} |