From fead22f28c854e527f8c96bc6ca7d1ef558b82a0 Mon Sep 17 00:00:00 2001 From: Vegapnk Date: Mon, 10 Apr 2023 12:33:05 +0200 Subject: [PATCH] Start of Cocoon Gene, minor fixes to cockeater --- CHANGELOG.md | 12 ++- Common/Defs/AbilityDefs/Ability_CockEater.xml | 5 +- .../Defs/AbilityDefs/Ability_CocoonWeaver.xml | 32 +++++++ Common/Defs/Effects/cocoonweave.xml | 78 +++++++++++++++++ Common/Defs/GeneDefs/GeneCategories.xml | 5 ++ Common/Defs/GeneDefs/GeneDefs_Hive.xml | 22 +++++ Common/Textures/Things/Mote/Cocoon/WeaveA.psd | Bin 0 -> 49361 bytes Common/Textures/Things/Mote/Cocoon/WeaveB.psd | Bin 0 -> 49387 bytes .../CompAbilityEffect_CocoonWeaver.cs | 81 ++++++++++++++++++ .../CompProperties_AbilityCocoonWeaver.cs | 18 ++++ .../Abilities/CompAbilityEffect_CockEater.cs | 4 +- Source/Rjw-Genes.csproj | 2 + 12 files changed, 253 insertions(+), 6 deletions(-) create mode 100644 Common/Defs/AbilityDefs/Ability_CocoonWeaver.xml create mode 100644 Common/Defs/Effects/cocoonweave.xml create mode 100644 Common/Defs/GeneDefs/GeneDefs_Hive.xml create mode 100644 Common/Textures/Things/Mote/Cocoon/WeaveA.psd create mode 100644 Common/Textures/Things/Mote/Cocoon/WeaveB.psd create mode 100644 Source/Genes/Hive/Abilities/CompAbilityEffect_CocoonWeaver.cs create mode 100644 Source/Genes/Hive/Abilities/CompProperties_AbilityCocoonWeaver.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 660c671..9de9d2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,14 @@ -<<<<<<< HEAD +# 1.2 + +Changes: + +- Cocoon Weaver Gene + +Fixes: + +- Cockeater Ability has now Icon of Cockeater Gene +- Cockeater now leaves a bite wound! + # 1.1.4 Fixes: diff --git a/Common/Defs/AbilityDefs/Ability_CockEater.xml b/Common/Defs/AbilityDefs/Ability_CockEater.xml index d333c1d..f74e38c 100644 --- a/Common/Defs/AbilityDefs/Ability_CockEater.xml +++ b/Common/Defs/AbilityDefs/Ability_CockEater.xml @@ -4,7 +4,7 @@ rjw_genes_cockeater Eat the cock of another pawn, restoring fertilin based on the size of the cock. - Things/Mote/Heart + Genes/Icons/cockeater true true false @@ -27,8 +27,7 @@ -
  • -
  • +
  • \ No newline at end of file diff --git a/Common/Defs/AbilityDefs/Ability_CocoonWeaver.xml b/Common/Defs/AbilityDefs/Ability_CocoonWeaver.xml new file mode 100644 index 0000000..ae0858f --- /dev/null +++ b/Common/Defs/AbilityDefs/Ability_CocoonWeaver.xml @@ -0,0 +1,32 @@ + + + + rjw_genes_cocoonweaver + + Weaves the victim into a (self-sustaining) cocoon. The victim cannot move, but can be bred. + Things/Mote/Heart + true + true + false + Mote_CocoonStencil + CocoonWeave + CastAbilityOnThingMelee + 403 + + Verb_CastAbilityTouch + false + -1 + 15 + + true + false + false + false + true + + + +
  • + + + \ No newline at end of file diff --git a/Common/Defs/Effects/cocoonweave.xml b/Common/Defs/Effects/cocoonweave.xml new file mode 100644 index 0000000..78b7963 --- /dev/null +++ b/Common/Defs/Effects/cocoonweave.xml @@ -0,0 +1,78 @@ + + + + + CocoonWeave + +
  • + SubEffecter_SprayerChance + Mote_WeaveA + 1 + 0.05 + 0.25~0.5 + RandomDrawPosOnTarget + true +
  • +
  • + SubEffecter_SprayerChance + Mote_WeaveB + 1 + 0.05 + 0.25~0.5 + RandomDrawPosOnTarget + true +
  • + + + + + MoteAttached + MoteOverhead + + 0.45 + 0.1 + 0.2 + + + Graphic_MoteWithAgeSecs + PawnSilhouetteStencilColorAnimated + (0.65, 0.65) + + <_NumFrames>5 + <_FramesPerSec>7.5 + + + + + + Mote_CocoonStencil + MoteAttached + Terrain + + 0.1 + 0.1 + 999999 + True + + + Graphic_PawnBodySilhouette + PawnSilhouetteStencil + Things/Mote/Transparent + + + + + Mote_WeaveA + + Things/Mote/Cocoon/WeaveA + + + + + Mote_WeaveB + + Things/Mote/Cocoon/WeaveB + + + + \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneCategories.xml b/Common/Defs/GeneDefs/GeneCategories.xml index 06b31cc..8106c8e 100644 --- a/Common/Defs/GeneDefs/GeneCategories.xml +++ b/Common/Defs/GeneDefs/GeneCategories.xml @@ -67,6 +67,11 @@ 8 + + rjw_genes_hive + + 7 + \ No newline at end of file diff --git a/Common/Defs/GeneDefs/GeneDefs_Hive.xml b/Common/Defs/GeneDefs/GeneDefs_Hive.xml new file mode 100644 index 0000000..8b6ab1f --- /dev/null +++ b/Common/Defs/GeneDefs/GeneDefs_Hive.xml @@ -0,0 +1,22 @@ + + + + + rjw_genes_cocoonweaver + + cocooner + Carriers of this gene can produce a cocoon to prepare helpless victims for breeding. + Things/Mote/Heart + 11 + rjw_genes_hive + +
  • rjw_genes_cocoonweaver
  • +
    + + rjw_genes_cocoonweaver + + 1 + -1 +
    + +
    \ No newline at end of file diff --git a/Common/Textures/Things/Mote/Cocoon/WeaveA.psd b/Common/Textures/Things/Mote/Cocoon/WeaveA.psd new file mode 100644 index 0000000000000000000000000000000000000000..2328868c322a330a12d1704e31b2760cc2a74b0c GIT binary patch literal 49361 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 literal 0 HcmV?d00001 diff --git a/Source/Genes/Hive/Abilities/CompAbilityEffect_CocoonWeaver.cs b/Source/Genes/Hive/Abilities/CompAbilityEffect_CocoonWeaver.cs new file mode 100644 index 0000000..af362aa --- /dev/null +++ b/Source/Genes/Hive/Abilities/CompAbilityEffect_CocoonWeaver.cs @@ -0,0 +1,81 @@ +using Verse; +using RimWorld; +using rjw; + +namespace RJW_Genes +{ + /// + /// The CocoonWeaver Ability applies the RJW-Cocoon to a pawn. + /// Friendly Pawns can always be cocooned, neutral and hostile pawns must be downed. + /// + public class CompAbilityEffect_CocoonWeaver : CompAbilityEffect + { + private new CompProperties_AbilityCocoonWeaver Props + { + get + { + return (CompProperties_AbilityCocoonWeaver)this.props; + } + } + + + public override void Apply(LocalTargetInfo target, LocalTargetInfo dest) + { + base.Apply(target, dest); + + Pawn CocooningPawn = this.parent.pawn; + Pawn PawnToCocoon = target.Pawn; + + // Error Case - Null Pawn + if (PawnToCocoon == null) + { + return; + } + + PawnToCocoon.health.AddHediff(HediffDef.Named("RJW_Cocoon")); + + } + + /// + /// For validity, there are a few checks: + /// 0. Target is not already cocooned + /// 1. Target is either Colonist / Prisoner + /// 2. If the Target is an enemy or neutral, it must be downed. + /// + public override bool Valid(LocalTargetInfo target, bool throwMessages = false) + { + Pawn cocoonTarget = target.Pawn; + if (cocoonTarget != null) + { + bool CocoonTargetIsColonistOrPrisoner = cocoonTarget.Faction == this.parent.pawn.Faction || cocoonTarget.IsPrisonerOfColony; + bool CocoonTargetIsHostile = cocoonTarget.HostileTo(this.parent.pawn); + bool CocoonTargetIsDowned = cocoonTarget.Downed; + + if (cocoonTarget.health.hediffSet.hediffs.Any(t => t.def.defName == "RJW_Cocoon")) + { + if (throwMessages) + Messages.Message(cocoonTarget.Name + " is already cocooned.", cocoonTarget, MessageTypeDefOf.RejectInput, false); + return false; + } + + if (!CocoonTargetIsColonistOrPrisoner && !(CocoonTargetIsHostile && CocoonTargetIsDowned)) + { + if (throwMessages) + { + if(CocoonTargetIsHostile && !CocoonTargetIsDowned) + { + Messages.Message(cocoonTarget.Name + " is hostile, but not downed.", cocoonTarget, MessageTypeDefOf.RejectInput, false); + } + else if (!CocoonTargetIsColonistOrPrisoner) + { + Messages.Message(cocoonTarget.Name + " is not a part of the colony or hostile.", cocoonTarget, MessageTypeDefOf.RejectInput, false); + } + } + return false; + } + } + return base.Valid(target, throwMessages); + } + + } +} diff --git a/Source/Genes/Hive/Abilities/CompProperties_AbilityCocoonWeaver.cs b/Source/Genes/Hive/Abilities/CompProperties_AbilityCocoonWeaver.cs new file mode 100644 index 0000000..e73d22d --- /dev/null +++ b/Source/Genes/Hive/Abilities/CompProperties_AbilityCocoonWeaver.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Verse; +using RimWorld; + +namespace RJW_Genes +{ + public class CompProperties_AbilityCocoonWeaver : CompProperties_AbilityEffect + { + public CompProperties_AbilityCocoonWeaver() + { + this.compClass = typeof(CompAbilityEffect_CocoonWeaver); + } + } +} diff --git a/Source/Genes/Life_Force/Abilities/CompAbilityEffect_CockEater.cs b/Source/Genes/Life_Force/Abilities/CompAbilityEffect_CockEater.cs index dc0f0fa..977c77b 100644 --- a/Source/Genes/Life_Force/Abilities/CompAbilityEffect_CockEater.cs +++ b/Source/Genes/Life_Force/Abilities/CompAbilityEffect_CockEater.cs @@ -51,9 +51,9 @@ namespace RJW_Genes } // Increase LifeForce for Biter GeneUtility.OffsetLifeForce(GeneUtility.GetLifeForceGene(CockBiter), gained_lifeforce); - // Handle Damage for Bitten - CockBittenPawn.health.RemoveHediff(part); + CockBittenPawn.TakeDamage(new DamageInfo(DamageDefOf.Bite, 99999f, 999f, hitPart: Genital_Helper.get_genitalsBPR(CockBittenPawn))); + //CockBittenPawn.health.RemoveHediff(part); CockBittenPawn.needs.mood.thoughts.memories.TryGainMemory(ThoughtDefOf.rjw_genes_cock_eaten, CockBittenPawn, null); //Only one penis at the time diff --git a/Source/Rjw-Genes.csproj b/Source/Rjw-Genes.csproj index 29d14d9..dbb4495 100644 --- a/Source/Rjw-Genes.csproj +++ b/Source/Rjw-Genes.csproj @@ -87,6 +87,8 @@ + +