feat(1.6): 升级武装穿梭机并添加弹道拦截功能
- 为武装穿梭机添加弹道拦截器组件,提升防御能力 - 更换武装穿梭机的炮塔为 WULA_WM_Panzer_Turret - 优化口袋空间生成逻辑,调整地形生成步骤 - 更新武装穿梭机相关定义,移除冗余的武器定义 - 修改穿梭机的显示标签,使其更符合实际功能
This commit is contained in:
Binary file not shown.
@@ -16,15 +16,16 @@
|
||||
<li>ElevationFertility</li>
|
||||
<li>Underground_RocksFromGrid</li>
|
||||
<li>Terrain</li>
|
||||
<li>WULA_PocketSpace_Small</li>
|
||||
<li>Fog</li>
|
||||
<li>WULA_PocketSpace_Small_GenStep</li>
|
||||
</genSteps>
|
||||
</MapGeneratorDef>
|
||||
|
||||
<!-- 13x13口袋空间生成步骤 -->
|
||||
<GenStepDef>
|
||||
<defName>WULA_PocketSpace_Small</defName>
|
||||
<defName>WULA_PocketSpace_Small_GenStep</defName>
|
||||
<order>990</order> <!-- 调整为更高的值,确保在所有基础地形生成之后执行 -->
|
||||
<genStep Class="WulaFallenEmpire.GenStep_WulaPocketSpaceSmall" />
|
||||
<genStep Class="WulaFallenEmpire.GenStep_WulaPocketSpaceSmall">
|
||||
<prefabDefName>WULA_Shuttle_Prefab</prefabDefName> <!-- 指定要生成的预制件的defName -->
|
||||
</genStep>
|
||||
</GenStepDef>
|
||||
</Defs>
|
||||
148
1.6/1.6/Defs/PrefabDefs/WULA_ShuttlePrefab.xml
Normal file
148
1.6/1.6/Defs/PrefabDefs/WULA_ShuttlePrefab.xml
Normal file
@@ -0,0 +1,148 @@
|
||||
<Defs>
|
||||
<PrefabDef>
|
||||
<defName>WULA_Shuttle_Prefab</defName> <!-- rename -->
|
||||
<size>(13,13)</size>
|
||||
<things>
|
||||
<Table1x2c>
|
||||
<position>(10, 0, 2)</position>
|
||||
<relativeRotation>Clockwise</relativeRotation>
|
||||
<stuff>Steel</stuff>
|
||||
<quality>Normal</quality>
|
||||
</Table1x2c>
|
||||
<Armchair>
|
||||
<position>(6, 0, 2)</position>
|
||||
<relativeRotation>Opposite</relativeRotation>
|
||||
<stuff>Cloth</stuff>
|
||||
<quality>Normal</quality>
|
||||
</Armchair>
|
||||
<WULA_Charging_Station_Synth>
|
||||
<positions>
|
||||
<li>(1, 0, 1)</li>
|
||||
<li>(1, 0, 3)</li>
|
||||
<li>(1, 0, 5)</li>
|
||||
</positions>
|
||||
<relativeRotation>Clockwise</relativeRotation>
|
||||
<quality>Normal</quality>
|
||||
</WULA_Charging_Station_Synth>
|
||||
<ChessTable>
|
||||
<position>(11, 0, 5)</position>
|
||||
<stuff>Steel</stuff>
|
||||
<quality>Normal</quality>
|
||||
</ChessTable>
|
||||
<WulaDoor>
|
||||
<rects>
|
||||
<li>(3,1,3,1)</li>
|
||||
<li>(5,2,5,2)</li>
|
||||
<li>(3,3,3,3)</li>
|
||||
<li>(3,5,3,5)</li>
|
||||
<li>(9,6,9,6)</li>
|
||||
<li>(3,7,3,7)</li>
|
||||
<li>(3,9,3,9)</li>
|
||||
<li>(3,11,3,11)</li>
|
||||
</rects>
|
||||
<relativeRotation>Clockwise</relativeRotation>
|
||||
</WulaDoor>
|
||||
<WulaDoor>
|
||||
<position>(7, 0, 9)</position>
|
||||
</WulaDoor>
|
||||
<WULA_Cube_Productor_Energy>
|
||||
<position>(6, 0, 1)</position>
|
||||
<relativeRotation>Opposite</relativeRotation>
|
||||
</WULA_Cube_Productor_Energy>
|
||||
<Barricade>
|
||||
<rects>
|
||||
<li>(5,5,6,5)</li>
|
||||
<li>(5,6,5,7)</li>
|
||||
<li>(7,6,7,7)</li>
|
||||
<li>(6,7,6,7)</li>
|
||||
</rects>
|
||||
<stuff>Steel</stuff>
|
||||
</Barricade>
|
||||
<Barricade>
|
||||
<position>(7, 0, 5)</position>
|
||||
<stuff>Steel</stuff>
|
||||
<hp>278</hp>
|
||||
</Barricade>
|
||||
<DiningChair>
|
||||
<position>(11, 0, 4)</position>
|
||||
<stuff>Steel</stuff>
|
||||
<quality>Normal</quality>
|
||||
</DiningChair>
|
||||
<DiningChair>
|
||||
<position>(11, 0, 6)</position>
|
||||
<relativeRotation>Opposite</relativeRotation>
|
||||
<stuff>Steel</stuff>
|
||||
<quality>Normal</quality>
|
||||
</DiningChair>
|
||||
<Bed>
|
||||
<positions>
|
||||
<li>(1, 0, 7)</li>
|
||||
<li>(1, 0, 9)</li>
|
||||
<li>(1, 0, 11)</li>
|
||||
</positions>
|
||||
<relativeRotation>Clockwise</relativeRotation>
|
||||
<stuff>Steel</stuff>
|
||||
<quality>Normal</quality>
|
||||
</Bed>
|
||||
<WulaWall>
|
||||
<rects>
|
||||
<li>(0,0,12,0)</li>
|
||||
<li>(0,1,0,12)</li>
|
||||
<li>(5,1,5,1)</li>
|
||||
<li>(7,1,7,3)</li>
|
||||
<li>(12,1,12,12)</li>
|
||||
<li>(1,2,3,2)</li>
|
||||
<li>(5,3,6,3)</li>
|
||||
<li>(8,3,8,3)</li>
|
||||
<li>(1,4,3,4)</li>
|
||||
<li>(9,4,9,5)</li>
|
||||
<li>(1,6,3,6)</li>
|
||||
<li>(9,7,11,7)</li>
|
||||
<li>(1,8,3,8)</li>
|
||||
<li>(9,8,9,9)</li>
|
||||
<li>(5,9,6,9)</li>
|
||||
<li>(8,9,8,9)</li>
|
||||
<li>(1,10,3,10)</li>
|
||||
<li>(5,10,5,12)</li>
|
||||
<li>(1,12,4,12)</li>
|
||||
<li>(6,12,11,12)</li>
|
||||
</rects>
|
||||
<stuff>Steel</stuff>
|
||||
</WulaWall>
|
||||
<FlatscreenTelevision>
|
||||
<position>(8, 0, 2)</position>
|
||||
<relativeRotation>Clockwise</relativeRotation>
|
||||
</FlatscreenTelevision>
|
||||
<Shelf>
|
||||
<position>(10, 0, 8)</position>
|
||||
<stuff>Steel</stuff>
|
||||
</Shelf>
|
||||
<Shelf>
|
||||
<position>(6, 0, 11)</position>
|
||||
<relativeRotation>Clockwise</relativeRotation>
|
||||
<stuff>Steel</stuff>
|
||||
</Shelf>
|
||||
<Shelf>
|
||||
<position>(11, 0, 10)</position>
|
||||
<relativeRotation>Counterclockwise</relativeRotation>
|
||||
<stuff>Steel</stuff>
|
||||
</Shelf>
|
||||
<Shelf>
|
||||
<position>(9, 0, 11)</position>
|
||||
<relativeRotation>Opposite</relativeRotation>
|
||||
<stuff>Steel</stuff>
|
||||
</Shelf>
|
||||
<Couch>
|
||||
<position>(10, 0, 1)</position>
|
||||
<stuff>Cloth</stuff>
|
||||
<quality>Normal</quality>
|
||||
</Couch>
|
||||
<Couch>
|
||||
<position>(11, 0, 3)</position>
|
||||
<relativeRotation>Opposite</relativeRotation>
|
||||
<stuff>Cloth</stuff>
|
||||
<quality>Normal</quality>
|
||||
</Couch>
|
||||
</things>
|
||||
</PrefabDef>
|
||||
</Defs>
|
||||
@@ -69,7 +69,7 @@
|
||||
<forcedCostLeavings>
|
||||
<li MayRequire="Ludeon.RimWorld.Odyssey">ShuttleEngine</li>
|
||||
</forcedCostLeavings>
|
||||
<turretGunDef>Gun_ChargeBlasterHeavyTurret</turretGunDef>
|
||||
<turretGunDef>WULA_WM_Panzer_Turret</turretGunDef>
|
||||
<turretBurstCooldownTime>5.5</turretBurstCooldownTime>
|
||||
<turretTopDrawSize>1.75</turretTopDrawSize>
|
||||
<turretTopOffset>(0, 0.05)</turretTopOffset>
|
||||
@@ -128,7 +128,16 @@
|
||||
<li Class="CompProperties_AmbientSound">
|
||||
<sound>ShuttleIdle_Ambience</sound>
|
||||
</li>
|
||||
|
||||
<li Class="CompProperties_ProjectileInterceptor">
|
||||
<radius>9</radius>
|
||||
<interceptGroundProjectiles>true</interceptGroundProjectiles>
|
||||
<color>(0.5, 0.3, 0.9, 0.5)</color>
|
||||
<reactivateEffect>BulletShieldGenerator_Reactivate</reactivateEffect>
|
||||
<activeSound>BulletShield_Ambience</activeSound>
|
||||
<disarmedByEmpForTicks>1080</disarmedByEmpForTicks>
|
||||
<chargeIntervalTicks>-1</chargeIntervalTicks>
|
||||
<chargeDurationTicks>0</chargeDurationTicks>
|
||||
</li>
|
||||
</comps>
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.PocketMapProperties">
|
||||
@@ -145,59 +154,6 @@
|
||||
<uiOrder>2601</uiOrder>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 改进的武器定义 -->
|
||||
<ThingDef ParentName="BaseBullet">
|
||||
<defName>WULA_Bullet_ArmedShuttleAdvanced</defName>
|
||||
<label>advanced shuttle cannon shell</label>
|
||||
<graphicData>
|
||||
<texPath>Things/Projectile/Bullet_Big</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<color>(0.8, 0.9, 1.0)</color>
|
||||
</graphicData>
|
||||
<projectile>
|
||||
<damageDef>Bullet</damageDef>
|
||||
<damageAmountBase>30</damageAmountBase>
|
||||
<armorPenetrationBase>0.4</armorPenetrationBase>
|
||||
<speed>75</speed>
|
||||
</projectile>
|
||||
</ThingDef>
|
||||
|
||||
<ThingDef ParentName="BaseWeaponTurret">
|
||||
<defName>Gun_ChargeBlasterAdvancedTurret</defName>
|
||||
<label>advanced charge blaster</label>
|
||||
<description>An upgraded pulse-charged rapid-fire blaster with enhanced targeting systems and increased firepower.</description>
|
||||
<graphicData>
|
||||
<texPath>Things/Item/Equipment/WeaponRanged/ChargeBlasterLight</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<color>(0.8, 0.9, 1.0)</color>
|
||||
</graphicData>
|
||||
<statBases>
|
||||
<AccuracyTouch>0.85</AccuracyTouch>
|
||||
<AccuracyShort>0.75</AccuracyShort>
|
||||
<AccuracyMedium>0.65</AccuracyMedium>
|
||||
<AccuracyLong>0.45</AccuracyLong>
|
||||
<RangedWeapon_Cooldown>4.5</RangedWeapon_Cooldown>
|
||||
</statBases>
|
||||
<verbs>
|
||||
<li>
|
||||
<verbClass>Verb_Shoot</verbClass>
|
||||
<hasStandardCommand>true</hasStandardCommand>
|
||||
<defaultProjectile>WULA_Bullet_ArmedShuttleAdvanced</defaultProjectile>
|
||||
<warmupTime>1.0</warmupTime>
|
||||
<minRange>3.5</minRange>
|
||||
<range>50.9</range>
|
||||
<ticksBetweenBurstShots>6</ticksBetweenBurstShots>
|
||||
<burstShotCount>8</burstShotCount>
|
||||
<soundCast>Shot_ChargeBlaster</soundCast>
|
||||
<soundCastTail>GunTail_Heavy</soundCastTail>
|
||||
<muzzleFlashScale>10</muzzleFlashScale>
|
||||
<targetParams>
|
||||
<canTargetLocations>true</canTargetLocations>
|
||||
</targetParams>
|
||||
</li>
|
||||
</verbs>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 到达天降物 -->
|
||||
<ThingDef ParentName="ShuttleSkyfallerBase">
|
||||
<defName>ArmedShuttleWithPocketIncoming_WULA</defName>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
<forcedCostLeavings>
|
||||
<li MayRequire="Ludeon.RimWorld.Odyssey">ShuttleEngine</li>
|
||||
</forcedCostLeavings>
|
||||
<turretGunDef>Gun_ChargeBlasterHeavyTurret</turretGunDef>
|
||||
<turretGunDef>WULA_WM_Panzer_Turret</turretGunDef>
|
||||
<turretBurstCooldownTime>5.5</turretBurstCooldownTime>
|
||||
<turretTopDrawSize>1.75</turretTopDrawSize>
|
||||
<turretTopOffset>(0, 0.05)</turretTopOffset>
|
||||
@@ -122,6 +122,16 @@
|
||||
<li Class="CompProperties_AmbientSound">
|
||||
<sound>ShuttleIdle_Ambience</sound>
|
||||
</li>
|
||||
<li Class="CompProperties_ProjectileInterceptor">
|
||||
<radius>9</radius>
|
||||
<interceptGroundProjectiles>true</interceptGroundProjectiles>
|
||||
<color>(0.5, 0.3, 0.9, 0.5)</color>
|
||||
<reactivateEffect>BulletShieldGenerator_Reactivate</reactivateEffect>
|
||||
<activeSound>BulletShield_Ambience</activeSound>
|
||||
<disarmedByEmpForTicks>1080</disarmedByEmpForTicks>
|
||||
<chargeIntervalTicks>-1</chargeIntervalTicks>
|
||||
<chargeDurationTicks>0</chargeDurationTicks>
|
||||
</li>
|
||||
</comps>
|
||||
<placeWorkers>
|
||||
<li>PlaceWorker_NotUnderRoof</li>
|
||||
@@ -143,35 +153,6 @@
|
||||
<speed>70</speed>
|
||||
</projectile>
|
||||
</ThingDef>
|
||||
|
||||
<ThingDef ParentName="BaseWeaponTurret">
|
||||
<defName>Gun_ChargeBlasterHeavyTurret</defName>
|
||||
<label>light charge blaster</label>
|
||||
<description>A pulse-charged rapid-fire blaster for area fire.</description>
|
||||
<graphicData>
|
||||
<texPath>Things/Item/Equipment/WeaponRanged/ChargeBlasterLight</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
</graphicData>
|
||||
<statBases>
|
||||
<AccuracyLong>0.08</AccuracyLong>
|
||||
<RangedWeapon_Cooldown>5.5</RangedWeapon_Cooldown>
|
||||
</statBases>
|
||||
<verbs>
|
||||
<li>
|
||||
<verbClass>Verb_Shoot</verbClass>
|
||||
<hasStandardCommand>true</hasStandardCommand>
|
||||
<defaultProjectile>WULA_Bullet_ArmedShuttle</defaultProjectile>
|
||||
<warmupTime>1.25</warmupTime>
|
||||
<minRange>3.9</minRange>
|
||||
<range>45.9</range>
|
||||
<ticksBetweenBurstShots>7</ticksBetweenBurstShots>
|
||||
<burstShotCount>9</burstShotCount>
|
||||
<soundCast>Shot_ChargeBlaster</soundCast>
|
||||
<soundCastTail>GunTail_Heavy</soundCastTail>
|
||||
<muzzleFlashScale>9</muzzleFlashScale>
|
||||
</li>
|
||||
</verbs>
|
||||
</ThingDef>
|
||||
|
||||
<ThingDef ParentName="ShuttleSkyfallerBase">
|
||||
<defName>ArmedShuttleIncoming_WULA</defName>
|
||||
@@ -214,7 +195,7 @@
|
||||
|
||||
<ThingDef ParentName="ShuttleSkyfallerBase">
|
||||
<defName>ArmedShuttleLeaving_WULA</defName>
|
||||
<label>穿梭机出口</label>
|
||||
<label>武装穿梭机 (离开中)</label>
|
||||
<thingClass>PassengerShuttleLeaving</thingClass>
|
||||
<rotatable>true</rotatable>
|
||||
<graphicData>
|
||||
@@ -257,7 +238,7 @@
|
||||
|
||||
<TransportShipDef>
|
||||
<defName>Ship_ArmedShuttle</defName>
|
||||
<label>armed shuttle</label>
|
||||
<label>武装穿梭机</label>
|
||||
<shipThing>WULA_ArmedShuttle</shipThing>
|
||||
<arrivingSkyfaller>ArmedShuttleIncoming_WULA</arrivingSkyfaller>
|
||||
<leavingSkyfaller>ArmedShuttleLeaving_WULA</leavingSkyfaller>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,6 +14,9 @@ namespace WulaFallenEmpire
|
||||
{
|
||||
public override int SeedPart => 928735; // 不同于AncientStockpile的种子
|
||||
|
||||
// 允许通过XML配置指定要生成的预制件Def名称
|
||||
public string prefabDefName;
|
||||
|
||||
public override void Generate(Map map, GenStepParams parms)
|
||||
{
|
||||
try
|
||||
@@ -32,17 +35,19 @@ namespace WulaFallenEmpire
|
||||
Log.Message("[WULA] WULA pocket space generation completed");
|
||||
|
||||
// 添加预制件生成
|
||||
// 注意:这里需要根据实际的PrefabDef名称进行加载
|
||||
// 暂时使用一个示例PrefabDef名称,实际使用时应替换
|
||||
PrefabDef customPrefabDef = DefDatabase<PrefabDef>.GetNamed("YourCustomPrefabDefName", false);
|
||||
if (customPrefabDef != null)
|
||||
// 如果指定了预制件Def名称,则加载并生成
|
||||
if (!string.IsNullOrEmpty(prefabDefName))
|
||||
{
|
||||
GeneratePrefab(map, customPrefabDef);
|
||||
Log.Message($"[WULA] Generated custom prefab: {customPrefabDef.defName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Warning("[WULA] Custom prefab 'YourCustomPrefabDefName' not found. Skipping prefab generation.");
|
||||
PrefabDef customPrefabDef = DefDatabase<PrefabDef>.GetNamed(prefabDefName, false);
|
||||
if (customPrefabDef != null)
|
||||
{
|
||||
GeneratePrefab(map, customPrefabDef);
|
||||
Log.Message($"[WULA] Generated custom prefab: {customPrefabDef.defName}");
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.Warning($"[WULA] Custom prefab '{prefabDefName}' not found. Skipping prefab generation.");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user