Files
WulaFallenEmpireRW/Source/WulaFallenEmpire/Damage/DamageWorker_ExtraDamage.cs
ProjectKoi-Kalo\Kalo 98a0400c78 WulaFallenEmpireSettings.cs - 添加了 public bool enableDebugLogs = false; 字段和保存配置
 WulaLog.cs - 修改了DebugEnabled属性,仅检查enableDebugLogs设置(不检查DevMode)
 WulaFallenEmpireMod.cs - 在DoSettingsWindowContents中添加了UI复选框,显示"Enable Debug Logs"选项
 替换了所有848个Log.Message/Error/Warning调用为WulaLog.Debug()
2025-12-15 13:05:50 +08:00

48 lines
1.8 KiB
C#

using RimWorld;
using Verse;
using System.Collections.Generic;
namespace WulaFallenEmpire
{
public class DamageWorker_ExtraDamage : DamageWorker_AddInjury
{
public override DamageResult Apply(DamageInfo dinfo, Thing victim)
{
// 首先应用原始伤害
DamageResult result = base.Apply(dinfo, victim);
// 检查是否有额外伤害扩展
var extension = dinfo.Def.GetModExtension<DamageDef_ExtraDamageExtension>();
if (extension != null && extension.extraDamages != null)
{
foreach (var extraDamage in extension.extraDamages)
{
if (extraDamage.damageDef != null && extraDamage.amount > 0)
{
// 直接应用额外伤害
DamageInfo extraDinfo = new DamageInfo(
extraDamage.damageDef,
extraDamage.amount,
extraDamage.armorPenetration >= 0 ? extraDamage.armorPenetration : extraDamage.damageDef.defaultArmorPenetration,
dinfo.Angle,
dinfo.Instigator,
null,
dinfo.Weapon,
dinfo.Category
);
victim.TakeDamage(extraDinfo);
// 调试信息
if (Prefs.DevMode)
{
WulaLog.Debug($"应用额外伤害: {extraDamage.damageDef.defName} 伤害值: {extraDamage.amount}");
}
}
}
}
return result;
}
}
}