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

namespace Rimworld_Animations
{
    public class PawnRenderNode_GraphicVariants : PawnRenderNode
    {

        protected new PawnRenderNodeProperties_GraphicVariants props;
        protected Graphic missingTextureGraphic;
        protected Dictionary<int, Graphic> variants;

        public Graphic getGraphicVariant(int variant)
        {
            if (variants == null || !variants.ContainsKey(variant))
            {
                return missingTextureGraphic;
            }

            return variants[variant];
        }

        public PawnRenderNode_GraphicVariants(Pawn pawn, PawnRenderNodeProperties props, PawnRenderTree tree) : base(pawn, props, tree) {

            this.props = (PawnRenderNodeProperties_GraphicVariants)props;

        }

        protected virtual Dictionary<int, Graphic> GraphicVariantsFor(Pawn pawn)
        {

            if (props.texPathVariantsDef == null)
            {
                return null;
            }

            return GenerateVariants(pawn, props.texPathVariantsDef);

        }

        protected override void EnsureMaterialsInitialized()
        {

            if (variants == null)
            {
                variants = GraphicVariantsFor(this.tree.pawn);
            }
            if (missingTextureGraphic == null)
            {
                missingTextureGraphic = GenerateMissingTextureGraphic();
            }

            base.EnsureMaterialsInitialized();
        }

        //used by all, including base classes, to create texPathVariants for pawn
        protected Dictionary<int, Graphic> GenerateVariants(Pawn pawn, TexPathVariantsDef texPathVariants)
        {

            Dictionary<int, Graphic> variantGraphics = new Dictionary<int, Graphic>();

            //for each graphic variant
            for (int i = 0; i < texPathVariants.variants.Count; i++)
            {

                //get new graphic
                Graphic variant = GraphicDatabase.Get<Graphic_Multi>(texPathVariants.variants[i], this.ShaderFor(pawn), Vector2.one, this.ColorFor(pawn));

                //add it to the variants dictionary; i + 1 for easier readability in logs
                variantGraphics.Add(i + 1, variant);

            }

            return variantGraphics;

        }

        protected Graphic GenerateMissingTextureGraphic()
        {
            return GraphicDatabase.Get<Graphic_Multi>("AnimationProps/MissingTexture/MissingTexture");
        }
    }
}


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

namespace Rimworld_Animations
{
    public class TexPathVariantsDef : Def
    {

        public List<string> variants;

    }
}

license: unknown


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

namespace Rimworld_Animations
{
    public class PawnRenderSubWorker_ChangeOffset : PawnRenderSubWorker
    {

        public override void TransformOffset(PawnRenderNode node, PawnDrawParms parms, ref Vector3 offset, ref Vector3 pivot)
        {
            if (parms.Portrait)
                return;

            if (node.AnimationWorker is AnimationWorker_KeyframesExtended
                && node.tree.pawn.TryGetComp<CompExtendedAnimator>(out CompExtendedAnimator extendedAnimator))
            {
                Vector3? pawnOffset = extendedAnimator.Offset;
                if (pawnOffset != null)
                {
                    offset += (Vector3)pawnOffset;
                }

            }
        }

        public override void TransformRotation(PawnRenderNode node, PawnDrawParms parms, ref Quaternion rotation)
        {
            if (node.AnimationWorker is AnimationWorker_KeyframesExtended
                && node.tree.pawn.TryGetComp<CompExtendedAnimator>(out CompExtendedAnimator extendedAnimator))
            {
                int? pawnRotation = extendedAnimator.Rotation;
                if (pawnRotation != null)
                {
                    Quaternion additionalRotation = Quaternion.AngleAxis((int)pawnRotation, Vector3.up);
                    rotation *= additionalRotation;
                }

            }

            base.TransformRotation(node, parms, ref rotation);
        }

    }
}


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

namespace Rimworld_Animations
{
    public class PawnRenderSubWorker_HideWhenAnimating : PawnRenderSubWorker
    {

        public override void EditMaterial(PawnRenderNode node, PawnDrawParms parms, ref Material material)
        {
            if (node.tree.pawn.def != ThingDefOf.Human) return;

            if (node.tree.rootNode.AnimationWorker is AnimationWorker_KeyframesExtended
                || node.tree.rootNode.children.Any(x => x.AnimationWorker is AnimationWorker_KeyframesExtended))
            {
                material.color = Color.clear;
                material.shader = ShaderTypeDefOf.Transparent.Shader;
            }
        }

        public override void TransformLayer(PawnRenderNode node, PawnDrawParms parms, ref float layer)
        {

            base.TransformLayer(node, parms, ref layer);

            if (node.tree.pawn.def != ThingDefOf.Human) return;
            layer -= 1000;
        }

    }

}


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 {

        public static void StartAnimation(List<Pawn> participants)
        {
            participants[0].Drawer.renderer.SetAnimation(AnimationDefOf.TestAnimation1);
            participants[1].Drawer.renderer.SetAnimation(AnimationDefOf.TestAnimation2);
        }

        //startgroupanimator with anchor
        //don't anchor to self if anchor is self
        public static void StartGroupAnimation(List<Pawn> participants, GroupAnimationDef groupAnimationDef, int reorder, Thing anchor)
        {

            int seed = GenTicks.TicksGame;

            for (int i = 0; i < participants.Count; i++)
            {

                groupAnimationDef.GetOffset(i, participants[i], out Vector3? position, out int? rotation, reorder);

                if (anchor is Pawn pawn && pawn == participants[i])
                {

                    List<AnimationDef> allAnimationsForPawn = groupAnimationDef.GetAllAnimationsForActor(i, seed, reorder);
                    participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, position, rotation);
                }
                else
                {
                    //each participant gets their own unique extendedanimatoranchor, important for scribe_deep saving
                    List<AnimationDef> allAnimationsForPawn = groupAnimationDef.GetAllAnimationsForActor(i, seed, reorder);
                    BaseExtendedAnimatorAnchor animatorAnchor = new ExtendedAnimatorAnchor_Thing(anchor);

                    if (RJWAnimationSettings.debugMode)
                    {
                        Log.Message("Now playing animation: " + groupAnimationDef.defName + " Actor Shift: " + reorder);
                    }

                    participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, position, rotation, animatorAnchor);
                }
            }
        }

        //startgroupanimation without anchor; just play where standing
        public static void StartGroupAnimation(List<Pawn> participants, GroupAnimationDef groupAnimationDef, int reorder)
        {
            int seed = GenTicks.TicksGame;

            for (int i = 0; i < participants.Count; i++)
            {
                List<AnimationDef> allAnimationsForPawn = groupAnimationDef.GetAllAnimationsForActor(i, seed, reorder);
                groupAnimationDef.GetOffset(i, participants[i], out Vector3? position, out int? rotation, reorder);
                participants[i].TryGetComp<CompExtendedAnimator>().PlayGroupAnimation(allAnimationsForPawn, position, rotation);
            }
        }

        public static void StopGroupAnimation(List<Pawn> participants)
        {
            foreach(Pawn pawn in participants)
            {
                pawn.TryGetComp<CompExtendedAnimator>()?.StopAnimating();
            }
        }

        public static void StopGroupAnimation(Pawn participant)
        {
            participant.TryGetComp<CompExtendedAnimator>()?.StopAnimating();
        }

        public static GroupAnimationDef FindGroupAnimation(List<Pawn> participants, out int reorder)
        {
            // go through each context in each GroupAnimationDef
            // if you find one where it returns canAnimationBeUsed (and reorders),
            // return that animation

            //find all, reorder randomly, then find max priority context
            DefDatabase<GroupAnimationDef>.AllDefsListForReading
                .FindAll((GroupAnimationDef x) => x.canAnimationBeUsed(participants))
                .OrderBy(_ => Rand.Int)
                .TryMaxBy((GroupAnimationDef x) => x.Priority(participants), out GroupAnimationDef result);

            reorder = result != null ? result.Reorder(participants) : 0;
            return result;

        }

        public static int GetAnimationLength(Pawn pawn)
        {
            return pawn.TryGetComp<CompExtendedAnimator>().AnimationLength;
        }

    }
}


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

namespace Rimworld_Animations
{
    public class VoiceDef : Def
    {

        public List<ThingDef> races = new List<ThingDef>();
        public Gender gender = Gender.None;
        public List<TraitDef> traits = new List<TraitDef>();
        public bool takesPriority = false;
        public float randomChanceFactor = 1;

        public Dictionary<VoiceTagDef, SoundDef> sounds = new Dictionary<VoiceTagDef, SoundDef>();

        public bool VoiceFitsPawn(Pawn pawn)
        {

            //doesn't match any of the races
            if (!races.Exists(x => x == pawn.def)) return false;

            //doesn't match gender
            if (gender != Gender.None && pawn.gender != gender) return false;

            //if traits list is not empty, and pawn doesn't have any of the designated traits, doesn't match
            if (!traits.Empty() && !traits.Any(trait => pawn.story.traits.HasTrait(trait))) return false;

            return true;

        }

    }
}


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

namespace Rimworld_Animations
{
    [DefOf]
    public static class VoiceDefOf
    {
        static VoiceDefOf()
        {
            DefOfHelper.EnsureInitializedInCtor(typeof(VoiceDefOf));
        }

        public static VoiceDef Voice_HumanMale;
        public static VoiceDef Voice_HumanFemale;
    }
}


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

namespace Rimworld_Animations
{
    public class VoiceTagDef : Def
    {

        public float probability = 1;

    }
}


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

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

1.5

	</supportedVersions>
	<packageId>c0ffee.rimworld.animations</packageId>
	<modVersion>2.0.1</modVersion>
	<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>

	</modDependencies>
	<loadAfter>

UnlimitedHugs.HugsLib

brrainz.harmony

erdelf.humanoidalienraces

nals.facialanimation

com.yayo.yayoAni

	</loadAfter>
	<loadBefore>
	</loadBefore>
	<incompatibleWith>
	</incompatibleWith>
	<description>
    Rimworld Animations 2.0! 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>2.0.1</version>
</Manifest>


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

	<!-- Mod menu -->
	<RimAnim_ModSettings>RJW Animation Settings</RimAnim_ModSettings>
	<RimAnim_SoundOverride>启用声音覆盖</RimAnim_SoundOverride>
	<RimAnim_GenitalRotation>控制生殖器旋转</RimAnim_GenitalRotation>
	<RimAnim_OrgasmQuiver>启用高潮颤抖</RimAnim_OrgasmQuiver>
	<RimAnim_RapeShiver>启用强奸颤动</RimAnim_RapeShiver>
	<RimAnim_HeartsDuringLovin>性爱时启用心形</RimAnim_HeartsDuringLovin>
	<RimAnim_PlayNonsexual>播放非性行为的动画 (牵手、亲热)</RimAnim_PlayNonsexual>
	<RimAnim_AnimManagerTab>启用动画管理器选项卡</RimAnim_AnimManagerTab>
	<RimAnim_ShiverIntensity>颤抖/颤动强度 (默认为 2): </RimAnim_ShiverIntensity>
	<RimAnim_Voices>在动画期间播放语音</RimAnim_Voices>
	<RimAnim_HumanlikeVoicesDefault>如果没有找到外星种族的声音，则默认播放人类的声音</RimAnim_HumanlikeVoicesDefault>
	<RimAnim_DebugMode>调试模式</RimAnim_DebugMode>
	<RimAnim_FloatRangeRenderTree>调整渲染树偏移表单的浮动范围:</RimAnim_FloatRangeRenderTree>

	<!-- Main Tab Window -->
	<RimAnims_AnimManager>Animation Manager</RimAnims_AnimManager>
	<RimAnims_Warning>警告--一般情况下，你不想更改人类偏移值，只想更改外星种族偏移值或动物偏移值</RimAnims_Warning>
	<RimAnims_CopyToClipboard>将偏移值复制到剪贴板</RimAnims_CopyToClipboard>
	<RimAnims_ShareSettings>将偏移值粘贴到 OffsetDef 中，或在 Discord 中共享</RimAnims_ShareSettings>

