diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll index dac2bf68..988b8b2d 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/Defs/AbilityDefs/WULA_Flyover_Ability.xml b/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml index 523b0c9c..6e619904 100644 --- a/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml +++ b/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml @@ -46,6 +46,9 @@ +
  • + Wula_PIA_Legion_Faction +
  • @@ -94,6 +97,9 @@ +
  • + Wula_PIA_Legion_Faction +
  • @@ -142,6 +148,9 @@ +
  • + Wula_PIA_Legion_Faction +
  • @@ -170,6 +179,9 @@
  • +
  • + Wula_PIA_Legion_Faction +
  • @@ -218,6 +230,9 @@ true (0.3,0.7,1.0,0.3) +
  • + Wula_PIA_Legion_Faction +
  • @@ -269,6 +284,9 @@ true (0.3,0.7,1.0,0.3) +
  • + Wula_PIA_Legion_Faction +
  • @@ -326,6 +344,9 @@ false +
  • + Wula_PIA_Legion_Faction +
  • @@ -381,6 +402,9 @@ HarborFacility 需要拥有<color=#BD952F><i>机库</i></color>设施的战舰在地图上才能发起空袭 +
  • + Wula_PIA_Legion_Faction +
  • @@ -447,6 +471,9 @@ HarborFacility 需要拥有<color=#BD952F><i>机库</i></color>设施的战舰在地图上才能发起空袭 +
  • + Wula_PIA_Legion_Faction +
  • @@ -513,6 +540,9 @@ HarborFacility 需要拥有<color=#BD952F><i>机库</i></color>设施的战舰在地图上才能发起空袭 +
  • + Wula_PIA_Legion_Faction +
  • @@ -579,6 +609,9 @@ HarborFacility 需要拥有<color=#BD952F><i>机库</i></color>设施的战舰在地图上才能发起空袭 +
  • + Wula_PIA_Legion_Faction +
  • @@ -645,6 +678,9 @@ HarborFacility 需要拥有<color=#BD952F><i>机库</i></color>设施的战舰在地图上才能发起空袭 +
  • + Wula_PIA_Legion_Faction +
  • @@ -711,6 +747,9 @@ HarborFacility 需要拥有<color=#BD952F><i>机库</i></color>设施的战舰在地图上才能发起空袭 +
  • + Wula_PIA_Legion_Faction +
  • @@ -762,6 +801,9 @@
  • WULA_Firepower_Minigun_Technology
  • +
  • + Wula_PIA_Legion_Faction +
  • @@ -812,6 +854,9 @@
  • WULA_Firepower_Cannon_Technology
  • +
  • + Wula_PIA_Legion_Faction +
  • @@ -853,6 +898,9 @@
  • WULA_Firepower_Cannon_Technology
  • +
  • + Wula_PIA_Legion_Faction +
  • @@ -895,6 +943,9 @@
  • WULA_Firepower_EnergyLance_Technology
  • +
  • + Wula_PIA_Legion_Faction +
  • @@ -936,6 +987,9 @@
  • WULA_Firepower_EnergyLance_Technology
  • +
  • + Wula_PIA_Legion_Faction +
  • @@ -985,6 +1039,9 @@
  • WULA_Firepower_Primary_Cannon_Technology
  • +
  • + Wula_PIA_Legion_Faction +
  • @@ -1026,6 +1083,9 @@
  • WULA_Firepower_Primary_Cannon_Technology
  • +
  • + Wula_PIA_Legion_Faction +
  • \ No newline at end of file diff --git a/1.6/1.6/Defs/FactionDefs/Factions_Player_WULA.xml b/1.6/1.6/Defs/FactionDefs/Factions_Player_WULA.xml index ad634754..9009a3bd 100644 --- a/1.6/1.6/Defs/FactionDefs/Factions_Player_WULA.xml +++ b/1.6/1.6/Defs/FactionDefs/Factions_Player_WULA.xml @@ -135,18 +135,6 @@
  • Children
  • - -
  • WULA_Awakened_Synth
  • -
  • OutlanderCivil
  • -
  • TribeCivil
  • -
  • PlayerTribe
  • -
  • PlayerColony
  • -
  • Ancients
  • -
  • Beggars
  • -
  • ResearchExpedition
  • -
  • GravshipCrew
  • -
  • TradersGuild
  • -
  • Wula_Backstory_Categories
  • diff --git a/1.6/1.6/Defs/PrefabDefs/WULA_ShuttlePrefab.xml b/1.6/1.6/Defs/PrefabDefs/WULA_ShuttlePrefab.xml index 3454bbef..f809f676 100644 --- a/1.6/1.6/Defs/PrefabDefs/WULA_ShuttlePrefab.xml +++ b/1.6/1.6/Defs/PrefabDefs/WULA_ShuttlePrefab.xml @@ -1,144 +1,43 @@ - WULA_Shuttle_Prefab - (13,13) + WULA_ArmedShuttleWithPocket_SP_Prefab + (9,13) - - (10, 0, 2) - Clockwise - Steel - Normal - - - (6, 0, 2) - Opposite - Cloth - Normal - - - -
  • (1, 0, 1)
  • -
  • (1, 0, 3)
  • -
  • (1, 0, 5)
  • -
    - Clockwise - Normal -
    - - (11, 0, 5) - Steel - Normal - - - -
  • (3,1,3,1)
  • -
  • (5,2,5,2)
  • -
  • (3,3,3,3)
  • -
  • (3,5,3,5)
  • -
  • (9,6,9,6)
  • -
  • (3,7,3,7)
  • -
  • (3,9,3,9)
  • -
  • (3,11,3,11)
  • -
    - Clockwise -
    - - (7, 0, 9) - - - -
  • (5,5,6,5)
  • -
  • (5,6,5,7)
  • -
  • (7,6,7,7)
  • -
  • (6,7,6,7)
  • -
    - Steel -
    - - (7, 0, 5) - Steel - 278 - - - (11, 0, 4) - Steel - Normal - - - (11, 0, 6) - Opposite - Steel - Normal - - - -
  • (1, 0, 7)
  • -
  • (1, 0, 9)
  • -
  • (1, 0, 11)
  • -
    - Clockwise - Steel - Normal -
    - - -
  • (0,0,12,0)
  • -
  • (0,1,0,12)
  • -
  • (5,1,5,1)
  • -
  • (7,1,7,3)
  • -
  • (12,1,12,12)
  • -
  • (1,2,3,2)
  • -
  • (5,3,6,3)
  • -
  • (8,3,8,3)
  • -
  • (1,4,3,4)
  • -
  • (9,4,9,5)
  • -
  • (1,6,3,6)
  • -
  • (9,7,11,7)
  • -
  • (1,8,3,8)
  • -
  • (9,8,9,9)
  • -
  • (5,9,6,9)
  • -
  • (8,9,8,9)
  • -
  • (1,10,3,10)
  • -
  • (5,10,5,12)
  • -
  • (1,12,4,12)
  • -
  • (6,12,11,12)
  • -
    - Steel -
    - - (8, 0, 2) - Clockwise - - - (10, 0, 8) - Steel - - - (6, 0, 11) - Clockwise - Steel - - - (11, 0, 10) - Counterclockwise - Steel - - - (9, 0, 11) - Opposite - Steel - - - (10, 0, 1) - Cloth - Normal - - - (11, 0, 3) - Opposite - Cloth - Normal - + + (4, 0, 6) +
    + + WULA_Shuttle_Prefab + (25,25) + + + +
  • (1,1,1,1)
  • +
  • (23,1,23,1)
  • +
  • (1,23,1,23)
  • +
  • (23,23,23,23)
  • +
    +
    + + +
  • (0,0,24,0)
  • +
  • (0,1,0,24)
  • +
  • (24,1,24,24)
  • +
  • (1,24,23,24)
  • +
    +
    + + (12, 0, 12) + +
    + + + +
  • (0,0,24,24)
  • +
    +
    +
    +
    \ No newline at end of file diff --git a/1.6/1.6/Defs/QuestScriptDefs/WULA_Attack_Robber_Camp.xml b/1.6/1.6/Defs/QuestScriptDefs/WULA_Attack_Robber_Camp.xml index 1dcee4f5..86f7f745 100644 --- a/1.6/1.6/Defs/QuestScriptDefs/WULA_Attack_Robber_Camp.xml +++ b/1.6/1.6/Defs/QuestScriptDefs/WULA_Attack_Robber_Camp.xml @@ -53,7 +53,7 @@ Things/Building/Natural/Hive/HiveC Things/Building/Natural/Hive/HiveC site - $siteFaction + $siteFaction 5 10 @@ -125,6 +125,7 @@ (44, 1, 44) true 0 + MapFaction
  • (21, 0, 24) diff --git a/1.6/1.6/Defs/QuestScriptDefs/WULA_Boss_Sky_Lock.xml b/1.6/1.6/Defs/QuestScriptDefs/WULA_Boss_Sky_Lock.xml index edc70c8a..75846ff0 100644 --- a/1.6/1.6/Defs/QuestScriptDefs/WULA_Boss_Sky_Lock.xml +++ b/1.6/1.6/Defs/QuestScriptDefs/WULA_Boss_Sky_Lock.xml @@ -5,7 +5,7 @@ 0 1 true - false + true 4 true @@ -23,14 +23,373 @@
  • -
  • - WULA_Sky_Lock - AncientsHostile - 4 - false - false + +
  • Wula_Psi_Titan
  • +
  • Wula_AI_Rocket_Panzer
  • +
  • Wula_AI_Heavy_Panzer
  • +
  • WULA_Sky_Lock
  • + + +
  • Wula_PIA_Legion_Faction
  • +
    + + +
  • + +
  • + Wula_PsiTitan_Boss_Map + 1 +
  • + + 5 + 10 + Things/Building/Natural/Hive/HiveC + Things/Building/Natural/Hive/HiveC + site + AncientsHostile + true + + 5 + 10 + + + + + +
  • + PsiTitan.0.Destroyed + + Success + true +
  • + + Wula_PsiTitan_Boss_Map + + true + (128, 1, 128) + true + 0 + MapFaction + +
  • + (65, 0, 68) + +
  • + PsiTitan + Wula_Psi_Titan + true + PsiTitanGroup + 1 + AncientsHostile + DefendBase + MapGeneration +
  • + + +
  • + (19, 0, 16) + +
  • + AIHeavyPanzer + 1 + MapGeneration + +
  • + AIPanzer + Wula_AI_Heavy_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • +
  • + AIPanzerRocket + Wula_AI_Rocket_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • + + +
  • + AIHeavyPanzer + 1 + MapGeneration + +
  • + AIPanzer + Wula_AI_Heavy_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • +
  • + AIPanzerRocket + Wula_AI_Rocket_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • + + + + +
  • + (107, 0, 15) + +
  • + AIHeavyPanzer + 1 + MapGeneration + +
  • + AIPanzer + Wula_AI_Heavy_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • +
  • + AIPanzerRocket + Wula_AI_Rocket_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • + + +
  • + AIHeavyPanzer + 1 + MapGeneration + +
  • + AIPanzer + Wula_AI_Heavy_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • +
  • + AIPanzerRocket + Wula_AI_Rocket_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • + + + + +
  • + (102, 0, 112) + +
  • + AIHeavyPanzer + 1 + MapGeneration + +
  • + AIPanzer + Wula_AI_Heavy_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • +
  • + AIPanzerRocket + Wula_AI_Rocket_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • + + +
  • + AIHeavyPanzer + 1 + MapGeneration + +
  • + AIPanzer + Wula_AI_Heavy_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • +
  • + AIPanzerRocket + Wula_AI_Rocket_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • + + + + +
  • + (12, 0, 115) + +
  • + AIHeavyPanzer + 1 + MapGeneration + +
  • + AIPanzer + Wula_AI_Heavy_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • +
  • + AIPanzerRocket + Wula_AI_Rocket_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • + + +
  • + AIHeavyPanzer + 1 + MapGeneration + +
  • + AIPanzer + Wula_AI_Heavy_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • +
  • + AIPanzerRocket + Wula_AI_Rocket_Panzer + true + PsiTitanGroup + 1~2 + AncientsHostile + DefendBase + MapGeneration +
  • + + + + +
    + +
  • + WULA_Sky_Lock + PlayerColony + +
  • (11,11,11,11)
  • +
  • (116,7,116,7)
  • +
  • (3,124,3,124)
  • +
  • (107,118,107,118)
  • + + +
  • + AncientTunnelerHusk + PlayerColony + +
  • (38,49,38,49)
  • +
  • (70,44,70,44)
  • +
  • (94,35,94,35)
  • + + +
  • + AncientTank + PlayerColony + +
  • (27,24,27,24)
  • +
  • (26,83,26,83)
  • +
  • (87,74,87,74)
  • + + +
  • + AncientMiniWarwalkerRemains + PlayerColony + +
  • (84,28,84,28)
  • +
  • (94,52,94,52)
  • + + +
  • + ShipChunk + PlayerColony + +
  • (56,24,56,24)
  • +
  • (57,27,57,27)
  • +
  • (51,38,51,38)
  • +
  • (57,30,57,30)
  • +
  • (68,30,68,30)
  • +
  • (42,62,42,62)
  • +
  • (53,102,53,102)
  • +
  • (75,104,75,104)
  • +
  • (87,100,87,100)
  • +
  • (104,92,104,92)
  • + + +
  • + AncientAPC + PlayerColony + +
  • (92,67,92,67)
  • +
  • (105,57,105,57)
  • + + +
    +
    \ No newline at end of file diff --git a/1.6/1.6/Defs/ResearchProjectDefs/WULA_ResearchProjects_Remake.xml b/1.6/1.6/Defs/ResearchProjectDefs/WULA_ResearchProjects_Remake.xml index 8e31c337..93b717bc 100644 --- a/1.6/1.6/Defs/ResearchProjectDefs/WULA_ResearchProjects_Remake.xml +++ b/1.6/1.6/Defs/ResearchProjectDefs/WULA_ResearchProjects_Remake.xml @@ -247,6 +247,17 @@
  • WULA_Colony_License_LV3_Technology
  • + + WULA_ArmedShuttle_Technology + + 允许殖民地呼叫一艘CVe-3"渡鸦"武装穿梭机,其拥有巨大的货仓和一个内部折叠的生活区,因此载重量惊人且可以在内部活动。它同时还拥有一面高反射概率的反射盾,可以抵挡大部分射弹。 + 3000 + 9.00 + 6.20 + +
  • WULA_Colony_License_LV3_Technology
  • +
    +
    diff --git a/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Mech_Buildings.xml b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Mech_Buildings.xml index 8abb6f1c..46bec977 100644 --- a/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Mech_Buildings.xml +++ b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Mech_Buildings.xml @@ -458,12 +458,12 @@ - + Wula_Psi_Titan_Cleanzone 清理出一块场地并准备好资源,使得乌拉帝国母舰可以向此处投放大型战争机械。\n\n由乌拉帝国国教所主持开发的重型灵能机械体,以折跃优雅地穿梭于炮火间,并用强大的护盾抵挡敌方射弹侵袭。该机体的内部镌刻了无数的术式环路,这使其就像一个行走的灵能发射器,可以驱使各种强大的灵能能力。 - Wula/Things/Wula_Mech_Mobile_Factory/Wula_Mech_Mobile_Factory_Incoming + Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Incoming MinifiedThing Normal None @@ -516,7 +516,7 @@
  • WulaFallenEmpire.PlaceWorker_CustomRadius
  • - WULA_Buildings +
  • Wula_Psi_Titan_Incoming @@ -533,7 +533,7 @@ (1,1) WulaFallenEmpire.Skyfaller_PawnSpawner - Wula/Things/Wula_Mech_Mobile_Factory/Wula_Mech_Mobile_Factory_Incoming + Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Incoming Graphic_Single CutoutFlying (9,9) diff --git a/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Misc_Buildings.xml b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Misc_Buildings.xml index 9dce046e..d680e89a 100644 --- a/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Misc_Buildings.xml +++ b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Misc_Buildings.xml @@ -664,11 +664,100 @@ 什么?这是个记录数量用的thingdef,你不应该在任何场合下看到这个。 Thing + + + + WULA_Table1x2c + + 乌拉帝国的桌子 + + Wula/Building/WULA_Table1x2c + Graphic_Multi + CutoutComplex + (2,2) + + (0.85, 0.5, 0.5) + (0,0,-0.1) + + + 0.8 + false + 0 + + 75 + 750 + 5 + 1.0 + 0.5 + 5 + + 20 + +
  • Stony
  • +
  • Metallic
  • + + +
  • WULA_Colony_License_LV1_Technology
  • +
    + (1,2) + Light + WULA_Buildings + +
  • + 3 + (120,240,252,0) +
  • +
    +
    + + WULA_Table2x4c + + 乌拉帝国的桌子 + + Wula/Building/WULA_Table1x2c + Graphic_Multi + CutoutComplex + (4,4) + + (0.85, 0.5, 0.5) + (0,0,-0.1) + + + 0.8 + false + 0 + + 75 + 750 + 5 + 1.0 + 0.5 + 5 + + 20 + +
  • Stony
  • +
  • Metallic
  • +
    + +
  • WULA_Colony_License_LV1_Technology
  • +
    + (2,4) + Light + WULA_Buildings + +
  • + 3 + (120,240,252,0) +
  • +
    +
    + WULA_Sky_Lock - 天锁 + 天锁是纯粹的灵能造物,PAt-6"灵能泰坦"可以将伤害转移给天锁。 WulaFallenEmpire.Building_ExtraGraphics true MetaOverlays @@ -748,6 +837,11 @@ +
  • + AncientsHostile + true + false +
  • 7 20 @@ -776,7 +870,6 @@
  • - WULA_MechAssembler diff --git a/1.6/Odyssey/Defs/ThingDefs_Buildings/Building_WULA_Shuttle.xml b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Shuttle_Building.xml similarity index 55% rename from 1.6/Odyssey/Defs/ThingDefs_Buildings/Building_WULA_Shuttle.xml rename to 1.6/1.6/Defs/ThingDefs_Buildings/WULA_Shuttle_Building.xml index bc45dc2a..bfcd2a51 100644 --- a/1.6/Odyssey/Defs/ThingDefs_Buildings/Building_WULA_Shuttle.xml +++ b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Shuttle_Building.xml @@ -1,53 +1,163 @@ - WULA_ArmedShuttle - - 乌拉帝国所使用的大气内专用近地穿梭机。配备集成能量发生器投射暗物质护盾。并且装载一门近防炮武装保护帝国资产。 - WulaFallenEmpire.Building_ArmedShuttle + WULA_ArmedShuttleWithPocket_Cleanzone + + 清理出一块场地并准备好资源,使得乌拉帝国母舰可以向此处派遣一艘穿梭机。\n\nCVe-3"渡鸦"是乌拉帝国用于在舰队和地表构建联系的特种穿梭机,拥有巨大的货仓和一个内部折叠的生活区,因此载重量惊人且可以在内部活动。它同时还拥有一面高反射概率的反射盾,可以抵挡大部分射弹。 + Wula/Building/WULA_ArmedShuttle_Moving + Normal + MinifiedThing + + Wula/Building/WULA_Dropping_Building_Cleanzone_Plus + Graphic_Multi + (9,13) + + false + + + +
  • BuildingsMisc
  • +
    + false + false + false + false + false + false + BuildingOnTop + PassThroughOnly + WULA_Buildings + 0 + false + false + + 0 + false + Light + + 1 + 0 + 1 + 0 + + (9,13) + 0 + 1 + + +
  • WULA_ArmedShuttle_Technology
  • +
    + 0 + + 500 + 150 + 25 + 4 + + + BuildingDestroyed_Metal_Small + false + false + + +
  • + WULA_ArmedShuttleWithPocket_SP_Prefab + true + WULA_ArmedShuttleWithPocket_Incoming + true + 1 + true + false +
  • +
    +
    + + WULA_ArmedShuttleWithPocket_Incoming + + WulaFallenEmpire.Skyfaller_PrefabSpawner + + Graphic_Single + Wula/Building/WULA_ArmedShuttle_Moving + (14,14) + CutoutComplex + + + False + (9,13) + + Decelerate + Shuttle_Landing + 250 + 200~250 + (9,13) + + +
  • (0,0)
  • +
  • (1, 1)
  • +
    +
    + + +
  • (0.95,1.5)
  • +
  • (1,0)
  • +
    +
    + + +
  • (0.6,0.6)
  • +
  • (0.95,0.1)
  • +
  • (0.99,0.01)
  • +
    +
    +
    + +
  • + Smoke_Joint +
  • +
  • + + + + WULA_ArmedShuttleWithPocket + + 乌拉帝国用于在舰队和地表构建联系的特种穿梭机,拥有巨大的货仓和一个内部折叠的生活区,因此载重量惊人且可以在内部活动。它同时还拥有一面高反射概率的反射盾,可以抵挡大部分射弹。 + WulaFallenEmpire.Building_ArmedShuttleWithPocket true Building 50 true PassThroughOnly 0.5 - (2,2) + (9,13) true (0.56, 0.62, 0.9) 1 - Graphic_Multi + Graphic_Single Wula/Building/WULA_ArmedShuttle - CutoutComplex - (3,3.25) - (0, 8, 0.8) - - (1, 1, 1) - (0, 0, -1.2) - + + (14,14) False - 6000 + 5000 0 - 40000 - 150 + 1 + 12000 0.65 Normal - 8 + + 500 + 150 + 25 + 4 + true - - 60 - 60 - 5 - 4 - true - true - (2, 0, 0) - East + false + North true Light BulletImpact_Metal @@ -62,148 +172,8 @@ true
  • ShuttleEngine
  • - - WULA_Shuttle_Autocannon - 5.5 - 1.75 - (0, 0.05) - - -
  • ITab_ContentsTransporter
  • -
  • ITab_Shells
  • -
    - - -
  • - Ship_ArmedShuttle -
  • -
  • - 3 - 50 - ArmedShuttleLeaving_WULA - PassengerShuttle - 3750 - 62 - {0} is ready to launch again. -
  • -
  • - 500 - true - true - Shuttle_PawnLoaded - Shuttle_PawnExit - true -
  • -
  • - 400 - true - 400 - - -
  • Chemfuel
  • - - - Chemfuel - Chemfuel - true - 1 - true - false - true - true - -
  • - ShuttleIdle_Ambience -
  • -
  • - 12 - true - (0.5, 0.3, 0.9, 0.5) - BulletShieldGenerator_Reactivate - BulletShield_Ambience - 1080 - -1 - 0 -
  • -
    - -
  • PlaceWorker_NotUnderRoof
  • -
  • PlaceWorker_TurretTop
  • -
    - 2601 -
    - - - WULA_ArmedShuttleWithPocket - - 乌拉帝国所使用的大气内专用近地穿梭机。集成折叠空间技术能安全装载比体积大得多的货物。配备集成能量发生器投射暗物质护盾。并且装载一门近防炮武装保护帝国资产。 - WulaFallenEmpire.Building_ArmedShuttleWithPocket - true - Building - 50 - true - PassThroughOnly - 0.5 - (2,2) - true - (0.56, 0.62, 0.9) - 1 - - Graphic_Multi - Wula/Building/WULA_ArmedShuttle - CutoutComplex - (6,6.25) - (0, 8, 1.6) - - (1, 1, 1) - (0, 0, -1.2) - - - - False - - 6000 - 0 - 40000 - 150 - 0.65 - - Normal - - 8 - - 300 - 200 - 8 - 2 - 1 - - true - - 60 - 60 - 5 - 4 - - true - true - (0, 1, 0) - East - true - Light - BulletImpact_Metal - true - RealtimeOnly - ConstructMetal - true - - false - BuildingDestroyed_Metal_Big - true - true - +
  • ShuttleEngine
  • +
  • ShuttleEngine
  • ShuttleEngine
  • WULA_Shuttle_Autocannon @@ -232,7 +202,7 @@ {0} is ready to launch again.
  • - 500 + 5000 true true Shuttle_PawnLoaded @@ -257,30 +227,57 @@ true true
  • -
  • - CompPowerPlant - -400 - true -
  • ShuttleIdle_Ambience
  • -
  • - 12 +
  • + 15 + 300 + 2400 + 30 + + + Interceptor_BlockedProjectile + Interceptor_BlockedProjectile + Shield_Break + BulletShieldGenerator_Reactivate + + (0.9, 0.2, 0.2, 0.5) + + true - (0.5, 0.3, 0.9, 0.5) - BulletShieldGenerator_Reactivate - BulletShield_Ambience - 1080 - -1 - 0 + false + true + + + true + 0.85 + 30 + 0 + Interceptor_BlockedProjectile +
  • +
  • + 15 + 30 + Flame + 8 + false + false + false + true + false + false + false + 热辐射 + CVe-3"渡鸦"可以启动防御设施,蒸发胆敢进入反射立场内的敌军——这同时会使得它伤害附近所有的散落物品。 + Wula/UI/Commands/Wula_Psi_Titan_AreaDamage
  • WULA_PocketSpace_Small WULA_PocketMapExit - (13, 13) + (25, 25) true
  • @@ -291,6 +288,60 @@ 2601
    + + WulaWall_Inner + + 乌拉帝国内舱壁墙,拥有预埋的管线,可以提供来自穿梭机的电力。 + 1800 + Wula/Building/Linked/WULA_Fortress_Wall_MenuIcon + + Wula/Building/Linked/WulaWall/WulaWall_Atlas + Graphic_Single + CutoutComplex + + + 20 + 1 + 2500 + 0 + 0.22 + 0.1 + + false + + + 0 + + 4 + + + true + false + + + + +
  • Metallic
  • +
    +
    +
    + + false + Light + +
  • + MeditationFocusStrength + +
  • Minimal
  • + + +
  • + CompPowerPlant + -500 + true +
  • +
    +
    WULA_PocketMapExit @@ -300,7 +351,7 @@ (3,3) MapMeshAndRealTime - Wula/Building/WULA_Machine_Recharger + Wula/Building/WULA_PocketMapExit Graphic_Single (3,3) @@ -318,11 +369,6 @@
  • UndercaveMapExitLightshafts
  • -
  • - CompPowerPlant - -400 - true -
  • @@ -406,30 +452,29 @@ WulaFallenEmpire.ArmedShuttleIncoming Graphic_Multi - Wula/Building/WULA_ArmedShuttle + Wula/Building/WULA_ArmedShuttle_Moving CutoutComplex (6,6.25) (0, 8, 1.6) False - (2,2) + (8,12) + Decelerate Shuttle_Landing 250 200~250 - (3.5,5.5) - + (9,13) + -
  • (0,30)
  • -
  • (0.5,5)
  • -
  • (0.9,-5)
  • -
  • (0.95,0)
  • +
  • (0,0)
  • +
  • (1, 1)
  • -
    + -
  • (0.95,2.5)
  • +
  • (0.95,1.5)
  • (1,0)
  • @@ -437,6 +482,7 @@
  • (0.6,0.6)
  • (0.95,0.1)
  • +
  • (0.99,0.01)
  • @@ -448,15 +494,13 @@ PassengerShuttleLeaving true - Graphic_Multi - Wula/Building/WULA_ArmedShuttle - CutoutComplex - (6,6.25) - (0, 8, 1.6) + Graphic_Single + Wula/Building/WULA_ArmedShuttle_Moving + (14,14) False - (2,2) + (8,12) true Shuttle_Leaving @@ -464,7 +508,7 @@ -40~-15 0.05 Things/Skyfaller/SkyfallerShadowRectangle - (3.5,5.5) + (8,12) 1 @@ -489,8 +533,8 @@
    Ship_ArmedShuttle - - WULA_ArmedShuttle + + WULA_ArmedShuttleWithPocket ArmedShuttleIncoming_WULA ArmedShuttleLeaving_WULA Wula_ArmedShuttle_Object @@ -498,8 +542,8 @@ Wula_ArmedShuttle_Object - - 一台正在飞行的乌拉帝国武装穿梭机。 + + 一台正在飞行的CVe-3"渡鸦"武装穿梭机。 World/WorldObjects/Expanding/Wula_ArmedShuttle 1 diff --git a/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Turret_Buildings.xml b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Turret_Buildings.xml index 65614cf2..b1b945e2 100644 --- a/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Turret_Buildings.xml +++ b/1.6/1.6/Defs/ThingDefs_Buildings/WULA_Turret_Buildings.xml @@ -1484,6 +1484,9 @@ 0 North (0, 0, 0.2) + +
  • WULA_Colony_License_LV1_Technology
  • +
    false true diff --git a/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_FE_Machine_Weapon.xml b/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_FE_Machine_Weapon.xml index b60848d7..707e5f9b 100644 --- a/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_FE_Machine_Weapon.xml +++ b/1.6/1.6/Defs/ThingDefs_Misc/Weapons/WULA_FE_Machine_Weapon.xml @@ -436,6 +436,7 @@ HAp-6"战车"车体正面的突击炮,射程很短并且只能在静止状态开火,但是威力巨大,专门用于对付坚固的工事和成片的人群。 Normal Spacer + None Wula/Projectile/WULA_Shrapnel Wula/Weapon/WULA_Weapon_Empty diff --git a/1.6/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml b/1.6/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml index 358cf6a3..25a1d4b4 100644 --- a/1.6/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml +++ b/1.6/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml @@ -1044,6 +1044,7 @@ 2 + Heavy
  • @@ -1186,6 +1187,7 @@ 10 1 + Heavy @@ -1315,6 +1317,7 @@ 10 1 + Heavy @@ -1420,6 +1423,7 @@
  • 5 + Heavy
  • @@ -1537,6 +1541,7 @@ 25 1 + Heavy @@ -1960,6 +1965,7 @@ 50 1 + Heavy diff --git a/1.6/1.6/Defs/WorkGivers/Wula_WorkGivers.xml b/1.6/1.6/Defs/WorkGivers/Wula_WorkGivers.xml index c35e70c5..735b8ac0 100644 --- a/1.6/1.6/Defs/WorkGivers/Wula_WorkGivers.xml +++ b/1.6/1.6/Defs/WorkGivers/Wula_WorkGivers.xml @@ -87,4 +87,18 @@ true true + + + WULA_Cat_Drill + + WulaFallenEmpire.WorkGiver_DeepDrill_WulaCatConstructor + Mining + 50 + 钻探 + 钻探中 + +
  • Manipulation
  • + + true + \ No newline at end of file diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/DefInjected/QuestScriptDef/WULA_Boss_Sky_Lock.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/DefInjected/QuestScriptDef/WULA_Boss_Sky_Lock.xml index 762691bb..9ea03ddd 100644 --- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/DefInjected/QuestScriptDef/WULA_Boss_Sky_Lock.xml +++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/DefInjected/QuestScriptDef/WULA_Boss_Sky_Lock.xml @@ -1,9 +1,9 @@  -
  • questName->特殊任务:天锁
  • +
  • questName->特殊任务:击毁灵能泰坦
  • -
  • questDescription->乌拉帝国行星封锁机关的总控AI向殖民地发送了一个特殊的请求,一台部署在运输舰上的乌拉帝国战争机械——<color=#AA74E5><i>灵能泰坦</i></color>——因为失控而无差别攻击,行星封锁机关不得不让运输舰坠向星球表面以阻止事态扩大。\n\n可惜的是,<color=#AA74E5><i>灵能泰坦</i></color>没有因为运输舰坠毁而受到伤害,其仍然在星球表面大肆杀戮,殖民地必须直面这台骇人的巨兽。行星封锁机关为殖民地提供了以下信息:\n\n<color=#9F0400><i>-内驱回路</i></color> PAt-6"灵能泰坦"虽然是一台强大的灵能战争机器,但是其灵能回路是以封闭循环的方式刻印的,外部的灵能攻击无法影响它\n<color=#9F0400><i>-死亡使者</i></color> PAt-6"灵能泰坦"的灵能尖啸可以无差别粉碎所有的目标,除非有足够的信心和手段控制住它,否则不要与其正面交锋\n<color=#9F0400><i>-连环天锁</i></color> PAt-6"灵能泰坦"一定会和天锁一起出现,天锁是纯粹的灵能造物,可以吸收灵能泰坦受到的伤害。在所有的天锁被摧毁前,灵能泰坦不会受到伤害。\n\n行星封锁机关承诺,一旦击败了暴走的<color=#AA74E5><i>灵能泰坦</i></color>,她们可以回收其灵能回路的核心,以此为殖民地建造一台全新的灵能泰坦。
  • +
  • questDescription->乌拉帝国行星封锁机关的总控AI向殖民地发送了一个特殊的请求,一台部署在运输舰上的乌拉帝国战争机械——<color=#AA74E5><i>灵能泰坦</i></color>——因为失控而无差别攻击,行星封锁机关不得不让运输舰坠向星球表面以阻止事态扩大。\n\n可惜的是,<color=#AA74E5><i>灵能泰坦</i></color>没有因为运输舰坠毁而受到伤害,其仍然在星球表面大肆杀戮,殖民地必须直面这台骇人的巨兽。行星封锁机关为殖民地提供了以下信息:\n\n<color=#9F0400><i>-内驱回路</i></color> PAt-6"灵能泰坦"虽然是一台强大的灵能战争机器,但是其灵能回路是以封闭循环的方式刻印的,外部的灵能攻击无法影响它\n<color=#9F0400><i>-死亡使者</i></color> PAt-6"灵能泰坦"的灵能尖啸可以无差别粉碎所有的目标,除非有足够的信心和手段控制住它,否则不要与其正面交锋\n<color=#9F0400><i>-连环天锁</i></color> PAt-6"灵能泰坦"一定会和天锁一起出现,天锁是纯粹的灵能造物,可以吸收灵能泰坦受到的伤害。在所有的天锁被摧毁前,灵能泰坦不会受到伤害。\n<color=#9F0400><i>-网络控制</i></color> PAt-6"灵能泰坦"的控制了附近在坠毁中幸存的战车集群,因此坠毁地区很可能不只有一个敌人\n\n行星封锁机关承诺,一旦击败了暴走的<color=#AA74E5><i>灵能泰坦</i></color>,她们可以回收其灵能回路的核心,以此为殖民地建造一台全新的灵能泰坦。
  • \ No newline at end of file diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/Misc_Gameplay.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/Misc_Gameplay.xml index 9e03dd64..585bd433 100644 --- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/Misc_Gameplay.xml +++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/Misc_Gameplay.xml @@ -443,4 +443,6 @@ 标记一块区域,激活其中所有需要空投的乌拉帝国建筑和战争机械体。\n\n区域空投依然需要计算材料消耗,如果材料不足则不会进行空投。 区域空投已下达 区域内没有可接受空投指令的乌拉帝国空投区 + + 与{0}敌对时无法使用此能力 \ No newline at end of file diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_PocketShuttle.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_PocketShuttle.xml index 739a0176..f465cd6b 100644 --- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_PocketShuttle.xml +++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/WULA_PocketShuttle.xml @@ -2,20 +2,20 @@ - 生活区状态 + \n生活区状态 已就绪 未初始化 初始化生活区 - 初始化穿梭机的内部口袋空间。这将在穿梭机内部创建一个可供成员休息工作的生活区。 + 初始化穿梭机的生活区空间。这将在穿梭机内部创建一个可供成员休息工作的生活区。在这个空间内的殖民者无法参与穿梭机的驾驶。 进入生活区 - 进入穿梭机的内部口袋空间。选中的殖民者将被传送到内部空间。 + 进入穿梭机的生活区空间——选中的殖民者将被传送到生活区空间。在这个空间内的殖民者无法参与穿梭机的驾驶。 查看生活区 - 切换视角到穿梭机的内部口袋空间。 + 切换视角到穿梭机的生活区空间。 diff --git a/Content/Textures/Wula/Building/WULA_ArmedShuttle.png b/Content/Textures/Wula/Building/WULA_ArmedShuttle.png new file mode 100644 index 00000000..a0a52c4f Binary files /dev/null and b/Content/Textures/Wula/Building/WULA_ArmedShuttle.png differ diff --git a/Content/Textures/Wula/Building/WULA_ArmedShuttle_Moving.png b/Content/Textures/Wula/Building/WULA_ArmedShuttle_Moving.png new file mode 100644 index 00000000..87f1e1ee Binary files /dev/null and b/Content/Textures/Wula/Building/WULA_ArmedShuttle_Moving.png differ diff --git a/Content/Textures/Wula/Building/WULA_ArmedShuttle_east.png b/Content/Textures/Wula/Building/WULA_ArmedShuttle_east.png deleted file mode 100644 index 499592f1..00000000 Binary files a/Content/Textures/Wula/Building/WULA_ArmedShuttle_east.png and /dev/null differ diff --git a/Content/Textures/Wula/Building/WULA_ArmedShuttle_north.png b/Content/Textures/Wula/Building/WULA_ArmedShuttle_north.png deleted file mode 100644 index ff6558f6..00000000 Binary files a/Content/Textures/Wula/Building/WULA_ArmedShuttle_north.png and /dev/null differ diff --git a/Content/Textures/Wula/Building/WULA_ArmedShuttle_south.png b/Content/Textures/Wula/Building/WULA_ArmedShuttle_south.png deleted file mode 100644 index bf4eaab8..00000000 Binary files a/Content/Textures/Wula/Building/WULA_ArmedShuttle_south.png and /dev/null differ diff --git a/Content/Textures/Wula/Building/WULA_PocketMapExit.png b/Content/Textures/Wula/Building/WULA_PocketMapExit.png new file mode 100644 index 00000000..49539b37 Binary files /dev/null and b/Content/Textures/Wula/Building/WULA_PocketMapExit.png differ diff --git a/Content/Textures/Wula/Building/WULA_Sky_Lock/WULA_Sky_Lock_Incoming.png b/Content/Textures/Wula/Building/WULA_Sky_Lock/WULA_Sky_Lock_Incoming.png new file mode 100644 index 00000000..ec3642a8 Binary files /dev/null and b/Content/Textures/Wula/Building/WULA_Sky_Lock/WULA_Sky_Lock_Incoming.png differ diff --git a/Content/Textures/Wula/Building/WULA_Table1x2c_east.png b/Content/Textures/Wula/Building/WULA_Table1x2c_east.png new file mode 100644 index 00000000..31e96c67 Binary files /dev/null and b/Content/Textures/Wula/Building/WULA_Table1x2c_east.png differ diff --git a/Content/Textures/Wula/Building/WULA_Table1x2c_south.png b/Content/Textures/Wula/Building/WULA_Table1x2c_south.png new file mode 100644 index 00000000..b5ee7e9f Binary files /dev/null and b/Content/Textures/Wula/Building/WULA_Table1x2c_south.png differ diff --git a/Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png index 1fa5c0cf..1e09e3d1 100644 Binary files a/Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png and b/Content/Textures/Wula/Things/Wula_Psi_Titan/Bodies/Naked_Thin_south.png differ diff --git a/Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png index bf2f3c33..1e09e3d1 100644 Binary files a/Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png and b/Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Icon.png differ diff --git a/Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Incoming.png b/Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Incoming.png new file mode 100644 index 00000000..02b703eb Binary files /dev/null and b/Content/Textures/Wula/Things/Wula_Psi_Titan/Wula_Psi_Titan_Incoming.png differ diff --git a/Content/Textures/Wula/UI/Commands/WULA_Enter_ArmedShuttle_Pocket.png b/Content/Textures/Wula/UI/Commands/WULA_Enter_ArmedShuttle_Pocket.png new file mode 100644 index 00000000..172f2926 Binary files /dev/null and b/Content/Textures/Wula/UI/Commands/WULA_Enter_ArmedShuttle_Pocket.png differ diff --git a/Content/Textures/Wula/UI/Commands/WULA_View_ArmedShuttle_Pocket.png b/Content/Textures/Wula/UI/Commands/WULA_View_ArmedShuttle_Pocket.png new file mode 100644 index 00000000..2605c131 Binary files /dev/null and b/Content/Textures/Wula/UI/Commands/WULA_View_ArmedShuttle_Pocket.png differ diff --git a/Source/WulaFallenEmpire/Ability/CompAbilityEffect_RequiresNonHostility.cs b/Source/WulaFallenEmpire/Ability/CompAbilityEffect_RequiresNonHostility.cs new file mode 100644 index 00000000..d62af7e1 --- /dev/null +++ b/Source/WulaFallenEmpire/Ability/CompAbilityEffect_RequiresNonHostility.cs @@ -0,0 +1,48 @@ +using RimWorld; +using Verse; + +namespace WulaFallenEmpire +{ + public class CompProperties_AbilityRequiresNonHostility : CompProperties_AbilityEffect + { + public FactionDef factionDef; + + public CompProperties_AbilityRequiresNonHostility() + { + compClass = typeof(CompAbilityEffect_RequiresNonHostility); + } + } + + public class CompAbilityEffect_RequiresNonHostility : CompAbilityEffect + { + public new CompProperties_AbilityRequiresNonHostility Props => (CompProperties_AbilityRequiresNonHostility)props; + + public override bool GizmoDisabled(out string reason) + { + Pawn pawn = parent.pawn; + if (pawn == null || pawn.Faction == null || Props.factionDef == null) + { + reason = null; + return false; + } + + // 查找指定派系 + Faction targetFaction = Find.FactionManager.FirstFactionOfDef(Props.factionDef); + if (targetFaction == null) + { + reason = null; + return false; + } + + // 检查是否敌对 + if (pawn.Faction.HostileTo(targetFaction)) + { + reason = "WULA_AbilityRequiresNonHostility".Translate(Props.factionDef); + return true; + } + + reason = null; + return false; + } + } +} diff --git a/Source/WulaFallenEmpire/BuildingComp/WULA_Shuttle/Building_ArmedShuttleWithPocket.cs b/Source/WulaFallenEmpire/BuildingComp/WULA_Shuttle/Building_ArmedShuttleWithPocket.cs index abc7f27f..99bead73 100644 --- a/Source/WulaFallenEmpire/BuildingComp/WULA_Shuttle/Building_ArmedShuttleWithPocket.cs +++ b/Source/WulaFallenEmpire/BuildingComp/WULA_Shuttle/Building_ArmedShuttleWithPocket.cs @@ -21,13 +21,10 @@ namespace WulaFallenEmpire #region 静态图标定义(使用原版MapPortal的图标) /// 查看口袋地图图标 - private static readonly Texture2D ViewPocketMapTex = ContentFinder.Get("UI/Commands/ViewCave"); - - /// 取消进入图标 - private static readonly Texture2D CancelEnterTex = ContentFinder.Get("UI/Designators/Cancel"); + private static readonly Texture2D ViewPocketMapTex = ContentFinder.Get("Wula/UI/Commands/WULA_View_ArmedShuttle_Pocket"); /// 默认进入图标 - private static readonly Texture2D DefaultEnterTex = ContentFinder.Get("UI/Commands/LoadTransporter"); + private static readonly Texture2D DefaultEnterTex = ContentFinder.Get("Wula/UI/Commands/WULA_Enter_ArmedShuttle_Pocket"); #endregion #region 口袋空间字段 diff --git a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalAutonomousWorkMode.cs b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalAutonomousWorkMode.cs index a4fbcd23..51ca3b9e 100644 --- a/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalAutonomousWorkMode.cs +++ b/Source/WulaFallenEmpire/Pawn/WULA_AutonomousMech/ThinkNode_ConditionalAutonomousWorkMode.cs @@ -10,16 +10,61 @@ namespace WulaFallenEmpire protected override bool Satisfied(Pawn pawn) { - if (pawn == null || pawn.Dead || pawn.Downed) - return false; + try + { + if (pawn == null || pawn.Dead || pawn.Downed) + return false; - // 检查是否有自主机械组件 - var comp = pawn.GetComp(); - if (comp == null) - return false; + // 检查是否有自主机械组件 + var comp = pawn.GetComp(); + if (comp == null) + return false; - // 检查当前工作模式是否匹配要求 - return comp.CurrentWorkMode == requiredMode; + // 检查当前工作模式是否匹配要求 + if (comp.CurrentWorkMode != requiredMode) + return false; + + // 额外的安全检查:确保pawn有工作设置 + if (pawn.workSettings == null) + { + Log.Warning($"[WULA] {pawn.LabelShort} has no workSettings in ThinkNode_ConditionalAutonomousWorkMode"); + return false; + } + + // 检查是否启用了工作 + if (!pawn.workSettings.EverWork) + { + Log.Warning($"[WULA] {pawn.LabelShort} has EverWork=false in ThinkNode_ConditionalAutonomousWorkMode"); + return false; + } + + // 检查是否有工作给予器 + var workGivers = pawn.workSettings.WorkGiversInOrderNormal; + if (workGivers == null || workGivers.Count == 0) + { + Log.Warning($"[WULA] {pawn.LabelShort} has no work givers in ThinkNode_ConditionalAutonomousWorkMode"); + return false; + } + + // 检查是否为机械体且具有机械体能力 + if (pawn.RaceProps.IsMechanoid) + { + // 检查是否有操纵能力 + var manipulation = pawn.health?.capacities?.GetLevel(PawnCapacityDefOf.Manipulation); + if (manipulation < 0.1f) + { + Log.Warning($"[WULA] {pawn.LabelShort} has insufficient manipulation capacity: {manipulation}"); + return false; + } + } + + return true; + } + catch (System.Exception ex) + { + Log.Error($"[WULA] Exception in ThinkNode_ConditionalAutonomousWorkMode.Satisfied for pawn {pawn?.LabelShort}: {ex}"); + return false; + } } } } diff --git a/Source/WulaFallenEmpire/QuestNodes/QuestNode_SpawnPrefabSkyfallerCaller.cs b/Source/WulaFallenEmpire/QuestNodes/QuestNode_SpawnPrefabSkyfallerCaller.cs index 77e696a4..cad7a444 100644 --- a/Source/WulaFallenEmpire/QuestNodes/QuestNode_SpawnPrefabSkyfallerCaller.cs +++ b/Source/WulaFallenEmpire/QuestNodes/QuestNode_SpawnPrefabSkyfallerCaller.cs @@ -18,6 +18,8 @@ namespace WulaFallenEmpire public SlateRef map; public SlateRef sendMessageOnSuccess = true; public SlateRef sendMessageOnFailure = true; + public SlateRef allowThickRoof = false; + public SlateRef allowThinRoof = true; protected override bool TestRunInt(Slate slate) { @@ -35,13 +37,6 @@ namespace WulaFallenEmpire return false; } - var compProps = thingDef.GetValue(slate).comps?.OfType().FirstOrDefault(); - if (compProps == null) - { - Log.Warning($"[QuestNode] ThingDef {thingDef.GetValue(slate).defName} does not have CompProperties_PrefabSkyfallerCaller"); - return false; - } - return true; } @@ -56,6 +51,8 @@ namespace WulaFallenEmpire Map targetMap = map.GetValue(slate) ?? Find.CurrentMap; bool doSendMessageOnSuccess = sendMessageOnSuccess.GetValue(slate); bool doSendMessageOnFailure = sendMessageOnFailure.GetValue(slate); + bool targetAllowThickRoof = allowThickRoof.GetValue(slate); + bool targetAllowThinRoof = allowThinRoof.GetValue(slate); if (targetThingDef == null) { @@ -69,18 +66,10 @@ namespace WulaFallenEmpire return; } - // 获取组件属性 - var compProps = targetThingDef.comps?.OfType().FirstOrDefault(); - if (compProps == null) - { - Log.Error($"[QuestNode] ThingDef {targetThingDef.defName} does not have CompProperties_PrefabSkyfallerCaller"); - return; - } - Log.Message($"[QuestNode] Attempting to spawn {targetSpawnCount} {targetThingDef.defName} on map {targetMap}"); // 执行生成 - int successCount = SpawnThingsAtValidLocations(targetThingDef, targetFaction, targetSpawnCount, targetMap); + int successCount = SpawnThingsAtValidLocations(targetThingDef, targetFaction, targetSpawnCount, targetMap, targetAllowThickRoof, targetAllowThinRoof); // 发送结果消息 if (successCount > 0) @@ -108,23 +97,16 @@ namespace WulaFallenEmpire /// /// 在有效位置生成多个建筑 /// - private int SpawnThingsAtValidLocations(ThingDef thingDef, Faction faction, int spawnCount, Map targetMap) + private int SpawnThingsAtValidLocations(ThingDef thingDef, Faction faction, int spawnCount, Map targetMap, bool allowThickRoof, bool allowThinRoof) { int successCount = 0; int attempts = 0; const int maxAttempts = 100; // 最大尝试次数 - var compProps = thingDef.comps.OfType().FirstOrDefault(); - if (compProps == null) - { - Log.Error($"[QuestNode] Could not find CompProperties_PrefabSkyfallerCaller for {thingDef.defName}"); - return 0; - } - for (int i = 0; i < spawnCount && attempts < maxAttempts; i++) { attempts++; - IntVec3 spawnPos = FindSpawnPositionForSkyfaller(targetMap, thingDef, compProps); + IntVec3 spawnPos = FindSpawnPositionForSkyfaller(targetMap, thingDef, allowThickRoof, allowThinRoof); if (spawnPos.IsValid) { @@ -152,7 +134,7 @@ namespace WulaFallenEmpire /// /// 查找适合Skyfaller空投的位置 /// - private IntVec3 FindSpawnPositionForSkyfaller(Map map, ThingDef thingDef, CompProperties_SkyfallerCaller compProps) + private IntVec3 FindSpawnPositionForSkyfaller(Map map, ThingDef thingDef, bool allowThickRoof, bool allowThinRoof) { var potentialCells = new List(); @@ -160,7 +142,7 @@ namespace WulaFallenEmpire var baseCells = GetOpenAreaCellsNearBase(map, thingDef.Size); foreach (var cell in baseCells) { - if (IsValidForSkyfallerDrop(map, cell, thingDef, compProps)) + if (IsValidForSkyfallerDrop(map, cell, thingDef, allowThickRoof, allowThinRoof)) { potentialCells.Add(cell); } @@ -176,7 +158,7 @@ namespace WulaFallenEmpire var openAreas = FindOpenAreas(map, thingDef.Size, 500); foreach (var cell in openAreas) { - if (IsValidForSkyfallerDrop(map, cell, thingDef, compProps)) + if (IsValidForSkyfallerDrop(map, cell, thingDef, allowThickRoof, allowThinRoof)) { potentialCells.Add(cell); } @@ -197,7 +179,7 @@ namespace WulaFallenEmpire Rand.Range(thingDef.Size.z, map.Size.z - thingDef.Size.z) ); - if (randomCell.InBounds(map) && IsValidForSkyfallerDrop(map, randomCell, thingDef, compProps)) + if (randomCell.InBounds(map) && IsValidForSkyfallerDrop(map, randomCell, thingDef, allowThickRoof, allowThinRoof)) { potentialCells.Add(randomCell); } @@ -216,7 +198,7 @@ namespace WulaFallenEmpire /// /// 基于Skyfaller实际行为的有效性检查 /// - private bool IsValidForSkyfallerDrop(Map map, IntVec3 cell, ThingDef thingDef, CompProperties_SkyfallerCaller compProps) + private bool IsValidForSkyfallerDrop(Map map, IntVec3 cell, ThingDef thingDef, bool allowThickRoof, bool allowThinRoof) { // 1. 检查边界 if (!cell.InBounds(map)) @@ -230,11 +212,11 @@ namespace WulaFallenEmpire if (!occupiedCell.InBounds(map)) return false; - // 3. 检查厚岩顶 - 绝对不允许 + // 3. 检查厚岩顶 - 绝对不允许(除非明确允许) RoofDef roof = occupiedCell.GetRoof(map); if (roof != null && roof.isThickRoof) { - if (!compProps.allowThickRoof) + if (!allowThickRoof) return false; } @@ -274,7 +256,7 @@ namespace WulaFallenEmpire // 6. 检查薄岩顶和普通屋顶的条件 if (roof != null && !roof.isThickRoof) { - if (!compProps.allowThinRoof) + if (!allowThinRoof) return false; } } diff --git a/Source/WulaFallenEmpire/WorkGiver/WorkGiver_DeepDrill_WulaConstructor.cs b/Source/WulaFallenEmpire/WorkGiver/WorkGiver_DeepDrill_WulaConstructor.cs new file mode 100644 index 00000000..4f75b3dd --- /dev/null +++ b/Source/WulaFallenEmpire/WorkGiver/WorkGiver_DeepDrill_WulaConstructor.cs @@ -0,0 +1,98 @@ +using System.Collections.Generic; +using RimWorld; +using Verse; +using Verse.AI; + +namespace WulaFallenEmpire +{ + // 扩展方法,用于检查特定种族 + public static class WorkGiverExtensions + { + // 检查是否为指定种族 + public static bool IsRace(this Pawn pawn, string raceDefName) + { + return pawn.def.defName == raceDefName; + } + + // 检查是否为指定种族之一 + public static bool IsAnyRace(this Pawn pawn, params string[] raceDefNames) + { + string pawnRace = pawn.def.defName; + foreach (string race in raceDefNames) + { + if (pawnRace == race) + { + return true; + } + } + return false; + } + } + + // 使用扩展方法的子类 + public class WorkGiver_DeepDrill_WulaCatConstructor : WorkGiver_DeepDrill + { + private const string AllowedRace = "Mech_WULA_Cat_Constructor"; + + public override bool ShouldSkip(Pawn pawn, bool forced = false) + { + + // 检查种族 + if (!pawn.IsRace(AllowedRace)) + { + return true; + } + + // 调用基类方法 + bool shouldSkip = base.ShouldSkip(pawn, forced); + + return shouldSkip; + } + + public override bool HasJobOnThing(Pawn pawn, Thing t, bool forced = false) + { + // 检查种族 + if (!pawn.IsRace(AllowedRace)) + { + return false; + } + + // 调用基类方法 + bool hasJob = base.HasJobOnThing(pawn, t, forced); + + return hasJob; + } + + // 可选:自定义工作优先级 + public override float GetPriority(Pawn pawn, TargetInfo t) + { + if (!pawn.IsRace(AllowedRace)) + { + return 0f; // 不是允许的种族,优先级为0 + } + + // 如果是允许的种族,提高优先级 + float basePriority = base.GetPriority(pawn, t); + return basePriority * 1.5f; // 提高50%优先级 + } + + // 可选:提供自定义的工作描述 + public override Job JobOnThing(Pawn pawn, Thing t, bool forced = false) + { + if (!pawn.IsRace(AllowedRace)) + { + return null; + } + + + Job job = base.JobOnThing(pawn, t, forced); + if (job != null) + { + // 可以在这里添加自定义标签或其他修改 + job.playerForced = forced; + } + + return job; + } + } +} diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index e9d336e7..78b59473 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -74,6 +74,7 @@ + @@ -359,6 +360,7 @@ + diff --git a/美术与文本源文件/Wula/Building/WULA_Chair.sai2 b/美术与文本源文件/Wula/Building/Door/WULA_Chair.sai2 similarity index 100% rename from 美术与文本源文件/Wula/Building/WULA_Chair.sai2 rename to 美术与文本源文件/Wula/Building/Door/WULA_Chair.sai2 diff --git a/美术与文本源文件/Wula/Building/WULA_ArmedShuttle_New.sai2 b/美术与文本源文件/Wula/Building/WULA_ArmedShuttle_New.sai2 new file mode 100644 index 00000000..b24dbc58 Binary files /dev/null and b/美术与文本源文件/Wula/Building/WULA_ArmedShuttle_New.sai2 differ diff --git a/美术与文本源文件/Wula/Building/WULA_PocketMapExit.sai2 b/美术与文本源文件/Wula/Building/WULA_PocketMapExit.sai2 new file mode 100644 index 00000000..418113e4 Binary files /dev/null and b/美术与文本源文件/Wula/Building/WULA_PocketMapExit.sai2 differ diff --git a/美术与文本源文件/Wula/Building/WULA_Sky_Lock.sai2 b/美术与文本源文件/Wula/Building/WULA_Sky_Lock.sai2 index 5626ca7b..1b3a0648 100644 Binary files a/美术与文本源文件/Wula/Building/WULA_Sky_Lock.sai2 and b/美术与文本源文件/Wula/Building/WULA_Sky_Lock.sai2 differ diff --git a/美术与文本源文件/Wula/Building/WULA_Table_12_south.sai2 b/美术与文本源文件/Wula/Building/WULA_Table_12_south.sai2 new file mode 100644 index 00000000..c1eeae03 Binary files /dev/null and b/美术与文本源文件/Wula/Building/WULA_Table_12_south.sai2 differ diff --git a/美术与文本源文件/Wula/UI/Commands/WULA_Enter_ArmedShuttle_Pocket.sai2 b/美术与文本源文件/Wula/UI/Commands/WULA_Enter_ArmedShuttle_Pocket.sai2 new file mode 100644 index 00000000..0772d4de Binary files /dev/null and b/美术与文本源文件/Wula/UI/Commands/WULA_Enter_ArmedShuttle_Pocket.sai2 differ