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; /// /// 重载加法操作符,用于合并两个 AttributesOffsetDef 实例。 /// /// 第一个属性修正定义。 /// 第二个属性修正定义。 /// 一个新的 AttributesOffsetDef 实例,包含两个输入的累加值。 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; } } }