</LanguageData>


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

	<!-- Mod menu -->
	<RimAnim_ModSettings>RJW Animation Settings</RimAnim_ModSettings>
	<RimAnim_SoundOverride>啟用聲音覆蓋</RimAnim_SoundOverride>
	<RimAnim_GenitalRotation>控制生殖器旋轉</RimAnim_GenitalRotation>
	<RimAnim_OrgasmQuiver>啟用高潮顫抖</RimAnim_OrgasmQuiver>
	<RimAnim_RapeShiver>啟用強姦顫動</RimAnim_RapeShiver>
	<RimAnim_HeartsDuringLovin>性愛時啟用心形</RimAnim_HeartsDuringLovin>
	<RimAnim_PlayNonsexual>播放非性行為的動畫 (牽手、親熱)</RimAnim_PlayNonsexual>
	<RimAnim_AnimManagerTab>啟用動畫管理器選項卡</RimAnim_AnimManagerTab>
	<RimAnim_ShiverIntensity>顫抖/顫動強度 (預設為 2): </RimAnim_ShiverIntensity>
	<RimAnim_Voices>在動畫期間播放語音</RimAnim_Voices>
	<RimAnim_HumanlikeVoicesDefault>如果沒有找到外星種族的聲音，則默認播放人類的聲音</RimAnim_HumanlikeVoicesDefault>
	<RimAnim_DebugMode>除錯模式</RimAnim_DebugMode>
	<RimAnim_FloatRangeRenderTree>調整渲染樹偏移表單的浮動範圍:</RimAnim_FloatRangeRenderTree>

	<!-- Main Tab Window -->
	<RimAnims_AnimManager>Animation Manager</RimAnims_AnimManager>
	<RimAnims_Warning>警告--一般情況下，你不想更改人類偏移值，只想更改外星種族偏移值或動物偏移值</RimAnims_Warning>
	<RimAnims_CopyToClipboard>將偏移值複製到剪貼板</RimAnims_CopyToClipboard>
	<RimAnims_ShareSettings>將偏移值黏貼到 OffsetDef 中，或在 Discord 中共享</RimAnims_ShareSettings>

</LanguageData>


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

	<!-- Mod menu -->
	<RimAnim_ModSettings>RJW Animation Settings</RimAnim_ModSettings>
	<RimAnim_SoundOverride>Enable Sound Override</RimAnim_SoundOverride>
	<RimAnim_GenitalRotation>Control Genital Rotation</RimAnim_GenitalRotation>
	<RimAnim_OrgasmQuiver>Enable Orgasm Quiver</RimAnim_OrgasmQuiver>
	<RimAnim_RapeShiver>Enable Rape Shiver</RimAnim_RapeShiver>
	<RimAnim_HeartsDuringLovin>Enable hearts during lovin'</RimAnim_HeartsDuringLovin>
	<RimAnim_PlayNonsexual>Play animation for nonsexual acts (handholding, makeout)</RimAnim_PlayNonsexual>
	<RimAnim_AnimManagerTab>Enable Animation Manager Tab</RimAnim_AnimManagerTab>
	<RimAnim_ShiverIntensity>Shiver/Quiver Intensity (default 2): </RimAnim_ShiverIntensity>
	<RimAnim_Voices>Play voices during animations</RimAnim_Voices>
	<RimAnim_HumanlikeVoicesDefault>Play human voices by default, when none found for alien race</RimAnim_HumanlikeVoicesDefault>
	<RimAnim_DebugMode>Debug Mode</RimAnim_DebugMode>
	<RimAnim_FloatRangeRenderTree>Float range for Debug Render Tree offset menu: </RimAnim_FloatRangeRenderTree>

	<!-- Main Tab Window -->
	<RimAnims_AnimManager>Animation Manager</RimAnims_AnimManager>
	<RimAnims_Warning>Warning--You generally don't want to change human offsets, only alien offsets or animals</RimAnims_Warning>
	<RimAnims_CopyToClipboard>Copy Offset to Clipboard</RimAnims_CopyToClipboard>
	<RimAnims_ShareSettings>Paste offset values in OffsetDef, or share in Discord</RimAnims_ShareSettings>

</LanguageData>


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_HumanoidAlienRaces/1.4

Patch_HatsDisplaySelection/1.2

Patch_SexToysMasturbation

Patch_SexToysMasturbation/1.4

	</v1.4>
	<v1.5>

/

1.5

Patch_HumanoidAlienRaces/1.5

Patch_SexToysMasturbation/1.5

Patch_FacialAnimation/1.5

Patch_NoRimNudeWorld/1.5

Patch_NoRimNudeWorldZoo/1.5

	</v1.5>

</loadFolders>


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>{11DC70AF-FF23-4D4D-A4E5-6453664B1A12}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Milkable_Colonists_Animations</RootNamespace>
    <AssemblyName>Milkable-Colonists-Animations</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <FileAlignment>512</FileAlignment>
    <Deterministic>true</Deterministic>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </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\839005762\1.5\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="RJW">
      <HintPath>..\..\rjw\1.4\Assemblies\RJW.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>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Source\Patches\Harmony_PatchAll.cs" />
  </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("Milkable-Colonists-Animations")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Milkable-Colonists-Animations")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[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("11dc70af-ff23-4d4d-a4e5-6453664b1a12")]

// 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 System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Verse;
using HarmonyLib;
using System.Reflection;

namespace MC_Animations {

    [StaticConstructorOnStartup]
    public static class Harmony_PatchAll {

        static Harmony_PatchAll() {

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

        }
    }
}


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

	<Operation Class="PatchOperationSequence">
		<success>Always</success>
		<operations>

				<xpath>/Defs/PawnRenderTreeDef[defName="Humanlike"]/root/children/li[debugLabel="Head"]/subworkerClasses</xpath>
				<success>Always</success>
				<nomatch Class="PatchOperationAdd">
					<xpath>/Defs/PawnRenderTreeDef[defName="Humanlike"]/root/children/li[debugLabel="Head"]</xpath>
					<value>
						<subworkerClasses />
					</value>
				</nomatch>

				<xpath>/Defs/PawnRenderTreeDef[defName="Humanlike"]/root/children/li[debugLabel="Head"]/subworkerClasses</xpath>
				<value>

Rimworld_Animations.PawnRenderSubWorker_HideWhenAnimating

				</value>

		</operations>
	</Operation>

</Patch>


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

namespace Rimworld_Animations {

	[StaticConstructorOnStartup]
	public static class HarmonyPatch_AlienRace
	{
		static HarmonyPatch_AlienRace()
		{
			(new Harmony("rjwanim")).Patch(AccessTools.Method(AccessTools.TypeByName("AlienRace.HarmonyPatches"), "DrawAddons"),
							prefix: new HarmonyMethod(AccessTools.Method(typeof(HarmonyPatch_AlienRace), "Prefix_AnimateHeadAddons")));
		}

		/* todo: replace jank prefix with this
		public static void Prefix_DrawAddonsFinalHook(ref Pawn pawn, ref AlienPartGenerator.BodyAddon addon, ref Rot4 rot, ref Graphic graphic, ref Vector3 offsetVector, ref float angle, ref Material mat)
        {
			CompBodyAnimator animator = pawn.TryGetComp<CompBodyAnimator>();

			if (animator == null || !animator.isAnimating)
            {
				return;
            }

			if(addon.alignWithHead || addon.drawnInBed)
            {
				rot = animator.headFacing;
				angle = animator.headAngle;
				offsetVector += animator.deltaPos + animator.bodyAngle * animator.headBob;

			}
			else
            {
				rot = animator.bodyFacing;
				angle = animator.bodyAngle;
				offsetVector += animator.deltaPos;
            }

        }
		*/
		public static bool Prefix_AnimateHeadAddons(PawnRenderFlags renderFlags, Vector3 vector, Vector3 headOffset, Pawn pawn, Quaternion quat, Rot4 rotation)
		{

			if (renderFlags.FlagSet(PawnRenderFlags.Portrait) || !CompBodyAnimator.IsAnimating(pawn)) return true;
			if (!(pawn.def is ThingDef_AlienRace alienProps) || renderFlags.FlagSet(PawnRenderFlags.Invisible)) return false;

			List<AlienPartGenerator.BodyAddon> addons = alienProps.alienRace.generalSettings.alienPartGenerator.bodyAddons;
			AlienPartGenerator.AlienComp comp = pawn.GetComp<AlienPartGenerator.AlienComp>();
			CompBodyAnimator pawnAnimator = pawn.TryGetComp<CompBodyAnimator>();

			bool flag = renderFlags.FlagSet(PawnRenderFlags.Portrait);
			bool flag2 = renderFlags.FlagSet(PawnRenderFlags.Invisible);

			for (int i = 0; i < addons.Count; i++)
			{
				AlienPartGenerator.BodyAddon ba = addons[index: i];

				if (!ba.CanDrawAddon(pawn: pawn)) continue;

				bool forceDrawForBody = false;
				if (alienProps.defName.Contains("Orassan") && ba.path.ToLower().Contains("tail"))
                {
					forceDrawForBody = true;
                }
				AlienPartGenerator.RotationOffset offset = ba.defaultOffsets.GetOffset((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead ? pawnAnimator.headFacing : pawnAnimator.bodyFacing);
				Vector3 a = (offset != null) ? offset.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, pawn.story.headType) : Vector3.zero;
				AlienPartGenerator.RotationOffset offset2 = ba.offsets.GetOffset((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead ? pawnAnimator.headFacing : pawnAnimator.bodyFacing);
				Vector3 vector2 = a + ((offset2 != null) ? offset2.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, pawn.story.headType) : Vector3.zero);
				vector2.y = (ba.inFrontOfBody ? (0.3f + vector2.y) : (-0.3f - vector2.y));
				float num = ba.angle;
				if (((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead ? pawnAnimator.headFacing : pawnAnimator.bodyFacing) == Rot4.North)
				{
					if (ba.layerInvert)
					{
						vector2.y = 0f - vector2.y;
					}
					num = 0f;
				}
				if (((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead ? pawnAnimator.headFacing : pawnAnimator.bodyFacing) == Rot4.East)
				{
					num = 0f - num;
					vector2.x = 0f - vector2.x;
				}
				Graphic addonGraphic = comp.addonGraphics[i];

				addonGraphic.drawSize = ((flag && ba.drawSizePortrait != Vector2.zero) ? ba.drawSizePortrait : ba.drawSize) * (ba.scaleWithPawnDrawsize ? (ba.alignWithHead ? ((flag ? comp.customPortraitHeadDrawSize : comp.customHeadDrawSize) * (ModsConfig.BiotechActive ? (pawn.ageTracker.CurLifeStage.headSizeFactor ?? 1.5f) : 1.5f)) : ((flag ? comp.customPortraitDrawSize : comp.customDrawSize) * (ModsConfig.BiotechActive ? pawn.ageTracker.CurLifeStage.bodySizeFactor : 1f) * 1.5f)) : (Vector2.one * 1.5f));

				if ((ba.drawnInBed && !forceDrawForBody) || ba.alignWithHead)
				{

					Quaternion addonRotation = Quaternion.AngleAxis(pawnAnimator.headAngle < 0 ? 360 - (360 % pawnAnimator.headAngle) : pawnAnimator.headAngle, Vector3.up);

					GenDraw.DrawMeshNowOrLater(mesh: addonGraphic.MeshAt(rot: pawnAnimator.headFacing), loc: vector + (ba.alignWithHead ? headOffset : headOffset - addonRotation * pawn.Drawer.renderer.BaseHeadOffsetAt(pawnAnimator.headFacing)) + vector2.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: addonRotation)) * 2f * 57.29578f),
					quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * addonRotation, mat: addonGraphic.MatAt(rot: pawnAnimator.headFacing), renderFlags.FlagSet(PawnRenderFlags.DrawNow));

				}

				else
				{
					Quaternion addonRotation;
					if (AnimationSettings.controlGenitalRotation && ba.path.ToLower().Contains("penis"))
                    {
						addonRotation = Quaternion.AngleAxis(pawnAnimator.genitalAngle, Vector3.up);
					}
					else
                    {
						addonRotation = Quaternion.AngleAxis(pawnAnimator.bodyAngle, Vector3.up);
					}

					if (AnimationSettings.controlGenitalRotation && pawnAnimator.controlGenitalAngle && ba?.hediffGraphics != null && ba.hediffGraphics.Count != 0 && ba.hediffGraphics[0]?.path != null && (ba.hediffGraphics[0].path.Contains("Penis") || ba.hediffGraphics[0].path.Contains("penis")))
					{
						GenDraw.DrawMeshNowOrLater(mesh: addonGraphic.MeshAt(rot: rotation), loc: vector + (ba.alignWithHead ? headOffset : Vector3.zero) + vector2.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: addonRotation)) * 2f * 57.29578f),
						quat: Quaternion.AngleAxis(angle: pawnAnimator.genitalAngle, axis: Vector3.up), mat: addonGraphic.MatAt(rot: rotation), renderFlags.FlagSet(PawnRenderFlags.DrawNow));
					}

