✅ WulaLog.cs - 修改了DebugEnabled属性,仅检查enableDebugLogs设置(不检查DevMode) ✅ WulaFallenEmpireMod.cs - 在DoSettingsWindowContents中添加了UI复选框,显示"Enable Debug Logs"选项 ✅ 替换了所有848个Log.Message/Error/Warning调用为WulaLog.Debug()
48 lines
1.8 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|