feat(wula): 更新武装穿梭机并添加新武器
- 重新设计了武装穿梭机的外观和性能 - 添加了带有口袋空间功能的武装穿梭机 - 新增了 PMr-89 "四叶" 自动炮和 PMr-88 "三叶" 突击步枪 - 优化了子弹和武器的特效
This commit is contained in:
@@ -1,287 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<Defs>
|
||||
|
||||
<ThingDef ParentName="BuildingBase">
|
||||
<defName>WULA_ArmedShuttleWithPocket</defName>
|
||||
<label>乌拉武装运输机</label>
|
||||
<description>An advanced chemfuel-powered shuttle with integrated pocket space technology. Equipped with a defensive turret and internal storage dimension that doesn't require hacking to access. Perfect for long-distance exploration and mobile operations.</description>
|
||||
<thingClass>WulaFallenEmpire.Building_ArmedShuttleWithPocket</thingClass>
|
||||
<preventDroppingThingsOn>true</preventDroppingThingsOn>
|
||||
<altitudeLayer>Building</altitudeLayer>
|
||||
<pathCost>50</pathCost>
|
||||
<blockWind>true</blockWind>
|
||||
<passability>PassThroughOnly</passability>
|
||||
<fillPercent>0.5</fillPercent>
|
||||
<size>(3,5)</size>
|
||||
<drawHighlight>true</drawHighlight>
|
||||
<highlightColor>(0.56, 0.62, 0.9)</highlightColor>
|
||||
<uiIconScale>1</uiIconScale>
|
||||
<graphicData>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<texPath>Things/Building/PassengerShuttle/PassengerShuttle</texPath>
|
||||
<shaderType>CutoutComplex</shaderType>
|
||||
<drawSize>(3,5)</drawSize>
|
||||
<shadowData>
|
||||
<volume>(1.8, 1.0, 4.1)</volume>
|
||||
<offset>(-0.1, 0, 0)</offset>
|
||||
</shadowData>
|
||||
</graphicData>
|
||||
<statBases>
|
||||
<MaxHitPoints>6000</MaxHitPoints>
|
||||
<Flammability>0.5</Flammability>
|
||||
<WorkToBuild>40000</WorkToBuild>
|
||||
<Mass>150</Mass>
|
||||
<Comfort>0.65</Comfort>
|
||||
</statBases>
|
||||
<tickerType>Normal</tickerType>
|
||||
<designationCategory>Odyssey</designationCategory>
|
||||
<constructionSkillPrerequisite>8</constructionSkillPrerequisite>
|
||||
<costList>
|
||||
<Steel>300</Steel>
|
||||
<Plasteel>200</Plasteel>
|
||||
<ComponentIndustrial>8</ComponentIndustrial>
|
||||
<ComponentSpacer>2</ComponentSpacer>
|
||||
<ShuttleEngine>1</ShuttleEngine>
|
||||
</costList>
|
||||
<canOverlapZones>true</canOverlapZones>
|
||||
<killedLeavings>
|
||||
<Steel>60</Steel>
|
||||
<Plasteel>60</Plasteel>
|
||||
<ChunkSlagSteel>5</ChunkSlagSteel>
|
||||
<ComponentIndustrial>4</ComponentIndustrial>
|
||||
</killedLeavings>
|
||||
<rotatable>true</rotatable>
|
||||
<hasInteractionCell>true</hasInteractionCell>
|
||||
<interactionCellOffset>(2, 0, 0)</interactionCellOffset>
|
||||
<defaultPlacingRot>East</defaultPlacingRot>
|
||||
<selectable>true</selectable>
|
||||
<terrainAffordanceNeeded>Light</terrainAffordanceNeeded>
|
||||
<soundImpactDefault>BulletImpact_Metal</soundImpactDefault>
|
||||
<preventSkyfallersLandingOn>true</preventSkyfallersLandingOn>
|
||||
<drawerType>RealtimeOnly</drawerType>
|
||||
<repairEffect>ConstructMetal</repairEffect>
|
||||
<forceDebugSpawnable>true</forceDebugSpawnable>
|
||||
<building>
|
||||
<claimable>false</claimable>
|
||||
<destroySound>BuildingDestroyed_Metal_Big</destroySound>
|
||||
<paintable>true</paintable>
|
||||
<isInert>true</isInert>
|
||||
<forcedCostLeavings>
|
||||
<li MayRequire="Ludeon.RimWorld.Odyssey">ShuttleEngine</li>
|
||||
</forcedCostLeavings>
|
||||
<turretGunDef>WULA_WM_Panzer_Turret</turretGunDef>
|
||||
<turretBurstCooldownTime>5.5</turretBurstCooldownTime>
|
||||
<turretTopDrawSize>1.75</turretTopDrawSize>
|
||||
<turretTopOffset>(0, 0.05)</turretTopOffset>
|
||||
</building>
|
||||
<inspectorTabs>
|
||||
<li>ITab_ContentsTransporter</li>
|
||||
<li>ITab_Shells</li>
|
||||
</inspectorTabs>
|
||||
<researchPrerequisites>
|
||||
<li>Shuttles</li>
|
||||
</researchPrerequisites>
|
||||
<comps>
|
||||
<li Class="CompProperties_Shuttle">
|
||||
<shipDef>Ship_ArmedShuttleWithPocket</shipDef>
|
||||
</li>
|
||||
<li Class="CompProperties_Launchable">
|
||||
<fuelPerTile>2.5</fuelPerTile>
|
||||
<minFuelCost>40</minFuelCost>
|
||||
<skyfallerLeaving>ArmedShuttleWithPocketLeaving_WULA</skyfallerLeaving>
|
||||
<worldObjectDef>PassengerShuttle</worldObjectDef>
|
||||
<cooldownTicks>3000</cooldownTicks> <!-- 1.25 hours -->
|
||||
<fixedLaunchDistanceMax>75</fixedLaunchDistanceMax>
|
||||
<cooldownEndedMessage>{0} is ready to launch again.</cooldownEndedMessage>
|
||||
</li>
|
||||
<li Class="CompProperties_Transporter">
|
||||
<massCapacity>750</massCapacity>
|
||||
<max1PerGroup>true</max1PerGroup>
|
||||
<canChangeAssignedThingsAfterStarting>true</canChangeAssignedThingsAfterStarting>
|
||||
<pawnLoadedSound>Shuttle_PawnLoaded</pawnLoadedSound>
|
||||
<pawnExitSound>Shuttle_PawnExit</pawnExitSound>
|
||||
<showMassInInspectString>true</showMassInInspectString>
|
||||
</li>
|
||||
<li Class="CompProperties_Refuelable">
|
||||
<fuelCapacity>500</fuelCapacity>
|
||||
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
|
||||
<initialConfigurableTargetFuelLevel>500</initialConfigurableTargetFuelLevel>
|
||||
<fuelFilter>
|
||||
<thingDefs>
|
||||
<li>Chemfuel</li>
|
||||
</thingDefs>
|
||||
</fuelFilter>
|
||||
<fuelLabel>Chemfuel</fuelLabel>
|
||||
<fuelGizmoLabel>Chemfuel</fuelGizmoLabel>
|
||||
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
|
||||
<autoRefuelPercent>1</autoRefuelPercent>
|
||||
<showFuelGizmo>true</showFuelGizmo>
|
||||
<drawOutOfFuelOverlay>false</drawOutOfFuelOverlay>
|
||||
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
|
||||
<canEjectFuel>true</canEjectFuel>
|
||||
</li>
|
||||
<li Class="CompProperties_Power">
|
||||
<compClass>CompPowerPlant</compClass>
|
||||
<basePowerConsumption>-400</basePowerConsumption>
|
||||
<transmitsPower>true</transmitsPower>
|
||||
</li>
|
||||
<li Class="CompProperties_AmbientSound">
|
||||
<sound>ShuttleIdle_Ambience</sound>
|
||||
</li>
|
||||
<li Class="CompProperties_ProjectileInterceptor">
|
||||
<radius>6</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">
|
||||
<pocketMapGenerator>WULA_PocketSpace_Small</pocketMapGenerator>
|
||||
<exitDef>WULA_PocketMapExit</exitDef>
|
||||
<pocketMapSize>(13, 13)</pocketMapSize>
|
||||
<allowDirectAccess>true</allowDirectAccess>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<placeWorkers>
|
||||
<li>PlaceWorker_NotUnderRoof</li>
|
||||
<li>PlaceWorker_TurretTop</li>
|
||||
</placeWorkers>
|
||||
<uiOrder>2601</uiOrder>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 到达天降物 -->
|
||||
<ThingDef ParentName="ShuttleSkyfallerBase">
|
||||
<defName>ArmedShuttleWithPocketIncoming_WULA</defName>
|
||||
<label>armed shuttle with pocket space (incoming)</label>
|
||||
<thingClass>ShuttleIncoming</thingClass>
|
||||
<graphicData>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<texPath>Things/Building/PassengerShuttle/PassengerShuttle</texPath>
|
||||
<shaderType>CutoutComplex</shaderType>
|
||||
<color>(0.85, 0.9, 1.0)</color>
|
||||
<drawSize>(3,5)</drawSize>
|
||||
</graphicData>
|
||||
<size>(3,5)</size>
|
||||
<skyfaller>
|
||||
<anticipationSound>Shuttle_Landing</anticipationSound>
|
||||
<anticipationSoundTicks>250</anticipationSoundTicks>
|
||||
<ticksToImpactRange>200~250</ticksToImpactRange>
|
||||
<shadowSize>(3.5,5.5)</shadowSize>
|
||||
<rotationCurve>
|
||||
<points>
|
||||
<li>(0,30)</li>
|
||||
<li>(0.5,5)</li>
|
||||
<li>(0.9,-5)</li>
|
||||
<li>(0.95,0)</li>
|
||||
</points>
|
||||
</rotationCurve>
|
||||
<zPositionCurve>
|
||||
<points>
|
||||
<li>(0.95,2.5)</li>
|
||||
<li>(1,0)</li>
|
||||
</points>
|
||||
</zPositionCurve>
|
||||
<speedCurve>
|
||||
<points>
|
||||
<li>(0.6,0.6)</li>
|
||||
<li>(0.95,0.1)</li>
|
||||
</points>
|
||||
</speedCurve>
|
||||
</skyfaller>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 离开天降物 -->
|
||||
<ThingDef ParentName="ShuttleSkyfallerBase">
|
||||
<defName>ArmedShuttleWithPocketLeaving_WULA</defName>
|
||||
<label>armed shuttle with pocket space (leaving)</label>
|
||||
<thingClass>PassengerShuttleLeaving</thingClass>
|
||||
<rotatable>true</rotatable>
|
||||
<graphicData>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<texPath>Things/Building/PassengerShuttle/PassengerShuttle</texPath>
|
||||
<shaderType>CutoutComplex</shaderType>
|
||||
<color>(0.85, 0.9, 1.0)</color>
|
||||
<drawSize>(3,5)</drawSize>
|
||||
</graphicData>
|
||||
<size>(3,5)</size>
|
||||
<skyfaller>
|
||||
<reversed>true</reversed>
|
||||
<anticipationSound>Shuttle_Leaving</anticipationSound>
|
||||
<anticipationSoundTicks>-10</anticipationSoundTicks>
|
||||
<ticksToImpactRange>-40~-15</ticksToImpactRange>
|
||||
<moteSpawnTime>0.05</moteSpawnTime>
|
||||
<shadow>Things/Skyfaller/SkyfallerShadowRectangle</shadow>
|
||||
<shadowSize>(3.5,5.5)</shadowSize>
|
||||
<motesPerCell>1</motesPerCell>
|
||||
<rotationCurve>
|
||||
<points>
|
||||
<li>(0,0)</li>
|
||||
<li>(0.15,10)</li>
|
||||
<li>(0.5,-5)</li>
|
||||
</points>
|
||||
</rotationCurve>
|
||||
<zPositionCurve>
|
||||
<points>
|
||||
<li>(0,0)</li>
|
||||
<li>(0.08,2)</li>
|
||||
</points>
|
||||
</zPositionCurve>
|
||||
<speedCurve>
|
||||
<points>
|
||||
<li>(0,0.2)</li>
|
||||
<li>(0.4,0.7)</li>
|
||||
</points>
|
||||
</speedCurve>
|
||||
</skyfaller>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 运输船定义 -->
|
||||
<TransportShipDef>
|
||||
<defName>Ship_ArmedShuttleWithPocket</defName>
|
||||
<label>armed shuttle with pocket space</label>
|
||||
<shipThing>WULA_ArmedShuttleWithPocket</shipThing>
|
||||
<arrivingSkyfaller>ArmedShuttleWithPocketIncoming_WULA</arrivingSkyfaller>
|
||||
<leavingSkyfaller>ArmedShuttleWithPocketLeaving_WULA</leavingSkyfaller>
|
||||
<worldObject>PassengerShuttle</worldObject>
|
||||
<playerShuttle>true</playerShuttle>
|
||||
</TransportShipDef>
|
||||
|
||||
<!-- 口袋空间退出点定义 -->
|
||||
<ThingDef ParentName="PocketMapExit">
|
||||
<defName>WULA_PocketMapExit</defName>
|
||||
<label>运输机升降平台</label>
|
||||
<description>An exit portal that allows return from the pocket space to the main map.</description>
|
||||
<thingClass>WulaFallenEmpire.Building_PocketMapExit</thingClass>
|
||||
<size>(3,3)</size>
|
||||
<drawerType>MapMeshAndRealTime</drawerType>
|
||||
<graphicData>
|
||||
<texPath>Wula/Building/WULA_War_Machine_Recharger</texPath>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<drawSize>(3,3)</drawSize>
|
||||
</graphicData>
|
||||
<interactionCellOffset>(0,0,0)</interactionCellOffset>
|
||||
<passability>Standable</passability>
|
||||
<statBases>
|
||||
<Flammability>0</Flammability>
|
||||
</statBases>
|
||||
<comps>
|
||||
<li Class="CompProperties_Glower">
|
||||
<glowRadius>10</glowRadius>
|
||||
<glowColor>(140,160,184,0)</glowColor>
|
||||
</li>
|
||||
<li Class="CompProperties_Effecter">
|
||||
<effecterDef>UndercaveMapExitLightshafts</effecterDef>
|
||||
</li>
|
||||
<li Class="CompProperties_Power">
|
||||
<compClass>CompPowerPlant</compClass>
|
||||
<basePowerConsumption>-400</basePowerConsumption>
|
||||
<transmitsPower>true</transmitsPower>
|
||||
</li>
|
||||
</comps>
|
||||
</ThingDef>
|
||||
</Defs>
|
||||
@@ -2,8 +2,8 @@
|
||||
<Defs>
|
||||
<ThingDef ParentName="BuildingBase">
|
||||
<defName>WULA_ArmedShuttle</defName>
|
||||
<label>乌拉武装穿梭机</label>
|
||||
<description>A chemfuel-powered shuttle designed for long-distance travel, equipped with a turret for defense. It is capable of reaching orbital locations.</description>
|
||||
<label>CVe-3l"灰鸦"</label>
|
||||
<description>乌拉帝国所使用的大气内专用近地穿梭机。配备集成能量发生器投射暗物质护盾。并且装载一门近防炮武装保护帝国资产。</description>
|
||||
<thingClass>WulaFallenEmpire.Building_ArmedShuttle</thingClass>
|
||||
<preventDroppingThingsOn>true</preventDroppingThingsOn>
|
||||
<altitudeLayer>Building</altitudeLayer>
|
||||
@@ -11,23 +11,23 @@
|
||||
<blockWind>true</blockWind>
|
||||
<passability>PassThroughOnly</passability>
|
||||
<fillPercent>0.5</fillPercent>
|
||||
<size>(3,5)</size>
|
||||
<size>(4,4)</size>
|
||||
<drawHighlight>true</drawHighlight>
|
||||
<highlightColor>(0.56, 0.62, 0.9)</highlightColor>
|
||||
<uiIconScale>1</uiIconScale>
|
||||
<graphicData>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<texPath>Things/Building/PassengerShuttle/PassengerShuttle</texPath>
|
||||
<texPath>Wula/Building/WULA_ArmedShuttle</texPath>
|
||||
<shaderType>CutoutComplex</shaderType>
|
||||
<drawSize>(3,5)</drawSize>
|
||||
<drawSize>(4,4)</drawSize>
|
||||
<shadowData>
|
||||
<volume>(1.8, 1.0, 4.1)</volume>
|
||||
<offset>(-0.1, 0, 0)</offset>
|
||||
<volume>(3.5, 1.0, 3.5)</volume>
|
||||
<offset>(0.1, 0, -0.1)</offset>
|
||||
</shadowData>
|
||||
</graphicData>
|
||||
<statBases>
|
||||
<MaxHitPoints>6000</MaxHitPoints>
|
||||
<Flammability>0.5</Flammability>
|
||||
<Flammability>0</Flammability>
|
||||
<WorkToBuild>40000</WorkToBuild>
|
||||
<Mass>150</Mass>
|
||||
<Comfort>0.65</Comfort>
|
||||
@@ -68,7 +68,7 @@
|
||||
<forcedCostLeavings>
|
||||
<li MayRequire="Ludeon.RimWorld.Odyssey">ShuttleEngine</li>
|
||||
</forcedCostLeavings>
|
||||
<turretGunDef>WULA_WM_Panzer_Turret</turretGunDef>
|
||||
<turretGunDef>WULA_Shuttle_Autocannon</turretGunDef>
|
||||
<turretBurstCooldownTime>5.5</turretBurstCooldownTime>
|
||||
<turretTopDrawSize>1.75</turretTopDrawSize>
|
||||
<turretTopOffset>(0, 0.05)</turretTopOffset>
|
||||
@@ -123,7 +123,7 @@
|
||||
<sound>ShuttleIdle_Ambience</sound>
|
||||
</li>
|
||||
<li Class="CompProperties_ProjectileInterceptor">
|
||||
<radius>6</radius>
|
||||
<radius>12</radius>
|
||||
<interceptGroundProjectiles>true</interceptGroundProjectiles>
|
||||
<color>(0.5, 0.3, 0.9, 0.5)</color>
|
||||
<reactivateEffect>BulletShieldGenerator_Reactivate</reactivateEffect>
|
||||
@@ -140,31 +140,285 @@
|
||||
<uiOrder>2601</uiOrder>
|
||||
</ThingDef>
|
||||
|
||||
<ThingDef ParentName="BaseBullet">
|
||||
<defName>WULA_Bullet_ArmedShuttle</defName>
|
||||
<label>shuttle cannon shell</label>
|
||||
<ThingDef ParentName="BuildingBase">
|
||||
<defName>WULA_ArmedShuttleWithPocket</defName>
|
||||
<label>CVe-3o"渡鸦"</label>
|
||||
<description>乌拉帝国所使用的大气内专用近地穿梭机。集成折叠空间技术能安全装载比体积大得多的货物。配备集成能量发生器投射暗物质护盾。并且装载一门近防炮武装保护帝国资产。</description>
|
||||
<thingClass>WulaFallenEmpire.Building_ArmedShuttleWithPocket</thingClass>
|
||||
<preventDroppingThingsOn>true</preventDroppingThingsOn>
|
||||
<altitudeLayer>Building</altitudeLayer>
|
||||
<pathCost>50</pathCost>
|
||||
<blockWind>true</blockWind>
|
||||
<passability>PassThroughOnly</passability>
|
||||
<fillPercent>0.5</fillPercent>
|
||||
<size>(4,4)</size>
|
||||
<drawHighlight>true</drawHighlight>
|
||||
<highlightColor>(0.56, 0.62, 0.9)</highlightColor>
|
||||
<uiIconScale>1</uiIconScale>
|
||||
<graphicData>
|
||||
<texPath>Things/Projectile/Bullet_Big</texPath>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<texPath>Wula/Building/WULA_ArmedShuttle</texPath>
|
||||
<shaderType>CutoutComplex</shaderType>
|
||||
<drawSize>(4,4)</drawSize>
|
||||
<shadowData>
|
||||
<volume>(3.5, 1.0, 3.5)</volume>
|
||||
<offset>(0.1, 0, -0.1)</offset>
|
||||
</shadowData>
|
||||
</graphicData>
|
||||
<statBases>
|
||||
<MaxHitPoints>6000</MaxHitPoints>
|
||||
<Flammability>0</Flammability>
|
||||
<WorkToBuild>40000</WorkToBuild>
|
||||
<Mass>150</Mass>
|
||||
<Comfort>0.65</Comfort>
|
||||
</statBases>
|
||||
<tickerType>Normal</tickerType>
|
||||
<designationCategory>Odyssey</designationCategory>
|
||||
<constructionSkillPrerequisite>8</constructionSkillPrerequisite>
|
||||
<costList>
|
||||
<Steel>300</Steel>
|
||||
<Plasteel>200</Plasteel>
|
||||
<ComponentIndustrial>8</ComponentIndustrial>
|
||||
<ComponentSpacer>2</ComponentSpacer>
|
||||
<ShuttleEngine>1</ShuttleEngine>
|
||||
</costList>
|
||||
<canOverlapZones>true</canOverlapZones>
|
||||
<killedLeavings>
|
||||
<Steel>60</Steel>
|
||||
<Plasteel>60</Plasteel>
|
||||
<ChunkSlagSteel>5</ChunkSlagSteel>
|
||||
<ComponentIndustrial>4</ComponentIndustrial>
|
||||
</killedLeavings>
|
||||
<rotatable>true</rotatable>
|
||||
<hasInteractionCell>true</hasInteractionCell>
|
||||
<interactionCellOffset>(2, 0, 0)</interactionCellOffset>
|
||||
<defaultPlacingRot>East</defaultPlacingRot>
|
||||
<selectable>true</selectable>
|
||||
<terrainAffordanceNeeded>Light</terrainAffordanceNeeded>
|
||||
<soundImpactDefault>BulletImpact_Metal</soundImpactDefault>
|
||||
<preventSkyfallersLandingOn>true</preventSkyfallersLandingOn>
|
||||
<drawerType>RealtimeOnly</drawerType>
|
||||
<repairEffect>ConstructMetal</repairEffect>
|
||||
<forceDebugSpawnable>true</forceDebugSpawnable>
|
||||
<building>
|
||||
<claimable>false</claimable>
|
||||
<destroySound>BuildingDestroyed_Metal_Big</destroySound>
|
||||
<paintable>true</paintable>
|
||||
<isInert>true</isInert>
|
||||
<forcedCostLeavings>
|
||||
<li MayRequire="Ludeon.RimWorld.Odyssey">ShuttleEngine</li>
|
||||
</forcedCostLeavings>
|
||||
<turretGunDef>WULA_Shuttle_Autocannon</turretGunDef>
|
||||
<turretBurstCooldownTime>5.5</turretBurstCooldownTime>
|
||||
<turretTopDrawSize>1.75</turretTopDrawSize>
|
||||
<turretTopOffset>(0, 0.05)</turretTopOffset>
|
||||
</building>
|
||||
<inspectorTabs>
|
||||
<li>ITab_ContentsTransporter</li>
|
||||
<li>ITab_Shells</li>
|
||||
</inspectorTabs>
|
||||
<researchPrerequisites>
|
||||
<li>Shuttles</li>
|
||||
</researchPrerequisites>
|
||||
<comps>
|
||||
<li Class="CompProperties_Shuttle">
|
||||
<shipDef>Ship_ArmedShuttle</shipDef>
|
||||
</li>
|
||||
<li Class="CompProperties_Launchable">
|
||||
<fuelPerTile>3</fuelPerTile>
|
||||
<minFuelCost>50</minFuelCost>
|
||||
<skyfallerLeaving>ArmedShuttleLeaving_WULA</skyfallerLeaving>
|
||||
<worldObjectDef>PassengerShuttle</worldObjectDef>
|
||||
<cooldownTicks>3750</cooldownTicks> <!-- 1.5 hours -->
|
||||
<fixedLaunchDistanceMax>62</fixedLaunchDistanceMax>
|
||||
<cooldownEndedMessage>{0} is ready to launch again.</cooldownEndedMessage>
|
||||
</li>
|
||||
<li Class="CompProperties_Transporter">
|
||||
<massCapacity>500</massCapacity>
|
||||
<max1PerGroup>true</max1PerGroup>
|
||||
<canChangeAssignedThingsAfterStarting>true</canChangeAssignedThingsAfterStarting>
|
||||
<pawnLoadedSound>Shuttle_PawnLoaded</pawnLoadedSound>
|
||||
<pawnExitSound>Shuttle_PawnExit</pawnExitSound>
|
||||
<showMassInInspectString>true</showMassInInspectString>
|
||||
</li>
|
||||
<li Class="CompProperties_Refuelable">
|
||||
<fuelCapacity>500</fuelCapacity>
|
||||
<targetFuelLevelConfigurable>true</targetFuelLevelConfigurable>
|
||||
<initialConfigurableTargetFuelLevel>500</initialConfigurableTargetFuelLevel>
|
||||
<fuelFilter>
|
||||
<thingDefs>
|
||||
<li>Chemfuel</li>
|
||||
</thingDefs>
|
||||
</fuelFilter>
|
||||
<fuelLabel>Chemfuel</fuelLabel>
|
||||
<fuelGizmoLabel>Chemfuel</fuelGizmoLabel>
|
||||
<consumeFuelOnlyWhenUsed>true</consumeFuelOnlyWhenUsed>
|
||||
<autoRefuelPercent>1</autoRefuelPercent>
|
||||
<showFuelGizmo>true</showFuelGizmo>
|
||||
<drawOutOfFuelOverlay>false</drawOutOfFuelOverlay>
|
||||
<showAllowAutoRefuelToggle>true</showAllowAutoRefuelToggle>
|
||||
<canEjectFuel>true</canEjectFuel>
|
||||
</li>
|
||||
<li Class="CompProperties_Power">
|
||||
<compClass>CompPowerPlant</compClass>
|
||||
<basePowerConsumption>-400</basePowerConsumption>
|
||||
<transmitsPower>true</transmitsPower>
|
||||
</li>
|
||||
<li Class="CompProperties_AmbientSound">
|
||||
<sound>ShuttleIdle_Ambience</sound>
|
||||
</li>
|
||||
<li Class="CompProperties_ProjectileInterceptor">
|
||||
<radius>12</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">
|
||||
<pocketMapGenerator>WULA_PocketSpace_Small</pocketMapGenerator>
|
||||
<exitDef>WULA_PocketMapExit</exitDef>
|
||||
<pocketMapSize>(13, 13)</pocketMapSize>
|
||||
<allowDirectAccess>true</allowDirectAccess>
|
||||
</li>
|
||||
</modExtensions>
|
||||
<placeWorkers>
|
||||
<li>PlaceWorker_NotUnderRoof</li>
|
||||
<li>PlaceWorker_TurretTop</li>
|
||||
</placeWorkers>
|
||||
<uiOrder>2601</uiOrder>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 口袋空间退出点定义 -->
|
||||
<ThingDef ParentName="PocketMapExit">
|
||||
<defName>WULA_PocketMapExit</defName>
|
||||
<label>运输机升降平台</label>
|
||||
<description>用于在穿梭机内外运输人员和物品的升降平台.</description>
|
||||
<thingClass>WulaFallenEmpire.Building_PocketMapExit</thingClass>
|
||||
<size>(3,3)</size>
|
||||
<drawerType>MapMeshAndRealTime</drawerType>
|
||||
<graphicData>
|
||||
<texPath>Wula/Building/WULA_War_Machine_Recharger</texPath>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<drawSize>(3,3)</drawSize>
|
||||
</graphicData>
|
||||
<interactionCellOffset>(0,0,0)</interactionCellOffset>
|
||||
<passability>Standable</passability>
|
||||
<statBases>
|
||||
<Flammability>0</Flammability>
|
||||
</statBases>
|
||||
<comps>
|
||||
<li Class="CompProperties_Glower">
|
||||
<glowRadius>10</glowRadius>
|
||||
<glowColor>(140,160,184,0)</glowColor>
|
||||
</li>
|
||||
<li Class="CompProperties_Effecter">
|
||||
<effecterDef>UndercaveMapExitLightshafts</effecterDef>
|
||||
</li>
|
||||
<li Class="CompProperties_Power">
|
||||
<compClass>CompPowerPlant</compClass>
|
||||
<basePowerConsumption>-400</basePowerConsumption>
|
||||
<transmitsPower>true</transmitsPower>
|
||||
</li>
|
||||
</comps>
|
||||
</ThingDef>
|
||||
|
||||
|
||||
<ThingDef ParentName="BaseGun">
|
||||
<defName>WULA_Shuttle_Autocannon</defName>
|
||||
<label>PMr-89"四叶"</label>
|
||||
<description>由乌拉帝国的穿梭机所装备的自动炮,能够组织起高射速的弹幕压制杀伤大规模目标。</description>
|
||||
<techLevel>Ultra</techLevel>
|
||||
<relicChance>0</relicChance>
|
||||
<graphicData>
|
||||
<texPath>Wula/Weapon/WULA_WM_Panzer_Autocannon</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<drawSize>2</drawSize>
|
||||
</graphicData>
|
||||
<uiIconScale>0.5</uiIconScale>
|
||||
<tradeability>None</tradeability>
|
||||
<statBases>
|
||||
<WorkToMake>40000</WorkToMake>
|
||||
<Mass>150</Mass>
|
||||
<AccuracyTouch>0.5</AccuracyTouch>
|
||||
<AccuracyShort>0.5</AccuracyShort>
|
||||
<AccuracyMedium>0.4</AccuracyMedium>
|
||||
<AccuracyLong>0.35</AccuracyLong>
|
||||
<RangedWeapon_Cooldown>1.5</RangedWeapon_Cooldown>
|
||||
</statBases>
|
||||
<weaponTags>
|
||||
<li>WULA_AI_Heavy_Panzer_Gunner_Weapon</li>
|
||||
</weaponTags>
|
||||
<costList Inherit="False">
|
||||
<Steel>500</Steel>
|
||||
<Plasteel>150</Plasteel>
|
||||
<ComponentSpacer>8</ComponentSpacer>
|
||||
</costList>
|
||||
<verbs>
|
||||
<li>
|
||||
<verbClass>WulaFallenEmpire.Verb_ShootShotgun</verbClass>
|
||||
<hasStandardCommand>true</hasStandardCommand>
|
||||
<defaultProjectile>Bullet_Shuttle_Homing_Autocannon</defaultProjectile>
|
||||
<warmupTime>2.0</warmupTime>
|
||||
<range>24</range>
|
||||
<burstShotCount>6</burstShotCount>
|
||||
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
|
||||
<soundCast>Shot_TurretSniper</soundCast>
|
||||
<soundCastTail>GunTail_Heavy</soundCastTail>
|
||||
<muzzleFlashScale>9</muzzleFlashScale>
|
||||
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
|
||||
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
|
||||
</li>
|
||||
</verbs>
|
||||
</ThingDef>
|
||||
|
||||
<ThingDef ParentName="BaseBullet">
|
||||
<defName>Bullet_Shuttle_Homing_Autocannon</defName>
|
||||
<label>磷叶等离子体射弹</label>
|
||||
<graphicData>
|
||||
<texPath>Wula/Projectile/WULA_Bullet_Plasma</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<color>(61,199,157,202)</color>
|
||||
<drawSize>(0.75,1)</drawSize>
|
||||
</graphicData>
|
||||
<projectile>
|
||||
<damageDef>Bullet</damageDef>
|
||||
<damageAmountBase>25</damageAmountBase>
|
||||
<speed>70</speed>
|
||||
<damageAmountBase>16</damageAmountBase>
|
||||
<armorPenetrationBase>0.75</armorPenetrationBase>
|
||||
<speed>30</speed>
|
||||
</projectile>
|
||||
<thingClass>WulaFallenEmpire.Projectile_TrackingBullet</thingClass>
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.TrackingBulletDef">
|
||||
<homingSpeed>0.1</homingSpeed>
|
||||
<initRotateAngle>30</initRotateAngle>
|
||||
<destroyTicksAfterLosingTrack>
|
||||
<min>60</min>
|
||||
<max>120</max>
|
||||
</destroyTicksAfterLosingTrack>
|
||||
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.ShotgunExtension">
|
||||
<pelletCount>4</pelletCount>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</ThingDef>
|
||||
|
||||
|
||||
<ThingDef ParentName="ShuttleSkyfallerBase">
|
||||
<defName>ArmedShuttleIncoming_WULA</defName>
|
||||
<label>武装穿梭机 (接近中)</label>
|
||||
<thingClass>WulaFallenEmpire.ArmedShuttleIncoming</thingClass>
|
||||
<graphicData>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<texPath>Things/Building/PassengerShuttle/PassengerShuttle</texPath>
|
||||
<texPath>Wula/Building/WULA_ArmedShuttle</texPath>
|
||||
<shaderType>CutoutComplex</shaderType>
|
||||
<drawSize>(3,5)</drawSize>
|
||||
<drawSize>(4,4)</drawSize>
|
||||
</graphicData>
|
||||
<size>(3,5)</size>
|
||||
<size>(4,4)</size>
|
||||
<skyfaller>
|
||||
<anticipationSound>Shuttle_Landing</anticipationSound>
|
||||
<anticipationSoundTicks>250</anticipationSoundTicks>
|
||||
@@ -200,11 +454,11 @@
|
||||
<rotatable>true</rotatable>
|
||||
<graphicData>
|
||||
<graphicClass>Graphic_Multi</graphicClass>
|
||||
<texPath>Things/Building/PassengerShuttle/PassengerShuttle</texPath>
|
||||
<texPath>Wula/Building/WULA_ArmedShuttle</texPath>
|
||||
<shaderType>CutoutComplex</shaderType>
|
||||
<drawSize>(3,5)</drawSize>
|
||||
<drawSize>(4,4)</drawSize>
|
||||
</graphicData>
|
||||
<size>(3,5)</size>
|
||||
<size>(4,4)</size>
|
||||
<skyfaller>
|
||||
<reversed>true</reversed>
|
||||
<anticipationSound>Shuttle_Leaving</anticipationSound>
|
||||
@@ -245,4 +499,5 @@
|
||||
<worldObject>PassengerShuttle</worldObject>
|
||||
<playerShuttle>true</playerShuttle>
|
||||
</TransportShipDef>
|
||||
|
||||
</Defs>
|
||||
@@ -1712,6 +1712,100 @@
|
||||
</comps>
|
||||
</HediffDef>-->
|
||||
|
||||
<ThingDef ParentName="BaseHumanMakeableGun">
|
||||
<defName>WULA_RW_Plasma_Homing_AR</defName>
|
||||
<label>PMr-88"三叶"</label>
|
||||
<description>乌拉帝国的旧式多用途突击步枪,搭载了一套用于发射等离子体的谐振器,可以射出高精度的等离子体,这种改型可以发射制导等离子体。</description>
|
||||
<techLevel>Spacer</techLevel>
|
||||
<graphicData>
|
||||
<texPath>Wula/Weapon/WULA_RW_Plasma_AR</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<drawSize>1.4</drawSize>
|
||||
</graphicData>
|
||||
<generateCommonality>1</generateCommonality>
|
||||
<soundInteract>Interact_Rifle</soundInteract>
|
||||
<weaponClasses>
|
||||
<li>LongShots</li>
|
||||
<li>RangedHeavy</li>
|
||||
</weaponClasses>
|
||||
<recipeMaker>
|
||||
<recipeUsers Inherit="False">
|
||||
<li>WULA_Cube_Productor_BIO</li>
|
||||
<li>WULA_Cube_Productor_Energy</li>
|
||||
</recipeUsers>
|
||||
<researchPrerequisite>WULA_Synth_Weapon_Technology</researchPrerequisite>
|
||||
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
|
||||
</recipeMaker>
|
||||
<statBases>
|
||||
<WorkToMake>1500</WorkToMake>
|
||||
<Mass>3.0</Mass>
|
||||
<AccuracyTouch>0.6</AccuracyTouch>
|
||||
<AccuracyShort>0.75</AccuracyShort>
|
||||
<AccuracyMedium>0.85</AccuracyMedium>
|
||||
<AccuracyLong>0.8</AccuracyLong>
|
||||
<RangedWeapon_Cooldown>1.2</RangedWeapon_Cooldown>
|
||||
</statBases>
|
||||
<costList Inherit="False">
|
||||
<Steel>100</Steel>
|
||||
<ComponentIndustrial>5</ComponentIndustrial>
|
||||
<Plasteel>20</Plasteel>
|
||||
</costList>
|
||||
<verbs>
|
||||
<li>
|
||||
<verbClass>WulaFallenEmpire.Verb_ShootShotgun</verbClass>
|
||||
<hasStandardCommand>true</hasStandardCommand>
|
||||
<defaultProjectile>Bullet_WULA_RW_Plasma_Homing_AR</defaultProjectile>
|
||||
<warmupTime>2.0</warmupTime>
|
||||
<range>28</range>
|
||||
<burstShotCount>3</burstShotCount>
|
||||
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
|
||||
<soundCast>Shot_BeamRepeater</soundCast>
|
||||
<soundCastTail>GunTail_Medium</soundCastTail>
|
||||
<muzzleFlashScale>9</muzzleFlashScale>
|
||||
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
|
||||
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
|
||||
</li>
|
||||
</verbs>
|
||||
<weaponTags>
|
||||
<li>Wula_Weapon_Init</li>
|
||||
<li>HomingWeapon</li>
|
||||
</weaponTags>
|
||||
<thingSetMakerTags>
|
||||
<li>RewardStandardQualitySuper</li>
|
||||
</thingSetMakerTags>
|
||||
</ThingDef>
|
||||
<ThingDef ParentName="BaseBullet">
|
||||
<defName>Bullet_WULA_RW_Plasma_Homing_AR</defName>
|
||||
<label>磷叶等离子体射弹</label>
|
||||
<graphicData>
|
||||
<texPath>Wula/Projectile/WULA_Bullet_Plasma</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<color>(61,199,157,202)</color>
|
||||
<drawSize>(0.75,1)</drawSize>
|
||||
</graphicData>
|
||||
<projectile>
|
||||
<damageDef>Bullet</damageDef>
|
||||
<damageAmountBase>16</damageAmountBase>
|
||||
<armorPenetrationBase>0.75</armorPenetrationBase>
|
||||
<speed>30</speed>
|
||||
</projectile>
|
||||
<thingClass>WulaFallenEmpire.Projectile_TrackingBullet</thingClass>
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.TrackingBulletDef">
|
||||
<homingSpeed>0.1</homingSpeed>
|
||||
<initRotateAngle>30</initRotateAngle>
|
||||
<destroyTicksAfterLosingTrack>
|
||||
<min>60</min>
|
||||
<max>120</max>
|
||||
</destroyTicksAfterLosingTrack>
|
||||
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.ShotgunExtension">
|
||||
<pelletCount>2</pelletCount>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</ThingDef>
|
||||
|
||||
<!-- 萨克森装备 -->
|
||||
<ThingDef ParentName="BaseGun">
|
||||
<defName>WULA_WM_Panzer_Turret</defName>
|
||||
|
||||
@@ -1,177 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Defs>
|
||||
<ThingDef ParentName="BaseHumanMakeableGun">
|
||||
<defName>WULA_RW_Plasma_Homing_AR</defName>
|
||||
<label>PMr-88"三叶"</label>
|
||||
<description>乌拉帝国的旧式多用途突击步枪,搭载了一套用于发射等离子体的谐振器,可以射出高精度的等离子体,这种改型可以发射制导等离子体。</description>
|
||||
<techLevel>Spacer</techLevel>
|
||||
<graphicData>
|
||||
<texPath>Wula/Weapon/WULA_RW_Plasma_AR</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<drawSize>1.4</drawSize>
|
||||
</graphicData>
|
||||
<generateCommonality>1</generateCommonality>
|
||||
<soundInteract>Interact_Rifle</soundInteract>
|
||||
<weaponClasses>
|
||||
<li>LongShots</li>
|
||||
<li>RangedHeavy</li>
|
||||
</weaponClasses>
|
||||
<recipeMaker>
|
||||
<recipeUsers Inherit="False">
|
||||
<li>WULA_Cube_Productor_BIO</li>
|
||||
<li>WULA_Cube_Productor_Energy</li>
|
||||
</recipeUsers>
|
||||
<researchPrerequisite>WULA_Synth_Weapon_Technology</researchPrerequisite>
|
||||
<unfinishedThingDef>UnfinishedWeapon</unfinishedThingDef>
|
||||
</recipeMaker>
|
||||
<statBases>
|
||||
<WorkToMake>1500</WorkToMake>
|
||||
<Mass>3.0</Mass>
|
||||
<AccuracyTouch>0.6</AccuracyTouch>
|
||||
<AccuracyShort>0.75</AccuracyShort>
|
||||
<AccuracyMedium>0.85</AccuracyMedium>
|
||||
<AccuracyLong>0.8</AccuracyLong>
|
||||
<RangedWeapon_Cooldown>1.2</RangedWeapon_Cooldown>
|
||||
</statBases>
|
||||
<costList Inherit="False">
|
||||
<Steel>100</Steel>
|
||||
<ComponentIndustrial>5</ComponentIndustrial>
|
||||
<Plasteel>20</Plasteel>
|
||||
</costList>
|
||||
<verbs>
|
||||
<li>
|
||||
<verbClass>WulaFallenEmpire.Verb_ShootShotgun</verbClass>
|
||||
<hasStandardCommand>true</hasStandardCommand>
|
||||
<defaultProjectile>Bullet_WULA_RW_Plasma_Homing_AR</defaultProjectile>
|
||||
<warmupTime>2.0</warmupTime>
|
||||
<range>28</range>
|
||||
<burstShotCount>3</burstShotCount>
|
||||
<ticksBetweenBurstShots>12</ticksBetweenBurstShots>
|
||||
<soundCast>Shot_BeamRepeater</soundCast>
|
||||
<soundCastTail>GunTail_Medium</soundCastTail>
|
||||
<muzzleFlashScale>9</muzzleFlashScale>
|
||||
<aimingChargeMote>Mote_BeamRepeater_Charge</aimingChargeMote>
|
||||
<aimingChargeMoteOffset>1.07</aimingChargeMoteOffset>
|
||||
</li>
|
||||
</verbs>
|
||||
<weaponTags>
|
||||
<li>Wula_Weapon_Init</li>
|
||||
<li>HomingWeapon</li>
|
||||
</weaponTags>
|
||||
<thingSetMakerTags>
|
||||
<li>RewardStandardQualitySuper</li>
|
||||
</thingSetMakerTags>
|
||||
</ThingDef>
|
||||
<ThingDef ParentName="BaseBullet">
|
||||
<defName>Bullet_WULA_RW_Plasma_Homing_AR</defName>
|
||||
<label>磷叶等离子体射弹</label>
|
||||
<graphicData>
|
||||
<texPath>Wula/Projectile/WULA_Bullet_Plasma</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<color>(61,199,157,202)</color>
|
||||
<drawSize>(0.75,1)</drawSize>
|
||||
</graphicData>
|
||||
<projectile>
|
||||
<damageDef>Bullet</damageDef>
|
||||
<damageAmountBase>16</damageAmountBase>
|
||||
<armorPenetrationBase>0.75</armorPenetrationBase>
|
||||
<speed>30</speed>
|
||||
</projectile>
|
||||
<thingClass>WulaFallenEmpire.Projectile_TrackingBullet</thingClass>
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.TrackingBulletDef">
|
||||
<homingSpeed>0.1</homingSpeed>
|
||||
<initRotateAngle>30</initRotateAngle>
|
||||
<destroyTicksAfterLosingTrack>
|
||||
<min>60</min>
|
||||
<max>120</max>
|
||||
</destroyTicksAfterLosingTrack>
|
||||
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.ShotgunExtension">
|
||||
<pelletCount>2</pelletCount>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</ThingDef>
|
||||
<ThingDef ParentName="BaseHumanMakeableGun">
|
||||
<defName>WULA_RW_Plasma_HomingExplosive_Old</defName>
|
||||
<label>PMe-92"磷灰"</label>
|
||||
<description>搭载于SNm-6"狼蛛"机甲的高能等离子武器,会发射一连串密集且携带跟踪性能的等离子射弹,引起熔融爆炸并毁灭敌军。</description>
|
||||
<techLevel>Spacer</techLevel>
|
||||
<graphicData>
|
||||
<texPath>Wula/Weapon/WULA_WM_Alpha_Wolf_Plasma_Gun</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<drawSize>1.4</drawSize>
|
||||
</graphicData>
|
||||
<generateCommonality>0.8</generateCommonality>
|
||||
<soundInteract>Interact_ChargeRifle</soundInteract> <!-- Placeholder, needs a proper sound -->
|
||||
<recipeMaker Inherit="False"/>
|
||||
<statBases>
|
||||
<WorkToMake>2000</WorkToMake>
|
||||
<Mass>5.0</Mass>
|
||||
<AccuracyTouch>0.4</AccuracyTouch>
|
||||
<AccuracyShort>0.6</AccuracyShort>
|
||||
<AccuracyMedium>0.7</AccuracyMedium>
|
||||
<AccuracyLong>0.65</AccuracyLong>
|
||||
<RangedWeapon_Cooldown>3.0</RangedWeapon_Cooldown>
|
||||
</statBases>
|
||||
<costList Inherit="False">
|
||||
<Steel>150</Steel>
|
||||
<ComponentIndustrial>8</ComponentIndustrial>
|
||||
<Plasteel>30</Plasteel>
|
||||
<Uranium>10</Uranium>
|
||||
</costList>
|
||||
<verbs>
|
||||
<li>
|
||||
<verbClass>Verb_Shoot</verbClass>
|
||||
<hasStandardCommand>true</hasStandardCommand>
|
||||
<defaultProjectile>Bullet_WULA_RW_Plasma_HomingExplosive_Old</defaultProjectile>
|
||||
<warmupTime>1.25</warmupTime>
|
||||
<range>48</range>
|
||||
<burstShotCount>6</burstShotCount>
|
||||
<ticksBetweenBurstShots>3</ticksBetweenBurstShots>
|
||||
<soundCast>ChargeLance_Fire</soundCast>
|
||||
<soundCastTail>GunTail_Medium</soundCastTail>
|
||||
<muzzleFlashScale>7</muzzleFlashScale>
|
||||
</li>
|
||||
</verbs>
|
||||
<weaponTags>
|
||||
<!-- <li>WULA_WM_Alpha_Wolf_Plasma_Gun</li> -->
|
||||
</weaponTags>
|
||||
</ThingDef>
|
||||
<ThingDef ParentName="BaseBullet">
|
||||
<defName>Bullet_WULA_RW_Plasma_HomingExplosive_Old</defName>
|
||||
<label>磷灰等离子体爆弹</label>
|
||||
<graphicData>
|
||||
<texPath>Wula/Projectile/WULA_Bullet_Plasma</texPath>
|
||||
<graphicClass>Graphic_Single</graphicClass>
|
||||
<shaderType>MoteGlow</shaderType>
|
||||
<color>(61,199,157,202)</color>
|
||||
<drawSize>(1.5,2)</drawSize>
|
||||
</graphicData>
|
||||
<thingClass>WulaFallenEmpire.Projectile_ExplosiveTrackingBullet</thingClass>
|
||||
<projectile>
|
||||
<speed>30</speed>
|
||||
<damageDef>Damage_WULA_Plasma_Explosive</damageDef>
|
||||
<damageAmountBase>10</damageAmountBase>
|
||||
<armorPenetrationBase>0.7</armorPenetrationBase>
|
||||
<stoppingPower>2.0</stoppingPower>
|
||||
</projectile>
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.ExplosiveTrackingBulletDef">
|
||||
<explosionRadius>2.5</explosionRadius>
|
||||
<damageDef>Damage_WULA_Plasma_Explosive</damageDef>
|
||||
</li>
|
||||
<li Class="WulaFallenEmpire.TrackingBulletDef">
|
||||
<homingSpeed>0.25</homingSpeed>
|
||||
<initRotateAngle>90</initRotateAngle>
|
||||
<destroyTicksAfterLosingTrack>
|
||||
<min>60</min>
|
||||
<max>120</max>
|
||||
</destroyTicksAfterLosingTrack>
|
||||
<tailFleckDef>WULA_GunTail_Plasma</tailFleckDef>
|
||||
<impactThreshold>1</impactThreshold>
|
||||
</li>
|
||||
</modExtensions>
|
||||
</ThingDef>
|
||||
</Defs>
|
||||
@@ -1,109 +0,0 @@
|
||||
# 武装口袋穿梭机 (Armed Pocket Shuttle) - 设计文档
|
||||
|
||||
## 1. 项目概述
|
||||
|
||||
**目标**:重新设计并实现一个《边缘世界》(RimWorld) 的Mod,引入一种具备武装能力和内部“口袋空间”的特殊穿梭机。该穿梭机将解决现有实现中存在的顽固bug,并提供更稳定、更灵活的游戏体验。
|
||||
|
||||
**核心问题**:现有 `Building_ArmedShuttleWithPocket.cs` 的实现尝试过度模仿原版 `MapPortal` 的内部机制,导致代码复杂且难以调试和维护,最终陷入无法修复的bug。
|
||||
|
||||
**解决方案理念**:
|
||||
* **放弃现有问题代码**:彻底废弃当前 `Building_ArmedShuttleWithPocket.cs` 中导致bug的复杂逻辑。
|
||||
* **回归原版基础**:以 `Building_PassengerShuttle` 为基类,利用其成熟的运输和组件系统。
|
||||
* **组合与委托**:通过组合而非直接继承或深度模仿的方式,将 `MapPortal` 的概念融入到新穿梭机中,实现口袋空间功能。
|
||||
* **职责分离**:明确区分穿梭机本体(武装、飞行、外部运输)和口袋空间(内部地图、内部传送)的职责。
|
||||
|
||||
## 2. 核心设计思路
|
||||
|
||||
### 2.1 穿梭机本体 (`Building_ArmedShuttleWithPocket` - 新版)
|
||||
|
||||
* **继承**: `Building_ArmedShuttleWithPocket` 将继承 `Building_ArmedShuttle`,从而自然继承了武装能力和 `Building_PassengerShuttle` 的所有基础功能,包括 `CompTransporter` 和 `CompShuttle` 组件。
|
||||
* **唯一容器**: 穿梭机自身的 `CompTransporter` 将是唯一且权威的物品和人员容器。所有装载操作都将首先将物品和人员放入这个 `CompTransporter` 的 `innerContainer`。
|
||||
* **武装能力**:通过继承 `Building_ArmedShuttle`,穿梭机将保留其炮塔和攻击逻辑。
|
||||
|
||||
### 2.2 口袋空间实现
|
||||
|
||||
口袋空间将是一个独立生成的 `Map` 实例,通过 `PocketMapUtility` 进行管理。
|
||||
|
||||
* **内部地图 (`pocketMap`)**: `Building_ArmedShuttleWithPocket` 将持有一个 `Map` 类型的私有字段 `pocketMap`,代表内部空间。
|
||||
* **地图生成**:
|
||||
* 口袋地图的生成将通过 `CreatePocketMap()` 方法触发,该方法会调用 `PocketMapUtility.GeneratePocketMap()`。
|
||||
* 地图的尺寸 (`pocketMapSize`)、生成器 (`mapGenerator`) 和出口定义 (`exitDef`) 将通过 `PocketMapProperties` (`DefModExtension`) 从XML配置中获取。
|
||||
* 生成后,会在口袋地图的特定位置放置一个 `Building_PocketMapExit` 实例,作为进出内部空间的唯一通道。
|
||||
* **人员/物品进出**:
|
||||
* **从主地图进入口袋空间**:
|
||||
* 人员:通过 `EnterPocketSpace(IEnumerable<Pawn> pawns)` 方法,将选定的小人从主地图传送到口袋地图的指定位置(例如出口附近)。
|
||||
* 物品:物品将首先通过穿梭机的 `CompTransporter` 装载。
|
||||
* **从口袋空间返回主地图**: 通过 `Building_PocketMapExit` 来实现,它将负责将口袋空间内的物品和人员传送到主地图的穿梭机位置。
|
||||
* **内部物品管理**: 口袋地图内的物品将直接作为地图上的 `Thing` 存在,而不是由穿梭机本体的 `CompTransporter` 直接管理。当穿梭机被销毁时,口袋地图内的所有物品和人员将被安全地转移回主地图的穿梭机位置。
|
||||
|
||||
### 2.3 装载机制 (`GetGizmos` 重构)
|
||||
|
||||
`Building_ArmedShuttleWithPocket` 的 `GetGizmos()` 方法将被重写,以提供清晰且功能分离的装载选项:
|
||||
|
||||
1. **“装载至货仓” (WULA.LoadIntoCargo)**:
|
||||
* **功能**: 模拟原版穿梭机的装载行为。玩家选择人员和物品后,殖民者会将它们搬运到穿梭机,并存放到穿梭机自身的 `this.TransporterComp.innerContainer` 中。
|
||||
* **实现**: 调用 `this.TransporterComp` 提供的标准装载对话框和逻辑。
|
||||
|
||||
2. **“装载并传送入内” (WULA.LoadAndTeleport)**:
|
||||
* **功能**: 玩家选择人员和物品,殖民者将其搬运到穿梭机并存放到 `this.TransporterComp.innerContainer`。**一旦装载完成**(即 `this.TransporterComp.leftToLoad` 为空),系统将自动触发一个内部传送过程,将 `this.TransporterComp.innerContainer` 中的所有物品和人员取出,并直接放置到口袋地图的指定位置。
|
||||
* **实现**:
|
||||
* 通过一个布尔标志 (`doTeleportAfterLoading`) 来标记当前装载操作是否需要进行内部传送。
|
||||
* 在 `Tick()` 方法中监控 `this.TransporterComp.leftToLoad` 的状态。当其变为空且 `doTeleportAfterLoading` 为 `true` 时,调用 `TeleportContentsToPocketDimension()` 方法。
|
||||
* `TeleportContentsToPocketDimension()` 方法将遍历 `this.TransporterComp.innerContainer` 中的所有物品和人员,使用 `Thing.DeSpawn()` 和 `GenPlace.TryPlaceThing()` 将它们移动到 `pocketMap` 的指定位置。
|
||||
* **可见性**: 只有当口袋空间 (`pocketMap`) 已经生成 (`PocketMapExists == true`) 时,此按钮才会在UI中显示。
|
||||
|
||||
## 3. 关键组件/类 (`WulaFallenEmpire` 命名空间)
|
||||
|
||||
* **`Building_ArmedShuttleWithPocket.cs` (主类)**:
|
||||
* 继承 `Building_ArmedShuttle`。
|
||||
* 私有字段 `pocketMap` (类型 `Map`)。
|
||||
* 布尔标志 `pocketMapGenerated`。
|
||||
* `MapGeneratorDef mapGenerator` 和 `ThingDef exitDef` 用于XML配置。
|
||||
* `public Building_PocketMapExit exit` 引用口袋出口。
|
||||
* 布尔标志 `doTeleportAfterLoading` 和 `wasLoading` 用于控制传送逻辑。
|
||||
* 属性 `PocketMap`, `PocketMapExists`, `PocketMapGenerated`。
|
||||
* 重写 `ExposeData()` 进行持久化。
|
||||
* 重写 `DeSpawn()` 清理口袋地图。
|
||||
* 重写 `Tick()` 监控装载状态并触发传送。
|
||||
* 重写 `GetInspectString()` 提供状态信息。
|
||||
* 重写 `GetGizmos()` 提供自定义Gizmo。
|
||||
* 方法 `CreateLoadGizmo(bool teleport)` 生成装载按钮。
|
||||
* 方法 `TeleportContentsToPocketDimension()` 执行内部传送。
|
||||
* 方法 `EnterPocketSpace(IEnumerable<Pawn> pawns)` 将人员传送到口袋空间。
|
||||
* 方法 `SwitchToPocketSpace()` 切换视角。
|
||||
* 方法 `CreatePocketMap()` 生成口袋地图。
|
||||
* 方法 `GeneratePocketMapInt()` (受保护虚方法,可重写)。
|
||||
* 方法 `GetExtraGenSteps()` (受保护虚方法,可重写)。
|
||||
* 方法 `PlaceExitInPocketMap()` 在口袋地图中放置出口。
|
||||
* 方法 `TransferPawnToPocketSpace(Pawn pawn)` 将单个小人传送到口袋空间。
|
||||
* 方法 `TransferAllFromPocketToMainMap()` 在销毁时将口袋内容传回主地图。
|
||||
* 实现 `IThingHolder` 接口:`GetChildHolders()` (将 `this.TransporterComp` 添加为子容器) 和 `GetDirectlyHeldThings()` (返回一个空的 `ThingOwner` 实例)。
|
||||
* `UpdateExitPointTarget()` 更新出口目标位置。
|
||||
* 重写 `SpawnSetup()` 初始化组件和属性。
|
||||
|
||||
* **`Building_PocketMapExit.cs` (现有)**:
|
||||
* 作为口袋空间的出口,负责将内部人员和物品传回主地图。
|
||||
|
||||
* **`PocketMapProperties.cs` (现有)**:
|
||||
* `DefModExtension` 类,用于在XML中配置口袋地图的尺寸 (`pocketMapSize`)、地图生成器 (`mapGenerator`) 和出口建筑定义 (`exitDef`)。
|
||||
|
||||
## 4. XML 定义 (`1.6/1.6/Defs/ThingDefs_Buildings/Building_WULA_ArmedShuttleWithPocket.xml`)
|
||||
|
||||
* `ThingDef` 定义 `WULA_ArmedShuttleWithPocket`。
|
||||
* `modExtensions` 中包含 `PocketMapProperties`:
|
||||
```xml
|
||||
<modExtensions>
|
||||
<li Class="WulaFallenEmpire.PocketMapProperties">
|
||||
<mapGenerator>WULA_PocketSpace_Small</mapGenerator> <!-- 使用正确的标签名 -->
|
||||
<exitDef>WULA_PocketMapExit</exitDef>
|
||||
<pocketMapSize>(13, 13)</pocketMapSize>
|
||||
</li>
|
||||
</modExtensions>
|
||||
```
|
||||
|
||||
## 5. 预期结果
|
||||
|
||||
* 一个功能稳定、没有运行时崩溃的武装口袋穿梭机。
|
||||
* 清晰的UI和交互流程,允许玩家选择不同的装载模式。
|
||||
* 口袋空间能够正确生成、管理和销毁,内部物品和人员能够安全进出。
|
||||
* 代码结构更清晰,易于理解和未来的维护。
|
||||
@@ -3,9 +3,6 @@
|
||||
{
|
||||
"name": "3516260226",
|
||||
"path": "../.."
|
||||
},
|
||||
{
|
||||
"path": "../../../../../../workshop/content/294100/3551234893/1.6/Assemblies/ShelterShuttle"
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
|
||||
Reference in New Issue
Block a user