					else
                    {
						GenDraw.DrawMeshNowOrLater(mesh: addonGraphic.MeshAt(rot: rotation), loc: vector + (ba.alignWithHead ? headOffset : Vector3.zero) + vector2.RotatedBy(angle: Mathf.Acos(f: Quaternion.Dot(a: Quaternion.identity, b: addonRotation)) * 2f * 57.29578f),
						quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * addonRotation, mat: addonGraphic.MatAt(rot: rotation), renderFlags.FlagSet(PawnRenderFlags.DrawNow));
					}

				}

			}

			return false;
		}
	}

	/*

    [HarmonyPatch(typeof(AlienRace.HarmonyPatches), "DrawAddons")]
    public static class HarmonyPatch_AlienRace {

		public static void RenderHeadAddonInAnimation(Mesh mesh, Vector3 loc, Quaternion quat, Material mat, bool drawNow, Graphic graphic, AlienPartGenerator.BodyAddon bodyAddon, Vector3 v, Vector3 headOffset, Pawn pawn, PawnRenderFlags renderFlags, Vector3 vector, Rot4 rotation)
        {

			CompBodyAnimator pawnAnimator = pawn.TryGetComp<CompBodyAnimator>();
			AlienPartGenerator.AlienComp comp = pawn.GetComp<AlienPartGenerator.AlienComp>();

			if (pawnAnimator != null && pawnAnimator.isAnimating)
            {

				if((bodyAddon.drawnInBed || bodyAddon.alignWithHead))
                {

					AlienPartGenerator.RotationOffset offset = bodyAddon.defaultOffsets.GetOffset(rotation);
					Vector3 a = (offset != null) ? offset.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, comp.crownType) : Vector3.zero;
					AlienPartGenerator.RotationOffset offset2 = bodyAddon.offsets.GetOffset(rotation);
					Vector3 vector2 = a + ((offset2 != null) ? offset2.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, comp.crownType) : Vector3.zero);
					vector2.y = (bodyAddon.inFrontOfBody ? (0.3f + vector2.y) : (-0.3f - vector2.y));
					float num = bodyAddon.angle;
					if (rotation == Rot4.North)
					{
						if (bodyAddon.layerInvert)
						{
							vector2.y = -vector2.y;
						}
						num = 0f;
					}
					if (rotation == Rot4.East)
					{
						num = -num;
						vector2.x = -vector2.x;
					}

					vector = vector + Quaternion.AngleAxis(pawnAnimator.bodyAngle, Vector3.up) * pawn.Drawer.renderer.BaseHeadOffsetAt(pawnAnimator.bodyFacing) - pawnAnimator.getPawnHeadOffset(); //convert vector into pseudo body pos for head
					quat = Quaternion.AngleAxis(pawnAnimator.headAngle, Vector3.up);
					loc = vector + (bodyAddon.alignWithHead ? headOffset : Vector3.zero) + vector2.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat)) * 2f * 57.29578f);
					mat = graphic.MatAt(rot: pawnAnimator.headFacing);
				}
				else
                {

					AlienPartGenerator.RotationOffset offset = bodyAddon.defaultOffsets.GetOffset(rotation);
					Vector3 a = (offset != null) ? offset.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, comp.crownType) : Vector3.zero;
					AlienPartGenerator.RotationOffset offset2 = bodyAddon.offsets.GetOffset(rotation);
					Vector3 vector2 = a + ((offset2 != null) ? offset2.GetOffset(renderFlags.FlagSet(PawnRenderFlags.Portrait), pawn.story.bodyType, comp.crownType) : Vector3.zero);
					vector2.y = (bodyAddon.inFrontOfBody ? (0.3f + vector2.y) : (-0.3f - vector2.y));
					float num = bodyAddon.angle;
					if (rotation == Rot4.North)
					{
						if (bodyAddon.layerInvert)
						{
							vector2.y = -vector2.y;
						}
						num = 0f;
					}
					if (rotation == Rot4.East)
					{
						num = -num;
						vector2.x = -vector2.x;
					}
					quat = Quaternion.AngleAxis(pawnAnimator.bodyAngle, Vector3.up);
					loc = vector + (bodyAddon.alignWithHead ? headOffset : Vector3.zero) + vector2.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat)) * 2f * 57.29578f);

				}

			}
			GenDraw.DrawMeshNowOrLater(mesh, loc, quat, mat, drawNow);

			/*
			if (pawnAnimator != null && !renderFlags.FlagSet(PawnRenderFlags.Portrait) && pawnAnimator.isAnimating && (bodyAddon.drawnInBed || bodyAddon.alignWithHead))
            {

				if ((pawn.def as ThingDef_AlienRace).defName == "Alien_Orassan")
                {
					orassan = true;

					if(bodyAddon.path.Contains("closed"))
                    {
						return;
                    }

					if (bodyAddon.bodyPart.Contains("ear"))

					{
						orassan = true;

						orassanv = new Vector3(0, 0, 0.23f);
						if (pawnAnimator.headFacing == Rot4.North)
						{
							orassanv.z -= 0.1f;
							orassanv.y += 1f;

							if(bodyAddon.bodyPart.Contains("left"))
                            {
								orassanv.x += 0.03f;
                            } else
                            {
								orassanv.x -= 0.03f;
							}

						}
						else if (pawnAnimator.headFacing == Rot4.East)
						{
							orassanv.x -= 0.1f;
						}
						else if (pawnAnimator.headFacing == Rot4.West)
						{
							orassanv.x = 0.1f;
						}
						else
                        {
							orassanv.z -= 0.1f;
							orassanv.y += 1f;

							if (bodyAddon.bodyPart.Contains("right"))
							{
								orassanv.x += 0.05f;
							}
							else
							{
								orassanv.x -= 0.05f;
							}
						}
						orassanv = orassanv.RotatedBy(pawnAnimator.headAngle);
					}
				}

			GenDraw.DrawMeshNowOrLater(mesh: graphic.MeshAt(rot: headRotInAnimation), loc: loc + orassanv + (bodyAddon.alignWithHead ? headOffset : Vector3.zero),// + v.RotatedBy(Mathf.Acos(Quaternion.Dot(Quaternion.identity, quat)) * 2f * 57.29578f),
					quat: Quaternion.AngleAxis(angle: num, axis: Vector3.up) * headQuatInAnimation, mat: graphic.MatAt(rot: pawnAnimator.headFacing), drawNow: drawNow);;
			}

			else
            {

			}

		}

		public static IEnumerable<CodeInstruction> Transpiler(IEnumerable<CodeInstruction> instructions)
        {
			List<CodeInstruction> ins = instructions.ToList();
			for (int i = 0; i < ins.Count; i++)
            {

				Type[] type = new Type[] { typeof(Mesh), typeof(Vector3), typeof(Quaternion), typeof(Material), typeof(bool) };

				if (ins[i].OperandIs(AccessTools.Method(typeof(GenDraw), "DrawMeshNowOrLater", type)))
                {

					yield return new CodeInstruction(OpCodes.Ldloc, (object)7); //graphic
					yield return new CodeInstruction(OpCodes.Ldloc, (object)4); //bodyAddon
					yield return new CodeInstruction(OpCodes.Ldloc, (object)5); //offsetVector/AddonOffset (v)
					yield return new CodeInstruction(OpCodes.Ldarg, (object)2); //headOffset
					yield return new CodeInstruction(OpCodes.Ldarg, (object)3); //pawn
					yield return new CodeInstruction(OpCodes.Ldarg, (object)0); //renderflags
					yield return new CodeInstruction(OpCodes.Ldarg, (object)1); //vector
					yield return new CodeInstruction(OpCodes.Ldarg, (object)5); //rotation

					yield return new CodeInstruction(OpCodes.Call, AccessTools.DeclaredMethod(typeof(HarmonyPatch_AlienRace), "RenderHeadAddonInAnimation"));

                }

				else
                {
					yield return ins[i];
				}
            }
        }

		public static bool Prefix(PawnRenderFlags renderFlags, ref Vector3 vector, ref Vector3 headOffset, Pawn pawn, ref Quaternion quat, ref Rot4 rotation)
		{
			if(pawn == null)
            {
				return true;
			}

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

			if(anim == null)
            {
				return true;
            }

			if (anim != null && !renderFlags.FlagSet(PawnRenderFlags.Portrait) && anim.isAnimating)
			{
				//quat = Quaternion.AngleAxis(anim.bodyAngle, Vector3.up);
			}

			return true;

		}
	}

	*/

}


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>{C76F3790-9AC0-4827-ACD5-84174238954F}</ProjectGuid>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>Patch_HumanoidAlienRaces</RootNamespace>
    <AssemblyName>Patch_HumanoidAlienRaces</AssemblyName>
    <TargetFrameworkVersion>v4.8</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.5\Assemblies\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <GenerateSerializationAssemblies>Off</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\839005762\1.4\Assemblies\0Harmony.dll</HintPath>
      <Private>False</Private>
    </Reference>
    <Reference Include="AlienRace">
      <HintPath>..\..\..\..\..\workshop\content\294100\839005762\1.5\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="Rimworld-Animations">
      <HintPath>..\1.4\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="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.5\Source\Patches\Harmony_PatchAll.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="1.5\Assemblies\Patch_HumanoidAlienRaces.dll" />
  </ItemGroup>
  <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_HumanoidAlienRaces")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Patch_HumanoidAlienRaces")]
