✅ 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()
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using HarmonyLib;
|
||||
using HarmonyLib;
|
||||
using RimWorld;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
@@ -107,11 +107,11 @@ namespace WulaFallenEmpire
|
||||
originalProjectile.Destroy(DestroyMode.Vanish);
|
||||
// 播放反弹效果
|
||||
PlayBounceEffect(originalProjectile);
|
||||
Log.Message($"[Interceptor] Projectile bounced forward to {targetCell}");
|
||||
WulaLog.Debug($"[Interceptor] Projectile bounced forward to {targetCell}");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error($"Error in BounceProjectileNew: {ex}");
|
||||
WulaLog.Debug($"Error in BounceProjectileNew: {ex}");
|
||||
}
|
||||
}
|
||||
// 使用 Traverse 复制字段
|
||||
@@ -137,7 +137,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Warning($"Error copying projectile fields with Traverse: {ex}");
|
||||
WulaLog.Debug($"Error copying projectile fields with Traverse: {ex}");
|
||||
}
|
||||
}
|
||||
// 使用 Traverse 调用 Launch 方法
|
||||
@@ -165,12 +165,12 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Error("Launch method not found using Traverse");
|
||||
WulaLog.Debug("Launch method not found using Traverse");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error($"Error launching projectile with Traverse: {ex}");
|
||||
WulaLog.Debug($"Error launching projectile with Traverse: {ex}");
|
||||
}
|
||||
}
|
||||
// 使用反射设置抛射体字段
|
||||
@@ -215,7 +215,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Warning($"Error setting projectile fields: {ex}");
|
||||
WulaLog.Debug($"Error setting projectile fields: {ex}");
|
||||
}
|
||||
}
|
||||
// 使用反射调用 Launch 方法
|
||||
@@ -260,12 +260,12 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Error("Could not find Launch method on Projectile");
|
||||
WulaLog.Debug("Could not find Launch method on Projectile");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error($"Error launching projectile: {ex}");
|
||||
WulaLog.Debug($"Error launching projectile: {ex}");
|
||||
}
|
||||
}
|
||||
// 使用反射获取私有字段值
|
||||
@@ -382,7 +382,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Warning($"[CompApparelInterceptor] Error in TryInterceptProjectile: {ex.Message}");
|
||||
WulaLog.Debug($"[CompApparelInterceptor] Error in TryInterceptProjectile: {ex.Message}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -424,7 +424,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Warning($"[CompApparelInterceptor] Error during interception effects: {ex.Message}");
|
||||
WulaLog.Debug($"[CompApparelInterceptor] Error during interception effects: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -559,7 +559,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"[CompApparelInterceptor] Error in CompTick: {ex.Message}");
|
||||
WulaLog.Debug($"[CompApparelInterceptor] Error in CompTick: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -656,7 +656,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"[CompApparelInterceptor] Error in CompDrawWornExtras: {ex.Message}");
|
||||
WulaLog.Debug($"[CompApparelInterceptor] Error in CompDrawWornExtras: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using UnityEngine;
|
||||
using Verse;
|
||||
|
||||
@@ -82,17 +82,17 @@ namespace WulaFallenEmpire
|
||||
damageApplied = true;
|
||||
|
||||
// 记录日志以便调试
|
||||
Log.Message($"[CompDelayedDamage] Applied {Props.damageAmount} {Props.damageDef.defName} damage to {parent.Label} (Faction: {parent.Faction?.Name ?? "None"})");
|
||||
WulaLog.Debug($"[CompDelayedDamage] Applied {Props.damageAmount} {Props.damageDef.defName} damage to {parent.Label} (Faction: {parent.Faction?.Name ?? "None"})");
|
||||
|
||||
// 检查是否被杀死
|
||||
if (Props.destroyIfKilled && (parent.Destroyed || (parent is Pawn pawn && pawn.Dead)))
|
||||
{
|
||||
Log.Message($"[CompDelayedDamage] {parent.Label} was destroyed by delayed damage");
|
||||
WulaLog.Debug($"[CompDelayedDamage] {parent.Label} was destroyed by delayed damage");
|
||||
}
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Error($"[CompDelayedDamage] Error applying delayed damage: {ex}");
|
||||
WulaLog.Debug($"[CompDelayedDamage] Error applying delayed damage: {ex}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using System;
|
||||
using Verse;
|
||||
|
||||
@@ -33,17 +33,17 @@ namespace WulaFallenEmpire
|
||||
Window window = (Window)Activator.CreateInstance(uiDef.windowType, uiDef);
|
||||
Find.WindowStack.Add(window);
|
||||
|
||||
Log.Message($"[CompUseEffect] Opened custom UI: {Props.uiDefName}");
|
||||
WulaLog.Debug($"[CompUseEffect] Opened custom UI: {Props.uiDefName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Error($"[CompUseEffect] Could not find EventDef named '{Props.uiDefName}'");
|
||||
WulaLog.Debug($"[CompUseEffect] Could not find EventDef named '{Props.uiDefName}'");
|
||||
Messages.Message($"Error: Could not find UI definition '{Props.uiDefName}'", MessageTypeDefOf.RejectInput);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Error($"[CompUseEffect] Error opening custom UI '{Props.uiDefName}': {ex}");
|
||||
WulaLog.Debug($"[CompUseEffect] Error opening custom UI '{Props.uiDefName}': {ex}");
|
||||
Messages.Message($"Error opening UI: {ex.Message}", MessageTypeDefOf.RejectInput);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using HarmonyLib;
|
||||
using HarmonyLib;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using UnityEngine;
|
||||
@@ -101,7 +101,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"AreaShield interception error: {ex}");
|
||||
WulaLog.Debug($"AreaShield interception error: {ex}");
|
||||
return true; // 出错时继续执行原方法
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using UnityEngine;
|
||||
using Verse.Sound;
|
||||
@@ -397,7 +397,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"Error in TryIntercept: {ex}");
|
||||
WulaLog.Debug($"Error in TryIntercept: {ex}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -445,7 +445,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"Error reflecting projectile: {ex}");
|
||||
WulaLog.Debug($"Error reflecting projectile: {ex}");
|
||||
}
|
||||
|
||||
return false;
|
||||
@@ -479,7 +479,7 @@ namespace WulaFallenEmpire
|
||||
Projectile newProjectile = (Projectile)GenSpawn.Spawn(originalProjectile.def, spawnCell, Holder.Map);
|
||||
if (newProjectile == null)
|
||||
{
|
||||
Log.Warning("Failed to spawn reflected projectile");
|
||||
WulaLog.Debug("Failed to spawn reflected projectile");
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -502,12 +502,12 @@ namespace WulaFallenEmpire
|
||||
// 使用延迟销毁而不是立即销毁
|
||||
ReflectedProjectileManager.MarkForDelayedDestroy(originalProjectile);
|
||||
|
||||
Log.Message($"反射抛射体: 由 {Holder?.LabelShort} 从 {spawnCell} 向 {targetCell} 发射");
|
||||
WulaLog.Debug($"反射抛射体: 由 {Holder?.LabelShort} 从 {spawnCell} 向 {targetCell} 发射");
|
||||
return true;
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"Error creating reflected projectile: {ex}");
|
||||
WulaLog.Debug($"Error creating reflected projectile: {ex}");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -554,7 +554,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"Error copying projectile properties: {ex}");
|
||||
WulaLog.Debug($"Error copying projectile properties: {ex}");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
@@ -391,11 +391,11 @@ namespace WulaFallenEmpire
|
||||
PerformTeleport(pawn, safeTarget);
|
||||
|
||||
// 记录日志
|
||||
Log.Message($"[AreaTeleporter] 传送 {pawn.LabelShort} 从 {pawn.Position} 到 {safeTarget} (网络传送)");
|
||||
WulaLog.Debug($"[AreaTeleporter] 传送 {pawn.LabelShort} 从 {pawn.Position} 到 {safeTarget} (网络传送)");
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"传送Pawn时出错: {ex.Message}");
|
||||
WulaLog.Debug($"传送Pawn时出错: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -620,7 +620,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"绘制传送范围环时出错: {ex.Message}");
|
||||
WulaLog.Debug($"绘制传送范围环时出错: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using System.Collections.Generic;
|
||||
using Verse.Sound;
|
||||
@@ -31,7 +31,7 @@ namespace WulaFallenEmpire
|
||||
// 完全拦截伤害 - 将伤害设置为0
|
||||
dinfo.SetAmount(0f);
|
||||
|
||||
Log.Message($"[DamageInterceptor] {Pawn.LabelShort} 完全拦截 {transferDamage} 点伤害并转移至 {targetBuilding.Label},自身承受0伤害");
|
||||
WulaLog.Debug($"[DamageInterceptor] {Pawn.LabelShort} 完全拦截 {transferDamage} 点伤害并转移至 {targetBuilding.Label},自身承受0伤害");
|
||||
|
||||
return true; // 继续应用修改后的伤害(0伤害)
|
||||
}
|
||||
@@ -108,7 +108,7 @@ namespace WulaFallenEmpire
|
||||
// 对建筑造成伤害
|
||||
building.TakeDamage(buildingDamage);
|
||||
|
||||
Log.Message($"[DamageInterceptor] 对建筑 {building.Label} 造成 {damageAmount} 点伤害,剩余生命值: {building.HitPoints}/{building.MaxHitPoints}");
|
||||
WulaLog.Debug($"[DamageInterceptor] 对建筑 {building.Label} 造成 {damageAmount} 点伤害,剩余生命值: {building.HitPoints}/{building.MaxHitPoints}");
|
||||
}
|
||||
|
||||
private void OnDamageIntercepted(DamageInfo dinfo, float interceptDamage, Building targetBuilding)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using System.Collections.Generic;
|
||||
using Verse.Sound;
|
||||
@@ -48,7 +48,7 @@ namespace WulaFallenEmpire
|
||||
OnDamageRelayed(dinfo, relayDamage, targetBuilding);
|
||||
|
||||
// 记录日志
|
||||
Log.Message($"[DamageRelay] {Building.Label} 将 {relayDamage} 点伤害传递给 {targetBuilding.Label}");
|
||||
WulaLog.Debug($"[DamageRelay] {Building.Label} 将 {relayDamage} 点伤害传递给 {targetBuilding.Label}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace WulaFallenEmpire
|
||||
// 对建筑造成伤害
|
||||
building.TakeDamage(buildingDamage);
|
||||
|
||||
Log.Message($"[DamageRelay] 对建筑 {building.Label} 造成 {damageAmount} 点伤害,剩余生命值: {building.HitPoints}/{building.MaxHitPoints}");
|
||||
WulaLog.Debug($"[DamageRelay] 对建筑 {building.Label} 造成 {damageAmount} 点伤害,剩余生命值: {building.HitPoints}/{building.MaxHitPoints}");
|
||||
}
|
||||
|
||||
private void OnDamageRelayed(DamageInfo dinfo, float relayDamage, Building targetBuilding)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
@@ -147,7 +147,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"检查派系关系时出错: {ex.Message}");
|
||||
WulaLog.Debug($"检查派系关系时出错: {ex.Message}");
|
||||
// 出错时保守处理,不施加效果
|
||||
return false;
|
||||
}
|
||||
@@ -215,11 +215,11 @@ namespace WulaFallenEmpire
|
||||
CreateEffectForPawn(pawn);
|
||||
|
||||
// 记录日志(可选,调试时使用)
|
||||
// Log.Message($"给予 {pawn.LabelShort} ({pawn.def.defName}) Hediff: {Props.hediff.defName}");
|
||||
// WulaLog.Debug($"给予 {pawn.LabelShort} ({pawn.def.defName}) Hediff: {Props.hediff.defName}");
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"无法给 {pawn.LabelShort} 添加Hediff: {ex.Message}");
|
||||
WulaLog.Debug($"无法给 {pawn.LabelShort} 添加Hediff: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -237,7 +237,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"移除 {pawn.LabelShort} 的Hediff时出错: {ex.Message}");
|
||||
WulaLog.Debug($"移除 {pawn.LabelShort} 的Hediff时出错: {ex.Message}");
|
||||
}
|
||||
|
||||
affectedPawns.Remove(pawn);
|
||||
@@ -281,7 +281,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"创建视觉效果时出错: {ex.Message}");
|
||||
WulaLog.Debug($"创建视觉效果时出错: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -296,7 +296,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"清理视觉效果时出错: {ex.Message}");
|
||||
WulaLog.Debug($"清理视觉效果时出错: {ex.Message}");
|
||||
}
|
||||
effecters.Remove(pawn);
|
||||
}
|
||||
@@ -318,7 +318,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"更新视觉效果时出错: {ex.Message}");
|
||||
WulaLog.Debug($"更新视觉效果时出错: {ex.Message}");
|
||||
effectersToRemove.Add(kvp.Key);
|
||||
}
|
||||
}
|
||||
@@ -384,7 +384,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Warning($"绘制范围环时出错: {ex.Message}");
|
||||
WulaLog.Debug($"绘制范围环时出错: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
using UnityEngine;
|
||||
@@ -310,7 +310,7 @@ namespace WulaFallenEmpire
|
||||
|
||||
GenPlace.TryPlaceThing(overflowDataPack, parent.Position, parent.Map, ThingPlaceMode.Near);
|
||||
|
||||
Log.Message($"[ExperienceCore] Created overflow data pack with {overflowAmount} experience");
|
||||
WulaLog.Debug($"[ExperienceCore] Created overflow data pack with {overflowAmount} experience");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -478,7 +478,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Error($"[ExperienceCore] ERROR: {parent.Label} has no CompQuality component!");
|
||||
WulaLog.Debug($"[ExperienceCore] ERROR: {parent.Label} has no CompQuality component!");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using Verse.Sound;
|
||||
using System.Collections.Generic;
|
||||
@@ -131,12 +131,12 @@ namespace WulaFallenEmpire
|
||||
// 调试日志
|
||||
if (Prefs.DevMode)
|
||||
{
|
||||
Log.Message($"Played spawn sound: {Props.sound.defName} for {parent.Label} at {parent.Position}");
|
||||
WulaLog.Debug($"Played spawn sound: {Props.sound.defName} for {parent.Label} at {parent.Position}");
|
||||
}
|
||||
}
|
||||
catch (System.Exception ex)
|
||||
{
|
||||
Log.Error($"Error playing spawn sound for {parent.Label}: {ex}");
|
||||
WulaLog.Debug($"Error playing spawn sound for {parent.Label}: {ex}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -164,7 +164,7 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Warning("No sound defined for CompPlaySoundOnSpawn");
|
||||
WulaLog.Debug("No sound defined for CompPlaySoundOnSpawn");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
@@ -159,13 +159,13 @@ namespace WulaFallenEmpire
|
||||
// 从奖励池中随机选择一个武器
|
||||
if (ritualDef.rewardWeaponPool.NullOrEmpty())
|
||||
{
|
||||
Log.Error($"[WulaFallenEmpire] Reward weapon pool is empty for {ritualDef.defName}");
|
||||
WulaLog.Debug($"[WulaFallenEmpire] Reward weapon pool is empty for {ritualDef.defName}");
|
||||
return;
|
||||
}
|
||||
ThingDef weaponDef = ritualDef.rewardWeaponPool.RandomElement();
|
||||
if (weaponDef == null)
|
||||
{
|
||||
Log.Error($"[WulaFallenEmpire] Could not find weapon Def in reward pool for {ritualDef.defName}");
|
||||
WulaLog.Debug($"[WulaFallenEmpire] Could not find weapon Def in reward pool for {ritualDef.defName}");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using Verse;
|
||||
using Verse;
|
||||
using RimWorld;
|
||||
|
||||
namespace WulaFallenEmpire
|
||||
@@ -24,7 +24,7 @@ namespace WulaFallenEmpire
|
||||
{
|
||||
if (Props.pawnKind == null)
|
||||
{
|
||||
Log.Error("CompSkyfallerPawnSpawner: pawnKind is null");
|
||||
WulaLog.Debug("CompSkyfallerPawnSpawner: pawnKind is null");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
using RimWorld;
|
||||
using RimWorld;
|
||||
using Verse;
|
||||
using System.Collections.Generic;
|
||||
|
||||
@@ -33,14 +33,14 @@ namespace WulaFallenEmpire
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Error($"WULA_MechRepairKit is missing CompUseEffect_FixAllHealthConditions. This should not happen.");
|
||||
WulaLog.Debug($"WULA_MechRepairKit is missing CompUseEffect_FixAllHealthConditions. This should not happen.");
|
||||
}
|
||||
|
||||
// 物品将由 CompProperties_UseEffectDestroySelf 销毁,因此此处无需手动销毁。
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Error($"Recipe_AdministerWulaMechRepairKit could not find WULA_MechRepairKit in ingredients for pawn {pawn.LabelShort}.");
|
||||
WulaLog.Debug($"Recipe_AdministerWulaMechRepairKit could not find WULA_MechRepairKit in ingredients for pawn {pawn.LabelShort}.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user