存天巢种
This commit is contained in:
Binary file not shown.
@@ -244,6 +244,42 @@
|
|||||||
</projectile>
|
</projectile>
|
||||||
</ThingDef>
|
</ThingDef>
|
||||||
|
|
||||||
|
<AbilityDef>
|
||||||
|
<defName>ARA_BaseRace_Skyhive_Launcher</defName>
|
||||||
|
<label>天巢种喷射巢</label>
|
||||||
|
<description>将三只阿拉克涅天巢种辅虫发射到目标身上,天巢种将附着到敌人身上撕咬,脱落后仍然能继续对敌人展开攻击。</description>
|
||||||
|
<iconPath>UI/Commands/EggSpew</iconPath>
|
||||||
|
<cooldownTicksRange>5000</cooldownTicksRange>
|
||||||
|
<aiCanUse>true</aiCanUse>
|
||||||
|
<displayOrder>300</displayOrder>
|
||||||
|
<displayGizmoWhileUndrafted>true</displayGizmoWhileUndrafted>
|
||||||
|
<disableGizmoWhileUndrafted>false</disableGizmoWhileUndrafted>
|
||||||
|
<warmupStartSound>AcidSpray_Warmup</warmupStartSound>
|
||||||
|
<charges>3</charges>
|
||||||
|
<cooldownPerCharge>true</cooldownPerCharge>
|
||||||
|
<verbProperties>
|
||||||
|
<verbClass>Verb_CastAbility</verbClass>
|
||||||
|
<range>24</range>
|
||||||
|
<warmupTime>1</warmupTime>
|
||||||
|
<soundCast>AcidSpray_Resolve</soundCast>
|
||||||
|
<violent>false</violent>
|
||||||
|
<targetParams>
|
||||||
|
<canTargetPawns>True</canTargetPawns>
|
||||||
|
</targetParams>
|
||||||
|
</verbProperties>
|
||||||
|
<comps>
|
||||||
|
<li Class="ArachnaeSwarm.CompProperties_AbilityLaunchMultiProjectile">
|
||||||
|
<projectileDef>Bullet_ARA_RW_Basic_SkyHive_Gun</projectileDef>
|
||||||
|
<numProjectiles>3</numProjectiles>
|
||||||
|
</li>
|
||||||
|
<li Class="ArachnaeSwarm.CompProperties_AbilityNeedCost">
|
||||||
|
<needDef>Food</needDef>
|
||||||
|
<needCost>0.5</needCost>
|
||||||
|
<failMessage>营养值不足,需要进食</failMessage>
|
||||||
|
</li>
|
||||||
|
</comps>
|
||||||
|
</AbilityDef>
|
||||||
|
|
||||||
<AbilityDef>
|
<AbilityDef>
|
||||||
<defName>ARA_Ability_Possess</defName>
|
<defName>ARA_Ability_Possess</defName>
|
||||||
<label>原虫种突袭寄生</label>
|
<label>原虫种突袭寄生</label>
|
||||||
|
|||||||
@@ -47,12 +47,11 @@
|
|||||||
<DamageDef ParentName="Bite">
|
<DamageDef ParentName="Bite">
|
||||||
<defName>ARA_SkyhiveBite</defName>
|
<defName>ARA_SkyhiveBite</defName>
|
||||||
<label>天巢种撕咬</label>
|
<label>天巢种撕咬</label>
|
||||||
<additionalHediffs>
|
<additionalHediffsThisPart>
|
||||||
<li>
|
<li>
|
||||||
<hediff>ARA_SkyhiveBite</hediff>
|
<hediff>ARA_SkyhiveBite</hediff>
|
||||||
<severityPerDamageDealt>0.1</severityPerDamageDealt>
|
|
||||||
</li>
|
</li>
|
||||||
</additionalHediffs>
|
</additionalHediffsThisPart>
|
||||||
</DamageDef>
|
</DamageDef>
|
||||||
|
|
||||||
</Defs>
|
</Defs>
|
||||||
@@ -88,10 +88,11 @@
|
|||||||
<HediffDef>
|
<HediffDef>
|
||||||
<defName>ARA_SkyhiveBite</defName>
|
<defName>ARA_SkyhiveBite</defName>
|
||||||
<label>天巢种虫族附着</label>
|
<label>天巢种虫族附着</label>
|
||||||
<description>一只可爱的天巢种阿拉克涅虫族咬到了你的身上.这不会有太大问题...对吧?</description>
|
<description>一只可爱的天巢种阿拉克涅虫族咬到了你的身上,虫虫会不停的咬你直到从你身上脱离。这不会有太大问题...对吧?</description>
|
||||||
<!--<tendable>false</tendable> Must be removed via surgery -->
|
<!--<tendable>false</tendable> Must be removed via surgery -->
|
||||||
<displayWound>true</displayWound>
|
<!--<displayWound>true</displayWound>-->
|
||||||
<hediffClass>ArachnaeSwarm.HediffCurseFlame</hediffClass>
|
<hediffClass>ArachnaeSwarm.HediffCurseFlame</hediffClass>
|
||||||
|
<defaultLabelColor>(0.6, 0.4, 0.8)</defaultLabelColor>
|
||||||
<comps>
|
<comps>
|
||||||
<li Class="HediffCompProperties_Disappears">
|
<li Class="HediffCompProperties_Disappears">
|
||||||
<disappearsAfterTicks>1200</disappearsAfterTicks>
|
<disappearsAfterTicks>1200</disappearsAfterTicks>
|
||||||
@@ -99,13 +100,14 @@
|
|||||||
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
<li Class="HediffCompProperties_DisappearsOnDeath"/>
|
||||||
<li Class="ArachnaeSwarm.HediffCompProperties_SpawnPawnOnRemoved">
|
<li Class="ArachnaeSwarm.HediffCompProperties_SpawnPawnOnRemoved">
|
||||||
<pawnKindDef>ArachnaeBase_Race_Skyhive</pawnKindDef>
|
<pawnKindDef>ArachnaeBase_Race_Skyhive</pawnKindDef>
|
||||||
|
<fixedBiologicalAge>0</fixedBiologicalAge>
|
||||||
</li>
|
</li>
|
||||||
</comps>
|
</comps>
|
||||||
<modExtensions>
|
<modExtensions>
|
||||||
<li Class="ArachnaeSwarm.CurseFlameModExt">
|
<li Class="ArachnaeSwarm.CurseFlameModExt">
|
||||||
<damageDefName>Bite</damageDefName>
|
<damageDefName>Bite</damageDefName>
|
||||||
<damageRange>3~5</damageRange>
|
<damageRange>3~5</damageRange>
|
||||||
<damageIntervalTicks>100</damageIntervalTicks>
|
<damageIntervalTicks>300</damageIntervalTicks>
|
||||||
</li>
|
</li>
|
||||||
</modExtensions>
|
</modExtensions>
|
||||||
<stages>
|
<stages>
|
||||||
@@ -113,6 +115,5 @@
|
|||||||
<painOffset>0.05</painOffset>
|
<painOffset>0.05</painOffset>
|
||||||
</li>
|
</li>
|
||||||
</stages>
|
</stages>
|
||||||
<comps />
|
|
||||||
</HediffDef>
|
</HediffDef>
|
||||||
</Defs>
|
</Defs>
|
||||||
@@ -254,6 +254,9 @@
|
|||||||
</categories>
|
</categories>
|
||||||
</li>
|
</li>
|
||||||
</backstoryFiltersOverride>
|
</backstoryFiltersOverride>
|
||||||
|
<abilities>
|
||||||
|
<li>ARA_BaseRace_Skyhive_Launcher</li>
|
||||||
|
</abilities>
|
||||||
<abilities>
|
<abilities>
|
||||||
</abilities>
|
</abilities>
|
||||||
<apparelTags>
|
<apparelTags>
|
||||||
@@ -368,24 +371,25 @@
|
|||||||
<defName>ArachnaeBase_Race_Skyhive</defName>
|
<defName>ArachnaeBase_Race_Skyhive</defName>
|
||||||
<label>阿拉克涅天巢种</label>
|
<label>阿拉克涅天巢种</label>
|
||||||
<race>ArachnaeBase_Race_Skyhive</race>
|
<race>ArachnaeBase_Race_Skyhive</race>
|
||||||
<flyingAnimationFramePathPrefix>Things/Pawn/Animal/Goose/Goose_Flying_</flyingAnimationFramePathPrefix>
|
<flyingAnimationFramePathPrefix>Things/Pawn/Insect/Locust/LocustFlying/Locust_Flying_</flyingAnimationFramePathPrefix>
|
||||||
<flyingAnimationDrawSize>1.35</flyingAnimationDrawSize>
|
<flyingAnimationFrameCount>5</flyingAnimationFrameCount>
|
||||||
<flyingAnimationFrameCount>2</flyingAnimationFrameCount>
|
|
||||||
<flyingAnimationTicksPerFrame>2</flyingAnimationTicksPerFrame>
|
<flyingAnimationTicksPerFrame>2</flyingAnimationTicksPerFrame>
|
||||||
<flyingAnimationInheritColors>false</flyingAnimationInheritColors>
|
<flyingAnimationDrawSize>1</flyingAnimationDrawSize>
|
||||||
|
<flyingAnimationDrawSizeIsMultiplier>false</flyingAnimationDrawSizeIsMultiplier>
|
||||||
|
<flyingAnimationInheritColors>true</flyingAnimationInheritColors>
|
||||||
<lifeStages>
|
<lifeStages>
|
||||||
<li>
|
<li>
|
||||||
<bodyGraphicData>
|
<bodyGraphicData>
|
||||||
<texPath>Things/Pawn/Animal/Spelopede/Spelopede</texPath>
|
<texPath>Things/Pawn/Insect/Locust/Locust</texPath>
|
||||||
<drawSize>1</drawSize>
|
<drawSize>1</drawSize>
|
||||||
<color>(156,148,125)</color>
|
<color>(145,140,109)</color>
|
||||||
<shadowData>
|
<shadowData>
|
||||||
<volume>(0.4, 0.5, 0.37)</volume>
|
<volume>(0.2, 0.3, 0.2)</volume>
|
||||||
<offset>(0,0,-0.15)</offset>
|
<offset>(0,0,0)</offset>
|
||||||
</shadowData>
|
</shadowData>
|
||||||
</bodyGraphicData>
|
</bodyGraphicData>
|
||||||
<dessicatedBodyGraphicData>
|
<dessicatedBodyGraphicData>
|
||||||
<texPath>Things/Pawn/Animal/Spelopede/Dessicated_Spelopede</texPath>
|
<texPath>Things/Pawn/Insect/Locust/Dessicated_Locust</texPath>
|
||||||
<drawSize>1</drawSize>
|
<drawSize>1</drawSize>
|
||||||
</dessicatedBodyGraphicData>
|
</dessicatedBodyGraphicData>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -632,7 +632,7 @@
|
|||||||
<li Class="CompProperties_DrugAddict"/> -->
|
<li Class="CompProperties_DrugAddict"/> -->
|
||||||
</comps>
|
</comps>
|
||||||
</AlienRace.ThingDef_AlienRace>
|
</AlienRace.ThingDef_AlienRace>
|
||||||
<AlienRace.ThingDef_AlienRace Name="ARA_NodeBase_Huge" ParentName="ARA_NodeBase">
|
<AlienRace.ThingDef_AlienRace Name="ARA_NodeBase_Huge" ParentName="ARA_NodeBase" Abstract="True">
|
||||||
<alienRace>
|
<alienRace>
|
||||||
<generalSettings>
|
<generalSettings>
|
||||||
<!-- 各种零件定义 -->
|
<!-- 各种零件定义 -->
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
<hasStandardCommand>true</hasStandardCommand>
|
<hasStandardCommand>true</hasStandardCommand>
|
||||||
<forceNormalTimeSpeed>false</forceNormalTimeSpeed>
|
<forceNormalTimeSpeed>false</forceNormalTimeSpeed>
|
||||||
<warmupTime>1.0</warmupTime>
|
<warmupTime>1.0</warmupTime>
|
||||||
<forcedMissRadius>1</forcedMissRadius>
|
|
||||||
<defaultProjectile>Bullet_ARA_RW_Basic_SkyHive_Gun</defaultProjectile>
|
<defaultProjectile>Bullet_ARA_RW_Basic_SkyHive_Gun</defaultProjectile>
|
||||||
<isMortar>true</isMortar>
|
<isMortar>true</isMortar>
|
||||||
<requireLineOfSight>false</requireLineOfSight>
|
<requireLineOfSight>false</requireLineOfSight>
|
||||||
@@ -64,10 +63,10 @@
|
|||||||
<label>天巢种</label>
|
<label>天巢种</label>
|
||||||
<graphicData>
|
<graphicData>
|
||||||
<graphicClass>Graphic_Single_AgeSecs</graphicClass>
|
<graphicClass>Graphic_Single_AgeSecs</graphicClass>
|
||||||
<texPath>Things/Pawn/Animal/Spelopede/Spelopede_north</texPath>
|
<texPath>Things/Pawn/Insect/Locust/Locust_north</texPath>
|
||||||
<color>(156,148,125)</color>
|
<color>(156,148,125)</color>
|
||||||
<drawSize>(1,1)</drawSize>
|
<drawSize>(1,1)</drawSize>
|
||||||
<shaderType>MoteGlow</shaderType>
|
<shaderType>TransparentPostLight</shaderType>
|
||||||
</graphicData>
|
</graphicData>
|
||||||
<uiIconScale>0.8</uiIconScale>
|
<uiIconScale>0.8</uiIconScale>
|
||||||
<thingClass>ArachnaeSwarm.Projectile_TrackingBullet</thingClass>
|
<thingClass>ArachnaeSwarm.Projectile_TrackingBullet</thingClass>
|
||||||
@@ -75,25 +74,24 @@
|
|||||||
<useGraphicClass>True</useGraphicClass>
|
<useGraphicClass>True</useGraphicClass>
|
||||||
<shadowSize>1</shadowSize>
|
<shadowSize>1</shadowSize>
|
||||||
<damageDef>ARA_SkyhiveBite</damageDef>
|
<damageDef>ARA_SkyhiveBite</damageDef>
|
||||||
<spinRate>20</spinRate>
|
|
||||||
<damageAmountBase>20</damageAmountBase>
|
<damageAmountBase>20</damageAmountBase>
|
||||||
<speed>15</speed>
|
<speed>25</speed>
|
||||||
<arcHeightFactor>1</arcHeightFactor>
|
<arcHeightFactor>1</arcHeightFactor>
|
||||||
<flyOverhead>true</flyOverhead>
|
<flyOverhead>true</flyOverhead>
|
||||||
</projectile>
|
</projectile>
|
||||||
<modExtensions>
|
<modExtensions>
|
||||||
<li Class="ArachnaeSwarm.TrackingBulletDef">
|
<li Class="ArachnaeSwarm.TrackingBulletDef">
|
||||||
<!-- 追踪速度,数值越高,转向越快,追踪能力越强 -->
|
<!-- 追踪速度,数值越高,转向越快,追踪能力越强 -->
|
||||||
<homingSpeed>1.5</homingSpeed>
|
<homingSpeed>0.75</homingSpeed>
|
||||||
|
|
||||||
<!-- 初始发射时的随机散射角度(左右各多少度) -->
|
<!-- 初始发射时的随机散射角度(左右各多少度) -->
|
||||||
<initRotateAngle>15</initRotateAngle>
|
<initRotateAngle>35</initRotateAngle>
|
||||||
|
|
||||||
<!-- 失去目标后多少 Tick 后自毁,可以是一个范围,如 "120~180" -->
|
<!-- 失去目标后多少 Tick 后自毁,可以是一个范围,如 "120~180" -->
|
||||||
<destroyTicksAfterLosingTrack>150</destroyTicksAfterLosingTrack>
|
<destroyTicksAfterLosingTrack>150</destroyTicksAfterLosingTrack>
|
||||||
|
|
||||||
<!-- 子弹离目标多近时就直接判定为命中 -->
|
<!-- 子弹离目标多近时就直接判定为命中 -->
|
||||||
<impactThreshold>0.5</impactThreshold>
|
<impactThreshold>2.1</impactThreshold>
|
||||||
</li>
|
</li>
|
||||||
<li Class="ArachnaeSwarm.ShotgunExtension">
|
<li Class="ArachnaeSwarm.ShotgunExtension">
|
||||||
<pelletCount>3</pelletCount>
|
<pelletCount>3</pelletCount>
|
||||||
|
|||||||
@@ -155,6 +155,10 @@
|
|||||||
<Compile Include="CompProperties_PawnFlight.cs" />
|
<Compile Include="CompProperties_PawnFlight.cs" />
|
||||||
<Compile Include="HarmonyPatches.cs" />
|
<Compile Include="HarmonyPatches.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="CompAbilityEffect_LaunchMultiProjectile.cs" />
|
||||||
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Abilities\CompAbilityEffect_TrackingCharge.cs" />
|
<Compile Include="Abilities\CompAbilityEffect_TrackingCharge.cs" />
|
||||||
<Compile Include="Abilities\CompProperties_TrackingCharge.cs" />
|
<Compile Include="Abilities\CompProperties_TrackingCharge.cs" />
|
||||||
@@ -164,6 +168,19 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="HediffComp_SpawnPawnOnRemoved.cs" />
|
<Compile Include="HediffComp_SpawnPawnOnRemoved.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Projectiles\BulletWithTrail.cs" />
|
||||||
|
<Compile Include="Projectiles\ExplosiveTrackingBulletDef.cs" />
|
||||||
|
<Compile Include="Projectiles\Projectile_ConfigurableHellsphereCannon.cs" />
|
||||||
|
<Compile Include="Projectiles\Projectile_CruiseMissile.cs" />
|
||||||
|
<Compile Include="Projectiles\Projectile_ExplosiveTrackingBullet.cs" />
|
||||||
|
<Compile Include="Projectiles\Projectile_ExplosiveWithTrail.cs" />
|
||||||
|
<Compile Include="Projectiles\Projectile_TrackingBullet.cs" />
|
||||||
|
<Compile Include="Projectiles\Projectile_WulaPenetratingBeam.cs" />
|
||||||
|
<Compile Include="Projectiles\Projectile_WulaPenetratingBullet.cs" />
|
||||||
|
<Compile Include="Projectiles\TrackingBulletDef.cs" />
|
||||||
|
</ItemGroup>
|
||||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
<!-- 自定义清理任务,删除obj文件夹中的临时文件 -->
|
<!-- 自定义清理任务,删除obj文件夹中的临时文件 -->
|
||||||
<Target Name="CleanDebugFiles" AfterTargets="Build">
|
<Target Name="CleanDebugFiles" AfterTargets="Build">
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
using Verse;
|
||||||
|
using RimWorld;
|
||||||
|
|
||||||
|
namespace ArachnaeSwarm
|
||||||
|
{
|
||||||
|
public class CompProperties_AbilityLaunchMultiProjectile : CompProperties_AbilityLaunchProjectile
|
||||||
|
{
|
||||||
|
public int numProjectiles = 1;
|
||||||
|
|
||||||
|
public CompProperties_AbilityLaunchMultiProjectile()
|
||||||
|
{
|
||||||
|
compClass = typeof(CompAbilityEffect_LaunchMultiProjectile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CompAbilityEffect_LaunchMultiProjectile : CompAbilityEffect
|
||||||
|
{
|
||||||
|
public new CompProperties_AbilityLaunchMultiProjectile Props => (CompProperties_AbilityLaunchMultiProjectile)props;
|
||||||
|
|
||||||
|
public override void Apply(LocalTargetInfo target, LocalTargetInfo dest)
|
||||||
|
{
|
||||||
|
base.Apply(target, dest);
|
||||||
|
for (int i = 0; i < Props.numProjectiles; i++)
|
||||||
|
{
|
||||||
|
LaunchProjectile(target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void LaunchProjectile(LocalTargetInfo target)
|
||||||
|
{
|
||||||
|
if (Props.projectileDef != null)
|
||||||
|
{
|
||||||
|
Pawn pawn = parent.pawn;
|
||||||
|
Projectile projectile = (Projectile)GenSpawn.Spawn(Props.projectileDef, pawn.Position, pawn.Map);
|
||||||
|
projectile.Launch(pawn, pawn.DrawPos, target, target, ProjectileHitFlags.IntendedTarget, parent.verb.preventFriendlyFire);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool AICanTargetNow(LocalTargetInfo target)
|
||||||
|
{
|
||||||
|
return target.Pawn != null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,8 @@ namespace ArachnaeSwarm
|
|||||||
public class HediffCompProperties_SpawnPawnOnRemoved : HediffCompProperties
|
public class HediffCompProperties_SpawnPawnOnRemoved : HediffCompProperties
|
||||||
{
|
{
|
||||||
public PawnKindDef pawnKindDef;
|
public PawnKindDef pawnKindDef;
|
||||||
|
public float? fixedBiologicalAge; // 新增用于XML配置的固定生物年龄
|
||||||
|
public FloatRange? biologicalAgeRange; // 新增用于XML配置的生物年龄范围
|
||||||
|
|
||||||
public HediffCompProperties_SpawnPawnOnRemoved()
|
public HediffCompProperties_SpawnPawnOnRemoved()
|
||||||
{
|
{
|
||||||
@@ -61,7 +63,9 @@ namespace ArachnaeSwarm
|
|||||||
faction: this.casterFaction, // Use the stored faction
|
faction: this.casterFaction, // Use the stored faction
|
||||||
context: PawnGenerationContext.NonPlayer,
|
context: PawnGenerationContext.NonPlayer,
|
||||||
tile: -1,
|
tile: -1,
|
||||||
forceGenerateNewPawn: true
|
forceGenerateNewPawn: true,
|
||||||
|
fixedBiologicalAge: Props.fixedBiologicalAge, // 使用XML配置的固定生物年龄
|
||||||
|
biologicalAgeRange: Props.biologicalAgeRange // 使用XML配置的生物年龄范围
|
||||||
));
|
));
|
||||||
|
|
||||||
if (newPawn != null)
|
if (newPawn != null)
|
||||||
|
|||||||
Reference in New Issue
Block a user