[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("c76f3790-9ac0-4827-acd5-84174238954f")]

// 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" ?>
<Defs>
	<!-- placeholder for when RimNude isn't installed -->
	<PawnRenderNodeTagDef>
		<defName>RimNude_Penis</defName>
	</PawnRenderNodeTagDef>
</Defs>


code:
<?xml version="1.0" encoding="utf-8" ?>
<Defs>
	<!-- placeholder for when RimNude isn't installed -->
	<PawnRenderNodeTagDef>
		<defName>AnimalPenis</defName>
	</PawnRenderNodeTagDef>
</Defs>


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.5\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\1321849735\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.5\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>
    <Reference Include="UnityEngine.IMGUIModule">
      <HintPath>..\..\RimWorldWin64_Data\Managed\UnityEngine.IMGUIModule.dll</HintPath>
      <Private>False</Private>
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="1.5\Source\Actors\Actor.cs" />
    <Compile Include="1.5\Source\Actors\AlienRaceOffset.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\AnimationOffsetDef.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\AnimationOffset_AgeRange.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\AnimationOffset_BodyType.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\AnimationOffset_BodyTypeGendered.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\AnimationOffset_Single.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\BaseAnimationOffset.cs" />
    <Compile Include="1.5\Source\Animations\AnimationOffsets\Offsets\BodyTypeOffset.cs" />
    <Compile Include="1.5\Source\Animations\AnimationProps\AnimationPropDef.cs" />
    <Compile Include="1.5\Source\Animations\AnimationWorkers\AnimationWorker_KeyframesExtended.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\BasePawnTest.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_BodyType.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Never.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Humanlike.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_PrisonerOfColony.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_SlaveOfColony.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Always.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_JobDef.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Multi.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Race.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_RJWCanBeFucked.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_RJWCanFuck.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Trait.cs" />
    <Compile Include="1.5\Source\Animations\PawnTests\PawnTest_Hediff.cs" />
    <Compile Include="1.5\Source\Comps\CompExtendedAnimator.cs" />
    <Compile Include="1.5\Source\Comps\CompProperties_ExtendedAnimator.cs" />
    <Compile Include="1.5\Source\Comps\CompProperties_ThingAnimator.cs" />
    <Compile Include="1.5\Source\Comps\CompThingAnimator.cs" />
    <Compile Include="1.5\Source\Comps\ExtendedAnimatorAnchor\BaseExtendedAnimatorAnchor.cs" />
    <Compile Include="1.5\Source\Comps\ExtendedAnimatorAnchor\ExtendedAnimatorAnchor_Thing.cs" />
    <Compile Include="1.5\Source\Comps\ExtendedAnimatorAnchor\ExtendedAnimatorAnchor_Vector3.cs" />
    <Compile Include="1.5\Source\Defs\AnimationDefOf.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationContexts\BaseGroupAnimationContext.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationContexts\GroupAnimationContext_RJWSex.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationDef.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationStages\AnimationStage.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationStages\AnimationStage_Branch.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationStages\AnimationStage_LoopRandomSelectChance.cs" />
    <Compile Include="1.5\Source\Animations\GroupAnimations\GroupAnimationStages\AnimationStage_TicksDuration.cs" />
    <Compile Include="1.5\Source\Animations\Keyframes\ExtendedKeyframe.cs" />
    <Compile Include="1.5\Source\MainTabWindows\MainTabWindow_OffsetConfigure.cs" />
    <Compile Include="1.5\Source\MainTabWindows\OffsetMainButtonDefOf.cs" />
    <Compile Include="1.5\Source\MainTabWindows\WorldComponent_UpdateMainTab.cs" />
    <Compile Include="1.5\Source\Patches\Harmony_PatchAll.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_Dialog_DebugRenderTree.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderer.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderNode.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderNodeWorker.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_PawnRenderTree.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_Pawn_DrawTracker.cs" />
    <Compile Include="1.5\Source\Patches\RimworldPatches\HarmonyPatch_Thing.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_Masturbate.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\JobDriver_Sex\HarmonyPatch_Animate.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\JobDriver_Sex\HarmonyPatch_PlaySexSounds.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\JobDriver_Sex\HarmonyPatch_SexTick.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\HarmonyPatch_WorkGiverSex.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_JoinInBed.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_Sex.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\HarmonyPatch_JobDriver_SexBaseInitiator.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\SexBaseReceivers\HarmonyPatch_JobDriver_SexBaseReceiverRaped.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\JobDrivers\SexBaseReceivers\HarmonyPatch_JobDriver_SexBaseReceiverLoved.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicBodyTypeVariants\PawnRenderNodeProperties_GraphicBodyTypeVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicBodyTypeVariants\PawnRenderNodeWorker_GraphicBodyTypeVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicBodyTypeVariants\PawnRenderNode_GraphicBodyTypeVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffSeverityVariants\PawnRenderNodeProperties_GraphicHediffSeverityVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffSeverityVariants\PawnRenderNodeWorker_GraphicHediffSeverityVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffSeverityVariants\PawnRenderNode_GraphicHediffSeverityVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffVariants\PawnRenderNodeProperties_GraphicHediffVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffVariants\PawnRenderNodeWorker_GraphicHediffVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicHediffVariants\PawnRenderNode_GraphicHediffVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicVariants\PawnRenderNodeProperties_GraphicVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicVariants\PawnRenderNodeWorker_GraphicVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\GraphicVariants\PawnRenderNode_GraphicVariants.cs" />
    <Compile Include="1.5\Source\PawnRenderNode\TexPathVariants.cs" />
    <Compile Include="1.5\Source\RenderSubWorkers\PawnRenderSubWorker_ChangeOffset.cs" />
    <Compile Include="1.5\Source\Patches\RJWPatches\RJWAnimationSettings.cs" />
    <Compile Include="1.5\Source\RenderSubWorkers\PawnRenderSubWorker_HideWhenAnimating.cs" />
    <Compile Include="1.5\Source\Utilities\AnimationUtility.cs" />
    <Compile Include="1.5\Source\Voices\VoiceDef.cs" />
    <Compile Include="1.5\Source\Voices\VoiceDefOf.cs" />
    <Compile Include="1.5\Source\Voices\VoiceTagDef.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="1.5\Assemblies\0MultiplayerAPI.dll" />
    <Content Include="1.5\Assemblies\Rimworld-Animations.dll" />
    <Content Include="1.5\Assemblies\RJW.dll" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\GroupAnimation_DogBeast.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage3_Variant1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage3_Variant2_FollowupWithVariant1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage3_Variant3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage4.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage5_Variant1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage5_Variant2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage5_Variant3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Beast\DogBeast\Stage6.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\AnimationPropDef_Cum.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\GroupAnimation_Blowjob.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\OffsetDef_Blowjob.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage2a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage2b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage2c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage4a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage4b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage4c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage5.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage6a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Blowjob\Stage6b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\AnimationPropDef_Cowgirl_Xray.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage2_1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage2_2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage2_3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage3_XRay.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage4.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\Cowgirl_Stage_1_5.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\GroupAnimation_Cowgirl.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\OffsetDef_Cowgirl.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\AnimationPropDef_Saliva.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\GroupAnimation_Cunnilingus.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\OffsetDef_Cunnilingus.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage2a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage2b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage2c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage3_LoopOnce.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage4a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage4b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage4c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage5.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cunnilingus\Stage6.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\GroupAnimation_DP.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\OffsetDef_DP.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage2a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage2b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage2c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage2d.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage3.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage4.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage5a.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage5b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage5c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\DoublePenetration\Stage5_Base.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\GroupAnimation_Missionary.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\OffsetDef_Missionary.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage2b.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage2c.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage3_DontLoop.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage4.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage5.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Missionary\Stage6.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Hand.xml" />
    <Content Include="1.5\Defs\OffsetDefs\OffsetDef_Placeholder.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\1 Intro\Doggystyle Intro1.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\1 Intro\Doggystyle Intro2.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\1 Intro\Doggystyle Intro3.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\1 Intro\Doggystyle1a.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle1b.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle2.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle3.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle4.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle5.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle6.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\2 Main\Doggystyle7.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8a.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8b.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8c.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8d.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\3 Ending\Doggystyle8e.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\Misc\AnimationPropDef_BEV.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\Misc\GroupAnimation_Doggystyle_Condom_BEV.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\Misc\OffsetDef_Doggystyle_BEV.xml" />
    <Content Include="1.5\Defs\TestDoNotPush\Experimental\Misc\TexPathVariants_Doggystyle_BEV.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_XrayPenis_Human.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\TestAnimation\TestAnimation1.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\TestAnimation\TestAnimation2.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\TestAnimation\TestAnimation3.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Knees.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Xray_Inside.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Banana.xml" />
    <Content Include="1.5\Defs\AnimationPropDefs\AnimationPropDef_Xray_Penis.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\TestAnimation\TestGroupAnimation1.xml" />
    <Content Include="1.5\Defs\MainTabDefs\MainButtonDef.xml" />
    <Content Include="1.5\Defs\OffsetDefs\OffsetDef_GroinToAppropriateHeight.xml" />
    <Content Include="1.5\Defs\SoundDefs\Sounds_Sex.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Cat.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Arms.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Knees.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_Xray_Inside.xml" />
    <Content Include="1.5\Defs\TexPathVariantsDefs\TexPathVariants_XrayPenis_Horse.xml" />
    <Content Include="1.5\Defs\GroupAnimationDefs\Cowgirl\TexPathVariants_Cowgirl.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceDef_Human\SoundDef_HumanFemale.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceDef_Human\SoundDef_HumanMale.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceDef_Human\VoiceDef_Human.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceDef_Orassan.xml" />
    <Content Include="1.5\Defs\VoiceDefs\VoiceTagDef.xml" />
    <Content Include="1.5\Patches\AnimationPatchHSK.xml" />
    <Content Include="1.5\Patches\AnimationPatch_CompExtendedAnimator.xml" />
    <Content Include="1.5\Patches\AnimationPatch_PawnRenderTree_OffsetSubWorker.xml" />
    <Content Include="1.5\Patches\CompatibilityPatch_FacialAnimation.xml" />
    <Content Include="1.5\Patches\CompatibilityPatch_HCSK.xml" />
    <Content Include="1.5\Patches\CompPatches\AutoCleaner.xml" />
    <Content Include="1.5\Patches\CompPatches\CombatExtended.xml" />
    <Content Include="1.5\Patches\CompPatches\ZombieLand.xml" />
    <Content Include="1.5\Patches\Patch_GenitaliaRenderNode.xml" />
    <Content Include="1.5\Sounds\Sex\Clap_1.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_2.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_3.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_4.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_5.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_6.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_7.wav" />
    <Content Include="1.5\Sounds\Sex\Clap_8.wav" />
    <Content Include="1.5\Sounds\Sex\cum.wav" />
    <Content Include="1.5\Sounds\Sex\kucyu04.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_1.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_2.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_3.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_4.wav" />
    <Content Include="1.5\Sounds\Sex\Slap\Slap_5.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy1.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy2.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy3.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy4.wav" />
    <Content Include="1.5\Sounds\Sex\Slime\Slimy5.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_1.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_10.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_2.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_3.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_4.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_5.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_6.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_7.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_8.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Suck_9.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Swallow_1.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Swallow_2.wav" />
    <Content Include="1.5\Sounds\Sex\Suck\Swallow_3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt1.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt2.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt4.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt5.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Grunt6.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Moan1.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Moan2.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Moan3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Moan4.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\MoanShort1.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\MoanShort2.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\MoanShort3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Scream1.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Scream2.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Scream3.wav" />
    <Content Include="1.5\Sounds\Voices\FVoice\Scream4.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Grunt1.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Grunt2.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Grunt3.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Grunt4.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Moan1.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Moan2.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Moan3.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Moan4.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\MoanShort1.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\MoanShort2.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\MoanShort3.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Scream1.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Scream2.wav" />
    <Content Include="1.5\Sounds\Voices\MVoice\Scream3.wav" />
    <Content Include="1.5\Textures\AnimationProps\Banana\Banana_east.png" />
    <Content Include="1.5\Textures\AnimationProps\Banana\Banana_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Banana\Banana_south.png" />
    <Content Include="1.5\Textures\AnimationProps\Banana\Banana_west.png" />
    <Content Include="1.5\Textures\AnimationProps\Cat\Cat1_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Cat\Cat2_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Cum\Cum.png" />
    <Content Include="1.5\Textures\AnimationProps\Doggystyle\Doggy_Arms_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Doggystyle\Doggy_Legs_north.png" />
    <Content Include="1.5\Textures\AnimationProps\Hand\Hand_north.png" />
    <Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_east.png" />
    <Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_north.png" />
    <Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_south.png" />
    <Content Include="1.5\Textures\AnimationProps\MissingTexture\MissingTexture_west.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-1.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-2.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-3.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-4.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-5.png" />
    <Content Include="1.5\Textures\AnimationProps\CowgirlXray\XRay2-6.png" />
    <Content Include="1.5\Textures\AnimationProps\Saliva\Saliva_north.png" />
    <Content Include="1.5\Textures\UI\MainTab.png" />
    <Content Include="About\About.xml" />
    <Content Include="About\Manifest.xml" />
    <Content Include="Languages\English\Keyed\RJWAnimations-LanguageData.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" />
    <Content Include="Patch_FacialAnimation\1.5\Patches\AnimationPatch_HideHeadWhenAnimating.xml" />
    <Content Include="Patch_NoRimNudeWorldZoo\1.5\Defs\PawnRenderNodeTagDef_AnimalPenisPlaceholder.xml" />
    <Content Include="Patch_NoRimNudeWorld\1.5\Defs\PawnRenderNodeTagDef_RimnudePenisPlaceholder.xml" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="1.5\Source\Extensions\" />
    <Folder Include="1.5\Source\Patches\OtherModPatches\" />
    <Folder Include="1.5\Source\Settings\" />
  </ItemGroup>
  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>


