code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
using UnityEngine;
using RimWorld;

namespace Rimworld_Animations {

    public class AnimationSettings : ModSettings {

        public static bool orgasmQuiver, rapeShiver, soundOverride = true, hearts = true, controlGenitalRotation = false, applySemenOnAnimationOrgasm = false, fastAnimForQuickie = false,
            PlayAnimForNonsexualActs = true;
        public static bool offsetTab = false, debugMode = false;
        public static float shiverIntensity = 2f;

        public static Dictionary<string, Vector2> offsets = new Dictionary<string, Vector2>();
        public static Dictionary<string, float> rotation = new Dictionary<string, float>();

        public override void ExposeData() {

            base.ExposeData();

            Scribe_Values.Look(ref debugMode, "RJWAnimations-AnimsDebugMode", false);
            Scribe_Values.Look(ref offsetTab, "RJWAnimations-EnableOffsetTab", false);
            Scribe_Values.Look(ref controlGenitalRotation, "RJWAnimations-controlGenitalRotation", false);
            Scribe_Values.Look(ref orgasmQuiver, "RJWAnimations-orgasmQuiver");
            Scribe_Values.Look(ref fastAnimForQuickie, "RJWAnimations-fastAnimForQuickie");
            Scribe_Values.Look(ref rapeShiver, "RJWAnimations-rapeShiver");
            Scribe_Values.Look(ref hearts, "RJWAnimation-sheartsOnLovin");
            Scribe_Values.Look(ref PlayAnimForNonsexualActs, "RJWAnims-PlayAnimForNonsexualActs");
            Scribe_Values.Look(ref applySemenOnAnimationOrgasm, "RJWAnimations-applySemenOnOrgasm", false);
            Scribe_Values.Look(ref soundOverride, "RJWAnimations-rjwAnimSoundOverride", true);
            Scribe_Values.Look(ref shiverIntensity, "RJWAnimations-shiverIntensity", 2f);
            //todo: save offsetsByDefName

            Scribe_Collections.Look(ref offsets, "RJWAnimations-animationOffsets");
            Scribe_Collections.Look(ref rotation, "RJWAnimations-rotationOffsets");

            //needs to be rewritten
            //probably somewhere in options?

        }

    }

    public class RJW_Animations : Mod {

        public RJW_Animations(ModContentPack content) : base(content) {
            GetSettings<AnimationSettings>();

        }

        public override void DoSettingsWindowContents(Rect inRect) {

            Listing_Standard listingStandard = new Listing_Standard();
            listingStandard.Begin(inRect);

            listingStandard.CheckboxLabeled("Enable Sound Override", ref AnimationSettings.soundOverride);
            listingStandard.CheckboxLabeled("Control Genital Rotation", ref AnimationSettings.controlGenitalRotation);
            listingStandard.CheckboxLabeled("Play Fast Animation for Quickie", ref AnimationSettings.fastAnimForQuickie);
            listingStandard.CheckboxLabeled("Apply Semen on Animation Orgasm", ref AnimationSettings.applySemenOnAnimationOrgasm);

            if(AnimationSettings.applySemenOnAnimationOrgasm) {
                listingStandard.Label("Recommended--turn down \"Cum on body percent\" in RJW settings to about 33%");
            }

            listingStandard.CheckboxLabeled("Enable Orgasm Quiver", ref AnimationSettings.orgasmQuiver);
            listingStandard.CheckboxLabeled("Enable Rape Shiver", ref AnimationSettings.rapeShiver);
            listingStandard.CheckboxLabeled("Enable hearts during lovin'", ref AnimationSettings.hearts);
            listingStandard.CheckboxLabeled("Play animation for nonsexual acts (handholding, makeout)", ref AnimationSettings.PlayAnimForNonsexualActs);
            listingStandard.CheckboxLabeled("Enable Animation Manager Tab", ref AnimationSettings.offsetTab);

            listingStandard.Label("Shiver/Quiver Intensity (default 2): " + AnimationSettings.shiverIntensity);
            AnimationSettings.shiverIntensity = listingStandard.Slider(AnimationSettings.shiverIntensity, 0.0f, 12f);

            listingStandard.CheckboxLabeled("Debug Mode", ref AnimationSettings.debugMode);

            listingStandard.End();
            base.DoSettingsWindowContents(inRect);
        }

        public override void WriteSettings() {
            base.WriteSettings();
            OffsetMainButtonDefOf.OffsetManager.buttonVisible = AnimationSettings.offsetTab;

        }

        public override string SettingsCategory() {
            return "RJW Animation Settings";
        }
    }
}


code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RimWorld;
using rjw.Modules.Interactions.Helpers;
using rjw.Modules.Interactions.Objects;
using UnityEngine;
using Verse;
using Verse.AI;
using rjw.Modules.Interactions.Enums;

namespace Rimworld_Animations {
    public static class AnimationUtility {
        /*
         Note: always make the list in this order:
             Female pawns, animal female pawns, male pawns, animal male pawns
        */
        public static AnimationDef tryFindAnimation(ref List<Pawn> participants, rjw.xxx.rjwSextype sexType = 0, rjw.SexProps sexProps = null) {

            InteractionWithExtension interaction = InteractionHelper.GetWithExtension(sexProps.dictionaryKey);

            if(interaction.HasInteractionTag(InteractionTag.Reverse))
            {
                Pawn buffer = participants[1];
                participants[1] = participants[0];
                participants[0] = buffer;
            }

            participants =
                participants.OrderBy(p => p.jobs.curDriver is rjw.JobDriver_SexBaseInitiator)
                .OrderBy(p => rjw.xxx.can_fuck(p))
                .ToList();

            List<Pawn> localParticipants = new List<Pawn>(participants);

            IEnumerable<AnimationDef> options = DefDatabase<AnimationDef>.AllDefs.Where((AnimationDef x) => {

                if (x.actors.Count != localParticipants.Count) {
                    return false;
                }
                for (int i = 0; i < x.actors.Count; i++) {

                    if (rjw.RJWPreferenceSettings.Malesex == rjw.RJWPreferenceSettings.AllowedSex.Nohomo) {
                        if (rjw.xxx.is_male(localParticipants[i]) && x.actors[i].isFucked) {
                            return false;
                        }
                }
				if (x.actors[i].requiredGender != null && !x.actors[i].requiredGender.Contains(localParticipants[i].gender.ToStringSafe<Gender>()))
				{
					if (AnimationSettings.debugMode)
					{
						Log.Message(string.Concat(new string[]
						{
							x.defName.ToStringSafe<string>(),
							" not selected -- ",
							localParticipants[i].def.defName.ToStringSafe<string>(),
							" ",
							localParticipants[i].Name.ToStringSafe<Name>(),
							" does not match required gender"
						}));
					}
					return false;
				}
                    if ((x.actors[i].blacklistedRaces != null) && x.actors[i].blacklistedRaces.Contains(localParticipants[i].def.defName)) {
                        if(AnimationSettings.debugMode)
                            Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " is blacklisted");
                        return false;
                    }

                    if(x.actors[i].defNames.Contains("Human")) {
                        if (!rjw.xxx.is_human(localParticipants[i])) {
                            if (AnimationSettings.debugMode)
                                Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " is not human");

                            return false;
                        }

                    }
                    else if (!x.actors[i].bodyDefTypes.Contains(localParticipants[i].RaceProps.body)) {

                        if (!x.actors[i].defNames.Contains(localParticipants[i].def.defName)) {

                            if (rjw.RJWSettings.DevMode) {
                                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) {
                                    animInfo += defname + ", ";
                                }
                                if (AnimationSettings.debugMode)
                                    Log.Message(animInfo);
                            }

                            return false;
                        }
                    }
                    //genitals checking

                    if(!GenitalCheckForPawn(x.actors[i].requiredGenitals, localParticipants[i], out string failReason)) {
                        Debug.Log("Didn't select " + x.defName + ", " + localParticipants[i].Name + " " + failReason);
                        return false;
                    }

                    //TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH
                    /*
                    if (x.defName != "Cunnilingus")
                        return false;
                    */

                    if (x.actors[i].isFucking && !rjw.xxx.can_fuck(localParticipants[i])) {
                        if (AnimationSettings.debugMode)
                            Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " can't fuck");
                        return false;
                    }

