mirror of
http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite.git
synced 2025-11-20 05:27:13 +08:00
Co-authored-by: m0_75251201 <m0_75251201@noreply.gitcode.com> Reviewed-on: http://47.107.252.169:3000/Roguelite-Game-Developing-Team/Gen_Hack-and-Slash-Roguelite/pulls/60
68 lines
3.2 KiB
C#
68 lines
3.2 KiB
C#
namespace Data
|
|
{
|
|
public class AttributesOffsetDef : Define
|
|
{
|
|
public float attackOffset;
|
|
public float attackPercentOffset;
|
|
public float attackRangeOffset;
|
|
public float attackRangePercentOffset;
|
|
public float attackSpeedOffset;
|
|
public float attackSpeedPercentOffset;
|
|
|
|
public float attackTargetCountOffset;
|
|
|
|
public float attackTargetCountPercentOffset;
|
|
public float damageTakenOffset;
|
|
public float damageTakenPercentOffset;
|
|
public float defenseOffset;
|
|
public float defensePercentOffset;
|
|
public float effectiveDamageOffset;
|
|
|
|
public float effectiveDamagePercentOffset;
|
|
|
|
public float healthOffset;
|
|
|
|
public float healthPercentOffset;
|
|
public float moveSpeedOffset;
|
|
public float moveSpeedPercentOffset;
|
|
|
|
/// <summary>
|
|
/// 重载加法操作符,用于合并两个 AttributesOffsetDef 实例。
|
|
/// </summary>
|
|
/// <param name="a">第一个属性修正定义。</param>
|
|
/// <param name="b">第二个属性修正定义。</param>
|
|
/// <returns>一个新的 AttributesOffsetDef 实例,包含两个输入的累加值。</returns>
|
|
public static AttributesOffsetDef operator +(AttributesOffsetDef a, AttributesOffsetDef b)
|
|
{
|
|
if (a == null && b == null) return new AttributesOffsetDef();
|
|
if (a == null) return b;
|
|
if (b == null) return a;
|
|
|
|
var combined = new AttributesOffsetDef
|
|
{
|
|
// 绝对值偏移累加
|
|
healthOffset = a.healthOffset + b.healthOffset,
|
|
moveSpeedOffset = a.moveSpeedOffset + b.moveSpeedOffset,
|
|
attackOffset = a.attackOffset + b.attackOffset,
|
|
defenseOffset = a.defenseOffset + b.defenseOffset,
|
|
attackSpeedOffset = a.attackSpeedOffset + b.attackSpeedOffset,
|
|
attackRangeOffset = a.attackRangeOffset + b.attackRangeOffset,
|
|
attackTargetCountOffset = a.attackTargetCountOffset + b.attackTargetCountOffset,
|
|
damageTakenOffset = a.damageTakenOffset + b.damageTakenOffset,
|
|
effectiveDamageOffset = a.effectiveDamageOffset + b.effectiveDamageOffset,
|
|
|
|
// 百分比偏移累加
|
|
healthPercentOffset = a.healthPercentOffset + b.healthPercentOffset,
|
|
moveSpeedPercentOffset = a.moveSpeedPercentOffset + b.moveSpeedPercentOffset,
|
|
attackPercentOffset = a.attackPercentOffset + b.attackPercentOffset,
|
|
defensePercentOffset = a.defensePercentOffset + b.defensePercentOffset,
|
|
attackSpeedPercentOffset = a.attackSpeedPercentOffset + b.attackSpeedPercentOffset,
|
|
attackRangePercentOffset = a.attackRangePercentOffset + b.attackRangePercentOffset,
|
|
attackTargetCountPercentOffset = a.attackTargetCountPercentOffset + b.attackTargetCountPercentOffset,
|
|
damageTakenPercentOffset = a.damageTakenPercentOffset + b.damageTakenPercentOffset,
|
|
effectiveDamagePercentOffset = a.effectiveDamagePercentOffset + b.effectiveDamagePercentOffset
|
|
};
|
|
return combined;
|
|
}
|
|
}
|
|
} |