code:
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.11.35431.28
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Rimworld-Animations", "Rimworld-Animations.csproj", "{71B05D71-67B2-4014-82CD-18C20AC0882F}"
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
	EndGlobalSection
	GlobalSection(SolutionProperties) = preSolution
		HideSolutionNode = FALSE
	EndGlobalSection
	GlobalSection(ExtensibilityGlobals) = postSolution
		SolutionGuid = {7E01292A-D76F-4CA3-AA64-085B84ECD905}
	EndGlobalSection
EndGlobal


code:
*.ba[ck]
*.orig
/.vscode
*.lnk
[Tt]humbs.db
*.bat
*.db

repo_name: Pedy/hentaimod

path: .gitignore


type: dream

恐ろしい悪魔の夢を見た気がしました。

子供の頃に行った、ささやかなイタズラの夢を見た気がしました。

なぜでしょう、とても淫猥な夢を見ていた気がします。しかしどうしても内容が思い出せません。

category: FIEND

夢の中、亡者であるあなたは永遠なる地獄の責め苦を受けていました。突然、恐ろしい悪魔があなたを鷲掴みにすると...そこで目が覚めました。

心地よいまどろみの中、誰かがあなたに口付けした気がしました。このまま愛を捧げ...ああ、ただの夢でした。

夢の中、あなたは地獄の責め苦に苛まれる亡者達を笑い飛ばしていました。傍らに立つ悪魔達と一緒に。

瞑想を続ける聖アントニウス、どうやって彼を堕落させてやろうか...おっと、ただの夢か。

柔らかなベッドで眠りにつく、見目麗しき若者達。穢れを知らぬその体に、あなたはそっと近づき...いやいや、ただの夢です。

緑の大地、カラフルな草花、跳ね回る動物達。ああ、夢の中で見た不毛の地獄が懐かしい。

この世はまだ刺激が少なすぎると思わないか？手始めに人間どもを手当たり次第に襲ってやろうか...

暴食。色欲。強欲。憤怒。怠惰。傲慢。嫉妬。今日も一日楽しみましょう。


desc: 生物としての根元を成す激しい官能的欲望を感じています。つまり、イきそうです。

rating: neutral

intensityが100に達した時点で達する、という仕様にしよう

miss_message: あなたはイきそうだ...

miss_message: あなたは必死にイくのを耐えている...

name: 赤面 恍惚 欲情 陶酔 陶酔 堕落

desc: あなたは性的な感情に苛まれています。興奮状態のため筋力と感覚に若干のボーナスを得ますが、知力に若干のペナルティを受けます。

desc: あなたは性的な感情を抱いています。感覚以外のステータスにペナルティを受けます。

desc: あなたの思考は性的欲求に満たされています。感覚以外のステータスにペナルティを受けます。

desc: あなたの思考は性欲に支配されています。感覚以外のステータスに大きくペナルティを受けます。

desc: あなたの思考は性欲に支配されています。...それはいけない事でしょうか？

desc: あなたはの心は完全に堕ちきってしまいました。でも、別に悪い事じゃありませんよね？

apply_message: あなたは興奮し始めました。

remove_message: あなたの欲望は消えうせました。

miss_message: あなたは欲望に駆られています...

rating: bad

name: 耐えがたき眠気 尋常ならざる眠気 寝落ち寸前

desc: 不思議な眠気に襲われています。いつ意識を手放してもおかしくありません。

apply_message: ふいに眠気が襲ってきました...

remove_message: 不思議な眠気は消えうせました。

desc: 発情しています。妊娠確率が500%上昇します。

desc: 避妊薬が効果を発揮しています。今ならどれだけ楽しんでも平気です。たぶん。

rating: good

最大効果は現実時間でだいたい5日。意味は各自でググってください。人目の無い所で。

現実時間でだいたい10週=70日。1ヶ月=だいたい30日ごとでintensityを分ける。

name: 妊娠(3か月) 妊娠(4か月) 妊娠(5か月) 妊娠(6か月) 妊娠(7か月) 妊娠(8か月) 妊娠(9か月)

apply_message: あなたは妊娠しました。

rating: mixed

現実時間でだいたい30週=210日。1ヶ月=だいたい30日ごとでintensityを分ける。

removes_effects: estrus creampie impregnated incubation

desc: お腹の中は卵でいっぱいです。

removes_effects: creampie impregnated pregnantcy

↓*気持ちいいこと*中のエフェクトタイル用のためだけのeffect。↓

desc: *気持ちいいこと*中です。

↓何人相手にしてるかカウント。

↓ここから下はモンスター専用effect。もし見えたら、それはきっとバグ。↓

desc: 行為の主導権を握っています。

3分(30ターン)経過するごとに溜めの段階は下がっていく。魔法の詠唱は勢いが大事だと思うんです

desc: ターゲットを捕捉しています。


紙製薬莢(魔弾)

type: AMMO

description: 黒色火薬と金属製の発射体を内包した紙製薬莢です。発射体には魔術的な紋様が刻まれています。6発は望む場所へ必ず当たり、1発は望まぬ場所へ必ず当たる、という魔弾の伝説がありますが、この弾は撃った後に他の相手へ飛び移ります。

material: lead powder

color: white

ammo_type: flintlock


ジップスーツ

type: ARMOR

description: 全身にぴっちりと密着するボディスーツです。その大部分は透明なラテックスで作られており、きわどい部分だけはジッパーで隠れるように設計されています。

color: pink

covers: TORSO ARMS HANDS LEGS FEET

flags: SKINTIGHT FANCY FRAGILE VARSIZE WATER_FRIENDLY

SWUTパワースーツ

category: armor

description: DoubleTeck社のパワースーツです。パワーアーマーの弱点である重量と機動性の克服を目的として作られました。ラテックススーツのように全身にぴっちりと密着することで機動性を最大限まで確保し、なおかつ体の重要部位を可能な限り防護できるよう注意深く設計されています。しかしそのエロチックな外見は一部の熱狂的な兵士を除いて不評でした。

material: plastic superalloy

activate_msg: パワースーツを起動しました。

flags: SKINTIGHT WATERPROOF STURDY ELECTRIC_IMMUNE

セーラー服

description: 独特の形状をした襟と胴部が特徴的なトップスです。19世紀後半から20世紀初頭にかけて世界的に流行し、現在の日本でも女子学生の制服としてコスプレ文化と共に広まっています。

color: blue

covers: TORSO ARMS

flags: VARSIZE FANCY


本(学習/研究日誌(デザイア))

type: BOOK

name_plural: 本(学習/研究日誌(デザイア))

description: 日本語と英語が入り混じった奇妙な文体で書かれた研究日誌です。XE037の研究成果とその有益な活用方法の記述から始まり、アメリカ国内の出生率グラフで締められています。"否認"のスタンプが3重に押されています。

skill: cooking

本(一般/地獄の辞典)

name_plural: 本(一般/地獄の辞典)

description: 文筆家コラン・ド・プランシーによって書かれた書籍です。悪魔学・迷信・占い・人物など、世に伝わる俗信や伝承が幅広く纏められています。


人間の体液

type: COMESTIBLE

name_plural: 人間の体液

comestible_type: DRINK

description: 粘性の体液、まず間違いなく人間のものです。気持ち悪いなぁ！

material: flesh water

phase: liquid

魔性の体液

name_plural: 魔性の体液

description: この粘性の体液は、明らかに人ならざる者のそれです。飲むと変異を引き起こす可能性があります。

type: mutagen

経口避妊薬

comestible_type: MED

説明文はほぼWikipedia丸写し。医学的なことはよくわかんないっす

description: エストロゲンとプロゲステロンが配合された避妊薬です。毎日計画的に服用することで排卵を抑制でき、意図せぬ妊娠を防ぎます。行為の*前に*服用しましょう。

activation_message: 経口避妊薬を摂取しました。

アフターピル

description: レボノルゲストレルが配合された緊急避妊薬です。行為の後であっても妊娠を抑制することができます。ただし有効なのは行為後およそ120時間以内であり、また時間が経つにつれて効果は薄れてしまいます。

color: yellow

現実では精子の侵入を阻害するのであって殺精子剤の効果は無いってわかってますが、そこまでゲームシステムに組み込むのはさすがに無理っす

activation_message: アフターピルを摂取しました。

性転換の霊薬

name_plural: 性転換の霊薬

description: 飲んだ者の性別を転換させる薬です。

変異原(人間)