                    if (x.actors[i].isFucked && !rjw.xxx.can_be_fucked(localParticipants[i])) {
                        if (AnimationSettings.debugMode)
                            Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " can't be fucked");
                        return false;
                    }
                }
                return true;
            });
            List<AnimationDef> optionsWithInteractionType = options.ToList().FindAll(x => x.interactionDefTypes != null && x.interactionDefTypes.Contains(sexProps.sexType.ToStringSafe()));
            if (optionsWithInteractionType.Any()) {
                if (AnimationSettings.debugMode)
                    Log.Message("Selecting animation for interaction type " + sexProps.sexType.ToStringSafe() + "...");
                return optionsWithInteractionType.RandomElement();
            }
            List<AnimationDef> optionsWithSexType = options.ToList().FindAll(x => x.sexTypes != null && x.sexTypes.Contains(sexType));
            if (optionsWithSexType.Any()) {
                if (AnimationSettings.debugMode)
                    Log.Message("Selecting animation for rjwSexType " + sexType.ToStringSafe() + "...");
                return optionsWithSexType.RandomElement();
            }

            /*
            if(optionsWithInitiator.Any()) {
                if (AnimationSettings.debugMode)
                    Log.Message("Selecting animation for initiators...");
            }
            */

            if (options != null && options.Any()) {
                if (AnimationSettings.debugMode)
                    Log.Message("Randomly selecting animation...");
                return options.RandomElement();
            }
            else
                return null;
        }

        public static void RenderPawnHeadMeshInAnimation1(Mesh mesh, Vector3 loc, Quaternion quaternion, Material material, bool drawNow, Pawn pawn) {

            if (pawn == null || pawn.Map != Find.CurrentMap) {
                GenDraw.DrawMeshNowOrLater(mesh, loc, quaternion, material, drawNow);
                return;
            }

            CompBodyAnimator pawnAnimator = pawn.TryGetComp<CompBodyAnimator>();

            if (pawnAnimator == null || !pawnAnimator.isAnimating) {
                GenDraw.DrawMeshNowOrLater(mesh, loc, quaternion, material, drawNow);
            } else {
                Vector3 pawnHeadPosition = pawnAnimator.getPawnHeadPosition();
                pawnHeadPosition.y = loc.y;
                GenDraw.DrawMeshNowOrLater(MeshPool.humanlikeHeadSet.MeshAt(pawnAnimator.headFacing), pawnHeadPosition, Quaternion.AngleAxis(pawnAnimator.headAngle, Vector3.up), material, true);
            }
        }

        public static void AdjustHead(ref Quaternion quat, ref Rot4 bodyFacing, ref Vector3 pos, ref float angle, Pawn pawn, PawnRenderFlags flags)
        {
            if (flags.FlagSet(PawnRenderFlags.Portrait)) return;

            CompBodyAnimator anim = pawn.TryGetComp<CompBodyAnimator>();
            if (anim.isAnimating)
            {
                bodyFacing = anim.headFacing;
                angle = anim.headAngle;
                quat = Quaternion.AngleAxis(anim.headAngle, Vector3.up);
                pos = anim.getPawnHeadOffset();

            }
        }

        public static void RenderPawnHeadMeshInAnimation(Mesh mesh, Vector3 loc, Quaternion quaternion, Material material, bool portrait, Pawn pawn, float bodySizeFactor = 1) {

            if (pawn == null) {
                GenDraw.DrawMeshNowOrLater(mesh, loc, quaternion, material, portrait);
                return;
            }

            CompBodyAnimator pawnAnimator = pawn.TryGetComp<CompBodyAnimator>();

            if (pawnAnimator == null || !pawnAnimator.isAnimating || portrait) {
                GenDraw.DrawMeshNowOrLater(mesh, loc, quaternion, material, portrait);
            }
            else {
                Vector3 pawnHeadPosition = pawnAnimator.getPawnHeadPosition();
                pawnHeadPosition.x *= bodySizeFactor;
                pawnHeadPosition.x *= bodySizeFactor;
                pawnHeadPosition.y = loc.y;
                GenDraw.DrawMeshNowOrLater(mesh, pawnHeadPosition, Quaternion.AngleAxis(pawnAnimator.headAngle, Vector3.up), material, portrait);
            }
        }

        public static bool GenitalCheckForPawn(List<string> requiredGenitals, Pawn pawn, out string failReason) {

            failReason = null;
            if (requiredGenitals != null) {
                if (requiredGenitals.Contains("Vagina")) {

                    if (!rjw.Genital_Helper.has_vagina(pawn)) {
                        failReason = "missing vagina";
                        return false;
                    }

                }

                if (requiredGenitals.Contains("Penis")) {

                    if (!(rjw.Genital_Helper.has_multipenis(pawn) || rjw.Genital_Helper.has_penis_infertile(pawn) || rjw.Genital_Helper.has_penis_fertile(pawn) || rjw.Genital_Helper.has_ovipositorM(pawn) || rjw.Genital_Helper.has_ovipositorF(pawn))) {
                        failReason = "missing penis";
                        return false;
                    }

                }

                if (requiredGenitals.Contains("Mouth")) {

                    if (!rjw.Genital_Helper.has_mouth(pawn)) {
                        failReason = "missing mouth";
                        return false;
                    }

                }

                if (requiredGenitals.Contains("Anus")) {

                    if (!rjw.Genital_Helper.has_anus(pawn)) {
                        failReason = "missing anus";
                        return false;
                    }

                }

                if (requiredGenitals.Contains("Breasts")) {
                    if (!rjw.Genital_Helper.can_do_breastjob(pawn)) {
                        failReason = "missing breasts";
                        return false;
                    }
                }

                if (requiredGenitals.Contains("NoVagina")) {

                    if (rjw.Genital_Helper.has_vagina(pawn)) {
                        failReason = "has vagina";
                        return false;
                    }

                }

                if (requiredGenitals.Contains("NoPenis")) {

                    if ((rjw.Genital_Helper.has_multipenis(pawn) || rjw.Genital_Helper.has_penis_infertile(pawn) || rjw.Genital_Helper.has_penis_fertile(pawn))) {
                        failReason = "has penis";
                        return false;
                    }

                }

                if (requiredGenitals.Contains("NoMouth")) {

                    if (rjw.Genital_Helper.has_mouth(pawn)) {
                        failReason = "has mouth";
                        return false;
                    }

                }

                if (requiredGenitals.Contains("NoAnus")) {

                    if (rjw.Genital_Helper.has_anus(pawn)) {
                        failReason = "has anus";
                        return false;
                    }

                }

                if (requiredGenitals.Contains("NoBreasts")) {
                    if (rjw.Genital_Helper.can_do_breastjob(pawn)) {
                        failReason = "has breasts";
                        return false;
                    }
                }
            }

            return true;

        }

        public static Rot4 PawnHeadRotInAnimation(Pawn pawn, Rot4 regularPos)
        {
            Debug.Log("Test");

            if(pawn?.TryGetComp<CompBodyAnimator>() != null && pawn.TryGetComp<CompBodyAnimator>().isAnimating)
            {
                return pawn.TryGetComp<CompBodyAnimator>().headFacing;
            }

            return regularPos;
        }
    }
}

repo_name: BBottom/rimworld

license: unknown


code:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using Verse;

namespace Rimworld_Animations
{
    public class PatchOperationAddOrReplace : PatchOperationPathed
    {

        protected string key;
        private XmlContainer value;

        protected override bool ApplyWorker(XmlDocument xml)
        {
            XmlNode valNode = value.node;
            bool result = false;
            IEnumerator enumerator = xml.SelectNodes(xpath).GetEnumerator();
            try
            {
                while (enumerator.MoveNext())
                {
                    object obj = enumerator.Current;
                    result = true;
                    XmlNode parentNode = obj as XmlNode;
                    XmlNode xmlNode = parentNode.SelectSingleNode(key);
                    if (xmlNode == null)
                    {
                        // Add - Add node if not existing
                        xmlNode = parentNode.OwnerDocument.CreateElement(key);
                        parentNode.AppendChild(xmlNode);
                    }
                    else
                    {
                        // Replace - Clear existing children
                        xmlNode.RemoveAll();
                    }
                    // (Re)add value
                    xmlNode.AppendChild(parentNode.OwnerDocument.ImportNode(valNode.FirstChild, true));
                }
            }
            finally
            {
                IDisposable disposable = enumerator as IDisposable;
                if (disposable != null)
                {
                    disposable.Dispose();
                }
            }
            return result;
        }

    }

}


code:
<?xml version="1.0" encoding="utf-8"?>

<ModMetaData>
	<name>Rimworld-Animations</name>
	<author>C0ffee</author>
  <url>https://gitgud.io/c0ffeeeeeeee/rimworld-animations</url>
	<supportedVersions>

1.1

1.2

1.3

	</supportedVersions>
	<packageId>c0ffee.rimworld.animations</packageId>
	<modDependencies>

			<packageId>brrainz.harmony</packageId>
			<displayName>Harmony</displayName>
			<steamWorkshopUrl>steam://url/CommunityFilePage/2009463077</steamWorkshopUrl>
			<downloadUrl>https://github.com/pardeike/HarmonyRimWorld/releases/latest</downloadUrl>

			<packageId>UnlimitedHugs.HugsLib</packageId>
			<displayName>HugsLib</displayName>
			<downloadUrl>https://github.com/UnlimitedHugs/RimworldHugsLib/releases/latest</downloadUrl>
			<steamWorkshopUrl>steam://url/CommunityFilePage/818773962</steamWorkshopUrl>

			<packageId>rim.job.world</packageId>
			<displayName>RimJobWorld</displayName>
			<downloadUrl>https://www.loverslab.com/topic/110270-mod-rimjobworld/</downloadUrl>

			<packageId>erdelf.HumanoidAlienRaces</packageId>
			<displayName>Humanoid Alien Races 2.0</displayName>
			<steamWorkshopUrl>https://steamcommunity.com/sharedfiles/filedetails/?id=839005762</steamWorkshopUrl>

	</modDependencies>
	<loadAfter>

UnlimitedHugs.HugsLib

brrainz.harmony

erdelf.humanoidalienraces

nals.facialanimation

com.yayo.yayoAni

	</loadAfter>
	<loadBefore>
	</loadBefore>
	<incompatibleWith>
	</incompatibleWith>
	<description>
    Rimworld Animations! Hurray!

    Questions or bugs?
    Chat with me on the forums: https://www.loverslab.com/topic/140386-rjw-animations/
    Or on the rjw discord: https://discord.gg/CXwHhv8

  </description>
</ModMetaData>


code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Manifest>
  <identifier>Rimworld-Animations</identifier>
  <version>1.2.8</version>
</Manifest>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <OffsetManager.label>gerenciador de posições</OffsetManager.label>
  <OffsetManager.description>Controla as posições sexuais dos colonos.</OffsetManager.description>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <Dog_Doggystyle.label>estilo cachorrinho</Dog_Doggystyle.label>
  <Horse_Cowgirl.label>vaqueira</Horse_Cowgirl.label>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <Tribadism.label>tribadismo</Tribadism.label>
  <Cunnilingus.label>cunilíngua</Cunnilingus.label>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <Double_Penetration.label>dupla penetração</Double_Penetration.label>

</LanguageData>


code:
<?xml version="1.0" encoding="utf-8"?>
<LanguageData>

  <Doggystyle.label>estilo cachorrinho</Doggystyle.label>
  <Blowjob.label>boquete</Blowjob.label>
  <ReverseStandAndCarry.label>69</ReverseStandAndCarry.label>
  <Cowgirl.label>vaqueira</Cowgirl.label>

</LanguageData>


code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<loadFolders>
	<v1.1>

/

1.1

	</v1.1>
	<v1.2>

/

1.2

Patch_HatsDisplaySelection/1.2

	</v1.2>
	<v1.3>

/

1.3

Patch_HatsDisplaySelection/1.2

Patch_SexToysMasturbation

Patch_SexToysMasturbation/1.3

	</v1.3>
	<v1.4>

/

1.4

Patch_HatsDisplaySelection/1.2

Patch_SexToysMasturbation

Patch_SexToysMasturbation/1.4

	</v1.4>

</loadFolders>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
	<Patch_SexToysMasturbation.SexToyAnimationDef>
		<defName>Masturbation_DildoVaginal</defName>
		dildo masturbation
		<requiredBodyPart>vagina</requiredBodyPart>
		<sounds>true</sounds>
		<sexTypes>

Masturbation

		</sexTypes>
		<actors>

				<defNames>

