better bodytype offsets for hulk

This commit is contained in:
Platinum 2020-05-08 18:19:38 -07:00
parent ce09ac0b2a
commit 04717154e3
7 changed files with 67 additions and 2 deletions

View File

@ -23,6 +23,9 @@
</defNames>
<isFucking>true</isFucking>
<initiator>true</initiator>
<bodyTypeOffset>
<Hulk>(0, 0.2)</Hulk>
</bodyTypeOffset>
</li>
</actors>
@ -465,6 +468,9 @@
<defNames>
<li>Human</li>
</defNames>
<bodyTypeOffset>
<Hulk>(0, -0.2)</Hulk>
</bodyTypeOffset>
</li>
<li>
<defNames>
@ -473,6 +479,9 @@
<isFucking>true</isFucking>
<controlGenitalAngle>true</controlGenitalAngle>
<initiator>true</initiator>
<bodyTypeOffset>
<Hulk>(0, 0.2)</Hulk>
</bodyTypeOffset>
</li>
</actors>
<animationStages>
@ -879,6 +888,9 @@
<li>Human</li>
</defNames>
<isFucked>true</isFucked>
<bodyTypeOffset>
<Hulk>(0, 0.2)</Hulk>
</bodyTypeOffset>
</li>
<li>
<defNames>
@ -886,6 +898,9 @@
</defNames>
<initiator>true</initiator>
<isFucking>true</isFucking>
<bodyTypeOffset>
<Hulk>(0, 0.2)</Hulk>
</bodyTypeOffset>
</li>
</actors>
@ -1984,6 +1999,9 @@
</defNames>
<isFucked>true</isFucked>
<initiator>true</initiator>
<bodyTypeOffset>
<Hulk>(0, 0.2)</Hulk>
</bodyTypeOffset>
</li>
<li>
@ -1992,6 +2010,9 @@
</defNames>
<isFucking>true</isFucking>
<controlGenitalAngle>true</controlGenitalAngle>
<bodyTypeOffset>
<Hulk>(0, -0.2)</Hulk>
</bodyTypeOffset>
</li>
</actors>

View File

@ -73,6 +73,7 @@
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Source\Actors\Actor.cs" />
<Compile Include="Source\Actors\AlienRaceOffset.cs" />
<Compile Include="Source\Actors\BodyTypeOffset.cs" />
<Compile Include="Source\Animations\AnimationStage.cs" />
<Compile Include="Source\Animations\Clips\BaseAnimationClip.cs" />
<Compile Include="Source\Animations\Clips\PawnAnimationClip.cs" />

View File

@ -16,6 +16,7 @@ namespace Rimworld_Animations {
public bool isFucking = false;
public bool isFucked = false;
public bool controlGenitalAngle = false;
public BodyTypeOffset bodyTypeOffset = new BodyTypeOffset();
public Vector3 offset = new Vector2(0, 0);
}
}

View File

@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
namespace Rimworld_Animations {
public class BodyTypeOffset {
public Vector2? Male;
public Vector2? Female;
public Vector2? Thin;
public Vector2? Hulk;
public Vector2? Fat;
}
}

View File

@ -78,10 +78,10 @@ namespace Rimworld_Animations {
//TESTING ANIMATIONS ONLY REMEMBER TO COMMENT OUT BEFORE PUSH
/*
if (x.defName != "Cowgirl")
if (x.defName != "Doggystyle")
return false;
*/
*/
if (x.actors[i].isFucking && !rjw.xxx.can_fuck(localParticipants[i])) {
Log.Message(x.defName.ToStringSafe() + " not selected -- " + localParticipants[i].def.defName.ToStringSafe() + " " + localParticipants[i].Name.ToStringSafe() + " can't fuck");

View File

@ -105,6 +105,30 @@ namespace Rimworld_Animations {
anchor.z += raceOffset.offset.y;
}
//change the offset based on pawn body type
if(pawn?.story?.bodyType != null) {
if (pawn.story.bodyType == BodyTypeDefOf.Fat && anim?.actors[actor]?.bodyTypeOffset?.Fat != null) {
anchor.x += anim.actors[actor].bodyTypeOffset.Fat.Value.x * (mirror ? -1f : 1f);
anchor.z += anim.actors[actor].bodyTypeOffset.Fat.Value.y;
}
else if (pawn.story.bodyType == BodyTypeDefOf.Female && anim?.actors[actor]?.bodyTypeOffset?.Female != null) {
anchor.x += anim.actors[actor].bodyTypeOffset.Female.Value.x * (mirror ? -1f : 1f);
anchor.z += anim.actors[actor].bodyTypeOffset.Female.Value.y;
}
else if (pawn.story.bodyType == BodyTypeDefOf.Male && anim?.actors[actor]?.bodyTypeOffset?.Male != null) {
anchor.x += anim.actors[actor].bodyTypeOffset.Male.Value.x * (mirror ? -1f : 1f);
anchor.z += anim.actors[actor].bodyTypeOffset.Male.Value.y;
}
else if (pawn.story.bodyType == BodyTypeDefOf.Thin && anim?.actors[actor]?.bodyTypeOffset?.Thin != null) {
anchor.x += anim.actors[actor].bodyTypeOffset.Thin.Value.x * (mirror ? -1f : 1f);
anchor.z += anim.actors[actor].bodyTypeOffset.Thin.Value.y;
}
else if (pawn.story.bodyType == BodyTypeDefOf.Hulk && anim?.actors[actor]?.bodyTypeOffset?.Hulk != null) {
anchor.x += anim.actors[actor].bodyTypeOffset.Hulk.Value.x * (mirror ? -1f : 1f);
anchor.z += anim.actors[actor].bodyTypeOffset.Hulk.Value.y;
}
}
pawn.jobs.posture = PawnPosture.Standing;
this.actor = actor;