name_plural: 変異原(人間)

description: 希少価値の高い正体不明の物質です。これは人間的な突然変異を引き起こすでしょう。...つまり人外の突然変異や他の遺伝子異常を取り除きます。

use_action: PURIFIER

血清(人間)

name_plural: 血清(人間)

description: 濃縮された変異原物質です。使用するつもりなら注射器が必要ですが...。使い方次第では人間以外の生物を人間に*変異*させる事ができるかもしれません。

color: magenta

変異原(悪魔)

name_plural: 変異原(悪魔)

description: 希少価値の高い正体不明の物質です。これは突然変異を引き起こすでしょう。

mutation_category: FIEND

血清(悪魔)

name_plural: 血清(悪魔)

description: 濃縮された変異原物質です。血のように赤い液体です。使用するつもりなら注射器が必要ですが...。

color: red


避妊具(使用済み)

type: CONTAINER

category: other

name_plural: 避妊具(使用済み)

description: 使用済みの避妊具です。ただのゴミです。

description: コルク栓で密閉するタイプの古めかしい薬瓶です。250mlの容量があります。

material: glass


type: GUN

description: monster特殊攻撃用のフェイクアイテムです。

skill: rifle

damage_type: cut

description: monster特殊攻撃用のフェイクアイテムです。これが見えているなら、それは明らかにバグです。

(任意のペット)※ゲーム開始時に選択

type: GENERIC

description: proffesion:man_with_a_petスタート時のフラグ管理用フェイクアイテムです。


避妊具(未開封)

type: TOOL

name_plural: 避妊具(未開封)

description: ユニバーサルサイズの避妊具です。使用する場合はまず袋から取り出しましょう。...こんな世界で使う相手がいれば、の話ですが。

target: condom

msg: 避妊具を袋から取り出しました。

menu_text: 開封する

type: transform

description:
ユニバーサルサイズの避妊具です。使用する場合はまず袋から取り出しましょう。
* この避妊具は<color_yellow>古い</color>ようです。無用な*トラブル*を避けたいなら、使用は控えるべきでしょう。

msg: 避妊具を袋から取り出しました。

避妊具

name_plural: 避妊具

description: ユニバーサルサイズの避妊具です。こんな世界でこれを持ち歩いている人間がいるならば、もはやその意図は明白でしょう。

本当はポリイソプレンやラテックス製なのだろうけど、公式のゴム手袋もplasticだし...materials設定するのめんどいし...

flags: WATER_FRIENDLY WATERPROOF SKINTIGHT

あぶない方。使えるけど確率で破れる。

copy-from: condom

降魔のチョーカー

collarじゃないよ！ほんとだよ！

name_plural: 降魔のチョーカー

description: 聖なる銀を用いて作られた、悪しき心を封じるチョーカーです。もしも悪魔にこれを身につけさせる事ができたなら、きっと良き仲間になってくれるでしょう。

material: leather silver

color: black

名前の巻物

name_plural: 名前の巻物

description: NPCの名前を変更することができる巻物です。一回使うと無くなります。

material: paper magic

巻物(アーティファクト生成)

name_plural: 巻物(アーティファクト生成)

description: アーティファクトを生成することができる巻物です。一回使うと無くなります。

バイオマッサージ機

name_plural: バイオマッサージ機

description: ブロブによって作られた生体マッサージ機です。側面には「あの人のDNA情報を完全再現！」という宣伝文と共に有名なポルノ俳優の顔写真が表示されています。

looks_like: vibrator

use_action: VIBE


type: mapgen

method: json

rows: s$$   $$_______$$   $$ssssssssssssssssssssssssssssssssssssssssssssssssss

rows: sLLLLLLL_______LLLLLLLss                  sss                         ss

rows: w.htth.htth.htth..ttttt..w      $$ sss $$      wScc..ccS|....+...kk..k|

rows: w.htth.htth.htth..hhhhh..w         sss         w........+....|k..kk..k|

職員室通路の魔法陣（召喚）

職員室通路の魔法陣（火炎）

校長室の魔法陣（召喚）

校長室の魔法陣（ダメージ）

職員室、用具入れの魔法陣（召喚）

item: school

item: fridge

item: cleaning

item: cannedfood

駐車場部分（北西）

正門部分（北）

ホール部分（北東）

liquid: blood


魔法

type: material

ident: magic

dmg_adj: 色あせた 明滅する 朧げな 消えゆく

bash_dmg_verb: 色あせた

cut_dmg_verb: 色あせた


subtype: collection

group: dresses

group: pants

group: shirts

group: subway

group: sewer

group: trash

group: bedroom

group: dresser

group: ammo

group: harddrugs

item: bullwhip

item: blazer

item: pants

item: tieclip

item: skirt

item: socks

item: sneakers

item: stockings

item: tshirt


fiend

friendly: cubi cult

cubi

friendly: fiend cult

by_mood: zombie blob bot

neutral: animal small_animal plant


type: monstergroup

conditions: DUSK NIGHT


カンビオン

type: MONSTER

name_plural: カンビオン

description: 人間と夢魔との間に生まれた、忌まわしき悪魔の混血児です。あなたと同じようにどこからか拾い集めた即席の武器と防具を身にまとい、この地獄の大地を練り歩いています。

default_faction: fiend

species: FIEND MALE

color: cyan

harvest: human

type: gun

targeting_sound: 「死ね、クソ野郎！」

description: バン！

no_ammo_sound: 「弾切れ！弾切れだと！？畜生！！」

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_2 WARM GRABS PUSH_MON BASHES GROUP_BASH CLIMBS HUMAN BONES INTERIOR_AMMO

species: FIEND FEMALE

default_faction: cubi

species: CUBI NETHER

symbol: d

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_1 WARM GRABS PUSH_MON BASHES CLIMBS GROUP_MORALE GUILT HUMAN BONES

cubiテンプレート

name_plural: cubiテンプレート

description: cubiテンプレート

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_1 GRABS WARM PUSH_MON FLIES GROUP_MORALE HUMAN BONES

レッサーサキュバス

name_plural: レッサーサキュバス

description: 人間の男性を性的に堕落させる悪魔、それがサキュバスです。その中でも下位に属する彼女達は、見た目はごく普通の子供のようですが、その目は確かに情欲に濁っています。

species: CUBI NETHER FEMALE

サキュバス

name_plural: サキュバス

description: 人間の男性を性的に堕落させる悪魔、それがサキュバスです。淫靡な夢を男性に見せ精気を吸い取るといわれていますが、この世界ではもっと奔放に暮らしているようです。

サキュバス・サディスト

name_plural: サキュバス・サディスト

description: 人間の男性を性的に堕落させる悪魔、それがサキュバスです。しかし彼女は鞭を構え嗜虐的な笑みをあなたに向けています。

ガチ戦闘ビルド。レザージャケットを着た上位ゾンビくらいの強さが理想。

description: %1$sは鞭を振り下ろした！

サキュバス・ソムノ

魔法職。近接攻撃は一切行わず眠らせることに特化。

name_plural: サキュバス・ソムノ

description: 人間の男性を性的に堕落させる悪魔、それがサキュバスです。淫靡な夢を男性に見せ精気を吸い取るといわれていますが、彼女はとりわけそのシチュエーションを好んでいるようです。

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_1 WARM PUSH_MON FLIES FIREPROOF GROUP_MORALE REGEN_MORALE HUMAN BONES

サキュバス・エクス

エキシビショニズム：露出。

name_plural: サキュバス・エクス

description: 人間の男性を性的に堕落させる悪魔、それがサキュバスです。淫靡な夢を男性に見せ精気を吸い取るといわれていますが、どうやら彼女は自らのボディを見せつけるほうが好きなようです。

サキュバス・ラクト

戦闘能力は普通のサキュバスとさほど変わらないが、超実力主義である夢魔達の中で*超*豊満な胸を持っているという理由だけでArchの座に祭り上げられてしまったが本人はよくわかっていない天然系おっとりMILFタイプ。　　まで妄想した

name_plural: サキュバス・ラクト

description: 人間の男性を性的に堕落させる悪魔、それがサキュバスです。夢魔である事を考慮しても彼女の胸は異常なほど大きく、その先端は常に自身のミルクで濡れています。

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_1 GRABS WARM PUSH_MON FLIES FIREPROOF GROUP_MORALE REGEN_MORALE HUMAN BONES MILKABLE

グレーターサキュバス

name_plural: グレーターサキュバス

description: 人間の男性を性的に堕落させる悪魔、それがサキュバスです。その中でも上位に属する彼女は、下位の同属達とは比べ物にならないほど強大な魔力とボディを備えています。その淫靡な見た目に騙されぬように！ひとたび彼女に気を許せば、たちまち身も心も奪われてしまうでしょう。

symbol: D

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_2 GRABS WARM NIGHT_INVISIBILITY REGENERATES_IN_DARK PUSH_MON FLIES FIREPROOF REGEN_MORALE HUMAN BONES MILKABLE

レッサーインキュバス

name_plural: レッサーインキュバス

description: 人間の女性を性的に堕落させる悪魔、それがインキュバスです。その中でも下位に属する彼らは、見た目はごく普通の子供のようですが、その目は確かに情欲に濁っています。

species: CUBI NETHER MALE

インキュバス

name_plural: インキュバス

description: 人間の女性を性的に堕落させる悪魔、それがインキュバスです。淫らな夢を見させることもあれば若い男の姿に化けて誘惑する事もあるといわれていますが、この世界ではもっと直接的な行動に出ているようです。

インキュバス・ステノ

ステノラグニア：筋肉を愛する。

name_plural: インキュバス・ステノ

description: 人間の女性を性的に堕落させる悪魔、それがインキュバスです。その中でも彼は自分の肉体美（とりわけ筋肉）を自慢にしているようです。

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_1 LOUDMOVES GRABS WARM PUSH_MON FLIES BASHES DESTROYS FIREPROOF GROUP_MORALE REGEN_MORALE HUMAN BONES

インキュバス・ファルス

ファロプラス：男性のモノに色々埋め込んだり注入したりする。

name_plural: インキュバス・ファルス

description: 人間の女性を性的に堕落させる悪魔、それがインキュバスです。その中でも彼は自分の肉体の...ええと、特定の部位の改造に並々ならぬ情熱を注いでいます。人間達のCBM技術は彼の目には新しいオモチャとして映ったようです。

targeting_sound: 「Hnggg...cum, cum, CUM!」

description: ドーン！

インキュバス・ホプロ

ホプロフィリア：銃を愛する。恐怖症はあっても性愛は無いと思うんだけど、まあ表現ということで...

name_plural: インキュバス・ホプロ

description: 人間の女性を性的に堕落させる悪魔、それがインキュバスです。しかし彼は古風なフリントロックライフルを構え、どこか陶然とした表情で誰彼構わずブッ放しています。

ウェーバーの「魔弾の射手」の一説から適当に抜き出し。「6発は必中、7発目は...」という意味。まあドイツ語はさっぱりだがな！

targeting_sound: 「Sechse treffen, sieben...」

description: ドーン！

no_ammo_sound: カチッ！

ウェーバーの「魔弾の射手」の一説から適当に抜き出し。「ダイヤのクイーンの名にかけて撃て！は、は！」という意味。まあドイツ語はさっぱりだがな！

targeting_sound: 「Schiess in schellobers Namen! Ha, ha!」

description: ドーン！

