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:
2025-12-15 13:05:50 +08:00
parent 9bdcd8e308
commit 98a0400c78
134 changed files with 1000 additions and 1019 deletions

View File

@@ -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}");
}
}

View File

@@ -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}");
}
}

View File

@@ -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);
}
}

View File

@@ -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; // 出错时继续执行原方法
}
}

View File

@@ -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}");
}
}

View File

@@ -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}");
}
}
}

View File

@@ -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)

View File

@@ -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)

View File

@@ -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}");
}
}
}

View File

@@ -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;
}

View File

@@ -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");
}
}
};

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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}.");
}
}
}