diff --git a/1.6/1.6/Assemblies/WulaFallenEmpire.dll b/1.6/1.6/Assemblies/WulaFallenEmpire.dll
index 7e73ea64..d2b51762 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/DamageDefs/Damages_Wula.xml b/1.6/1.6/Defs/DamageDefs/Damages_Wula.xml
index 4362962e..2b504c3f 100644
--- a/1.6/1.6/Defs/DamageDefs/Damages_Wula.xml
+++ b/1.6/1.6/Defs/DamageDefs/Damages_Wula.xml
@@ -161,48 +161,6 @@
-
-
-
- WULA_WM_Disturber_Turret_Damage
-
- WulaFallenEmpire.DamageWorker_ExtraDamage
- true
- {0} 被等离子干扰而亡。
- true
- Electric
- 50
- 0
-
-
- Explosion_Vaporize
- Damage_EMP
- true
- EMPResistance
- 2200
- WULA_Mech_EMP_Drop_Shockwave
-
-
-
-
-
-
Wula_Psi_Damage
@@ -383,7 +341,8 @@
WULA_Disturber_Turret_Bomb
- WulaFallenEmpire.DamageWorker_ExtraDamage
+
+ WulaFallenEmpire.DamageWorker_ExplosionWithTerrain
250
2.0
2
@@ -392,7 +351,10 @@
WULA_Disturber_Turret_Bomb_Shockwave
-
+ LavaShallow
+
+
-
-
+ -->
diff --git a/1.6/1.6/Defs/Effects/WulaFleckDefs.xml b/1.6/1.6/Defs/Effects/WulaFleckDefs.xml
index f34c924f..e7152636 100644
--- a/1.6/1.6/Defs/Effects/WulaFleckDefs.xml
+++ b/1.6/1.6/Defs/Effects/WulaFleckDefs.xml
@@ -6,18 +6,12 @@
0.50
1
1.2
- 0.005
+ 0.025
Wula/Mote/WULA_GunTail_Plasma
MoteGlow
- 3.25
- (218,255,200,155)
-
-
-
- WULA_GunTail_Plasma_Yellow
-
- (242,160,69,155)
+ 4.25
+ (179,127,67,155)
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 1dd996a5..c7d6b390 100644
--- a/1.6/1.6/Defs/ResearchProjectDefs/WULA_ResearchProjects_Remake.xml
+++ b/1.6/1.6/Defs/ResearchProjectDefs/WULA_ResearchProjects_Remake.xml
@@ -712,7 +712,7 @@
10.00
3.80
- 允许通过传送将乌拉帝国的建筑直接传送到空投区,这使得建筑可以立刻部署到目标地点,且无视厚岩顶阻挡。
+ 允许通过传送将乌拉帝国的建筑直接传送到空投区,这使得建筑可以立刻部署到目标地点,且无视厚岩顶阻挡。除此之外,也可以建造区域跃迁引擎,以移动整个基地。
2000
WULA_Colony_License_LV3_Technology
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 ccf8586f..de8feb07 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
@@ -1,60 +1,97 @@
-
WULA_AreaTeleportBeacon
-
- 负责协调殖民地与轨道上的乌拉帝国舰队进行材料输送的信标,空投建筑会优先从信标覆盖区域吸纳资源完成空投。
- Building
-
- BuildingsMisc
-
+
+ 乌拉帝国的科技结晶之一,可以供整个区域继续传送的跃迁引擎,它会把区域内的地面、建筑、生物和散落材料等完整地移动到其他地图上。
+ WulaFallenEmpire.Building_ExtraGraphics
+ true
+ Building
+ 50
+ true
+ PassThroughOnly
+ 1
+ (1,1)
+ true
+ None
+ (0.56, 0.62, 0.9)
+ Wula/Building/Flag/WULA_Flag_Building_A
+ false
- Wula/Building/WULA_OrbitalTradeBeacon
+ Wula/Building/Flag/WULA_Flag_Building_Mount
Graphic_Single
-
- (0.3, 0.2, 0.3)
- (0,0,-0.1)
-
+ (1,1)
- Building
- MinifiedThing
+
+ 4
+
- 75
- 800
+ 50
0.5
+ 1000
5
- MapMeshAndRealTime
- true
- 0.15
-
- 40
- 1
-
Normal
+ true
+ false
+ North
+ true
+ Light
+ BulletImpact_Metal
+ true
+ RealtimeOnly
+ ConstructMetal
+ true
+ WULA_Buildings
+
+ WULA_Building_Teleporter_Technology
+
- BuildingDestroyed_Metal_Small
+ false
+ BuildingDestroyed_Metal_Big
+ true
+ true
+
+
+
(13, 13)
120
- WULA_Colony_License_LV1_Technology
+ WULA_Building_Teleporter_Technology
+
+
+ 3
+ (120,240,252,0)
- false
- 14
- WULA_Buildings
- 2100
- false
-
- PlaceWorker_ShowTradeBeaconRadius
-
- Misc2
-
- WULA_Colony_License_LV1_Technology
-
@@ -1030,6 +1067,4 @@
-
-
\ No newline at end of file
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 fadca402..7c593ea6 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
@@ -1446,8 +1446,8 @@
Wula_Disturber_Turret_Cleanzone
-
- 清理出一块场地并准备好资源,使得乌拉帝国可以向此处投放建筑。\n\nHBt-1"磁石"是一种需要通电才能运转的重型防御炮塔,以联装的方式装载了四门威力巨大的离子风暴炮,其射弹携带了强大的EMP效果和杀伤效果,可以在远距离上撕碎一切冲击阵地的敌军。
+
+ 清理出一块场地并准备好资源,使得乌拉帝国可以向此处投放建筑。\n\nHBt-1"磁石"是一种需要通电才能运转的重型防御炮塔,以联装的方式装载了四门威力巨大的火山风暴炮,其射弹携带了强大的EMP效果和杀伤效果,可以在远距离上撕碎一切冲击阵地的敌军。
Wula/Building/Wula_Disturber_Turret
MinifiedThing
Normal
@@ -1555,8 +1555,8 @@
Wula_Disturber_Turret
-
- HBt-1"磁石"是一种需要通电才能运转的重型防御炮塔,以联装的方式装载了四门威力巨大的离子风暴炮,其射弹携带了强大的EMP效果和杀伤效果,可以在远距离上撕碎一切冲击阵地的敌军。
+
+ HBt-1"磁石"是一种需要通电才能运转的重型防御炮塔,以联装的方式装载了四门威力巨大的火山风暴炮,其射弹携带了强大的EMP效果和杀伤效果,可以在远距离上撕碎一切冲击阵地的敌军。
WulaFallenEmpire.Building_TurretGunHasSpeed
MapMeshAndRealTime
@@ -1663,7 +1663,7 @@
Wula_Disturber_Turret_Weapon
- 中型舰炮,毁灭能力超群。
+ 乌拉帝国的火山炮之一,拥有气化敌军的能力。
None
true
Ultra
@@ -1682,7 +1682,7 @@
- Verb_Shoot
+ WulaFallenEmpire.Verb_ShootWithOffset
false
Bullet_WULA_WM_Disturber_Turret
5
@@ -1703,19 +1703,26 @@
+
+
+
+ (0, -2)
+
+
+
Bullet_WULA_WM_Disturber_Turret
-
+
WulaFallenEmpire.Projectile_NorthArcTrail
Normal
True
- Wula/Projectile/WULA_Energy_2_Shell
+ Wula/Projectile/WULA_Energy_Shell
Graphic_Single
MoteGlow
(2.5,3)
- (218,255,200,255)
+ (202,147,67,205)
WULA_Disturber_Turret_Bomb
@@ -1740,7 +1747,7 @@
WULA_GunTail_Plasma
3
- 1
+ 9
1~2
0.5~1.0
0.1~0.3
diff --git a/Source/WulaFallenEmpire/Damage/DamageDefExtension_TerrainCover.cs b/Source/WulaFallenEmpire/Damage/DamageDefExtension_TerrainCover.cs
new file mode 100644
index 00000000..14a48153
--- /dev/null
+++ b/Source/WulaFallenEmpire/Damage/DamageDefExtension_TerrainCover.cs
@@ -0,0 +1,40 @@
+using System.Collections.Generic;
+using RimWorld;
+using Verse;
+
+namespace WulaFallenEmpire
+{
+ // 地形覆盖配置的 ModExtension
+ public class DamageDefExtension_TerrainCover : DefModExtension
+ {
+ // 要生成的地形定义
+ public TerrainDef terrainToSpawn;
+
+ // 生成概率(0-1)
+ public float terrainChance = 1f;
+
+ // 检查特定单元格是否允许生成地形
+ public bool CanAffectCell(IntVec3 cell, Map map, out string reason)
+ {
+ reason = null;
+
+ if (!cell.InBounds(map))
+ {
+ reason = "Cell out of bounds";
+ return false;
+ }
+
+ // 检查地形类型
+ TerrainDef currentTerrain = cell.GetTerrain(map);
+
+ // 检查是否可以构建地形
+ if (!GenConstruct.CanBuildOnTerrain(terrainToSpawn, cell, map, Rot4.North))
+ {
+ reason = "Cannot build on terrain";
+ return false;
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/Source/WulaFallenEmpire/Damage/DamageWorker_ExplosionWithTerrain.cs b/Source/WulaFallenEmpire/Damage/DamageWorker_ExplosionWithTerrain.cs
new file mode 100644
index 00000000..e7867667
--- /dev/null
+++ b/Source/WulaFallenEmpire/Damage/DamageWorker_ExplosionWithTerrain.cs
@@ -0,0 +1,89 @@
+using System.Collections.Generic;
+using System.Linq;
+using RimWorld;
+using UnityEngine;
+using Verse;
+using Verse.Sound;
+
+namespace WulaFallenEmpire
+{
+ public class DamageWorker_ExplosionWithTerrain : DamageWorker_AddInjury
+ {
+ // 获取地形覆盖扩展
+ private DamageDefExtension_TerrainCover GetTerrainCoverExtension(DamageDef damageDef)
+ {
+ if (damageDef?.modExtensions == null)
+ return null;
+
+ return damageDef.modExtensions
+ .OfType()
+ .FirstOrDefault();
+ }
+
+ public override void ExplosionAffectCell(Explosion explosion, IntVec3 c, List damagedThings, List ignoredThings, bool canThrowMotes)
+ {
+ base.ExplosionAffectCell(explosion, c, damagedThings, ignoredThings, canThrowMotes);
+ var terrainCover = GetTerrainCoverExtension(explosion.damType);
+ // 处理地形覆盖
+ ProcessTerrainCover(explosion, c, terrainCover);
+ }
+
+ // 处理地形覆盖
+ private void ProcessTerrainCover(Explosion explosion, IntVec3 cellsToAffect, DamageDefExtension_TerrainCover terrainCover)
+ {
+ if (explosion.Map == null)
+ return;
+
+ Map map = explosion.Map;
+
+ ApplyTerrainCoverToCell(cellsToAffect, map, terrainCover, explosion);
+ }
+
+ // 对单个单元格应用地形覆盖
+ public void ApplyTerrainCoverToCell(IntVec3 cell, Map map,
+ DamageDefExtension_TerrainCover terrainCover, Explosion explosion = null)
+ {
+ // 检查单元格是否可影响
+ if (!terrainCover.CanAffectCell(cell, map, out string reason))
+ {
+ Log.Message($"Cannot affect cell {cell}: {reason}");
+ return;
+ }
+
+ TerrainDef currentTerrain = cell.GetTerrain(map);
+
+ // 检查框架
+ Frame frame = cell.GetFirstThing(map);
+
+ // 检查植物(特别是大型树木)
+ Plant plant = cell.GetPlant(map);
+ if (plant != null && plant.def.plant.treeCategory == TreeCategory.Super)
+ {
+ Log.Message($"Large tree at {cell}, skipping");
+ return;
+ }
+
+ // 尝试设置地形
+ if (GenConstruct.CanBuildOnTerrain(terrainCover.terrainToSpawn, cell, map, Rot4.North))
+ {
+ // 销毁框架(如果需要)
+ if (frame != null)
+ {
+ frame.Destroy(DestroyMode.Vanish);
+ }
+
+ // 保存原始地形(用于临时覆盖)
+ TerrainDef originalTerrain = map.terrainGrid.TerrainAt(cell);
+
+ // 设置新地形
+ map.terrainGrid.SetTerrain(cell, terrainCover.terrainToSpawn);
+
+ Log.Message($"Applied terrain {terrainCover.terrainToSpawn.defName} to cell {cell}");
+ }
+ else
+ {
+ Log.Message($"Cannot build terrain {terrainCover.terrainToSpawn.defName} at cell {cell}");
+ }
+ }
+ }
+}
diff --git a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
index ae890d9b..d2893ce1 100644
--- a/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
+++ b/Source/WulaFallenEmpire/WulaFallenEmpire.csproj
@@ -70,10 +70,331 @@
..\..\..\..\..\..\common\RimWorld\RimWorldWin64_Data\Managed\UnityEngine.TextRenderingModule.dll
False
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+