Human

				</defNames>
				<isFucked>true</isFucked>

		</actors>

		<animationStages>

				<stageName>Masturbating</stageName>
				<isLooping>true</isLooping>
				<playTimeTicks>917</playTimeTicks>
				<stageIndex>0</stageIndex>
				<animationClips>

						<layer>LayingPawn</layer>
						<keyframes>

								<tickDuration>40</tickDuration>
								<bodyAngle>73.01611</bodyAngle>
								<headAngle>40.0739746</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.054543376</bodyOffsetZ>
								<bodyOffsetX>0.112624526</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<soundEffect>Slimy</soundEffect>
								<tickDuration>30</tickDuration>
								<bodyAngle>76.4867554</bodyAngle>
								<headAngle>45.3887634</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.0506898165</bodyOffsetZ>
								<bodyOffsetX>0.08564949</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<tickDuration>30</tickDuration>
								<bodyAngle>78.22131</bodyAngle>
								<headAngle>48.0072327</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.039129138</bodyOffsetZ>
								<bodyOffsetX>0.07794231</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<tickDuration>30</tickDuration>
								<bodyAngle>76.4867554</bodyAngle>
								<headAngle>45.3887634</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.0506898165</bodyOffsetZ>
								<bodyOffsetX>0.08564949</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<tickDuration>1</tickDuration>
								<bodyAngle>73.01611</bodyAngle>
								<headAngle>40.0739746</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.054543376</bodyOffsetZ>
								<bodyOffsetX>0.112624526</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

						</keyframes>

						<keyframes>

								<tickDuration>40</tickDuration>
								<positionX>-0.359264076</positionX>
								<positionZ>-0.00901746</positionZ>
								<rotation>114.011215</rotation>

								<tickDuration>30</tickDuration>
								<positionX>-0.2783391</positionX>
								<positionZ>-0.0514066666</positionZ>
								<rotation>81.16443</rotation>

								<tickDuration>30</tickDuration>
								<positionX>-0.1704393</positionX>
								<positionZ>-0.0668209046</positionZ>
								<rotation>72.8611145</rotation>

								<tickDuration>30</tickDuration>
								<positionX>-0.2783391</positionX>
								<positionZ>-0.0514066666</positionZ>
								<rotation>81.16443</rotation>

								<tickDuration>1</tickDuration>
								<positionX>-0.359264076</positionX>
								<positionZ>-0.00901746</positionZ>
								<rotation>114.011215</rotation>

						</keyframes>

				</animationClips>

				<stageName>GettingIntoPosition</stageName>
				<isLooping>false</isLooping>
				<stageIndex>0</stageIndex>
				<animationClips>

						<layer>LayingPawn</layer>
						<keyframes>

								<tickDuration>50</tickDuration>
								<bodyAngle>73.01611</bodyAngle>
								<headAngle>40.0739746</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.054543376</bodyOffsetZ>
								<bodyOffsetX>0.112624526</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<soundEffect>Slimy</soundEffect>
								<tickDuration>1</tickDuration>
								<bodyAngle>81.65927</bodyAngle>
								<headAngle>58.8843079</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03912908</bodyOffsetZ>
								<bodyOffsetX>0.08950315</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

						</keyframes>

						<keyframes>

								<tickDuration>50</tickDuration>
								<positionX>-0.359264076</positionX>
								<positionZ>-0.00901746</positionZ>
								<rotation>114.011215</rotation>

								<tickDuration>1</tickDuration>
								<positionX>-0.2899</positionX>
								<positionZ>-0.0282852575</positionZ>
								<rotation>98.13748</rotation>

						</keyframes>

				</animationClips>

				<stageName>FastMasturbation</stageName>
				<isLooping>true</isLooping>
				<stageIndex>0</stageIndex>
				<playTimeTicks>1610</playTimeTicks>
				<animationClips>

						<layer>LayingPawn</layer>
						<keyframes>

								<tickDuration>20</tickDuration>
								<bodyAngle>81.65927</bodyAngle>
								<headAngle>58.8843079</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03912908</bodyOffsetZ>
								<bodyOffsetX>0.08950315</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<soundEffect>Slimy</soundEffect>
								<tickDuration>25</tickDuration>
								<bodyAngle>85.17255</bodyAngle>
								<headAngle>58.0615845</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03527552</bodyOffsetZ>
								<bodyOffsetX>0.0471138731</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<tickDuration>1</tickDuration>
								<bodyAngle>81.65927</bodyAngle>
								<headAngle>58.8843079</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03912908</bodyOffsetZ>
								<bodyOffsetX>0.08950315</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

						</keyframes>

						<keyframes>

								<tickDuration>25</tickDuration>
								<positionX>-0.2899</positionX>
								<positionZ>-0.0282852575</positionZ>
								<rotation>98.13748</rotation>

								<tickDuration>20</tickDuration>
								<positionX>-0.178146541</positionX>
								<positionZ>-0.01672452</positionZ>
								<rotation>96.95889</rotation>

								<tickDuration>1</tickDuration>
								<positionX>-0.2899</positionX>
								<positionZ>-0.0282852575</positionZ>
								<rotation>98.13748</rotation>

						</keyframes>

				</animationClips>

				<stageName>VeryFastMasturbation</stageName>
				<isLooping>true</isLooping>
				<stageIndex>0</stageIndex>
				<playTimeTicks>225</playTimeTicks>
				<animationClips>

						<layer>LayingPawn</layer>
						<keyframes>

								<tickDuration>6</tickDuration>
								<bodyAngle>81.65927</bodyAngle>
								<headAngle>58.8843079</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03912908</bodyOffsetZ>
								<bodyOffsetX>0.08950315</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<soundEffect>Slimy</soundEffect>
								<tickDuration>8</tickDuration>
								<bodyAngle>85.17255</bodyAngle>
								<headAngle>58.0615845</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03527552</bodyOffsetZ>
								<bodyOffsetX>0.0471138731</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<tickDuration>1</tickDuration>
								<bodyAngle>81.65927</bodyAngle>
								<headAngle>58.8843079</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03912908</bodyOffsetZ>
								<bodyOffsetX>0.08950315</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

						</keyframes>

						<keyframes>

								<tickDuration>6</tickDuration>
								<positionX>-0.2899</positionX>
								<positionZ>-0.0282852575</positionZ>
								<rotation>98.13748</rotation>

								<tickDuration>8</tickDuration>
								<positionX>-0.178146541</positionX>
								<positionZ>-0.01672452</positionZ>
								<rotation>96.95889</rotation>

								<tickDuration>1</tickDuration>
								<positionX>-0.2899</positionX>
								<positionZ>-0.0282852575</positionZ>
								<rotation>98.13748</rotation>

						</keyframes>

				</animationClips>

				<stageName>Orgasm</stageName>
				<isLooping>false</isLooping>
				<stageIndex>0</stageIndex>
				<animationClips>

						<layer>LayingPawn</layer>
						<keyframes>

								<soundEffect>Slimy</soundEffect>
								<tickDuration>6</tickDuration>
								<bodyAngle>81.65927</bodyAngle>
								<headAngle>58.8843079</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03912908</bodyOffsetZ>
								<bodyOffsetX>0.08950315</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<quiver>True</quiver>
								<soundEffect>Cum</soundEffect>
								<tickDuration>80</tickDuration>
								<bodyAngle>85.17255</bodyAngle>
								<headAngle>58.0615845</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03527552</bodyOffsetZ>
								<bodyOffsetX>0.0471138731</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<quiver>True</quiver>
								<soundEffect>Cum</soundEffect>
								<tickDuration>90</tickDuration>
								<bodyAngle>92.15109</bodyAngle>
								<headAngle>96.34238</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.0237147212</bodyOffsetZ>
								<bodyOffsetX>0.0432603136</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<quiver>True</quiver>
								<soundEffect>Cum</soundEffect>
								<tickDuration>70</tickDuration>
								<bodyAngle>92.15109</bodyAngle>
								<headAngle>96.34238</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.0237147212</bodyOffsetZ>
								<bodyOffsetX>0.0432603136</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<tickDuration>70</tickDuration>
								<bodyAngle>92.15109</bodyAngle>
								<headAngle>96.34238</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.0237147212</bodyOffsetZ>
								<bodyOffsetX>0.0432603136</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

								<tickDuration>1</tickDuration>
								<bodyAngle>81.65927</bodyAngle>
								<headAngle>58.8843079</headAngle>
								<genitalAngle>0</genitalAngle>
								<bodyOffsetZ>0.03912908</bodyOffsetZ>
								<bodyOffsetX>0.08950315</bodyOffsetX>
								<headBob>0</headBob>
								<bodyFacing>3</bodyFacing>
								<headFacing>3</headFacing>

						</keyframes>

						<keyframes>

								<tickDuration>6</tickDuration>
								<positionX>-0.2899</positionX>
								<positionZ>-0.0282852575</positionZ>
								<rotation>98.13748</rotation>

								<tickDuration>80</tickDuration>
								<positionX>-0.178146541</positionX>
								<positionZ>-0.01672452</positionZ>
								<rotation>96.95889</rotation>

								<tickDuration>90</tickDuration>
								<positionX>-0.178146541</positionX>
								<positionZ>-0.01672452</positionZ>
								<rotation>96.95889</rotation>

								<tickDuration>70</tickDuration>
								<positionX>-0.178146541</positionX>
								<positionZ>-0.01672452</positionZ>
								<rotation>96.95889</rotation>

								<tickDuration>70</tickDuration>
								<positionX>-0.178146541</positionX>
								<positionZ>-0.01672452</positionZ>
								<rotation>96.95889</rotation>

								<tickDuration>1</tickDuration>
								<positionX>-0.2899</positionX>
								<positionZ>-0.0282852575</positionZ>
								<rotation>98.13748</rotation>

						</keyframes>

				</animationClips>

		</animationStages>
	</Patch_SexToysMasturbation.SexToyAnimationDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{87763712-0536-4D5F-9EAA-520F15D4F84E}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Patch_SexToysMasturbation</RootNamespace>
    <AssemblyName>Patch_SexToysMasturbation</AssemblyName>
    <TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>false</DebugSymbols>
    <DebugType>none</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>1.4\Assemblies\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="0Harmony">
      <HintPath>..\..\..\..\..\workshop\content\294100\1127530465\1.3\Assemblies\0Harmony.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Assembly-CSharp">
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Rimworld-Animations, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\1.3\Assemblies\Rimworld-Animations.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="RJW">
      <HintPath>..\..\rjw\1.4\Assemblies\RJW.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="RJW-ToysAndMasturbation">
      <HintPath>..\..\rjw-toys-and-masturbation\Assemblies\RJW-ToysAndMasturbation.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
    <Reference Include="UnityEngine">
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="UnityEngine.CoreModule">
      <HintPath>..\..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Source\Defs\SexToyAnimationDef.cs" />
    <Compile Include="Source\Harmony\Harmony_PatchAll.cs" />
    <Compile Include="Source\Patches\HarmonyPatch_JobDriver_SexBaseInitiator.cs" />
    <Compile Include="Source\Utilities\AnimSexToyUtility.cs" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="1.3\Assemblies\" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="1.3\Defs\AnimationDefs\Animations_Dildo.xml" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>


code:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Patch_SexToysMasturbation")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Patch_SexToysMasturbation")]
[assembly: AssemblyCopyright("Copyright ©  2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("87763712-0536-4d5f-9eaa-520f15d4f84e")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


code:
using Rimworld_Animations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Patch_SexToysMasturbation
{
    public class SexToyAnimationDef : AnimationDef
    {

        public String requiredBodyPart = null;

    }
}


code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
using HarmonyLib;
using System.Reflection;

namespace Patch_SexToysMasturbation
{

    [StaticConstructorOnStartup]
    public static class Harmony_PatchAll {

        static Harmony_PatchAll() {

            Harmony val = new Harmony("animtoyspatch");
            val.PatchAll(Assembly.GetExecutingAssembly());

        }
    }
}


code:
using HarmonyLib;
using Rimworld_Animations;
using rjw;
using RJW_ToysAndMasturbation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;

namespace Patch_SexToysMasturbation
{
    [HarmonyPatch(typeof(JobDriver_SexBaseInitiator), "Start")]
    public class HarmonyPatch_JobDriver_SexBaseInitiator
    {

        public static void Postfix(ref JobDriver_SexBaseInitiator __instance)
        {

            if(__instance is JobDriver_MasturbateWithToy masturbateJobDriver)
            {

                Log.Message("Rerolling animations...");
                Pawn pawn = masturbateJobDriver.pawn;
                Thing sexToy = masturbateJobDriver.dildo;

                RerollAnimationsForSexToy(pawn, sexToy, masturbateJobDriver.Bed);
            }

        }

        public static void RerollAnimationsForSexToy(Pawn pawn, Thing thing, Thing bed)
        {
            CompSexToy sextoy = thing.TryGetComp<CompSexToy>();

            SexToyAnimationDef anim = AnimSexToyUtility.tryFindAnimation(sextoy, pawn);

            if (anim != null)
            {
                Log.Message("Playing anim " + anim.defName);

                if(bed != null)
                {
                    pawn.TryGetComp<CompBodyAnimator>().setAnchor(bed);
                    thing.TryGetComp<CompThingAnimator>().setAnchor(bed);
                }
                else
                {
                    pawn.TryGetComp<CompBodyAnimator>().setAnchor(pawn.Position);
                    thing.TryGetComp<CompThingAnimator>().setAnchor(pawn.Position);
                }

                bool mirror = GenTicks.TicksGame % 2 == 0;

                pawn.TryGetComp<CompBodyAnimator>().StartAnimation(anim, new List<Pawn> { pawn }, 0, mirror);
                thing.TryGetComp<CompThingAnimator>().StartAnimation(anim, pawn, mirror);

                (pawn.jobs.curDriver as JobDriver_Sex).ticks_left = anim.animationTimeTicks;
                (pawn.jobs.curDriver as JobDriver_Sex).sex_ticks = anim.animationTimeTicks;
                (pawn.jobs.curDriver as JobDriver_Sex).duration = anim.animationTimeTicks;
            }
            else
            {
                Log.Message("No animation found");
            }

        }

    }

}


code:
using rjw;
using RJW_ToysAndMasturbation;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;

namespace Patch_SexToysMasturbation
{
    public class AnimSexToyUtility
    {

        public static SexToyAnimationDef tryFindAnimation(CompSexToy sexToy, Pawn pawn)
        {

            IEnumerable<SexToyAnimationDef> options = DefDatabase<SexToyAnimationDef>.AllDefs.Where((SexToyAnimationDef x) =>
            {

                if(!sexToy.Props.requiredBodyParts.Contains(x.requiredBodyPart))
                {
                    return false;
                }

                if(x.requiredBodyPart == "vagina" && !Genital_Helper.has_vagina(pawn))
                {
                    return false;
                }

                return true;

            });

            if(options != null && options.Any())
            {
                return options.RandomElement();
            }
            else
            {
                return null;
            }

        }

    }
}


code:
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("Rimworld-Animations")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Rimworld-Animations")]
[assembly: AssemblyCopyright("Copyright ©  2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]

// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("71b05d71-67b2-4014-82cd-18c20ac0882f")]

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]


code:
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProjectGuid>{71B05D71-67B2-4014-82CD-18C20AC0882F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Rimworld_Animations</RootNamespace>
    <AssemblyName>Rimworld-Animations</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>false</DebugSymbols>
    <DebugType>none</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>1.4\Assemblies\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>none</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\Release\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="0Harmony">
      <HintPath>..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\0Harmony.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="AlienRace">
      <HintPath>..\..\..\..\workshop\content\294100\839005762\1.4\Assemblies\AlienRace.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="Assembly-CSharp">
      <HintPath>..\..\RimWorldWin64_Data\Managed\Assembly-CSharp.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="RJW">
      <HintPath>..\rjw\1.4\Assemblies\RJW.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="RJW-ToysAndMasturbation">
      <HintPath>..\rjw-toys-and-masturbation\Assemblies\RJW-ToysAndMasturbation.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Core" />
    <Reference Include="System.Xml.Linq" />
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Data" />
    <Reference Include="System.Net.Http" />
    <Reference Include="System.Xml" />
    <Reference Include="UnityEngine">
      <HintPath>..\..\RimWorldWin64_Data\Managed\UnityEngine.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="UnityEngine.CoreModule">
      <HintPath>..\..\RimWorldWin64_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="1.4\Source\Actors\Actor.cs" />
    <Compile Include="1.4\Source\Actors\AlienRaceOffset.cs" />
    <Compile Include="1.4\Source\Actors\BodyTypeOffset.cs" />
    <Compile Include="1.4\Source\Animations\AnimationStage.cs" />
    <Compile Include="1.4\Source\Animations\Clips\BaseAnimationClip.cs" />
    <Compile Include="1.4\Source\Animations\Clips\PawnAnimationClip.cs" />
    <Compile Include="1.4\Source\Animations\Clips\ThingAnimationClip.cs" />
    <Compile Include="1.4\Source\Animations\Keyframes\Keyframe.cs" />
    <Compile Include="1.4\Source\Animations\Keyframes\PawnKeyframe.cs" />
    <Compile Include="1.4\Source\Animations\Keyframes\ThingKeyframe.cs" />
    <Compile Include="1.4\Source\Comps\CompBodyAnimator.cs" />
    <Compile Include="1.4\Source\Comps\CompProperties_BodyAnimator.cs" />
    <Compile Include="1.4\Source\Comps\CompProperties_ThingAnimator.cs" />
    <Compile Include="1.4\Source\Comps\CompThingAnimator.cs" />
    <Compile Include="1.4\Source\Defs\AnimationDef.cs" />
    <Compile Include="1.4\Source\Extensions\PawnWoundDrawerExtension.cs" />
    <Compile Include="1.4\Source\MainTabWindows\MainTabWindow_OffsetConfigure.cs" />
    <Compile Include="1.4\Source\MainTabWindows\OffsetMainButtonDefOf.cs" />
    <Compile Include="1.4\Source\MainTabWindows\WorldComponent_UpdateMainTab.cs" />
    <Compile Include="1.4\Source\Patches\Harmony_PatchAll.cs" />
    <Compile Include="1.4\Source\Patches\OtherModPatches\HarmonyPatch_AlienRace.cs" />
    <Compile Include="1.4\Source\Patches\OtherModPatches\HarmonyPatch_CSL.cs" />
    <Compile Include="1.4\Source\Patches\OtherModPatches\HarmonyPatch_DontShaveYourHead.cs" />
    <Compile Include="1.4\Source\Patches\OtherModPatches\HarmonyPatch_FacialAnimation.cs" />
    <Compile Include="1.4\Source\Patches\OtherModPatches\HarmonyPatch_HatsDisplaySelection.cs" />
    <Compile Include="1.4\Source\Patches\OtherModPatches\HarmonyPatch_ShowHairWithHats.cs" />
    <Compile Include="1.4\Source\Patches\RimworldPatches\HarmonyPatch_HeadHair.cs" />
    <Compile Include="1.4\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderer.cs" />
    <Compile Include="1.4\Source\Patches\RimworldPatches\HarmonyPatch_PawnRotation.cs" />
    <Compile Include="1.4\Source\Patches\RimworldPatches\HarmonyPatch_Pawn_DrawTracker.cs" />
    <Compile Include="1.4\Source\Patches\RimworldPatches\HarmonyPatch_SetPawnAnimatable.cs" />
    <Compile Include="1.4\Source\Patches\RimworldPatches\HarmonyPatch_Thing.cs" />
    <Compile Include="1.4\Source\Patches\RJWPatches\HarmonyPatch_PlaySexSounds.cs" />
    <Compile Include="1.4\Source\Patches\RJWPatches\HarmonyPatch_SexTick.cs" />
    <Compile Include="1.4\Source\Patches\RJWPatches\HarmonyPatch_WorkGiverSex.cs" />
    <Compile Include="1.4\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_JoinInBed.cs" />
    <Compile Include="1.4\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_SexBaseInitiator.cs" />
    <Compile Include="1.4\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_SexBaseReceiverLoved.cs" />
    <Compile Include="1.4\Source\Settings\AnimationSettings.cs" />
    <Compile Include="1.4\Source\Utilities\AnimationUtility.cs" />
    <Compile Include="1.4\Source\Utilities\PatchOperationAddOrReplace.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="1.1\Assemblies\Rimworld-Animations.dll" />
    <Content Include="1.4\Assemblies\Rimworld-Animations.dll" />
    <Content Include="1.4\Defs\AnimationDefs\Animations_Beast.xml" />
    <Content Include="1.4\Defs\AnimationDefs\Animations_Lesbian.xml" />
    <Content Include="1.4\Defs\AnimationDefs\Animations_Masturbate.xml" />
    <Content Include="1.4\Defs\AnimationDefs\Animations_Multi.xml" />
    <Content Include="1.4\Defs\AnimationDefs\Animations_SexToys.xml" />
    <Content Include="1.4\Defs\AnimationDefs\Animations_vanilla.xml" />
    <Content Include="1.4\Defs\AnimationDefs\Animations_Vanilla2.xml" />
    <Content Include="1.4\Defs\AnimationDefs\TemplateAnimation.xml" />
    <Content Include="1.4\Defs\MainTabDefs\MainButtonDef.xml" />
    <Content Include="1.4\Defs\SoundDefs\Sounds_Sex.xml" />
    <Content Include="1.4\Patches\AnimationPatchHSK.xml" />
    <Content Include="1.4\Patches\AnimationPatch_CompBodyAnimator.xml" />
    <Content Include="1.4\Patches\CompatibilityPatch_FacialAnimation.xml" />
    <Content Include="1.4\Patches\CompatibilityPatch_HCSK.xml" />
    <Content Include="1.4\Patches\CompPatches\AutoCleaner.xml" />
    <Content Include="1.4\Patches\CompPatches\CombatExtended.xml" />
    <Content Include="1.4\Patches\CompPatches\ZombieLand.xml" />
    <Content Include="1.4\Patches\RacePatches\Epona race Renaissance.xml" />
    <Content Include="1.4\Patches\RacePatches\Nyaron.xml" />
    <Content Include="1.4\Sounds\Sex\Clap_1.wav" />
    <Content Include="1.4\Sounds\Sex\Clap_2.wav" />
    <Content Include="1.4\Sounds\Sex\Clap_3.wav" />
    <Content Include="1.4\Sounds\Sex\Clap_4.wav" />
    <Content Include="1.4\Sounds\Sex\Clap_5.wav" />
    <Content Include="1.4\Sounds\Sex\Clap_6.wav" />
    <Content Include="1.4\Sounds\Sex\Clap_7.wav" />
    <Content Include="1.4\Sounds\Sex\Clap_8.wav" />
    <Content Include="1.4\Sounds\Sex\cum.wav" />
    <Content Include="1.4\Sounds\Sex\kucyu04.wav" />
    <Content Include="1.4\Sounds\Sex\Slime\Slimy1.wav" />
    <Content Include="1.4\Sounds\Sex\Slime\Slimy2.wav" />
    <Content Include="1.4\Sounds\Sex\Slime\Slimy3.wav" />
    <Content Include="1.4\Sounds\Sex\Slime\Slimy4.wav" />
    <Content Include="1.4\Sounds\Sex\Slime\Slimy5.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_1.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_10.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\suck_2.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_3.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_4.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_5.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_6.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_7.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_8.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Suck_9.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Swallow_1.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Swallow_2.wav" />
    <Content Include="1.4\Sounds\Sex\Suck\Swallow_3.wav" />
    <Content Include="1.4\Textures\UI\MainTab.png" />
    <Content Include="About\About.xml" />
    <Content Include="About\Manifest.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\MainButtonDef\MainButtonDef.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\Rimworld_Animations.AnimationDef\Animations_Beast.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\Rimworld_Animations.AnimationDef\Animations_Lesbian.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\Rimworld_Animations.AnimationDef\Animations_Multi.xml" />
    <Content Include="Languages\PortugueseBrazilian\DefInjected\Rimworld_Animations.AnimationDef\Animations_vanilla.xml" />
    <Content Include="LoadFolders.xml" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="1.2\" />
  </ItemGroup>
  <ItemGroup>
    <None Include="1.4\Defs\AnimationDefs\AnimationDefs.rar" />
    <None Include="1.4\Patch_HatsDisplaySelection\Patch_HatsDisplaySelection.csproj" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>


code:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29905.134
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rimworld-Animations", "Rimworld-Animations.csproj", "{71B05D71-67B2-4014-82CD-18C20AC0882F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Patch_HatsDisplaySelection", "Patch_HatsDisplaySelection\Patch_HatsDisplaySelection.csproj", "{BA766964-1716-422D-A09E-29426F8EB9D5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Patch_SexToysMasturbation", "Patch_SexToysMasturbation\Patch_SexToysMasturbation.csproj", "{87763712-0536-4D5F-9EAA-520F15D4F84E}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU
		Release|Any CPU = Release|Any CPU
	EndGlobalSection
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{71B05D71-67B2-4014-82CD-18C20AC0882F}.Release|Any CPU.Build.0 = Release|Any CPU
		{BA766964-1716-422D-A09E-29426F8EB9D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{BA766964-1716-422D-A09E-29426F8EB9D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{BA766964-1716-422D-A09E-29426F8EB9D5}.Release|Any CPU.Build.0 = Release|Any CPU
		{87763712-0536-4D5F-9EAA-520F15D4F84E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{87763712-0536-4D5F-9EAA-520F15D4F84E}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{87763712-0536-4D5F-9EAA-520F15D4F84E}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{87763712-0536-4D5F-9EAA-520F15D4F84E}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {7E01292A-D76F-4CA3-AA64-085B84ECD905}
	EndGlobalSection
EndGlobal


code:
# Ignore all files
*.*

# File Types
!*.mps
!*.dat
!*.json
!*.txt
!*.project
!*.js
!*.zip
!*.7z
!*.csv
!*.ain
!*.fnl
!*.ks
!*.tjs
!*.yaml
!*.rb
!*.rvdata2

# Other Needed Files
!.gitignore
!README.md
!patch-config.txt
!GameUpdate*
!patch*
!Game.dat

# Ignore
previous_patch_sha.txt
latest_patch_sha.txt
patch2.bat
kabe3_save.dat
kabe3_system.dat
psbpack.dat
Save*

# Images
!Ehon_t*
!EP*
!A.png
!B.png
!C.png
!D.png
!E.png
!F.png
!G.png
!H.png
!I.png
!J.png
!K.png
!L.png
!M.png
!N.png
!O.png
!P.png
!Q.png
!R.png
!S.png
!T.png
!U.png
!V.png
!W.png
!X.png
!Y.png
!Z.png
! .png
!.png
!Danan Shield.png
!Danan Rivet 12 Years.png
!space.png
!MonsterTome.png
!type.png
!系.png
!win_mise_sozai.png
!win_mise_dougu.png
!Folka Amulet.png
!Advance.png
!Advent.png
!Anxiety.png
!Assault.png
!Castle of Illusion.png
!Chamber of Evolution.png
!Chamber of Spirits.png
!Consultation.png
!Creeping Fear.png
!Dawn and Farewell.png
!Decisive Battle.png
!Defeat.png
!Demon's Lair.png
!Desert Town.png
!Discomfort.png
!Dramon Quest Theme.png
!Drowning in Sorrow.png
!Fanfare.png
!Faraway.png
!Farce.png
!Festival Frenzy.png
!Gloomy.png
!Grimklin Castle.png
!Illusory Battle.png
!Immoral.png
!Impending Crisis.png
!Land of Hidden Darkness.png
!Land's End.png
!Letter.png
!Night of Insect Sounds.png
!Night of Rest.png
!Nostalgic Lights.png
!Obstacles.png
!Over the End.png
!Panic!.png
!Predicament.png
!Pulsation.png
!Puzzle Solving.png
!Regret.png
!Royal Castle.png
!Sailing the Seas.png
!Sun and Wind.png
!Sweet Moment.png
!Tales of Old.png
!The Journey Continues.png
!Title.png
!Tower Piercing the Sky.png
!Tranquil Hometown.png
!Walking the Streets.png
!Wedding Ceremony.png
!Welcome to Our Town.png
!World of Dreams.png
!謎4_ﾍﾞｰｽ.png
!＊アクセサリーをはずす.png
!＊靴をはずす.png
!Defeat the Pygmies!.png
!Bring a Leather Mantle.png
!Aira's Trial 1.png
!Aira's Trial 2.png
!Aira's Trial 3.png
!Arina's Trial 1.png
!Arina's Trial 2.png
!Arina's Trial 3.png
!Astea's Trial 1.png
!Astea's Trial 2.png
!Astea's Trial 3.png
!Barbara's Trial 1.png
!Barbara's Trial 2.png
!Barbara's Trial 3.png
!Bianca's Trial 1.png
!Bianca's Trial 2.png
!Bianca's Trial 3.png
!Bring a Battle Fan.png
!Bring a Bird Soldier.png
!Bring a Leather Mantle.png
!Cliff's Trial 1.png
!Cliff's Trial 2.png
!Cliff's Trial 3.png
!Dai's Trial 1.png
!Dai's Trial 2.png
!Dai's Trial 3.png
!Daisy's Trial 1.png
!Daisy's Trial 2.png
!Daisy's Trial 3.png
!Debora's Trial 1.png
!Debora's Trial 2.png
!Debora's Trial 3.png
!Defeat Belial!.png
!Defeat Claumo!.png
!Defeat the Cactus Man!.png
!Defeat the Charging Goldfish!.png
!Defeat the Cloud Ambassador!.png
!Defeat the Ferocious Bee!.png
!Defeat the giant poisonous tree!.png
!Defeat the Gigas Dragon!.png
!Defeat the Machine Soldier!.png
!Defeat the monsters in Aitos!.png
!Defeat the monsters in the lumberyard!.png
!Defeat the Mummy Man!.png
!Defeat the Nuraimu Snow!.png
!Defeat the One-Eyed Maple!.png
!Defeat the Prototype!.png
!Defeat the Pygmies!.png
!Defeat the silkworm's natural enemy!.png
!Defeat the Sky Dragon!.png
!Defeat the Small Sea King!.png
!Defeat the Snow Leaf!.png
!Defeat the Zuti!.png
!Deliver gloves to the princess.png
!Deliver items to Madam Deodora.png
!Deliver items to Orbel.png
!Deliver items to Rosenburg.png
!Deliver Milk to Irisha Castle.png
!Deliver Milk to Orbel.png
!Deliver Milk to the Medal Royal Family.png
!Eri's Trial 1.png
!Eri's Trial 2.png
!Eri's Trial 3.png
!Find the Liquor of Deodoran Island!.png
!Find the lumber Vali requested.png
!Find the next Pope.png
!Find the Provocative Bromide!.png
!Find the Rogue!.png
!Flora's Trial 1.png
!Flora's Trial 2.png
!Flora's Trial 3.png
!Foz's Trial 1.png
!Foz's Trial 2.png
!Foz's Trial 3.png
!Gerda's Trial 1.png
!Gerda's Trial 2.png
!Gerda's Trial 3.png
!Get a Fine Barrel.png
!Hilda's Request 1.png
!Hilda's Request 2.png
!Hyunckel's Trial 1.png
!Hyunckel's Trial 2.png
!Hyunckel's Trial 3.png
!Iyo's Trial 1.png
!Iyo's Trial 2.png
!Iyo's Trial 3.png
!Jagan's Trial 1.png
!Jagan's Trial 2.png
!Jagan's Trial 3.png
!Jessica's Trial 1.png
!Jessica's Trial 2.png
!Jessica's Trial 3.png
!Kukool's Trial 1.png
!Kukool's Trial 2.png
!Kukool's Trial 3.png
!Lay the cave ghost to rest.png
!Leona's Trial 1.png
!Leona's Trial 2.png
!Leona's Trial 3.png
!Lift the curse of the ring!.png
!Maam's Trial 1.png
!Maam's Trial 2.png
!Maam's Trial 3.png
!Madam's Order.png
!Manya's Trial 1.png
!Manya's Trial 2.png
!Manya's Trial 3.png
!Maribel's Trial 1.png
!Maribel's Trial 2.png
!Maribel's Trial 3.png
!Minea's Trial 1.png
!Minea's Trial 2.png
!Minea's Trial 3.png
!Mireyu's Trial 1.png
!Mireyu's Trial 2.png
!Mireyu's Trial 3.png
!Moon's Trial 1.png
!Moon's Trial 2.png
!Moon's Trial 3.png
!Nina's Request.png
!Obtain silk thread!.png
!Pop's Trial 1.png
!Pop's Trial 2.png
!Pop's Trial 3.png
!Put me to sleep.png
!Raviel's Trial 1.png
!Raviel's Trial 2.png
!Raviel's Trial 3.png
!Retrieve the Mold!.png
!Rex's Trial 1.png
!Rex's Trial 2.png
!Rex's Trial 3.png
!Rio's Trial 1.png
!Rio's Trial 2.png
!Rio's Trial 3.png
!Roland's Trial 1.png
!Roland's Trial 2.png
!Roland's Trial 3.png
!Ryuka's Trial 1.png
!Ryuka's Trial 2.png
!Ryuka's Trial 3.png
!Samal's Trial 1.png
!Samal's Trial 2.png
!Samal's Trial 3.png
!Setia's Trial 1.png
!Setia's Trial 2.png
!Setia's Trial 3.png
!Wallet in the Well.png
!Yangus's Trial 1.png
!Yangus's Trial 2.png
!Yangus's Trial 3.png
!Yao's Trial 1.png
!Yao's Trial 2.png
!Yao's Trial 3.png
!■Flute Quest.png
!■Guitar Quest.png
!■Madam Dress Quest.png
!■Magic Awakening.png
!■Ormadon.png
!■Ormoa.png
!■Quest for Testing Men.png
!■Shovel Quest.png
!Lewd Courtesan Princess.png
!Popular Courtesan.png
!Veteran Courtesan.png
!娼館GUIかぶせ.png
!win_itembox.png
!★ Thin half.png
!★ Thin.png
!★薄.png
!★薄half.png
!★Thin.png
!Nuraimu.png
!Mockel Barrel.png
!おてんば姫.png
!つるぎの舞手.png
!わがままお嬢様.png
!カイザーフェニックス.png
!グランバニア王.png
!ゴスロリ僧侶.png
!ゴールドフィンガー.png
!サラボナの薔薇.png
!シャマルの力.png
!ジパングの王女.png
!タロット使い.png
!ダーマの大神官.png
!ナックルハート.png
!パッシブパワー.png
!パプニカの姫.png
!ピンクのモード.png
!ベテラン戦士.png
!ホーリークロス.png
!ユバールの民.png
!レディセクシー.png
!レディフッカー.png
!レディプリティ.png
!不器用王子.png
!亡国の王女.png
!人情の男.png
!人気の踊り子.png
!仇討ちの旅路.png
!仮面の裏側.png
!伝説の盗賊.png
!伝説の踊り子.png
!優しい娘.png
!優しい怪力女.png
!元奴隷.png
!元祖魔物使い.png
!元魔王軍剣士.png
!光の戦士.png
!光輪の導き.png
!凄腕戦士.png
!力の目覚め.png
!勇者の卵.png
!勇者の父.png
!占い師.png
!反逆の魔人王.png
!吸血鬼娘.png
!呪われた血.png
!器用貧乏.png
!地下世界の勇者.png
!堕ちた頭目.png
!堕天のつばさ.png
!売れっ子夜鷹.png
!売春王女.png
!夢は王国復興.png
!大器晩成.png
!大盗賊.png
!大賢者の末裔.png
!大魔女.png
!大魔道士.png
!天の使い.png
!天空の勇者.png
!奇跡の女.png
!女盗賊.png
!娼婦の烙印.png
!宮廷神官.png
!宿屋の一人娘.png
!封印の御手.png
!導かれし者.png
!小さな勇者.png
!島の少年.png
!庶民の娼婦.png
!恋する神官.png
!情熱の踊り手.png
!慈愛の拳.png
!拳法使い.png
!拳王.png
!新米魔法使い.png
!普通が一番！.png
!暗黒闘気使い.png
!最強の女戦士.png
!月下美人.png
!月夜の旅人.png
!東方淫夢姫.png
!東方神秘.png
!次期国王.png
!正義の使徒.png
!正義の心.png
!殺意の剣閃.png
!永遠の挑戦者.png
!流れの戦士.png
!淫乱娘.png
!淫売令嬢.png
!淫夢の占い師.png
!淫猥娼姫.png
!清楚な令嬢.png
!生意気泡姫.png
!男の中の男.png
!男の子.png
!白竜の息吹.png
!白銀の右腕.png
!神官娘.png
!神秘の女.png
!神通力使い.png
!秘めるは純真.png
!穢された勇者.png
!竜の騎士.png
!紋章を継ぐ者.png
!網元の娘.png
!美しい女.png
!義理の男.png
!聖堂騎士団員.png
!聖戦士.png
!腕利き万能娘.png
!腕力大正義.png
!臆病魔法使い.png
!血統を継ぐ者.png
!見習い冒険者.png
!謎の女.png
!踊り手見習い.png
!遊び人.png
!鋭い目の女.png
!魂の管理人.png
!魅惑のボディ.png
!魔人王.png
!魔法使い見習い.png
!魔法都市の末裔.png
!TOREL.png
!DANANN.png
!Trelle Dried Fish.png
!エレメント.png
!ドラゴン.png
!ヌライム.png
!マシン.png
!怪人.png
!悪魔.png
!水棲生物.png
!Beast.png
!Bird.png
!Devil.png
!Dragon.png
!Element.png
!Humanoid.png
!Insect.png
!Machine.png
!Material.png
!None.png
!Nuraimu.png
!Plant.png
!Water.png
!Zombie.png
!Jija Brand Milk.png
!Jija Jerky.png
!ShopWeapons.png
!ShopShields.png
!ShopArmor.png
!ShopHelmets.png
!ShopAccessories.png
!mgp_base2A.png
!MGPDisable.png
!FishTome.png
!Defeat the Drill Goldfish!.png
!Nuraimu Earrings.png
!Nuraimu Extract.png
!Nuraimu Steel.png
!King Nuraimu Orb.png
!Nuraimu Breath Orb.png
!Snail Nuraimu Orb.png
!Nuraimu Shower.png
!JIPANG.png
!Tamahagane.png
!Tamahagane Armor.png
!Tamahagane Claw.png
!Tamahagane Fan.png
!Tamahagane Shield.png
!Tamahagane Spear.png
!Tamahagane Whip.png
!Special Cafe au Lait.png
!謎4_ﾍﾞｰｽ.png
!LENNUSCOD.png
!PALACE_OF_THEPOPE.png
!Shubain's Letter.png
!win_rankup_ml1.png
!win_rankup_ml2.png
!win_rankup_ml3.png
!win_rankup_ml4.png
!win_rankup_ml5.png
!win_rankup_ml6.png
!rankup_kenkyu1.png
!rankup_kenkyu2.png
!rankup_kenkyu3.png
!rankup_kenkyu4.png
!rankup_kenkyu5.png
!rankup_kenkyu6.png
!rankup_kenkyu7.png
!rankup_kenkyu8.png
!Orbass.png
!HALLVERL.png
!SEYJER.png
!GRIMGRIN.png
!GONABE.png
!HESSENN.png
!ITOS.png
!INOCKS.png
!MERVTATT.png
!NISHIDIN.png
!IRISHA.png
!Clift's Trial 1.png
!Clift's Trial 2.png
!Clift's Trial 3.png
!Kukuru's Trial 1.png
!Kukuru's Trial 2.png
!Kukuru's Trial 3.png
!Eye of Mithra.png
!■Eye of Mithra.png
!マミーおとこを倒せ！.png
!Defeat the Mummy Boys!.png

repo_name: onms/super

path: .gitignore


code:
//�����̏ꍇ�E�����̏ꍇ�̎d�؂聡�����Ȃ�
//
@cg003_01_01wait
//
@voice01
"Nngh, kuh, ugh! Haa, haa, haa..."
@plc
//
Bianca takes a breath after finally inserting the man's huge cock.
@plc
//
"Why are you just sitting there? Just sitting won't make the customer
happy."
@plc
//
@voice02
"I-I know. But it's so big, just getting it in is all I can manage...
Ugh, kuh, it's painful."
@plc
//
"No excuses. We have all kinds of customers. If you're confused by the
size, you won't be able to do your job."
@plc
//
//�����̏ꍇ������������������������������������������������������������������������
@yome0
"Heh heh. Isn't your pussy too small? I can't believe it's a pussy
that's given birth!"
@plc
//
@cg002
//
@voice03
"Don't say such vulgar things! Making me think of my family at a time
like this, you're the worst!"
@plc
//
@yome0end
//�����̏ꍇ������������������������������������������������������������������������
@yome0x
"Heh heh. Isn't your pussy too small?"
@plc
//
@cg002
//
@voice04
"Don't say such vulgar things!"
@plc
//
@yome0end
//������������������������������������������������������������������������������������
//
"Stop the idle talk. You can't rest until you learn the job. If you
understand, get started quickly."
@plc
//
@cg007
//
@voice05
"Acting all high and mighty... I get it, I'll do it. I'll do as I'm
told."
@plc
//
Glaring at the instructor with frustration, Bianca takes several deep
breaths to brace herself. Then she slowly starts moving her hips.
@plc
//
@cg001
//
@voice06
"Uah, ahk... u, u, ugh! It's too big. It feels like my insides are
being pulled out. Hic, u, ugh...!"
@plc
//
Bianca carefully pulls the cock, wet with her love juices, out of her
genitals. The man playing the customer role snorts at her overly
cautious movements.
@plc
//
//�����̏ꍇ������������������������������������������������������������������������
@yome0
"You're so slow, lady! Pulling it out little by little. Are you trying
to tease me? Or are you savoring my cock?"
@plc
//
@yome0end
//�����̏ꍇ������������������������������������������������������������������������
@yome0x
"You're so slow! Pulling it out little by little. Are you trying to
tease me? Or are you savoring my cock?"
@plc
//
@yome0end
//������������������������������������������������������������������������������������
//
@cg002
//
@voice07
"Nngh! S-shut up! When you shout, it echoes in my stomach. It's
already painful enough, so be quiet... Nngh, ughhh."
@plc
//
@voice08
"Haa, haa...! Ugh, I have to put something this big in again... Ah,
guh! Nha, ah, ah...!"
@plc
//
Bianca slowly lowers her raised hips again. As the penis is enveloped
by her warm genitals, the man playing the customer role lets out a
satisfied sigh, while the instructor glares at Bianca with irritation.
@plc
//
"You complain too much. Move your hips quickly. With movements like
that, who knows how long it'll take to finish with one customer."
@plc
//
@cg007
//
@voice09
"Kuh. Even if you say that, I'm doing my best..."
@plc
//
"Do you think that excuse will work? If you can't move on your own, we
can switch to practicing with the customer's movements."
@plc
//
@cg003
//
@voice10
"No way. If I'm moved around as they please, my body won't last..."
@plc
//
A faint voice filled with anxiety leaks out. Just having it inserted
is already a strain on her body, and if she were to be pounded
according to the man's desires... Bianca suppresses a shiver and looks
up at the instructor.
@plc
//
@voice11
"I-I'll move myself, so don't rush me. It's really painful... Nngh,
ah, ugh...!"
@plc
//
Enduring the pressure of experiencing a huge cock for the first time,
Bianca gradually quickens her hip movements as if testing her limits.
@plc
//
@cg001
//
@voice12
"Hah, ah...! Ahg, kuhah... ah ah, guhh...!"
@plc
//
//�����̏ꍇ������������������������������������������������������������������������
@yome0
"Oh, that's the way, lady. Is my cock finally getting used to it? Eh?"
@plc
//
@cg002
//
@voice13
"Kuh, fuh...! There's no way I could get used to something this
big...! It feels like my insides are being stretched to the limit... I
can't calm down, it's driving me crazy."
@plc
//
"Heh heh... Despite all your complaints, you're getting into it. It's
irresistible. You're swaying your hips so well. Do you do it like this
with your husband too?"
@plc
//
@voice14
"Nngh, kuh... So stop saying vulgar things! Don't make me think about
him at a time like this... Nha, ah, nngh!"
@plc
//
As Bianca moves her hips, she slightly loses balance, causing the
penis to thrust deeply into her vagina. The man playing the customer
role looks up at Bianca enduring the shock with a grin.
@plc
//
"Don't be so uptight. Conversation with the customer is important too,
you know? So, which feels better, your husband's cock or mine?"
@plc
//
@voice15
"Don't mess with me! There's no way I can compare them! Yours is just
big, it doesn't feel good at all...!"
@plc
//
@yome0end
//�����̏ꍇ������������������������������������������������������������������������
@yome0x
"Oh, that's the way. Is my cock finally getting used to it? Eh?"
@plc
//
@cg002
//
@voice16
"Kuh, fuh...! There's no way I could get used to something this
big...! It feels like my insides are being stretched to the limit... I
can't calm down, it's driving me crazy."
@plc
//
"Heh heh... Despite all your complaints, you're getting into it. It's
irresistible. You're swaying your hips so well."
@plc
//
@voice17
"Nngh, kuh... So stop saying vulgar things!!"
@plc
//
As Bianca moves her hips, she slightly loses balance, causing the
penis to thrust deeply into her vagina. The man playing the customer
role looks up at Bianca enduring the shock with a grin.
@plc
//
"Don't be so uptight. Conversation with the customer is important too,
you know? So, are you feeling it with my cock? Tell me which part of
your pussy feels good."
@plc
//
@voice18
"Don't mess with me! There's no way I can say something so
embarrassing! It's big and painful, it doesn't feel good at all...!"
@plc
//
@yome0end
//������������������������������������������������������������������������������������
"Heh heh! You say that while your pussy juice is dripping everywhere!
It's soaking wet. It's overflowing more and more. Making my cock all
slippery."
@plc
//
@cg001
//
@voice19
"Eek!? How lewd, you don't have to stare at the part where it's going
in!? Ugh, ngh, ah...!"
@plc
//
"Don't be stubborn, it's the truth. You're really feeling it with this
big cock, aren't you? Your movements are getting more and more
erotic."
@plc
//
@voice20
"Hah, hah...! Don't get the wrong idea. I'm just getting used to it.
I'm just trying hard to finish quickly...!"
@plc
//
@cg006
//
@voice21
"Nngh, fuh, ugh...! Ah, hah, hah... Hurry up and finish."
@plc
//
"Oh, is that so? Then I'll do as you wish. I was getting tired of
holding back anyway. Come on, put some effort into it."
@plc
//
@cg005
//
@voice22
"Ack! I get it, okay! Nngh, ugh, I'll do as you say... Just hurry up
and finish... Agh, ugh! Ngh!"
@plc
//
The thick cock with bulging veins roughly rubs against the vaginal
walls. Feeling the impending ejaculation, Bianca quickens her pace.
@plc
//
@voice23
"Nha, ahhh! It's still getting bigger inside!? You have to tell me
when you're going to finish... Kyaa!? Agh, ugh! Uuuuugh!"
@plc
//
@syasei000_002_02_02
//
�\�\Throb Throb Throb
@plc
//
@voice24
"Hi, ah! Ah ah... Ah, no. It's coming inside... Ugh, ngh."
@plc
//
"Hoo! That's right, squeeze it all out to the end."
@plc
//
@syasei000_003_03_05
//
�\�\Squelch Throb... Throb Throb...
@plc
//
@voice25
"Hic, ugh... No, ahh! It's still coming out, ugh! Don't push the semen
so deep inside! Ngh, hah, hah...!"
@plc
//
//�����̏ꍇ������������������������������������������������������������������������
@yome0
"Heh heh, don't make a fuss. You're used to creampies, aren't you?
You've had kids, right? Don't make such a big deal out of it."
@plc
//
@cg010
//
@voice26
"Ugh, that's not the issue...! Ah, I'm sorry...! To be defiled by a
man like this...! Hic, ugh, don't stir it up...!"
@plc
//
@yome0end
//�����̏ꍇ������������������������������������������������������������������������
@yome0x
"Heh heh, don't make a fuss. Creampies are normal, aren't they? Don't
make such a big deal out of it."
@plc
//
@cg010
//
@voice27
"Ugh, don't impose your normal on me...! Ah, to be defiled by a man
like this...! Hic, ugh, don't stir it up...!"
@plc
//
@yome0
//������������������������������������������������������������������������������������
From the connected part of the two, a milky white fluid oozed out. As
the remaining fluid was poured in, Bianca looked up at the director.
@plc
//
"What are you dazing off for? Continue."
@plc
//
@cg011
//
@voice28
"Eh!? Why? I did as I was told, didn't I?"
@plc
//
"Who said it ends after one time? You continue until the customer is
satisfied. That's the practice."
@plc
//
@voice29
"No way! I didn't hear anything about multiple times. And being
finished inside multiple times... I don't want that."
@plc
//
"Sigh... What are you saying now? That's your job, isn't it? You
should have understood that beforehand."
@plc
//
"Heh heh, you can't be giving up at this level. You know it too,
right? No matter how much you complain, you can't be free. It's
smarter to show some enthusiasm and get it over with quickly."
@plc
//
Faced with reality, Bianca bit her lip. No matter how much she
disliked it, she realized she couldn't quit this job without paying
the penalty.
@plc
//
@cg006
//
@voice30
"...I'll continue. Nngh, kuh... Hah, ngh!"
@plc
//
"That's more like it. Entertain me more."
@plc
//
@cg001
//
@voice31
"Hyu! Don't move. I'll do it, so stay still... Ugh, kuh. Even though
you should have ejaculated once already, it's still this hard... Ah,
ngh."
@plc
//
"It's my specialty. Heh heh, it's amazing. The inside of your pussy is
all squishy. It feels great."
@plc
//
@voice32
"Ngh, ah... Ngh, if it feels good, hurry up and be satisfied. Hah,
hah... My hips are going numb, I feel like I can't move anymore."
@plc
//
//�����̏ꍇ������������������������������������������������������������������������
@yome0
//
"I'm happy to be begged for ejaculation by a beauty like you. How does
it feel to beg for semen from a man other than your husband?"
@plc
//
@cg002
//
@voice33
"Ngh...! It's nothing special. It's just a job...! Just so you know, I
don't want you to ejaculate. I just want it to end quickly."
@plc
//
@voice34
"Ugh, I've never even begged him to finish inside me. I would never do
something so shameless...!"
@plc
//
@yome0end
//�����̏ꍇ������������������������������������������������������������������������
@yome0x
"I'm happy to be begged for ejaculation by a beauty like you. How does
it feel to beg for semen from a man you don't even like?"
@plc
//
@cg002
//
@voice35
"Ngh...! It's nothing special. It's just a job...! Just so you know, I
don't want you to ejaculate. I just want it to end quickly."
@plc
//
@yome0
//������������������������������������������������������������������������������������
//
Even though she was getting used to accepting the large cock, just
continuing the act was draining Bianca's stamina. Her labored
breathing and the way she moved her hips up and down excited the man
playing the customer role.
@plc
//
"Don't get cocky. With that attitude, I can't enjoy myself either. You
need to be a bit more pleasant. Or do you want to keep savoring my
cock forever?"
@plc
//
@cg010
//
@voice36
"Ha, ah... Ugh, even if you tell me to be pleasant. I don't know how."
@plc
//
"It's simple. Just act like you're feeling it. That'll make a man feel
good. All you have to do is move and make some noise. It's easy,
right?"
@plc
//
Bianca glared at the man with tired eyes, dissatisfied. However, she
no longer had the energy to resist. She began to let out small,
embarrassed whispers in time with her movements.
@plc
//
@cg005
//
@voice37
"Ah, ah...! Ah, it's rubbing, ugh... ha, ha...!"
@plc
//
"Heh heh, that's the way. Throw away your shame. Make it more
exaggerated!"
@plc
//
@cg009
//
@voice38
"Ugh... Ah, ah! It feels good... it feels good! Ugh, more...! Ah,
ah...!"
@plc
//
"That's right, that's right. Don't just moan, make sure to compliment
the customer too. ...How is it, does my cock feel good?"
@plc
//
@cg002
//
@voice39
"Ugh... Yes, it's big, it's good. It rubs a lot inside... This is the
first time. Ah... it feels good."
@plc
//
As she continued to stroke it carefully, the large cock once again
showed signs of swelling towards climax.
@plc
//
"You're getting better at this. Here comes the finish... Do you want
my semen?"
@plc
//
@cg001
//
@voice40
"I-I want it! Nngh, ah... I want you to release your semen from that
big cock."
@plc
//
With the signs of the man's climax, a bit of strength returned to
Bianca's movements. Her heavy breathing and intense up-and-down motion
quickly drew the man's climax closer.
@plc
//
"Alright, alright, beg for it more! Tell me clearly where you want
it!"
@plc
//
@voice41
"Ugh, ugh...! Release it. In the place that feels good... release your
semen inside me... Nngh, ugh, ahhh!"
@plc
//
"Alright, well done. Here's your reward! Now, squeeze it out
yourself!"
@plc
//
@cg002
//
@voice42
"Ah, thank you... ugh! Ugh! Ughhh!"
@plc
//
@syasei000_004_04_05
//
�\�\Splurt Splurt!
@plc
//
@voice43
"Ugh! It's coming out inside again... Ugh. The semen is coming out..."
@plc
//
"Phew! You did well. Ah, I was able to release it nicely."
@plc
//
@cg002_05_05
//
@voice44
"Ha, ha! Even though it's the second time, it's still so much... Ah,
ah, it's overflowing, ugh..."
@plc
//
As the large cock throbbed and pulsed with climax, Bianca groaned
while being filled with semen.
@plc
//
@cg003
//
@voice45
"W-why... is it still hard? It should have released twice already, so
why...?"
@plc
//
Indeed, the cock that should have released twice inside Bianca showed
no signs of wilting and continued to assert its presence inside her
vagina.
@plc
//
//�����̏ꍇ������������������������������������������������������������������������
@yome0
"There's no way my cock would go soft after such a cute request. I'll
keep entertaining you as many times as you want, ma'am."
@plc
//
@yome0end
//�����̏ꍇ������������������������������������������������������������������������
@yome0x
"There's no way my cock would go soft after such a cute request. I'll
keep entertaining you as many times as you want."
@plc
//
@yome0end
//������������������������������������������������������������������������������������
@voice46
"Ah, ugh...! As many times as I want..."
@plc
//
"Keep going. Until the customer is satisfied."
@plc
//
The men watched Bianca's shock at the harsh demands with a certain
amusement.
@plc
//
@anten
//
�\�\Splurt... Splurt
@plc
//
@cg004_06_06
//
@anten
//
@voice47
"Hah, ha, ha, hi...! Please...! Just a little break...! My body can't
move anymore..."
@plc
//
Hours passed, and while Bianca was exhausted, inside her vagina was
still being stirred by the man's large cock.
@plc
//
@voice48
"I'm at my limit. If you let me rest a little, I'll do anything...
Please...!"
@plc
//
"Hmph. Pathetic. Hey, you move for her."
@plc
//
"Yes. Understood."
@plc
//
@cg002
//
@voice49
"Hi? No, stop... if you move now, I'll go crazy. Ha, ha... please,
leave me alone."
@plc
//
There was no way Bianca's plea would be heard. The man playing the
customer role confidently thrust his hips, pushing up Bianca's
exhausted body.
@plc
//
@binta000_004_99_99
//
�\�\Thrust Squelch Thrust!
@plc
//
@voice50
"Ahh! Ah... ahhh! Don't do it so hard... My stomach will burst! Ugh,
ahh! Ughhh!"
@plc
//
Ignoring Bianca's scream-like moans, the man continued to thrust his
hips. With each collision of flesh, Bianca's body twitched and
convulsed as if being hammered into place.
@plc
//
"Heh heh, your acting is getting better. That's quite an enticing
moan."
@plc
//
@cg001
//
@voice51
"N-no! It's not acting, I'm really at my limit... Ughhh! I can't
continue anymore, let me rest... I'll break!"
@plc
//
@voice52
"Don't move! Don't move your cock! Don't stir me up inside... Don't
make it all messy! Ah, ahhh!"
@plc
//
"Stop whining, it's almost over! I'll give you plenty at the end!"
@plc
//
@voice53
"I can't take it anymore! I can't hold on even a little... Ugh! Stop
cumming inside... I'm already so full...! Ahhh!"
@plc
//
@voice54
"No more thrusting up! Don't try to cum... Don't prepare to release
your semen... Ugh, ahh... ahh! Ahhh!"
@plc
//
@syasei000_016_07_07
//
�\�\Splat! Splat! Splurt...!
//
@plc
//
@voice55
"Ahh...! Hic, hic...! I told you I'm full inside... Ugh! Your cock is
twitching, ugh... I can't take it anymore..."
@plc
//
@cg999_08_08
//
"Heh heh heh, she finally came. She's squeezing out the semen while
fainting. She'll be a popular girl."
@plc
//
After receiving a massive ejaculation, Bianca finally reached her
physical limit and collapsed limply.
@plc
//


code:
@cg013_06_99wait
//
"Come on, Bianca-chan, suck it properly. Just because there are two
customers doesn't mean you can slack off, okay?"
@plc
//
@voice01
"Y-yes... I'm sorry. Mmm, gulp... slurp, slurp... Pwah... lick, suck,
slurp, slurp..."
@plc
//
Bianca, surrounded by two men, hesitantly placed her lips on the cock
in front of her. Although it wasn't the first time she had multiple
customers, she still wasn't used to handling them all at once, and she
was aware of her stiff movements.
@plc
//
If her children saw her surrounded by two naked men, what would they
think? The unpleasant thought crossed her mind, and Bianca focused on
the task at hand to shake off the unnecessary thoughts.
@plc
//
@cg014
//
@voice02
"Slurp, slurp, slurp, slurp... Hah, hah, how is it, sir? Does it feel
good?"
@plc
//
Seeing Bianca looking up anxiously with the cock in her mouth, the
customer smiled happily.
@plc
//
"It's really good. You've improved a lot. It was worth coming here
regularly to train you."
@plc
//
@voice03
"Lick, slurp. Yes, thanks to you... Thank you for teaching me so much.
I'm glad you're pleased, sir. Mwah, slurp, slurp..."
@plc
//
As Bianca carefully caressed the glans and the underside of the shaft,
she absentmindedly wondered when her tongue had become so lewd. She
had never done anything like this before coming here.
@plc
//
"Oh, that's nice. Take it deeper."
@plc
//
@cg015
//
The man suddenly thrust his hips forward. The swollen glans poked at
the back of her throat, and Bianca tightly closed her eyes. It took
considerable effort to keep her mouth open wide and suppress the gag
reflex without scraping the customer's penis with her teeth.
@plc
//
@voice04
"Mmph! Guh, ugh...! Sir, I can't take it that deep...! Please don't
thrust, mmph! Ugh! Ugh!"
@plc
//
"What's this? It's rude to choke on a customer's cock. Heh heh."
@plc
//
The customer smirked mischievously. Bianca looked up at him while
coating his penis with the sticky saliva that welled up in her mouth.
@plc
//
@cg014
//
@voice05
"Cough! Hah, hah... I'm sorry. My throat is weak. I'll do my best to
serve you, so please leave it to me... Mmm, gulp, slurp, slurp..."
@plc
//
@voice06
"Slurp, slurp, slurp, slurp... Hic, ah!"
@plc
//
As she focused on her mouth, she suddenly let out a high-pitched voice
when her butt was touched.
@plc
//
"Don't sway your body while sucking cock. It's making it hard for me."
@plc
//
@cg013
//
As her butt was groped, Bianca became acutely aware of the man behind
her and how exposed she was to him.
@plc
//
@cg005_01_99
//
@voice07
"Pwah, hah, hah... I'm sorry, I got too focused. Please enjoy yourself
too, sir."
@plc
//
--It's being inserted. As Bianca endured the imaginary pressure
transmitted to her vagina, the man touched the tip of his cock to an
unexpected place.
@plc
//
@cg002
//
@voice08
"Huh? Sir, ah... that's my butt hole. Ah, ack, ugh!"
@plc
//
The hot, throbbing glans touched her anus. The heat from the cock
seemed to seep in from where their mucous membranes met snugly, and
just a slight movement made her voice escape. Bianca furrowed her
brows in embarrassment.
@plc
//
"I can see that. It's clean. It's okay to use this one too, right?"
@plc
//
As he spoke, the man pressed the glans against her anus as if to
confirm its feel. Bianca cursed her sensitivity as she clearly felt
her anus being distorted.
@plc
//
@cg005
//
@voice09
"Mmph, ah, yes... But I'm not very good with my butt. If possible, I'd
prefer you enjoy my pussy instead... Ugh, ah! Please don't spread my
butt so much!"
@plc
//
Bianca timidly suggested but was quickly interrupted. Her butt was
firmly grasped and spread open, causing more pain than shame.
@plc
//
@voice10
"Please, I beg you, use my pussy instead of my butt... I'm already wet
and ready."
@plc
//
"Shut up. I prefer the ass. I've paid, so it's my choice where I stick
it."
@plc
//
@cg004
//
@voice11
"I know that, but...! Ah! If you keep pressing your cock like that,
it'll go in my butt... Wait, wait!"
@plc
//
Ignoring Bianca's protests, the man began to thrust his hips. Bianca
could clearly feel the swollen glans slowly being inserted into her
anus.
@plc
//
@cg011_99_01
//
@voice12
"Ahhh! I'm not good with my butt...! It's coming in deep... Ahh...
it's sinking in!"
@plc
//
"Heh heh, for all your complaints, it goes in smoothly. If you weren't
used to it, it wouldn't go in like this."
@plc
//
@voice13
"Ugh, but there are many customers who prefer my butt. Even though I'm
not good at it... Ah! It feels like it's reaching deep inside... Ahh!"
@plc
//
The man's hips pressed tightly against Bianca's. The unpleasant
sensation of being stroked deep inside made Bianca tense up as the men
looked down at her with amusement.
@plc
//
"Heh heh! With such a big ass in front of me, I can't help but want to
stick it in. Ahh... it's clinging all the way inside."
@plc
//
@cg007
//
@voice14
"Ahhh!? Please don't rotate your hips! My butt hole will open up...
Ahh! Your cock is digging in!"
@plc
//
While deeply connected, the man rotated his hips to savor the inside
of her anus. Each time, his hard penis strongly stimulated her rectum.
Even as Bianca writhed in discomfort, the man didn't stop moving.
@plc
//
@cg010
//
@voice15
"Ohhh! Please don't stir inside my butt! It's spreading and it's
painful... Ahh! Ahhh!"
@plc
//
Even a slight movement from the man made Bianca react intensely. She
knew that her reactions amused the men, but she couldn't stay still
with the foreign sensation of having her excretory organ probed.
@plc
//
"What a nice asshole. If you marketed yourself as an anal specialist,
you'd have tons of customers."
@plc
//
@cg011
//
@voice16
"Hah! Hahh! That's absolutely impossible. If I had to keep doing it
with just my butt, I'd go insane..."
@plc
//
@voice17
"Just having it put in my butt once is tough, and I can't work for the
rest of the day... Ugh, ahh! Even today, I feel like I won't be able
to work anymore after this."
@plc
//
"Heh heh! I'm glad you can feel my cock so much. It's worth the money.
I'm going to start moving now."
@plc
//
@voice18
"Y-yes... Please be gentle... Ugh! Uuugh...!"
@plc
//
The thick rod was pulled out of Bianca's rectum, scraping against it.
It felt like she was being forced to defecate. This was one of the
reasons Bianca disliked having her butt violated.
@plc
//
@cg010
//
@voice19
"Ah, ah, ah...! The cock is caught inside, ugh! Please don't pull it
out so slowly... It feels weird, ahh, please!"
@plc
//
Bianca was desperately holding back the urge to urinate due to the
simulated defecation. She was on edge, feeling like she might leak if
she let her guard down even a little.
@plc
//
"You're a demanding woman. If you weren't beautiful, I'd shut you up
with a punch, heh heh."
@plc
//
@voice20
"I'm s-sorry! When my butt is moved, my whole body tingles and it's
unbearable... Ahh, please forgive me, customer-sama!"
@plc
//
Seeing Bianca apologize while writhing, the man twisted his mouth in a
mean smile. Bianca felt a bad premonition as she saw him grab her
buttocks firmly again.
@plc
//
"That's no good. A stupid woman who keeps complaining about what the
customer does needs to be punished!"
@plc
//
With a shout, the man thrust the rod that was about to slip out back
into Bianca in one go. The rod forcefully pried open her rectum, which
was closing after expelling the foreign object.
@plc
//
�\�\Zuzuzub... Zupaan!
@plc
//
@cg007
//
@voice21
"Ahh... Nooo!! To thrust it all in at once, eh, eh...! My butt hole is
being pushed in, ugh...!"
@plc
//
The man laughed at Bianca, whose eyes were rolling from the shock.
@plc
//
"Despite having your asshole violated so much, you keep complaining,
so you'll never get used to it. If you just endure it quietly, your
asshole will eventually get stronger and more durable!"
@plc
//
The man, with a vulgar smile, began to move his hips happily. The
rapid pistoning left no time for the mucous membranes to stick
together, only friction was conveyed. Naturally, the burden on
Bianca's rectum was immense.
@plc
//
@cg010
//
@voice22
"Hiiig! Hiiig! Customer-sama... Ahhh! Please calm down, don't be
rough!"
@plc
//
@voice23
"If you do it so intensely, my butt hole will get hot... Hiiig! It'll
burn! The cock rubbing is going to burn!"
@plc
//
The man seemed delighted that his penis was causing the beautiful
woman distress, and he intensified his movements upon hearing her
scream-like moans. Bianca was pushed by the thrusts that slammed into
her body.
@plc
//
@voice24
"Ugh! Cough cough! C-customer-sama, please don't push so hard... The
cock I'm holding is being pushed in and it's painful... Ugh! Ugh!"
@plc
//
"Don't mind me, keep going. It feels good to be taken in deep. Ahh,
Bianca-chan's throat is exquisite too. I can't hold back like this."
@plc
//
@cg012
//
@voice25
"Nngh! Please don't block my throat! I feel like I can't breathe...
Ugh, cough! Slurp, slurp, squelch, gurgle!"
@plc
//
"Heh heh, your suffering face is the most exciting, Bianca-chan. You
have such a sorrowful look. Ahh, I'm getting overwhelmed!"
@plc
//
The more the man moved his hips happily, the more Bianca's agony
increased. The men continued to indulge in pleasure with the woman who
couldn't even breathe properly between them.
@plc
//
@voice26
"Slurp, squelch, squish! I'm at my limit...! Please stop with the cock
in my mouth and butt! Ugh, squelch, squish!"
@plc
//
"Don't say that, I'm at my limit too. Ugh, suck tightly!"
@plc
//
The man who had been still began to twist his penis into Bianca's
mouth. Her throat was completely blocked and Bianca's body trembled.
@plc
//
@cg010
//
@voice27
"Ughhh! Gulp, slurp... The cock is swelling! It's being pushed in so
big, I can't breathe anymore... Slurp, squish!"
@plc
//
"Ugh, it's tightening up! I can't hold it... Ugh! Ughhh!"
@plc
//
The man who had been desperately thrusting stopped moving. With their
hips tightly pressed together, the man reached his climax.
@plc
//
@syasei000_007_02_02
//
�\�\Byuk Dokudokubyuru!
@plc
//
@voice28
"Hii! Iii! Did you cum inside my butt!? Ahh! It's hot... Hii! It's
coming out inside...!"
@plc
//
Bianca sensitively felt the semen being poured into her rectum that
had been rubbed raw. Every time the rod throbbed inside her belly, her
sweaty body tensed up.
@plc
//
@syasei000_010_03_99
//
�\�\Gopo Buburu... Byukbyuk!
@plc
//
@voice29
"Ughhh...! Ahh, please don't pour it all the way inside! It's hot, my
butt is so hot I feel like I'm going to lose it...!"
@plc
//
"Next is here. Now, suck tightly!"
@plc
//
Without giving Bianca a moment to rest, the man who was violating her
mouth also raised a desperate voice. With no other choice but to
comply, Bianca mustered the remaining strength she had to wrap her
tongue around and suck on the rod in her mouth.
@plc
//
@cg012
//
@voice30
"Hahh, hahhh... Slurp slurp slurp! Squelch, slurp!"
@plc
//
As Bianca sucked strongly, the penis pushed into her swelled. It was
an unpleasant sensation as her throat was widened. Thinking of the
cloudy liquid that would soon be directly poured into her esophagus,
Bianca tightly closed her eyes.
@plc
//
"Ugh, ughhh...!!"
@plc
//
@syasei000_010_04_99
//
�\�\Throb! Splurt Splurt
@plc
//
@voice31
"Mmph! Slurp, slurp... gulp, slurp slurp! Gulp, suck, slurp...!"
@plc
//
Bianca desperately swallowed the mucus spurting from the penis,
somehow holding back the urge to cough.
@plc
//
@siru05
//
"That's it, drink it all... ahh, suck it all out."
@plc
//
@voice32
"Ha, hii...! Nngh, slurp... gulp, slurp, gulp... oops. Slurp,
slurp..."
@plc
//
More semen was being poured than Bianca could swallow. It overflowed
from the corners of her mouth as it backflowed from her throat. She
mustn't spill it. Even in a daze, the man watched the woman
desperately sucking on his penis with satisfaction.
@plc
//
"Phew...! You spilled a little, didn't you? You're still not there
yet, Bianca-chan."
@plc
//
@cg012
//
@voice33
"Ha, hi... Cough, cough... I'm sorry, sir..."
@plc
//
Bianca felt her vision blur. She had somehow maintained consciousness
out of a sense of responsibility to see it through to the end, but it
seemed she had long since passed her physical limits.
@plc
//
"Heh, well, it's fine. I'll come again, so make sure you practice to
drink it all next time."
@plc
//
"Hehe. I'll come to see Bianca-chan's butt hole again too."
@plc
//
@cg011
//
@voice34
"Nngh, ugh... Please, come again, sir..."
@plc
//
Mumbling in a daze, Bianca collapsed on the spot as the men stood up
and she lost their support.
@plc
//