Files
WulaFallenEmpireRW/Source/WulaFallenEmpire/ThingComp/Wula_MechRepairKit/Recipe_AdministerWulaMechRepairKit.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 Recipe_AdministerWulaMechRepairKit : Recipe_Surgery
{
public override void ApplyOnPawn(Pawn pawn, BodyPartRecord part, Pawn billDoer, List<Thing> ingredients, Bill bill)
{
// 调用基类的 ApplyOnPawn 方法,处理手术的通用逻辑
base.ApplyOnPawn(pawn, part, billDoer, ingredients, bill);
// 查找作为成分的 WULA_MechRepairKit
Thing mechRepairKit = null;
foreach (Thing ingredient in ingredients)
{
if (ingredient.def.defName == "WULA_MechRepairKit")
{
mechRepairKit = ingredient;
break;
}
}
if (mechRepairKit != null)
{
// 获取物品上的 CompUseEffect_FixAllHealthConditions 组件
CompUseEffect_FixAllHealthConditions compUseEffect = mechRepairKit.TryGetComp<CompUseEffect_FixAllHealthConditions>();
if (compUseEffect != null)
{
// 手动调用 DoEffect 方法,将病人作为 usedBy 传入
compUseEffect.DoEffect(pawn);
}
else
{
WulaLog.Debug($"WULA_MechRepairKit is missing CompUseEffect_FixAllHealthConditions. This should not happen.");
}
// 物品将由 CompProperties_UseEffectDestroySelf 销毁,因此此处无需手动销毁。
}
else
{
WulaLog.Debug($"Recipe_AdministerWulaMechRepairKit could not find WULA_MechRepairKit in ingredients for pawn {pawn.LabelShort}.");
}
}
}
}