diff --git a/1.6/1.6/Assemblies/ArachnaeSwarm.dll b/1.6/1.6/Assemblies/ArachnaeSwarm.dll index 79815bc..f42aa66 100644 Binary files a/1.6/1.6/Assemblies/ArachnaeSwarm.dll and b/1.6/1.6/Assemblies/ArachnaeSwarm.dll differ diff --git a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml index 24df889..d38dff5 100644 --- a/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml +++ b/1.6/1.6/Defs/AbilityDefs/ARA_Abilities.xml @@ -244,6 +244,42 @@ + + ARA_BaseRace_Skyhive_Launcher + + 将三只阿拉克涅天巢种辅虫发射到目标身上,天巢种将附着到敌人身上撕咬,脱落后仍然能继续对敌人展开攻击。 + UI/Commands/EggSpew + 5000 + true + 300 + true + false + AcidSpray_Warmup + 3 + true + + Verb_CastAbility + 24 + 1 + AcidSpray_Resolve + false + + True + + + +
  • + Bullet_ARA_RW_Basic_SkyHive_Gun + 3 +
  • +
  • + Food + 0.5 + 营养值不足,需要进食 +
  • +
    +
    + ARA_Ability_Possess diff --git a/1.6/1.6/Defs/DamageDefs/ARA_Damages.xml b/1.6/1.6/Defs/DamageDefs/ARA_Damages.xml index bc6e200..6d8570e 100644 --- a/1.6/1.6/Defs/DamageDefs/ARA_Damages.xml +++ b/1.6/1.6/Defs/DamageDefs/ARA_Damages.xml @@ -47,12 +47,11 @@ ARA_SkyhiveBite - +
  • ARA_SkyhiveBite - 0.1
  • -
    +
    \ No newline at end of file diff --git a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml index 3daf27a..399a916 100644 --- a/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml +++ b/1.6/1.6/Defs/HediffDefs/ARA_Hediffs_Damage.xml @@ -88,10 +88,11 @@ ARA_SkyhiveBite - 一只可爱的天巢种阿拉克涅虫族咬到了你的身上.这不会有太大问题...对吧? + 一只可爱的天巢种阿拉克涅虫族咬到了你的身上,虫虫会不停的咬你直到从你身上脱离。这不会有太大问题...对吧? - true + ArachnaeSwarm.HediffCurseFlame + (0.6, 0.4, 0.8)
  • 1200 @@ -99,13 +100,14 @@
  • ArachnaeBase_Race_Skyhive + 0
  • Bite 3~5 - 100 + 300
  • @@ -113,6 +115,5 @@ 0.05 -
    \ No newline at end of file diff --git a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml index 24414f2..73160ca 100644 --- a/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml +++ b/1.6/1.6/Defs/PawnKindDef/ARA_PawnKinds.xml @@ -254,6 +254,9 @@ + +
  • ARA_BaseRace_Skyhive_Launcher
  • +
    @@ -368,24 +371,25 @@ ArachnaeBase_Race_Skyhive ArachnaeBase_Race_Skyhive - Things/Pawn/Animal/Goose/Goose_Flying_ - 1.35 - 2 + Things/Pawn/Insect/Locust/LocustFlying/Locust_Flying_ + 5 2 - false + 1 + false + true
  • - Things/Pawn/Animal/Spelopede/Spelopede + Things/Pawn/Insect/Locust/Locust 1 - (156,148,125) + (145,140,109) - (0.4, 0.5, 0.37) - (0,0,-0.15) + (0.2, 0.3, 0.2) + (0,0,0) - Things/Pawn/Animal/Spelopede/Dessicated_Spelopede + Things/Pawn/Insect/Locust/Dessicated_Locust 1
  • diff --git a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml index 78e4552..618ecce 100644 --- a/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml +++ b/1.6/1.6/Defs/ThingDef_Races/ARA_RaceNodeSwarm.xml @@ -632,7 +632,7 @@
  • --> - + diff --git a/1.6/1.6/Defs/Thing_Misc/Weapons/ARA_Weapom_Skyhive.xml b/1.6/1.6/Defs/Thing_Misc/Weapons/ARA_Weapom_Skyhive.xml index 8ad85e8..6d59684 100644 --- a/1.6/1.6/Defs/Thing_Misc/Weapons/ARA_Weapom_Skyhive.xml +++ b/1.6/1.6/Defs/Thing_Misc/Weapons/ARA_Weapom_Skyhive.xml @@ -34,7 +34,6 @@ true false 1.0 - 1 Bullet_ARA_RW_Basic_SkyHive_Gun true false @@ -64,10 +63,10 @@ Graphic_Single_AgeSecs - Things/Pawn/Animal/Spelopede/Spelopede_north + Things/Pawn/Insect/Locust/Locust_north (156,148,125) (1,1) - MoteGlow + TransparentPostLight 0.8 ArachnaeSwarm.Projectile_TrackingBullet @@ -75,25 +74,24 @@ True 1 ARA_SkyhiveBite - 20 20 - 15 + 25 1 true
  • - 1.5 + 0.75 - 15 + 35 150 - 0.5 + 2.1
  • 3 diff --git a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj index 8314a57..469912d 100644 --- a/Source/ArachnaeSwarm/ArachnaeSwarm.csproj +++ b/Source/ArachnaeSwarm/ArachnaeSwarm.csproj @@ -155,6 +155,10 @@ + + + + @@ -164,6 +168,19 @@ + + + + + + + + + + + + + diff --git a/Source/ArachnaeSwarm/CompAbilityEffect_LaunchMultiProjectile.cs b/Source/ArachnaeSwarm/CompAbilityEffect_LaunchMultiProjectile.cs new file mode 100644 index 0000000..40c1746 --- /dev/null +++ b/Source/ArachnaeSwarm/CompAbilityEffect_LaunchMultiProjectile.cs @@ -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; + } + } +} \ No newline at end of file diff --git a/Source/ArachnaeSwarm/HediffComp_SpawnPawnOnRemoved.cs b/Source/ArachnaeSwarm/HediffComp_SpawnPawnOnRemoved.cs index 0cb3171..a29f091 100644 --- a/Source/ArachnaeSwarm/HediffComp_SpawnPawnOnRemoved.cs +++ b/Source/ArachnaeSwarm/HediffComp_SpawnPawnOnRemoved.cs @@ -10,6 +10,8 @@ namespace ArachnaeSwarm public class HediffCompProperties_SpawnPawnOnRemoved : HediffCompProperties { public PawnKindDef pawnKindDef; + public float? fixedBiologicalAge; // 新增用于XML配置的固定生物年龄 + public FloatRange? biologicalAgeRange; // 新增用于XML配置的生物年龄范围 public HediffCompProperties_SpawnPawnOnRemoved() { @@ -61,7 +63,9 @@ namespace ArachnaeSwarm faction: this.casterFaction, // Use the stored faction context: PawnGenerationContext.NonPlayer, tile: -1, - forceGenerateNewPawn: true + forceGenerateNewPawn: true, + fixedBiologicalAge: Props.fixedBiologicalAge, // 使用XML配置的固定生物年龄 + biologicalAgeRange: Props.biologicalAgeRange // 使用XML配置的生物年龄范围 )); if (newPawn != null)