グレーターインキュバス

description: 人間の女性を性的に堕落させる悪魔、それがインキュバスです。その中でも上位に属する彼は、下位の同属達とは比べ物にならないほど強大な魔力とボディを備えています。その淫靡な見た目に騙されぬように！ひとたび彼に気を許せば、たちまち身も心も奪われてしまうでしょう。

堕ちた女子生徒

↓ここからは「堕ちた地域運営学校」専用の敵キャラ↓

description: 身も心もすべて悪魔に奪われ、自らも魔性に堕ちてしまった哀れな生存者のなれの果てです。人間だった頃の理性は既に消え去り、自身の純粋な欲望のみに従って行動しています。

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_1 WARM GRABS PUSH_MON BASHES CLIMBS GROUP_MORALE HUMAN BONES

堕ちた女教師

description: 身も心もすべて悪魔に屈し、自ら魔性に堕ちてしまった哀れな生存者のなれの果てです。人間だった頃の理性は既に消え去り、自身の純粋な欲望のみに従って行動しています。

山羊頭の悪魔

description: 頭は山羊、胴体は両性具有の人間の姿を持つ悪魔です。大変動の前から人間達の中に紛れ込み、今回の混乱に乗じてこのサバトを引き起こした張本人です。

flags: IMMOBILE BLEED SEES GOODHEARING SMELLS FIREPROOF ACIDPROOF GRABS WARM NOGIB REGENERATES_IN_DARK PLASTIC

触手の怪物

description: かなり特殊な姿へ変貌した、這い回る生きた植物です。粘液に塗れた塊茎からは色も形も大きさも様々な触手が無数に蠢き、妖しく水音を立てながらゆっくりと移動しています。日本産の触手であることは疑いようもありません。

ダークウィッチ

↓ここからは未実装のモンスター。↓

description: 邪悪な悪魔達を崇拝する、悪しき魔法使いの女性です。古典的なローブではなく現代的な黒装束こそ着てはいますが、古の昔から受け継がれてきた呪力は今も変わりありません。

flags: SEES HEARS SMELLS PATH_AVOID_DANGER_2 GRABS WARM PUSH_MON HUMAN BONES

ダークサマナー

description: 自らの邪悪な目的のために悪魔達を召喚し支配する、悪しき召喚士の男です。古典的な黒ローブと杖ではなく現代的な黒服と拳銃で武装していますが、古の昔から受け継がれてきた秘術は今も変わりありません。

堕ちた女子生徒

↓ここからはイベント発火用のダミーモンスター。special_attacksでイベントだけ呼んで消える。↓


type: SPECIES

ここから下はモンスターの性別を擬似的に設定するためのspecies。


text: *気持ちいいこと*を堪能した


悪魔

mutagen_message: 一瞬、地獄の奥底を垣間見た気がしました。

iv_message: 彷徨い歩く亡者ども。餓えた獣の群れ。天変地異。大地に蠢く異形の姿。この世はまるで...地獄、そう、地獄だ！なんて素晴らしい響きなんだ！

memorial_message: 地獄の一員に仲間入りした。


貞操

type: mutation

description: 今まで機会があったかどうかはともかく、あなたは他者との性的な交流に対して貞操を守ってきました。しかし世界がこうなった今では何の役にも立たないでしょう。

貧乳

男でも特質が取れる？気にするな！

description: 貧乳はステータスだ！希少価値だ！...人の好みはそれぞれですが、少なくともデメリットにはなりません。メリットにもならないでしょうが。

category: FISH LIZARD MEDICAL ELFA RAPTOR FIEND

巨乳

男でも特質が取れる？気にするな！

description: 大きいことはいいことだ！...人の好みはそれぞれですが、たいていの男性は巨乳の女性を好む傾向にあります。NPCの反応がほんの少しだけ良くなります。

category: CATTLE MEDICAL ELFA FIEND

複乳

description: 本来の胸とは別に...胸があります。見た目は少々悪いですが、動作に問題はありません。

category: RAT BEAST URSINE FELINE LUPINE CATTLE CHIMERA

発情期 (狼)

description: 春先になると発情期がやってきます。

発情期 (猫)

description: 年に数度、発情期がやってきます。

卵生 (鳥)

description: 体の中で卵が作られるようになりました。自然な妊娠であっても卵として孕むようになり、妊娠していなくても定期的に卵を産み落とすようになります。(※未実装)

卵生 (爬虫類)

description: 体の中で卵が作られるようになりました。自然な妊娠であっても卵として孕むようになります。(※未実装)

category: LIZARD RAPTOR

卵生 (昆虫)

category: INSECT SPIDER

産卵管 (昆虫)

description: 剣のように鋭い産卵管が体から突き出ています。何か（あるいは誰か）へ突き刺すのにもってこいです。

attack_text_u: あなたは%sを産卵管で突き刺した！

attack_text_npc: %1$は%2$sを産卵管で突き刺した！

damage_type: stab

悪魔の尾

description: 先端がスペード型の、まるで悪魔のようなレザー質の尻尾が生えています。身体のバランスを向上させる効果はほとんどありません。また通常の脚用防具は着用できません。

堕落

description: 世界は地獄に変わった。ならば、自分が悪魔に変わらない理由がどこにある？


Terrifying

social_modifiersとattacksについては記述なくても動作したのはちょこっとだけ確認した。categoryもこの書き方すれば既存のcategoryに追加する形になるんで定義の形式は間違ってない...と思う。なんか問題あったら連絡して頂けると助かります。

description: There's something about you that creatures find frightening, and they are more likely to try to flee.

Pretty

description: You are a sight to behold.  NPCs who care about such thing will react more kindly to you.

Ugly

description: You're not much to look at.  NPCs who care about such things will react poorly to you.

Cannibal

description: For your whole life you've been forbidden from indulging in your peculiar tastes.  Now the world's ended, and you'll be damned if anyone is going to tell you that you can't eat people.

Psychopath

description: You don't experience guilt like others do.  Even when you know your actions are wrong, you just don't care.

Skilled Liar

description: You have no qualms about bending the truth, and have practically no tells.  Telling lies and otherwise bluffing will be much easier for you.

Infrared Vision

description: Your eyes have mutated to pick up radiation in the infrared spectrum.

Fangs

description: Your teeth have grown into two-inch-long fangs, allowing you to make an extra attack when conditions favor it.

Scales

description: A set of flexible green scales has grown to cover your body, acting as natural armor.  Somewhat reduces wet effects.

Long Fingernails

description: Your fingernails are long and sharp.  If you aren't wearing gloves, your unarmed attacks deal a minor amount of cutting damage.

changes_to: CLAWS TALONS

Claws

description: You have claws on the ends of your fingers.  If you aren't wearing gloves, your unarmed attacks deal a minor amount of cutting damage.

Toe Talons

description: You have grown large, curved, and wickedly sharp talons in place of your big toes.  Fortunately, they don't get in the way of your movement.  Unfortunately, they do prevent you from wearing footgear.

Hooves

description: Your feet have fused into hooves.  This allows kicking attacks to do much more damage, provides natural armor, and removes the need to wear shoes; however, you can not wear shoes of any kind.  Reduces wet effects.

Horns

description: You have a pair of small horns on your head.  They allow you to make a weak piercing headbutt attack.

Curled Horns

description: You have a pair of large curled horns, like those of a ram.  They allow you to make a strong bashing headbutt attack, but prevent you from wearing any headwear.

cancels: ANTENNAE HORNS_POINTED ANTLERS

Pointed Horns

description: You have a pair of long, pointed horns, like those of an antelope.  They allow you to make a strong piercing headbutt attack, but prevent you from wearing any headwear the is not made of fabric.

cancels: ANTENNAE HORNS_CURLED ANTLERS

Forked Tongue

description: Your tongue is forked, like that of a reptile.  This has no effect.

Bat Wings

description: You have a pair of large, leathery wings.  You can move them a little, but they are useless, and in fact put you off balance, reducing your ability to dodge slightly.

Pale Skin

description: Your skin is rather pale.

Light Sensitive

description: Sunlight makes you uncomfortable.  If you are outdoors and the weather is Sunny, you suffer -1 to all stats.

Genetically Unstable

description: Your DNA has been damaged in a way that causes you to continually develop more mutations.

Growling Voice

description: You have a growling, rough voice.  Persuading NPCs will be more difficult, but threatening them will be easier.

Snarling Voice

description: You have a threatening snarl in your voice.  Persuading NPCs will be near impossible, but threatening them will be much easier.

Hissing Voice

description: You hiss when speaking.  Persuading NPCs will be more difficult, but threatening them will be easier.

Pyromaniac

description: You have an unhealthy obsession with fire, and you get anxious if you don't light them every now and then or stand near them often.  However, you gain a mood bonus from doing so.


item: bra

item: jersey


dynamic_line: なっ、何なのこれ！？いったい何をしたのさ！

text: 血清(人間)を使ったんだ。

text: 待った、考える時間をくれ...

dynamic_line: 理屈は知らないけど、とにかく人間になっちゃったってワケね。以前のように力が振るえないのはツラいけど...他の兄妹みたいに数少ない獲物を求めて悶え狂うのとどっちがマシかな。

text: こうして話ができるようになって嬉しいよ。おいで。一緒に行こう。

text: お前の立場はペットのままだ。さっさと来い、ペット。

dynamic_line: はいは～い。この姿にしたのはアナタなんだから、ちゃんと責任取ってよね、マ・ス・ター♪

text: (会話終了)

dynamic_line: はいはい。そういう態度取ってて、いつか背中からブッスリ刺されても知らないからね。

text: (会話終了)


dynamic_line: この姿は...！いったい何が！？

text: 血清(人間)を使ったんだ。

text: 待った、考える時間をくれ...

dynamic_line: よくわからないが、なるほど...で、これからどうする？

text: こうして話ができるようになって嬉しいよ。おいで。一緒に行こう。

text: お前の立場はペットのままだ。さっさと来い、ペット。

dynamic_line: はい、ご主人さま！

text: (会話終了)

dynamic_line: はい、ご主人さま。

text: (会話終了)


u_male: パパ？

u_female: ママ？

text: その通りだ、一緒に行こう！

text: いいや、君の親じゃない。

text: いったい何が起こったんだ？

text: 何でもない。

dynamic_line: そんなー！

text: （立ち去る）

dynamic_line: ごつごーしゅぎってやつだよ。ゲーム内で何年も手間の掛かる育児なんてやってられないでしょ？

text: 聞かなかった事にしよう...


dynamic_line: イヤァァッ！...あっ！ご、ごめんなさい。てっきりあの悪魔達かと...

dynamic_line: あ...貴方はまだ悪魔になってないわよね？そうでしょ！？

text: 落ち着け、自分は人間だ！

text: [閾変異] 落ち着け、自分は人間だ！...まあ、少なくとも以前は。

text: [閾変異 堕落] 悪いな。自分はもう人間じゃない。

dynamic_line: よかった、まだまともな人間がいて...

text: ここで何があったんだ？

text: [感覚 7] 失礼、でも君の方こそ本当に人間なのか？その尻尾は...

text: こんな所にいるのは危険だ。一緒に行動しないか？

text: すまないが、長話をしている暇は無い。

dynamic_line: わからない...でも突然悪魔達が現れたの。あの大騒動はあなたも知ってるわよね？近隣の生徒や先生達は避難するようにって言われて、ここへ集められたの。そしたら...

