diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll index 4d844f30..15fffd0b 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 6ca5d244..85eaf6f1 100644 --- a/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml +++ b/1.6/1.6/Defs/AbilityDefs/WULA_Flyover_Ability.xml @@ -188,7 +188,35 @@ - + + WULA_ClearFlightPath + + 使近地轨道上的舰队离开,以使得其他乌拉帝国舰队可以入场 + Wula/UI/Abilities/WULA_CallConstructionShip + 1 + Misc12 + false + true + false + + Verb_CastAbility + true + false + true + 2 + -1 + false + + false + true + + + + +
  • + + + WULA_Spawn_Fighter_Drone_Laser diff --git a/1.6/1.6/Defs/DamageDefs/Damages_Wula.xml b/1.6/1.6/Defs/DamageDefs/Damages_Wula.xml index d8a305c3..f3ae02a8 100644 --- a/1.6/1.6/Defs/DamageDefs/Damages_Wula.xml +++ b/1.6/1.6/Defs/DamageDefs/Damages_Wula.xml @@ -337,4 +337,21 @@
  • + + + Damage_WULA_RW_Unlimit_Penetrating_Beam_Cannon + + 0 + Explosion_Vaporize + + + + + WULA_GiantBomb + + 150 + 2.0 + 1.30 + GiantExplosion + \ No newline at end of file diff --git a/1.6/1.6/Defs/HediffDefs/WULA_FM_Hediffs.xml b/1.6/1.6/Defs/HediffDefs/WULA_FM_Hediffs.xml index a683e563..9aef23a2 100644 --- a/1.6/1.6/Defs/HediffDefs/WULA_FM_Hediffs.xml +++ b/1.6/1.6/Defs/HediffDefs/WULA_FM_Hediffs.xml @@ -102,7 +102,9 @@
  • WULA_CallMotherShip
  • WULA_CallBattleShip
  • +
  • WULA_CallAircraftCarrier
  • WULA_CallConstructionShip
  • +
  • WULA_ClearFlightPath
  • diff --git a/1.6/1.6/Defs/QuestScriptDefs/Wula_Base_Events.xml b/1.6/1.6/Defs/QuestScriptDefs/Wula_Base_Events.xml index 4a47122e..2a2237b3 100644 --- a/1.6/1.6/Defs/QuestScriptDefs/Wula_Base_Events.xml +++ b/1.6/1.6/Defs/QuestScriptDefs/Wula_Base_Events.xml @@ -1,10 +1,16 @@ - + WULA_GiveQuest_Intro_Spy + GiveQuest - WULA_Intro_Spy - 0 + +
  • Map_PlayerHome
  • +
    + WULA_Intro_Spy + IncidentWorker_GiveQuest + 0 + True
    diff --git a/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml b/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml index 5a023ae6..e27f8ab8 100644 --- a/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml +++ b/1.6/1.6/Defs/StoryTellers/WULA_Storytellers.xml @@ -181,15 +181,17 @@ 1 -
  • - WULA_GiveQuest_Intro_Spy - 6 - -
  • WULA_Awakened_Synth
  • - - + +
  • + 1 + WULA_GiveQuest_Intro_Spy + WULA_Intro_Spy + +
  • Map_PlayerHome
  • + + +
  • Ludeon.RimWorld.Odyssey
  • +
    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 ee53715c..16a185bb 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 @@ -46,7 +46,7 @@ true 2 - BombSuper + Damage_WULA_RW_Unlimit_Penetrating_Beam_Cannon 450 2 WULA_ExcaliburBeam @@ -224,7 +224,7 @@ 16 true false - 4 + 12 120 3 12 @@ -247,7 +247,7 @@ WulaFallenEmpire.Projectile_ExplosiveWithTrail - Bomb + WULA_GiantBomb 45 60 6 @@ -373,27 +373,55 @@
  • Verb_Shoot true - Bullet_WULA_WM_Panzer_Turret + Bullet_Wula_AI_Heavy_Panzer_Turret_Weapon 0 - 4 5.9 60 + 3 + 6 + 6 true - 1 0.1 - WULA_MW_Mass_Drivers_Shootingsound + Shot_ChargeRifle GunTail_Heavy 18
  • + + Bullet_Wula_AI_Heavy_Panzer_Turret_Weapon + + + Wula/Projectile/WULA_Bullet_ChargeLanceShot_Red + Graphic_Single + MoteGlow + 2.5 + + WulaFallenEmpire.Projectile_ExplosiveWithTrail + + Bullet + 12 + 90 + 2.1 + 0 + Explosion_Rocket + 1.5 + 0.1 + + +
  • + WULA_GunTail_Lighting + 1 +
  • +
    +
    - Wula_AI_Heavy_Panzer_Missile_Weapon - - HAp-6"战车"在侧面挂载的导弹系统,需要瞄准较长的时间,但是可以一次性发射大量的导弹。 + Wula_AI_Heavy_Panzer_Main_Weapon + + HAp-6"战车"车体正面的突击炮,射程很短并且只能在静止状态开火,但是威力巨大,专门用于对付坚固的工事和成片的人群。 Normal Spacer - Wula/Projectile/WULA_Loitering_Munition + Wula/Projectile/WULA_Shrapnel Wula/Weapon/WULA_Weapon_Empty Graphic_Single @@ -415,18 +443,15 @@
  • Verb_Shoot true - - Bullet_WULA_RW_Base_Loitering_Munition - 5 - 40 - 6 - 16 + Bullet_Wula_AI_Heavy_Panzer_Main_Weapon + 2 + 21 + 1 + 1 RocketswarmLauncher_Fire GunTail_Heavy - true true - true
  • @@ -438,4 +463,33 @@
  • Wula_AI_Heavy_Panzer_Weapon
  • + + Bullet_Wula_AI_Heavy_Panzer_Main_Weapon + + + Wula/Projectile/WULA_Shrapnel + Graphic_Single + (2,2) + + WulaFallenEmpire.Projectile_ExplosiveWithTrail + + WULA_GiantBomb + 65 + 25 + 6 + 1.5 + true + Artillery_HitThickRoof + MortarBomb_Explode + MortarRound_PreImpact + MortarRound_Ambient + 10 + + +
  • + WULA_Smoke_Tail + 1 +
  • +
    +
    \ No newline at end of file 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 d1ae7b99..04254649 100644 --- a/1.6/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml +++ b/1.6/1.6/Defs/ThingDefs_Races/Races_Wulaspecies.xml @@ -1053,8 +1053,8 @@
  • 36000 - 4.2 - 4.4 + 5.2 + 5.4 0.02 4.0 false diff --git a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/AirStrike_Keys.xml b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/AirStrike_Keys.xml index 6fb8295d..24697f5f 100644 --- a/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/AirStrike_Keys.xml +++ b/1.6/1.6/Languages/ChineseSimplified (简体中文)/Keyed/AirStrike_Keys.xml @@ -20,14 +20,6 @@ 已获得 {0} {1} 机库已损坏 - - 战机管理器未找到! - 空中打击已启动:{0} - 空中打击:成功使用 {0} 只 {1} - 没有可用的战机:{0} - 空中打击:{1} 没有可用的 {0} - 没有可用的 {0} - {0}:{1} 冷却中:{0} @@ -70,4 +62,28 @@ {0} 准备好再次进行打击 没有可用的战机 {0}:{1}/{2}(冷却中:{3}) + + 已净空航道,航道上的舰队正在回到高空轨道 + + + 战机管理器未找到 + {0}空袭已启动 + 使用了{0}架{1}执行空袭 + 没有可用的{0} + 无法为派系{1}使用{0} + 未知派系 + 战机系统未就绪 + 没有可用的{0} + {0}数量不足 ({1}/{2}) + {0}正在冷却中 + 可用战机: {0} + 冷却中: {0} + 每次消耗: {0} + 没有可用的战机执行空袭 + 战机状态: + • 总数: {0} + • 可用: {0} + • 冷却中: {0} + 需要 {0} x{1} + 冷却时间: {0} 小时 \ No newline at end of file diff --git a/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_north.png b/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_north.png index 40a944bb..e625c8ac 100644 Binary files a/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_north.png and b/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_north.png differ diff --git a/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_south.png b/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_south.png index a6a94bb5..045038c7 100644 Binary files a/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_south.png and b/Content/Textures/Wula/Hair/WULA_Double_Ponytail_Long_south.png differ diff --git a/Content/Textures/Wula/Hair/WULA_High_Ponytail_east.png b/Content/Textures/Wula/Hair/WULA_High_Ponytail_east.png index 579693f5..58578ba4 100644 Binary files a/Content/Textures/Wula/Hair/WULA_High_Ponytail_east.png and b/Content/Textures/Wula/Hair/WULA_High_Ponytail_east.png differ diff --git a/Content/Textures/Wula/Hair/WULA_High_Ponytail_north.png b/Content/Textures/Wula/Hair/WULA_High_Ponytail_north.png index 80006c55..2659f6ef 100644 Binary files a/Content/Textures/Wula/Hair/WULA_High_Ponytail_north.png and b/Content/Textures/Wula/Hair/WULA_High_Ponytail_north.png differ diff --git a/Content/Textures/Wula/Hair/WULA_High_Ponytail_south.png b/Content/Textures/Wula/Hair/WULA_High_Ponytail_south.png index b1a09654..ceedff2e 100644 Binary files a/Content/Textures/Wula/Hair/WULA_High_Ponytail_south.png and b/Content/Textures/Wula/Hair/WULA_High_Ponytail_south.png differ diff --git a/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_east.png b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_east.png index 5ba8eaa7..62f2cf7a 100644 Binary files a/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_east.png and b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_east.png differ diff --git a/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_north.png b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_north.png index e96690d7..0056189a 100644 Binary files a/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_north.png and b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_north.png differ diff --git a/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_south.png b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_south.png index 9efc75dd..88bcad82 100644 Binary files a/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_south.png and b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_south.png differ diff --git a/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_west.png b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_west.png index e9611676..a61d04fb 100644 Binary files a/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_west.png and b/Content/Textures/Wula/Hair/WULA_One_Side_Ponytail_west.png differ diff --git a/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_east.png b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_east.png index 5e490b5a..bde7d6d2 100644 Binary files a/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_east.png and b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_east.png differ diff --git a/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_north.png b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_north.png index 120936a2..dabdc8d4 100644 Binary files a/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_north.png and b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_north.png differ diff --git a/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_south.png b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_south.png index 63af54cd..10b30e1f 100644 Binary files a/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_south.png and b/Content/Textures/Wula/Hair/WULA_Rotational_Ponytail_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png index 7cafdf8f..2f03f701 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png index c2ea6052..9cfe2d94 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png and b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_north.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png index 916f626f..9133ed36 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png index 9a6bea5a..65d037dd 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png index 521660cf..22a413e0 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png index cc7febf5..87bf2ee7 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_highlight_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png index 09835971..a3a0973d 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Eyes/Normal/Unisex/normal_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png b/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png index a52df560..6f071bc3 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_north.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png index 2876f061..a8efce29 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads/Average_Normal_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png index dc989125..87299426 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png index 566f9f06..6f071bc3 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_north.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png index 09ebb626..ef787192 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png index de0666d5..bc176e99 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/blush_west.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png index aafd5355..e8dd8276 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png index 566f9f06..6f071bc3 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_north.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png index 877ecbef..fee991cf 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png index 563a0b54..5c22479f 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png and b/Content/Textures/Wula/Things/WulaSpecies/Heads_Blank/Normal/Unisex/normal_west.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/arrow_close_east.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/arrow_close_east.png index 5a025be1..c58bedef 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/arrow_close_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/arrow_close_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/arrow_close_south.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/arrow_close_south.png index c171935f..f777ddc2 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/arrow_close_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/arrow_close_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png index db76390c..6a0067ec 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png index d8b81ae7..394ebb7b 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/close_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png index 057c23a0..14957a2a 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png index 28c73951..d49a9c2b 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/normal_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/speechless_east.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/speechless_east.png index d89c1ce2..119ab848 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/speechless_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/speechless_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/speechless_south.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/speechless_south.png index e78edfc3..e67b9daf 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/speechless_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/speechless_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/stun_east.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/stun_east.png index 450005a1..f6a46a83 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/stun_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/stun_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/stun_south.png b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/stun_south.png index 67f94627..64d0ed02 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/stun_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Lids/Normal/Unisex/stun_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/dissatisfaction_east.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/dissatisfaction_east.png index 63bf7f97..99b649c0 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/dissatisfaction_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/dissatisfaction_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/dissatisfaction_south.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/dissatisfaction_south.png index 8876ac12..1c801bb7 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/dissatisfaction_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/dissatisfaction_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png index 6a2bd2fb..fff8c315 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png index 6ed4f6e4..e8da47a7 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/normal_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png index 66af0f47..8436fb55 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png index 5c4ab4d2..3ca895b8 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/open_south.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/openex_east.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/openex_east.png index 2d106184..f8bb74e1 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/openex_east.png and b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/openex_east.png differ diff --git a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/openex_south.png b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/openex_south.png index d4d6d370..c0235869 100644 Binary files a/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/openex_south.png and b/Content/Textures/Wula/Things/WulaSpecies/Mouth/Normal/Unisex/openex_south.png differ diff --git a/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png index c0c8b293..99d0d821 100644 Binary files a/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png and b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.png differ diff --git a/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png index 0eb69307..d3ec8352 100644 Binary files a/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png and b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_north.png differ diff --git a/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png index fad06b83..7eaeb922 100644 Binary files a/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png and b/Content/Textures/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_south.png differ diff --git a/Source/WulaFallenEmpire/Flyover/ThingclassFlyOver.cs b/Source/WulaFallenEmpire/Flyover/ThingclassFlyOver.cs index 1efa5c6c..175fb2f8 100644 --- a/Source/WulaFallenEmpire/Flyover/ThingclassFlyOver.cs +++ b/Source/WulaFallenEmpire/Flyover/ThingclassFlyOver.cs @@ -197,28 +197,6 @@ namespace WulaFallenEmpire return Mathf.Clamp01(currentFadeInTime / fadeInDuration); } } - - // 修改后的淡出透明度属性 - public float FadeOutAlpha - { - get - { - if (!useFadeOut || !fadeOutStarted) return 1f; - if (fadeOutCompleted) return 0f; - return Mathf.Clamp01(1f - (currentFadeOutTime / fadeOutDuration)); - } - } - - // 修改后的总体透明度属性 - public float OverallAlpha - { - get - { - if (!useFadeEffects) return 1f; - return FadeInAlpha * FadeOutAlpha; - } - } - // 新增:计算剩余飞行时间(秒) public float RemainingFlightTime { @@ -228,6 +206,151 @@ namespace WulaFallenEmpire return remainingProgress / (flightSpeed * 0.001f) * (1f / 60f); } } + // 修改后的紧急销毁方法 - 急速加速版本 + public void EmergencyDestroy() + { + if (Destroyed || hasCompleted) return; + // 计算剩余进度 + float remainingProgress = 1f - currentProgress; + + // 计算需要的速度:确保在1秒内完成剩余进度 + // 每帧增加 flightSpeed * 0.001,1秒60帧,所以需要:remainingProgress = flightSpeed * 0.001 * 60 + // 因此:flightSpeed = remainingProgress / (0.001 * 60) = remainingProgress / 0.06 + float requiredSpeed = remainingProgress / 0.06f; + + // 设置新的飞行速度,确保至少是当前速度的2倍 + flightSpeed = Mathf.Max(requiredSpeed, flightSpeed * 2f); + + // 标记为紧急销毁状态 + hasCompleted = false; // 确保可以继续飞行 + + Log.Message($"FlyOver emergency destroy: accelerating to complete in 1 second. " + + $"Current progress: {currentProgress:F2}, Required speed: {requiredSpeed:F2}, " + + $"Actual speed: {flightSpeed:F2}"); + } + // 修改后的淡出透明度属性 - 紧急销毁时强制启用淡出 + public float FadeOutAlpha + { + get + { + // 如果已经开始了淡出(包括紧急销毁),就应用淡出效果 + if (!fadeOutStarted) return 1f; + if (fadeOutCompleted) return 0f; + return Mathf.Clamp01(1f - (currentFadeOutTime / fadeOutDuration)); + } + } + // 修改后的总体透明度属性 - 紧急销毁时强制计算淡出 + public float OverallAlpha + { + get + { + if (!useFadeEffects && !fadeOutStarted) return 1f; + return FadeInAlpha * FadeOutAlpha; + } + } + // 修改后的 Tick 方法,优化紧急销毁逻辑 + protected override void Tick() + { + base.Tick(); + if (!hasStarted || hasCompleted) + return; + + // 更新进场动画 + if (useApproachAnimation && !approachCompleted) + { + currentApproachTime += 1f / 60f; + if (currentApproachTime >= approachDuration) + { + approachCompleted = true; + currentApproachTime = approachDuration; + } + } + + // 更新淡入效果(仅在启用时) + if (useFadeIn && !fadeInCompleted) + { + currentFadeInTime += 1f / 60f; + if (currentFadeInTime >= fadeInDuration) + { + fadeInCompleted = true; + currentFadeInTime = fadeInDuration; + } + } + + // 更新飞行进度 + currentProgress += flightSpeed * 0.001f; + + // 检查是否应该开始淡出(仅在启用时且未紧急销毁) + if (useFadeOut && !fadeOutStarted && currentProgress >= fadeOutStartProgress) + { + StartFadeOut(); + } + + // 更新淡出效果(仅在启用时) + if (useFadeOut && fadeOutStarted && !fadeOutCompleted) + { + currentFadeOutTime += 1f / 60f; + if (currentFadeOutTime >= fadeOutDuration) + { + fadeOutCompleted = true; + currentFadeOutTime = fadeOutDuration; + } + } + + // 更新当前位置 + UpdatePosition(); + + // 维持飞行音效 + UpdateFlightSound(); + + // 检查是否到达终点 + if (currentProgress >= 1f) + { + CompleteFlyOver(); + return; // 立即返回,避免后续处理 + } + + // 生成飞行轨迹特效 + CreateFlightEffects(); + } + // 修改后的 CompleteFlyOver 方法,添加紧急销毁处理 + private void CompleteFlyOver() + { + if (hasCompleted) return; + hasCompleted = true; + currentProgress = 1f; + + // 生成内容物(如果需要) + if (spawnContentsOnImpact && innerContainer.Any) + { + SpawnContents(); + } + + // 播放完成音效 + if (def.skyfaller?.impactSound != null) + { + def.skyfaller.impactSound.PlayOneShot( + SoundInfo.InMap(new TargetInfo(endPosition, base.Map))); + } + + Log.Message($"FlyOver completed at {endPosition}"); + + // 立即销毁 + Destroy(); + } + + // 修改后的 UpdatePosition 方法,添加安全检查 + private void UpdatePosition() + { + if (hasCompleted) return; + + Vector3 currentWorldPos = Vector3.Lerp(startPosition.ToVector3(), endPosition.ToVector3(), currentProgress); + IntVec3 newPos = currentWorldPos.ToIntVec3(); + if (newPos != base.Position && newPos.InBounds(base.Map)) + { + base.Position = newPos; + } + } // 新增:计算基于剩余距离的淡出持续时间 private float CalculateDynamicFadeOutDuration() @@ -337,63 +460,6 @@ namespace WulaFallenEmpire } } } - protected override void Tick() - { - base.Tick(); - if (!hasStarted || hasCompleted) - return; - // 更新进场动画 - if (useApproachAnimation && !approachCompleted) - { - currentApproachTime += 1f / 60f; - if (currentApproachTime >= approachDuration) - { - approachCompleted = true; - currentApproachTime = approachDuration; - Log.Message("FlyOver approach animation completed"); - } - } - // 更新淡入效果(仅在启用时) - if (useFadeIn && !fadeInCompleted) - { - currentFadeInTime += 1f / 60f; - if (currentFadeInTime >= fadeInDuration) - { - fadeInCompleted = true; - currentFadeInTime = fadeInDuration; - } - } - // 更新飞行进度 - currentProgress += flightSpeed * 0.001f; - // 检查是否应该开始淡出(仅在启用时) - if (useFadeOut && !fadeOutStarted && currentProgress >= fadeOutStartProgress) - { - StartFadeOut(); - } - // 更新淡出效果(仅在启用时) - if (useFadeOut && fadeOutStarted && !fadeOutCompleted) - { - currentFadeOutTime += 1f / 60f; - if (currentFadeOutTime >= fadeOutDuration) - { - fadeOutCompleted = true; - currentFadeOutTime = fadeOutDuration; - Log.Message("FlyOver fade out completed"); - } - } - // 更新当前位置 - UpdatePosition(); - // 维持飞行音效(在淡出时逐渐降低音量) - UpdateFlightSound(); - // 检查是否到达终点 - if (currentProgress >= 1f) - { - CompleteFlyOver(); - } - // 生成飞行轨迹特效(在淡出时减少特效) - CreateFlightEffects(); - } - // 新增:开始淡出效果 private void StartFadeOut() { @@ -405,69 +471,21 @@ namespace WulaFallenEmpire Log.Message($"FlyOver started fade out at progress {currentProgress:F2}, duration: {fadeOutDuration:F2}s, remaining time: {RemainingFlightTime:F2}s"); } - private void UpdatePosition() - { - Vector3 currentWorldPos = Vector3.Lerp(startPosition.ToVector3(), endPosition.ToVector3(), currentProgress); - IntVec3 newPos = currentWorldPos.ToIntVec3(); - - if (newPos != base.Position && newPos.InBounds(base.Map)) - { - base.Position = newPos; - } - } - - // 修改后的音效更新方法 + // 修改后的 UpdateFlightSound 方法,添加紧急销毁时的音效处理 private void UpdateFlightSound() { if (flightSoundPlaying != null) { - if (useFadeOut && fadeOutStarted) + // 紧急销毁时提高音效音量或频率 + if (flightSoundPlaying != null && flightSoundPlaying.externalParams != null) { - // 淡出时逐渐降低音效音量 - flightSoundPlaying.externalParams["VolumeFactor"] = FadeOutAlpha; + // 可以根据需要调整紧急销毁时的音效参数 + flightSoundPlaying.externalParams["VolumeFactor"] = 1f; // 保持最大音量 } flightSoundPlaying?.Maintain(); } } - private void CompleteFlyOver() - { - hasCompleted = true; - currentProgress = 1f; - - // 生成内容物(如果需要) - if (spawnContentsOnImpact && innerContainer.Any) - { - SpawnContents(); - } - - // 播放完成音效 - if (def.skyfaller?.impactSound != null) - { - def.skyfaller.impactSound.PlayOneShot( - SoundInfo.InMap(new TargetInfo(endPosition, base.Map))); - } - - Log.Message($"FlyOver completed at {endPosition}"); - - // 销毁自身 - Destroy(); - } - - // 修改后的紧急销毁方法 - public void EmergencyDestroy() - { - if (useFadeOut && !fadeOutStarted) - { - // 如果还没有开始淡出,使用默认淡出时间 - fadeOutStarted = true; - fadeOutDuration = defaultFadeOutDuration; - Log.Message($"FlyOver emergency destroy with default fade out: {defaultFadeOutDuration}s"); - } - // 设置标记,下一帧会处理淡出 - hasCompleted = true; - } - private void SpawnContents() { foreach (Thing thing in innerContainer) @@ -480,19 +498,21 @@ namespace WulaFallenEmpire innerContainer.Clear(); } - // 修改后的特效生成方法 + // 修改后的 CreateFlightEffects 方法,添加紧急销毁时的特效增强 private void CreateFlightEffects() { // 在飞行轨迹上生成粒子效果 - if (Rand.MTBEventOccurs(0.5f, 1f, 1f) && def.skyfaller?.motesPerCell > 0 && !fadeOutCompleted) + if (Rand.MTBEventOccurs(0.5f, 1f, 1f) && def.skyfaller?.motesPerCell > 0) { Vector3 effectPos = DrawPos; effectPos.y = AltitudeLayer.MoteOverhead.AltitudeFor(); - // 淡出时减少粒子效果强度 - float effectIntensity = (useFadeOut && fadeOutStarted) ? FadeOutAlpha : 1f; + + // 紧急销毁时增强粒子效果 + float effectIntensity = 1f; FleckMaker.ThrowSmoke(effectPos, base.Map, 1f * effectIntensity); - // 可选:根据速度生成更多效果 - if (flightSpeed > 2f && !(useFadeOut && fadeOutStarted)) + + // 紧急销毁时生成更多效果 + if (flightSpeed > 2f) { FleckMaker.ThrowAirPuffUp(effectPos, base.Map); } diff --git a/Source/WulaFallenEmpire/Flyover/WULA_AircraftHangar/CompAbilityEffect_AircraftStrike.cs b/Source/WulaFallenEmpire/Flyover/WULA_AircraftHangar/CompAbilityEffect_AircraftStrike.cs index f7d295b8..3d82e907 100644 --- a/Source/WulaFallenEmpire/Flyover/WULA_AircraftHangar/CompAbilityEffect_AircraftStrike.cs +++ b/Source/WulaFallenEmpire/Flyover/WULA_AircraftHangar/CompAbilityEffect_AircraftStrike.cs @@ -31,7 +31,7 @@ namespace WulaFallenEmpire if (aircraftManager == null) { - Log.Error("AircraftManagerNotFound".Translate()); + Log.Error("WULA_AircraftManagerNotFound".Translate()); return; } @@ -39,13 +39,13 @@ namespace WulaFallenEmpire if (aircraftManager.TryUseAircraft(Props.requiredAircraftType, Props.aircraftsPerUse, parent.pawn.Faction, Props.aircraftCooldownTicks)) { // 成功消耗战机,发送消息 - Messages.Message("AircraftStrikeInitiated".Translate(Props.requiredAircraftType.LabelCap), MessageTypeDefOf.PositiveEvent); - Log.Message("AircraftStrikeSuccess".Translate(Props.aircraftsPerUse, Props.requiredAircraftType.LabelCap)); + Messages.Message("WULA_AircraftStrikeInitiated".Translate(Props.requiredAircraftType.LabelCap), MessageTypeDefOf.PositiveEvent); + Log.Message("WULA_AircraftStrikeSuccess".Translate(Props.aircraftsPerUse, Props.requiredAircraftType.LabelCap)); } else { - Messages.Message("NoAvailableAircraft".Translate(Props.requiredAircraftType.LabelCap), MessageTypeDefOf.NegativeEvent); - Log.Warning("AircraftStrikeFailed".Translate(Props.requiredAircraftType.LabelCap, parent.pawn.Faction?.Name ?? "UnknownFaction".Translate())); + Messages.Message("WULA_NoAvailableAircraft".Translate(Props.requiredAircraftType.LabelCap), MessageTypeDefOf.NegativeEvent); + Log.Warning("WULA_AircraftStrikeFailed".Translate(Props.requiredAircraftType.LabelCap, parent.pawn.Faction?.Name ?? "WULA_UnknownFaction".Translate())); } } @@ -59,6 +59,44 @@ namespace WulaFallenEmpire aircraftManager.HasAvailableAircraft(Props.requiredAircraftType, Props.aircraftsPerUse, parent.pawn.Faction); } + // 关键修改:重写 GizmoDisabled 方法,在不满足条件时禁用按钮 + public override bool GizmoDisabled(out string reason) + { + // 先检查基础条件 + if (base.GizmoDisabled(out reason)) + return true; + + // 检查战机可用性 + WorldComponent_AircraftManager aircraftManager = Find.World.GetComponent(); + if (aircraftManager == null) + { + reason = "WULA_AircraftSystemNotReady".Translate(); + return true; + } + + if (!aircraftManager.HasAvailableAircraft(Props.requiredAircraftType, Props.aircraftsPerUse, parent.pawn.Faction)) + { + int available = aircraftManager.GetAvailableAircraftCount(Props.requiredAircraftType, parent.pawn.Faction); + int total = aircraftManager.GetTotalAircraftCount(Props.requiredAircraftType, parent.pawn.Faction); + + if (available == 0 && total == 0) + { + reason = "WULA_NoAvailableAircraftType".Translate(Props.requiredAircraftType.LabelCap); + } + else if (available < Props.aircraftsPerUse) + { + reason = "WULA_AircraftInsufficient".Translate(Props.requiredAircraftType.LabelCap, available, Props.aircraftsPerUse); + } + else + { + reason = "WULA_AircraftOnCooldown".Translate(Props.requiredAircraftType.LabelCap); + } + return true; + } + + return false; + } + public override string ExtraLabelMouseAttachment(LocalTargetInfo target) { WorldComponent_AircraftManager aircraftManager = Find.World.GetComponent(); @@ -73,9 +111,9 @@ namespace WulaFallenEmpire string cooldownSymbols = GetAircraftSymbols(onCooldown, "◇"); StringBuilder sb = new StringBuilder(); - sb.AppendLine("AvailableAircraft".Translate(Props.requiredAircraftType.LabelCap, availableSymbols)); - sb.AppendLine("CooldownAircraft".Translate(cooldownSymbols)); - sb.Append("CostPerUse".Translate(Props.aircraftsPerUse)); + sb.AppendLine("WULA_AvailableAircraft".Translate(availableSymbols)); + sb.AppendLine("WULA_CooldownAircraft".Translate(cooldownSymbols)); + sb.Append("WULA_CostPerUse".Translate(Props.aircraftsPerUse)); return sb.ToString(); } @@ -86,18 +124,16 @@ namespace WulaFallenEmpire // 生成飞机符号表示 private string GetAircraftSymbols(int count, string symbol) { - if (count <= 0) return "—"; // 无飞机时显示破折号 + if (count <= 0) return "—"; StringBuilder sb = new StringBuilder(); int displayCount = count; - // 如果数量过多,用数字+符号表示 if (count > 10) { return $"{count}{symbol}"; } - // 直接显示符号 for (int i = 0; i < displayCount; i++) { sb.Append(symbol); @@ -117,7 +153,7 @@ namespace WulaFallenEmpire { if (throwMessages) { - Messages.Message("NoAircraftForStrike".Translate(Props.requiredAircraftType.LabelCap), MessageTypeDefOf.RejectInput); + Messages.Message("WULA_NoAircraftForStrike".Translate(), MessageTypeDefOf.RejectInput); } return false; } @@ -140,11 +176,12 @@ namespace WulaFallenEmpire float cooldownHours = TicksToHours(Props.aircraftCooldownTicks); StringBuilder sb = new StringBuilder(); - sb.AppendLine("AircraftStatusTooltip".Translate()); - sb.AppendLine("• " + "TotalAircraft".Translate(total)); - sb.AppendLine("• " + "ReadyAircraft".Translate(available)); - sb.AppendLine("• " + "CooldownAircraft".Translate(onCooldown)); - sb.AppendLine("AircraftAbilityDescription".Translate(Props.requiredAircraftType.LabelCap, Props.aircraftsPerUse, cooldownHours.ToString("F1"))); + sb.AppendLine("WULA_AircraftStatus".Translate()); + sb.AppendLine("WULA_TotalAircraft".Translate(total)); + sb.AppendLine("WULA_ReadyAircraft".Translate(available)); + sb.AppendLine("WULA_CooldownAircraftCount".Translate(onCooldown)); + sb.AppendLine("WULA_AircraftRequirement".Translate(Props.requiredAircraftType.LabelCap, Props.aircraftsPerUse)); + sb.AppendLine("WULA_CooldownTime".Translate(cooldownHours.ToString("F1"))); return sb.ToString(); } @@ -155,7 +192,6 @@ namespace WulaFallenEmpire // 将 tick 转换为小时 private float TicksToHours(int ticks) { - // RimWorld 中 1 小时 = 2500 tick return ticks / 2500f; } } diff --git a/Source/WulaFallenEmpire/Flyover/WULA_DestroyFlyOverByFacilities/CompProperties_DestroyFlyOverByFacilities.cs b/Source/WulaFallenEmpire/Flyover/WULA_DestroyFlyOverByFacilities/CompProperties_DestroyFlyOverByFacilities.cs new file mode 100644 index 00000000..3063c5d8 --- /dev/null +++ b/Source/WulaFallenEmpire/Flyover/WULA_DestroyFlyOverByFacilities/CompProperties_DestroyFlyOverByFacilities.cs @@ -0,0 +1,57 @@ +using System.Collections.Generic; +using RimWorld; +using Verse; + +namespace WulaFallenEmpire +{ + // CompProperties 定义 + public class CompProperties_DestroyFlyOverByFacilities : CompProperties_AbilityEffect + { + public CompProperties_DestroyFlyOverByFacilities() + { + compClass = typeof(CompAbilityEffect_DestroyFlyOverByFacilities); + } + } + + // Comp 实现 + public class CompAbilityEffect_DestroyFlyOverByFacilities : CompAbilityEffect + { + public new CompProperties_DestroyFlyOverByFacilities Props => (CompProperties_DestroyFlyOverByFacilities)props; + + public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) + { + base.Apply(target, dest); + + if (parent.pawn?.Map == null) return; + + // 销毁所有 FlyOver 物体 + DestroyAllFlyOvers(); + } + + // 销毁所有 FlyOver + private void DestroyAllFlyOvers() + { + List flyOvers = new List(); + + // 获取地图上所有的 FlyOver + foreach (Thing thing in parent.pawn.Map.listerThings.AllThings) + { + if (thing is FlyOver flyOver) + { + flyOvers.Add(flyOver); + } + } + + // 销毁找到的 FlyOver + foreach (FlyOver flyOver in flyOvers) + { + flyOver.EmergencyDestroy(); + } + + if (flyOvers.Count > 0) + { + Messages.Message($"WULA_DestroyFlyOver".Translate(), parent.pawn, MessageTypeDefOf.PositiveEvent); + } + } + } +} diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj index ff80bf29..149827e0 100644 --- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj +++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj @@ -127,6 +127,7 @@ + diff --git a/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 b/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 index e84c2885..54be1c19 100644 Binary files a/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 and b/美术与文本源文件/Wula/Hair/WULA_Double_Ponytail_Long_south.sai2 differ diff --git a/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.sai2 b/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.sai2 index 8652ae97..b7ee19eb 100644 Binary files a/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.sai2 and b/美术与文本源文件/Wula/Hair/WULA_High_Ponytail_south.sai2 differ diff --git a/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 b/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 index 4e8bbc42..c544edd2 100644 Binary files a/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 and b/美术与文本源文件/Wula/Hair/WULA_One_Side_Ponytail_south.sai2 differ diff --git a/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 b/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 index 90bbd26e..6ada5165 100644 Binary files a/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 and b/美术与文本源文件/Wula/Hair/WULA_Rotational_Ponytail_south.sai2 differ diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 b/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 index 46ff76bf..f5622e60 100644 Binary files a/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 and b/美术与文本源文件/Wula/Things/WulaSpecies/Addons/WULA_Addons_Antenna_south.sai2 differ diff --git a/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 b/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 index 377cb0ca..b9ede907 100644 Binary files a/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 and b/美术与文本源文件/Wula/Things/WulaSpecies/Heads/Average_Normal_south.sai2 differ diff --git a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 b/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 index 1d77f265..6f10f2aa 100644 Binary files a/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 and b/美术与文本源文件/Wula/Things/Wula_AI_Heavy_Panzer/Bodies/Naked_Thin_east.sai2 differ