From 2eaff0b8da09ee60364203d399d61b39a9d66d7a Mon Sep 17 00:00:00 2001 From: Platinum Date: Mon, 20 Apr 2020 12:01:31 -0700 Subject: [PATCH] New animation: Cowgirl Better checks for initiators/aggressors --- 1.1/Assemblies/Rimworld-Animations.dll | Bin 37888 -> 38912 bytes Defs/AnimationDefs/Animations_Beast.xml | 1 + Defs/AnimationDefs/Animations_Lesbian.xml | 1 + Defs/AnimationDefs/Animations_Multi.xml | 2 + Defs/AnimationDefs/Animations_vanilla.xml | 574 +++++++++++++++++- Source/Actors/Actor.cs | 2 +- Source/AnimationUtility.cs | 46 +- ...HarmonyPatch_JobDriver_SexBaseInitiator.cs | 2 + 8 files changed, 620 insertions(+), 8 deletions(-) diff --git a/1.1/Assemblies/Rimworld-Animations.dll b/1.1/Assemblies/Rimworld-Animations.dll index 122c5452b4c34e6e77e26f5fd1674238c12f1d9d..9aa60b5636149e18b93d4ad9bf6eef5d07c4fd6c 100644 GIT binary patch delta 12772 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 true + true diff --git a/Defs/AnimationDefs/Animations_Lesbian.xml b/Defs/AnimationDefs/Animations_Lesbian.xml index 5b891ed..4ca9c9c 100644 --- a/Defs/AnimationDefs/Animations_Lesbian.xml +++ b/Defs/AnimationDefs/Animations_Lesbian.xml @@ -13,6 +13,7 @@
  • Human
  • true + true
  • Vagina
  • diff --git a/Defs/AnimationDefs/Animations_Multi.xml b/Defs/AnimationDefs/Animations_Multi.xml index d483d10..325e36c 100644 --- a/Defs/AnimationDefs/Animations_Multi.xml +++ b/Defs/AnimationDefs/Animations_Multi.xml @@ -19,12 +19,14 @@
  • Human
  • true + true
  • Human
  • true + true diff --git a/Defs/AnimationDefs/Animations_vanilla.xml b/Defs/AnimationDefs/Animations_vanilla.xml index 24f8253..6375282 100644 --- a/Defs/AnimationDefs/Animations_vanilla.xml +++ b/Defs/AnimationDefs/Animations_vanilla.xml @@ -22,6 +22,7 @@
  • Human
  • true + true @@ -463,12 +464,14 @@
  • Human
  • + true
  • Human
  • true + true @@ -852,7 +855,7 @@ ReverseStandAndCarry - + true
  • Anal
  • @@ -870,6 +873,7 @@
  • Human
  • + true true @@ -1950,6 +1954,574 @@
    + + Cowgirl + + true + +
  • Anal
  • +
  • Vaginal
  • +
    + +
  • + + +
  • Human
  • + + true + true + +
  • + +
  • Human
  • + + true + +
    + + +
  • + Slow_Fuck + true + 1340 + 0 + +
  • + + +
  • + 16 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 17 + 3.5 + 0 + -0.03 + 0.624 + 2 + 2 + -0.02 +
  • +
  • + 16 + 0 + 0 + 0 + 0.694 + 2 + 2 + -0.03 +
  • +
  • + 17 + -3.5 + 0 + 0.03 + 0.624 + 2 + 2 + -0.02 +
  • +
  • + 1 + Fuck + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • + +
  • + 16 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 17 + 3.5 + 0 + -0.03 + 0.624 + 2 + 2 + -0.02 +
  • +
  • + 16 + 0 + 0 + 0 + 0.694 + 2 + 2 + -0.03 +
  • +
  • + 17 + -3.5 + 0 + 0.03 + 0.624 + 2 + 2 + -0.02 +
  • +
  • + 1 + Fuck + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • + + +
  • + 33 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 33 + 0 + 0 + 0 + 0.694 + 2 + 2 + -0.03 +
  • +
  • + 1 + Fuck + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • + +
  • + 33 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 33 + 0 + 0 + 0 + 0.694 + 2 + 2 + -0.03 +
  • +
  • + 1 + Fuck + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • + + +
  • + LayingPawn + +
  • + 33 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • +
  • + 33 + 180 + 180 + 0 + -0.213 + 2 + 2 + 0.045 +
  • +
  • + 1 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • + + + + +
  • + Fast_Fuck + true + 780 + 0 + +
  • + +
  • + 13 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 13 + 0 + 0 + 0 + 0.694 + 2 + 2 + -0.03 +
  • +
  • + 1 + Fuck + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • + + +
  • + LayingPawn + +
  • + 13 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • +
  • + 13 + 180 + 180 + 0 + -0.213 + 2 + 2 + 0.045 +
  • +
  • + 1 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • + + + + +
  • + Cum + true + 594 + 0 + +
  • + +
  • + 10 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 10 + 0 + 0 + 0 + 0.694 + 2 + 2 + -0.03 +
  • +
  • + 1 + Fuck + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • + +
  • + 10 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 10 + 0 + 0 + 0 + 0.694 + 2 + 2 + -0.03 +
  • +
  • + 1 + Fuck + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • + +
  • + 10 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 10 + 0 + 0 + 0 + 0.694 + 2 + 2 + -0.03 +
  • +
  • + 45 + Cum + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • +
  • + 40 + 0 + 0 + 0 + 0.534 + 2 + 2 + 0 +
  • +
  • + 1 + 0 + 0 + 0 + 0.554 + 2 + 2 + 0 +
  • + + +
  • + LayingPawn + +
  • + 10 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • +
  • + 10 + 180 + 180 + 0 + -0.213 + 2 + 2 + 0.045 +
  • +
  • + 1 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • + +
  • + 10 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • +
  • + 10 + 180 + 180 + 0 + -0.213 + 2 + 2 + 0.045 +
  • +
  • + 1 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • + +
  • + 10 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • +
  • + 10 + 180 + 180 + 0 + -0.213 + 2 + 2 + 0.045 +
  • +
  • + 45 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • +
  • + 40 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • +
  • + 1 + 180 + 180 + 0 + -0.263 + 2 + 2 + 0 +
  • + + + + +
    + +
    + diff --git a/Source/Actors/Actor.cs b/Source/Actors/Actor.cs index 953342f..5ab1736 100644 --- a/Source/Actors/Actor.cs +++ b/Source/Actors/Actor.cs @@ -10,7 +10,7 @@ namespace Rimworld_Animations { public List defNames; public List requiredGenitals; public List raceOffsets; - public bool activeRole = false; + public bool initiator = false; public string gender; public bool isFucking = false; public bool isFucked = false; diff --git a/Source/AnimationUtility.cs b/Source/AnimationUtility.cs index 1332e11..488fd8b 100644 --- a/Source/AnimationUtility.cs +++ b/Source/AnimationUtility.cs @@ -46,10 +46,11 @@ namespace Rimworld_Animations { if (!x.actors[i].defNames.Contains(localParticipants[i].def.defName)) { if (rjw.RJWSettings.DevMode) { - Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " is not "); + string animInfo = x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " is not "; foreach(String defname in x.actors[i].defNames) { - Log.Message(defname + ", "); + animInfo += defname + ", "; } + Log.Message(animInfo); } return false; @@ -67,9 +68,10 @@ namespace Rimworld_Animations { //TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH /* - if (x.defName != "ReverseStandAndCarry") + if (x.defName != "Cowgirl") return false; - */ + */ + if (x.actors[i].isFucking && !rjw.xxx.can_fuck(localParticipants[i])) { Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " can't fuck"); @@ -83,19 +85,51 @@ namespace Rimworld_Animations { } return true; }); - List optionsWithSexType = options.ToList().FindAll(x => x.sexTypes.Contains(sexType)); + List optionsWithSexTypeAndInitiator = optionsWithSexType.FindAll(x => { + bool initiatorsAlignWithSexType = true; + for (int i = 0; i < x.actors.Count; i++) { + + //if the animation not for initiators, but an initiator is playing it + + if (x.actors[i].initiator && !(localParticipants[i].jobs.curDriver is rjw.JobDriver_SexBaseInitiator)) { + initiatorsAlignWithSexType = false; + } + } + return initiatorsAlignWithSexType; + }); + List optionsWithInitiator = options.ToList().FindAll(x => { + bool initiatorsAlignWithSexType = true; + for (int i = 0; i < x.actors.Count; i++) { + + //if the animation not for initiators, but an initiator is playing it + + if (x.actors[i].initiator && !(localParticipants[i].jobs.curDriver is rjw.JobDriver_SexBaseInitiator)) { + initiatorsAlignWithSexType = false; + } + } + return initiatorsAlignWithSexType; + }); + + + if (optionsWithSexTypeAndInitiator.Any()) { + Log.Message("Selecting animation for rjwSexType " + sexType.ToStringSafe() + " and initiators..."); + return optionsWithSexType.RandomElement(); + } if (optionsWithSexType.Any()) { Log.Message("Selecting animation for rjwSexType " + sexType.ToStringSafe() + "..."); return optionsWithSexType.RandomElement(); } + if(optionsWithInitiator.Any()) { + Log.Message("Selecting animation for initiators..."); + } + if (options != null && options.Any()) { Log.Message("Randomly selecting animation..."); return options.RandomElement(); } - else return null; } diff --git a/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs b/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs index 15611d9..5f19afb 100644 --- a/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs +++ b/Source/Patches/rjwPatches/HarmonyPatch_JobDriver_SexBaseInitiator.cs @@ -41,6 +41,8 @@ namespace Rimworld_Animations { } else if (__instance is JobDriver_Masturbate_Bed) bed = (__instance as JobDriver_Masturbate_Bed).Bed; + else if (__instance is JobDriver_RapeComfortPawn || __instance is JobDriver_Breeding) + bed = (__instance?.Partner?.jobs?.curDriver as JobDriver_Sex)?.pBed; if ((__instance.Target as Pawn)?.jobs?.curDriver is JobDriver_SexBaseReciever) {