diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll
index e204c939..0811d107 100644
Binary files a/1.6/1.6/Assemblies/WulaFallenEmpire.dll and b/1.6/1.6/Assemblies/WulaFallenEmpire.dll differ
diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.pdb b/1.6/1.6/Assemblies/WulaFallenEmpire.pdb
index 206026ca..1144fdc1 100644
Binary files a/1.6/1.6/Assemblies/WulaFallenEmpire.pdb and b/1.6/1.6/Assemblies/WulaFallenEmpire.pdb differ
diff --git a/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml b/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml
index e115f8ff..1e5d702b 100644
--- a/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml
+++ b/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml
@@ -143,16 +143,18 @@
1
Misc12
false
+ true
+ false
Verb_CastAbility
false
false
- 0
- 500
- true
+ 2
+ -1
+ false
- false
- true
+ true
+ false
@@ -161,23 +163,8 @@
15000
1
-
- WULA_MotherShip_Planet_Interdiction
- GroundStrafing
- 0.02
- 20
- true
- Perpendicular
-
-
- true
-
-
- false
-
-
- true
- (0.3,0.7,1.0,0.3)
+
+ 180
Wula_PIA_Legion_Faction
diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml
index 155b58c7..cab90bf5 100644
--- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml
+++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_Keyed.xml
@@ -170,8 +170,7 @@
错误:连接丢失。“军团”保持沉默。
思考中...({0}秒 阶段{1}/{2}{3})
重试中
- {FACTION_name}已经在附近投下了一些资源。
-
+ {FACTION_name}已经在附近投下了一些资源。
P.I.A 正在接管轨道防御!
diff --git a/Source/WulaFallenEmpire/EventSystem/AI/CompAbilityEffect_EnableOverwatch.cs b/Source/WulaFallenEmpire/EventSystem/AI/CompAbilityEffect_EnableOverwatch.cs
new file mode 100644
index 00000000..f4a09294
--- /dev/null
+++ b/Source/WulaFallenEmpire/EventSystem/AI/CompAbilityEffect_EnableOverwatch.cs
@@ -0,0 +1,76 @@
+using System;
+using RimWorld;
+using Verse;
+using WulaFallenEmpire.EventSystem.AI;
+
+namespace WulaFallenEmpire
+{
+ public class CompProperties_AbilityEnableOverwatch : CompProperties_AbilityEffect
+ {
+ public int durationSeconds = 180; // Default 3 minutes
+
+ public CompProperties_AbilityEnableOverwatch()
+ {
+ compClass = typeof(CompAbilityEffect_EnableOverwatch);
+ }
+ }
+
+ public class CompAbilityEffect_EnableOverwatch : CompAbilityEffect
+ {
+ public new CompProperties_AbilityEnableOverwatch Props => (CompProperties_AbilityEnableOverwatch)props;
+
+ public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
+ {
+ base.Apply(target, dest);
+
+ Map map = parent.pawn?.Map ?? Find.CurrentMap;
+ if (map == null)
+ {
+ Messages.Message("Error: No active map.", MessageTypeDefOf.RejectInput);
+ return;
+ }
+
+ var overwatch = map.GetComponent();
+ if (overwatch == null)
+ {
+ overwatch = new MapComponent_AIOverwatch(map);
+ map.components.Add(overwatch);
+ }
+
+ overwatch.EnableOverwatch(Props.durationSeconds);
+ }
+
+ public override bool CanApplyOn(LocalTargetInfo target, LocalTargetInfo dest)
+ {
+ if (!base.CanApplyOn(target, dest))
+ return false;
+
+ Map map = parent.pawn?.Map ?? Find.CurrentMap;
+ if (map == null)
+ return false;
+
+ var overwatch = map.GetComponent();
+ if (overwatch != null && overwatch.IsEnabled)
+ {
+ // Already active, show remaining time
+ return false;
+ }
+
+ return true;
+ }
+
+ public override string ExtraLabelMouseAttachment(LocalTargetInfo target)
+ {
+ Map map = parent.pawn?.Map ?? Find.CurrentMap;
+ if (map != null)
+ {
+ var overwatch = map.GetComponent();
+ if (overwatch != null && overwatch.IsEnabled)
+ {
+ return $"Already active ({overwatch.DurationTicks / 60}s remaining)";
+ }
+ }
+ return base.ExtraLabelMouseAttachment(target);
+ }
+ }
+}
diff --git a/Source/WulaFallenEmpire/EventSystem/AI/MapComponent_AIOverwatch.cs b/Source/WulaFallenEmpire/EventSystem/AI/MapComponent_AIOverwatch.cs
index 349377e9..9e811e5e 100644
--- a/Source/WulaFallenEmpire/EventSystem/AI/MapComponent_AIOverwatch.cs
+++ b/Source/WulaFallenEmpire/EventSystem/AI/MapComponent_AIOverwatch.cs
@@ -63,10 +63,10 @@ namespace WulaFallenEmpire.EventSystem.AI
{
try
{
- var flyOverDef = DefDatabase.GetNamedSilentFail("WULA_AircraftCarrier");
+ var flyOverDef = DefDatabase.GetNamedSilentFail("WULA_MotherShip_Planet_Interdiction");
if (flyOverDef == null)
{
- WulaLog.Debug("[AI Overwatch] Could not find WULA_AircraftCarrier ThingDef.");
+ WulaLog.Debug("[AI Overwatch] Could not find WULA_MotherShip_Planet_Interdiction ThingDef.");
return;
}
@@ -80,14 +80,14 @@ namespace WulaFallenEmpire.EventSystem.AI
startPos,
endPos,
map,
- speed: 0.03f,
+ speed: 0.02f, // Slower for mothership
height: 20f
);
if (flyOver != null)
{
Messages.Message("WULA_AIOverwatch_FleetCalled".Translate(), MessageTypeDefOf.PositiveEvent);
- WulaLog.Debug($"[AI Overwatch] Called fleet: WULA_AircraftCarrier spawned from {startPos} to {endPos}.");
+ WulaLog.Debug($"[AI Overwatch] Called fleet: WULA_MotherShip_Planet_Interdiction spawned from {startPos} to {endPos}.");
}
}
catch (Exception ex)