text: そうだったのか...

text: [知性 9] 避難のために集まった？じゃあ、学校は最初から悪魔達に占拠されていたわけじゃないんだな？

dynamic_line: そう...そうだわ。あの悪魔達は最初から居たわけじゃない。避難者の中に見知らぬ人達が混じってたのを覚えてる。校長と面識があるようだったから、関係者か何かだと思ってたんだけど...そう、そいつらが中庭で何か怪しげな事をやりはじめてからだわ！

text: なるほど...

dynamic_line: 私は人間よ！この尻尾は...ちょっと襲われちゃったけど...で、でも！他はなんともないし！...唇は守れなかったけど...その、あっちのほうは無事だし！処女だし！

text: 悪かったよ...

dynamic_line: ええ、もちろん！こんな所さっさと抜け出しましょう！

text: さあ行こう！

dynamic_line: ...ごめんなさい。あなたを信用してない訳じゃないんだけど...でも、まだ怖いの。

text: そうか、なら仕方ない。

u_male: そう...でも気をつけてね。男の人達はみんなあのサキュバス達に捕まって、みんな悪魔に変えられてしまったから...

u_male: そう...でも気をつけてね。あのインキュバス達は男の人でも容赦しないみたいだから...

u_female: そう...でも気をつけてね。女の人達はみんなあのインキュバス達に捕まって、みんな悪魔に変えられてしまったから...

u_female: そう...でも気をつけてね。女の人達はみんなあのインキュバス達に捕まって、犯されて、あんな...死ぬよりも酷い目に...

u_female: そう...でも気をつけてね。あのサキュバス達は女性相手でも容赦しないみたいだから...

text: (立ち去る)


暗き時代の子

job_description: それを僕に聞く？

女子生徒

job_description: そんなの決まってるでしょう、隠れてるのよ！

skill: computer

skill: electronics

skill: mechanics

ペット(犬)_テンプレート

job_description: ...だれのせいでこうなったと思う？

skill: survival

skill: swimming

skill: dodge

skill: melee

skill: unarmed

ペット(猫)_テンプレート

job_description: ...だれのせいでこうなったと思う？

ペット(熊)_テンプレート

job_description: ...だれのせいでこうなったと思う？

ペット(サキュ・インキュ)_テンプレート

job_description: あらあら、このメッセージは表示されないはずよ？どうやらバグってるみたいねぇ。

skill: ALL

skill: speech

skill: barter

ペット(サキュバス)

ペット(サキュバス)。人間に近い。

ペット(サキュバス)。わりと悪魔的。

ペット(インキュバス)

ペット(インキュバス)。人間に近い。

ペット(インキュバス)。わりと悪魔的。

ペット(犬)

ペット(犬)。人間に近い。

ペット(犬)。半分半分。

ペット(犬)。より動物に近い。

ペット(猫)

ペット(猫)。人間に近い。

ペット(猫)。半分半分。

ペット(猫)。より動物に近い。

ペット(熊)

ペット(熊)。人間に近い。

ペット(熊)。半分半分。

ペット(熊)。より動物に近い。

ペット(犬)

ペット(犬)。人間に近い。

ペット(犬)。半分半分。

ペット(犬)。より動物に近い。

ペット(猫)

ペット(猫)。人間に近い。

ペット(猫)。半分半分。

ペット(猫)。より動物に近い。

ペット(熊)

ペット(熊)。人間に近い。

ペット(熊)。半分半分。

ペット(熊)。より動物に近い。


ドッグフードを見つける

item: dogfood

describe: 1つ頼みたいことがあるんだ。聞いてくれるかい？

offer: ドッグフード持ってない？この姿になってから人間の食べ物も食べられるようになったけど、あの味が懐かしくなったんだ。

accepted: ありがとう、ご主人さま！

rejected: おあずけ？そう...

advice: 手作りするのが一番手っ取り早いんじゃないかな。このさい材料は何でもいいから。

inquire: ドッグフードは見つかった？まあ、いつでもいいよ。

success: やったー！そうそう、この味、この香...う゛っ！  ...この姿でわざわざ食べるものじゃあないね...それはさておき、どうもありがとう、ご主人さま！

success_lie: ...ご主人さま、その嘘はさすがに無理があるでしょ...

failure: 駄目だった？そう...

キャットフードを見つける

item: catfood

describe: 1つ頼みたいことがあるんだ。聞いてくれるかい？

offer: キャットフード持ってない？この姿になってから人間の食べ物も食べられるようになったけど、あの味が懐かしくなったんだ。

accepted: ありがとう、ご主人さま！

rejected: おあずけ？そう...

advice: 手作りするのが一番手っ取り早いんじゃないかな。このさい材料は何でもいいから。

inquire: キャットフードは見つかった？まあ、いつでもいいよ。

success_lie: ...ご主人さま、その嘘はさすがに無理があるでしょ...

動物保護施設へ向かう

destination: animalshelter

describe: 1つ頼みたいことがあるんだ。聞いてくれるかい？

offer: ねえ、動物保護施設へ寄ってもいい？昔の...この姿になる前の友達が居たりしないかなって思って。

accepted: ありがとう、ご主人さま！

rejected: おあずけ？そう...

advice: 建物は町中にあるから、それなりの準備はしておいた方がいいかもね。

inquire: まだ着かないかな？

success: 連れてきてくれてありがとう。期待通りにはいかなかったけど、おかげで気が晴れたよ。

success_lie: ...まあ、ご主人さまも努力してくれたんだよね？ねっ？

ハチの巣へ向かう

destination: hive

describe: 1つ頼みたいことがあるんだ。聞いてくれるかい？

offer: いろんな昆虫が巨大化してるって事は、つまりその巣も巨大化してるって事...よしご主人さま、ハチの巣へ行こう！

accepted: ありがとう、ご主人さま！

rejected: 駄目？そう...

advice: 巨大蜂の群れに襲われてもいいように、それなりの準備はしておいた方がいいかもね。

success: 連れてきてくれてありがとう、ご主人さま！これだけハチミツがあったら何が食べられるかな...うへへ。

success_lie: ...まあ、ご主人さまも努力してくれたんだよね？

ローヤルビーフを手に入れる

describe: 1つ頼みたいことがあるんだ。聞いてくれるかい？

offer: ローヤルビーフって知ってるかい？肉にローヤルゼリーをかけた料理さ。貴重なものだってことは知ってるけど、一度だけでいいからどうしても味わってみたいんだ。

accepted: ありがとう、ご主人さま！

rejected: 駄目？まあ、貴重なものだからな...

advice: ローヤルゼリーを探すなら、まあ当然ハチの巣だろうね。

inquire: ローヤルビーフ...

success: おお、これがローヤルビーフ！  ...うん、まあ、確かに美味しいけど...ローヤルゼリーだけそのまま食べてもそう変わらないような...それはさておき、どうもありがとう、ご主人さま！

success_lie: ...ご主人さま、その嘘はさすがに無理があるでしょ...


type: npc

name_unique: 暗き時代の子

NOTE:genderはname_uniqueを設定しないと無効になる。最初それを知らずに髭面のおっさんの女子生徒が生成されて悲しみが鬼なった

name_unique: ﾄﾞﾐﾆｶ ﾗｳﾞﾚｰｽ

name_suffix: 女子生徒

gender: female

ペット(サキュバス)。人間に近い。

name_unique: ペット(サキュバス)

ペット(サキュバス)。わりと悪魔的。

ペット(インキュバス)。人間に近い。

name_unique: ペット(インキュバス)

gender: male

ペット(インキュバス)。わりと悪魔的。

ペット(犬)。人間に近い。

name_unique: ペット(犬)

ペット(犬)。半分半分。

ペット(犬)。より動物に近い。

ペット(猫)。人間に近い。

name_unique: ペット(猫)

ペット(猫)。半分半分。

ペット(猫)。より動物に近い。

ペット(熊)。人間に近い。

name_unique: ペット(熊)

ペット(熊)。半分半分。

ペット(熊)。より動物に近い。

ペット(犬)。人間に近い。

ペット(犬)。半分半分。

ペット(犬)。より動物に近い。

ペット(猫)。人間に近い。

ペット(猫)。半分半分。

ペット(猫)。より動物に近い。

ペット(熊)。人間に近い。

ペット(熊)。半分半分。

ペット(熊)。より動物に近い。


trait: MASOCHIST

trait: PRETTY

trait: ILLITERATE

trait: VIRGIN

確率は高めに。かわいいは正義。例外は無い。

trait: SPIRITUAL

trait: LIAR

trait: OUTDOORSMAN

trait: NONADDICTIVE

trait: ADDICTIVE

trait: STYLISH

trait: WEAKSCENT

trait: SMELLY

trait: OPTIMISTIC

trait: BADTEMPER

夢魔がかわいいのは確定的にあきらか。古典で語られる姿は醜かったり老婆だったりが一般的？知るか！アマラ宇宙的に言えば何も問題は無い！

超低確率で貞操持ち。けなげなのか不慣れなのか、どちらにせよ萌える

超低確率で貞操持ち。けなげなのか不慣れなのか、どちらにせよ萌える

ペット(インキュバス・サキュバス)。人間に近い。

trait: TERRIFYING

trait: TRUTHTELLER

trait: PSYCHOPATH

trait: FANGS

trait: NAILS

ペット(インキュバス・サキュバス)。わりと悪魔的。

trait: CANNIBAL

trait: INFRARED

trait: HOOVES

ペット(犬)。より人間に近い。

trait: GOODCARDIO

trait: GOURMAND

trait: HEAVYSLEEPER

人間に近くてくさいのはちょっとかわいくない...と思うので確立は低め。

trait: LIGHTFUR

trait: PAWS

trait: GROWL

確率は高めに。なぜって、そりゃHentai_modですから。

ペット(犬)。半分半分。

trait: ANIMALDISCORD

trait: PALE

マズルのありなしでケモ度はぐっと違うと思うのでなるべく抑え目にする。

trait: MUZZLE

trait: SNARL

Extreme Fetish要素は控えめに...

確率は高めに。なぜって、そりゃHentai_modですから。

ペット(犬)。より動物に近い。

ペット(猫)。より人間に近い。

trait: PARKOUR

trait: MEATARIAN

trait: LIGHTSTEP

人間に近くてくさいのはちょっとかわいくない...と思うので確立は低め。

trait: WHISKERS

trait: SLEEPY

trait: CARNIVORE

確率は高めに。なぜって、そりゃHentai_modですから。

ペット(猫)。半分半分。

確率は高めに。なぜって、そりゃHentai_modですから。

ペット(猫)。より動物に近い。

ペット(熊)。より人間に近い。

人間に近くてくさいのはちょっとかわいくない...と思うので確立は低め。

ペット(熊)。半分半分。

マズルのありなしでケモ度はぐっと違うと思うのでなるべく抑え目にする。

ペット(熊)。より動物に近い。


stop_phrase: *気持ちいいこと*を中止しますか？

based_on: speed


一人と一匹

type: profession

description: 大災厄の日、あなたはペットと共に命からがら逃げ延びました。今あなたの傍にあるのは愛しきペット一匹と、道中にて見知らぬ科学者から手渡された奇妙な薬一瓶だけです。

both: jeans longshirt socks sneakers purse fake_prof_pet iv_mutagen_human syringe rope_6

female: bra panties


type: recipe

skill_used: cooking

skill_used: fabrication