Characters can't hold things in severed hands, limb bodies are re-enabled when reviving a character. Closes #529
This commit is contained in:
@@ -1220,25 +1220,29 @@ namespace Barotrauma
|
|||||||
|
|
||||||
if (itemPos == Vector2.Zero || Anim == Animation.Climbing || usingController)
|
if (itemPos == Vector2.Zero || Anim == Animation.Climbing || usingController)
|
||||||
{
|
{
|
||||||
if (character.SelectedItems[1] == item)
|
|
||||||
{
|
|
||||||
transformedHoldPos = leftHand.pullJoint.WorldAnchorA - transformedHandlePos[1];
|
|
||||||
itemAngle = (leftHand.Rotation + (holdAngle - MathHelper.PiOver2) * Dir);
|
|
||||||
}
|
|
||||||
if (character.SelectedItems[0] == item)
|
if (character.SelectedItems[0] == item)
|
||||||
{
|
{
|
||||||
|
if (rightHand.IsSevered) return;
|
||||||
transformedHoldPos = rightHand.pullJoint.WorldAnchorA - transformedHandlePos[0];
|
transformedHoldPos = rightHand.pullJoint.WorldAnchorA - transformedHandlePos[0];
|
||||||
itemAngle = (rightHand.Rotation + (holdAngle - MathHelper.PiOver2) * Dir);
|
itemAngle = (rightHand.Rotation + (holdAngle - MathHelper.PiOver2) * Dir);
|
||||||
}
|
}
|
||||||
|
if (character.SelectedItems[1] == item)
|
||||||
|
{
|
||||||
|
if (leftHand.IsSevered) return;
|
||||||
|
transformedHoldPos = leftHand.pullJoint.WorldAnchorA - transformedHandlePos[1];
|
||||||
|
itemAngle = (leftHand.Rotation + (holdAngle - MathHelper.PiOver2) * Dir);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (character.SelectedItems[0] == item)
|
if (character.SelectedItems[0] == item)
|
||||||
{
|
{
|
||||||
|
if (rightHand.IsSevered) return;
|
||||||
rightHand.Disabled = true;
|
rightHand.Disabled = true;
|
||||||
}
|
}
|
||||||
if (character.SelectedItems[1] == item)
|
if (character.SelectedItems[1] == item)
|
||||||
{
|
{
|
||||||
|
if (leftHand.IsSevered) return;
|
||||||
leftHand.Disabled = true;
|
leftHand.Disabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2022,6 +2022,7 @@ namespace Barotrauma
|
|||||||
|
|
||||||
foreach (Limb limb in AnimController.Limbs)
|
foreach (Limb limb in AnimController.Limbs)
|
||||||
{
|
{
|
||||||
|
limb.body.Enabled = true;
|
||||||
limb.IsSevered = false;
|
limb.IsSevered = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -85,9 +85,10 @@ namespace Barotrauma
|
|||||||
set
|
set
|
||||||
{
|
{
|
||||||
isSevered = value;
|
isSevered = value;
|
||||||
|
if (!isSevered) severedFadeOutTimer = 0.0f;
|
||||||
#if CLIENT
|
#if CLIENT
|
||||||
if (isSevered) damage = 100.0f;
|
if (isSevered) damage = 100.0f;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user