- special death messages for husk infections
- fixed husk infections not being removed from clients - more accurate bleeding indicators - humanoid standing anim tweaking
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
<CauseOfDeath.Suffocation>Suffocated</CauseOfDeath.Suffocation>
|
||||
<CauseOfDeath.Pressure>Crushed by water pressure</CauseOfDeath.Pressure>
|
||||
<CauseOfDeath.Burn>Burned to death</CauseOfDeath.Burn>
|
||||
<CauseOfDeath.Husk>Taken over by a parasite</CauseOfDeath.Husk>
|
||||
<CauseOfDeath.Disconnected>Disconnected</CauseOfDeath.Disconnected>
|
||||
|
||||
<Self_CauseOfDeath.Damage>You have succumbed to your injuries.</Self_CauseOfDeath.Damage>
|
||||
@@ -19,6 +20,7 @@
|
||||
<Self_CauseOfDeath.Suffocation>You have suffocated.</Self_CauseOfDeath.Suffocation>
|
||||
<Self_CauseOfDeath.Pressure>You have been crushed by water pressure.</Self_CauseOfDeath.Pressure>
|
||||
<Self_CauseOfDeath.Burn>You have burned to death.</Self_CauseOfDeath.Burn>
|
||||
<Self_CauseOfDeath.Husk>The parasite has taken over your body.</Self_CauseOfDeath.Husk>
|
||||
<Self_CauseOfDeath.Disconnected>You have been disconnected from the server.</Self_CauseOfDeath.Disconnected>
|
||||
|
||||
<HuskDormant>Your throat feels sore</HuskDormant>
|
||||
@@ -28,8 +30,7 @@
|
||||
|
||||
<HuskCantSpeak>You feel something moving in your throat. You try to scream but no sound comes out.</HuskCantSpeak>
|
||||
|
||||
<HuskActivate>A strange chitinous appendage bursts out from your mouth. Use it to inject eggs into a living body by pressing [Attack]!</HuskActivate>
|
||||
|
||||
|
||||
<HuskActivate>A strange chitinous appendage bursts out from your mouth. Use it to inject eggs into a living body by pressing [Attack]!</HuskActivate>
|
||||
|
||||
|
||||
</infotexts>
|
||||
@@ -338,13 +338,13 @@ namespace Barotrauma
|
||||
|
||||
if (!onGround || (LowestLimb.SimPosition.Y - floorY > 0.5f && stairs == null)) return;
|
||||
|
||||
float? ceilingY = null;
|
||||
if (Submarine.PickBody(head.SimPosition, head.SimPosition + Vector2.UnitY, null, Physics.CollisionWall)!=null)
|
||||
{
|
||||
ceilingY = Submarine.LastPickedPosition.Y;
|
||||
//float? ceilingY = null;
|
||||
//if (Submarine.PickBody(head.SimPosition, head.SimPosition + Vector2.UnitY, null, Physics.CollisionWall)!=null)
|
||||
//{
|
||||
// ceilingY = Submarine.LastPickedPosition.Y;
|
||||
|
||||
if (ceilingY - floorY < HeadPosition) Crouching = true;
|
||||
}
|
||||
// if (ceilingY - floorY < HeadPosition) Crouching = true;
|
||||
//}
|
||||
|
||||
getUpSpeed = getUpSpeed * Math.Max(head.SimPosition.Y - colliderPos.Y, 0.5f);
|
||||
|
||||
@@ -456,24 +456,20 @@ namespace Barotrauma
|
||||
else
|
||||
{
|
||||
float movementFactor = (movement.X / 4.0f) * movement.X * Math.Sign(movement.X);
|
||||
|
||||
|
||||
|
||||
//MoveLimb(leftFoot, footPos, 2.5f);
|
||||
|
||||
for (int i = -1; i < 2; i+=2 )
|
||||
for (int i = -1; i < 2; i += 2)
|
||||
{
|
||||
Vector2 footPos = new Vector2(
|
||||
Crouching ? waist.SimPosition.X + Math.Sign(stepSize.X*i)*Dir*0.3f : waist.SimPosition.X,
|
||||
colliderPos.Y - 0.2f);
|
||||
Vector2 footPos = new Vector2(
|
||||
Crouching ? waist.SimPosition.X + Math.Sign(stepSize.X * i) * Dir * 0.3f : GetCenterOfMass().X,
|
||||
colliderPos.Y - 0.1f);
|
||||
|
||||
var foot = i == -1 ? rightFoot : leftFoot;
|
||||
|
||||
MoveLimb(foot, footPos, Math.Abs(foot.SimPosition.X - footPos.X)*50.0f);
|
||||
MoveLimb(foot, footPos, Math.Abs(foot.SimPosition.X - footPos.X) * 100.0f, true);
|
||||
}
|
||||
|
||||
leftFoot.body.SmoothRotate(Dir * MathHelper.PiOver2, 5.0f);
|
||||
rightFoot.body.SmoothRotate(Dir * MathHelper.PiOver2, 5.0f);
|
||||
leftFoot.body.SmoothRotate(Dir * MathHelper.PiOver2, 50.0f);
|
||||
rightFoot.body.SmoothRotate(Dir * MathHelper.PiOver2, 50.0f);
|
||||
|
||||
if (!rightHand.Disabled)
|
||||
{
|
||||
@@ -1183,7 +1179,7 @@ namespace Barotrauma
|
||||
|
||||
Vector2 position = limb.SimPosition;
|
||||
|
||||
if (!limb.pullJoint.Enabled && mirror)
|
||||
if ((limb.pullJoint==null || !limb.pullJoint.Enabled) && mirror)
|
||||
{
|
||||
difference = limb.body.SimPosition - torso.SimPosition;
|
||||
difference = Vector2.Transform(difference, torsoTransform);
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace Barotrauma
|
||||
{
|
||||
enum CauseOfDeath
|
||||
{
|
||||
Damage, Bloodloss, Pressure, Suffocation, Drowning, Burn, Disconnected
|
||||
Damage, Bloodloss, Pressure, Suffocation, Drowning, Burn, Husk, Disconnected
|
||||
}
|
||||
|
||||
public enum DamageType { None, Blunt, Slash, Burn }
|
||||
|
||||
@@ -1816,6 +1816,7 @@ namespace Barotrauma
|
||||
bleeding = 0.0f;
|
||||
Oxygen = 100.0f;
|
||||
AnimController.StunTimer = 0.0f;
|
||||
huskInfection = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -1827,7 +1828,11 @@ namespace Barotrauma
|
||||
|
||||
if (message.ReadBoolean())
|
||||
{
|
||||
HuskInfectionState = message.ReadRangedSingle(0.0f, 1.0f, 4);
|
||||
float infectionState = message.ReadRangedSingle(0.0f, 1.0f, 4);
|
||||
if (infectionState == 0.0f)
|
||||
huskInfection = null;
|
||||
else
|
||||
HuskInfectionState = infectionState;
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
@@ -233,11 +233,12 @@ namespace Barotrauma
|
||||
healthBar.Draw(spriteBatch);
|
||||
}
|
||||
|
||||
int bloodDropCount = (int)Math.Floor(character.Bleeding);
|
||||
bloodDropCount = MathHelper.Clamp(bloodDropCount, 0, 5);
|
||||
for (int i = 1; i < bloodDropCount; i++)
|
||||
float bloodDropCount = character.Bleeding;
|
||||
bloodDropCount = MathHelper.Clamp(bloodDropCount, 0.0f, 5.0f);
|
||||
for (int i = 0; i < Math.Ceiling(bloodDropCount); i++)
|
||||
{
|
||||
spriteBatch.Draw(statusIcons.Texture, new Vector2(5.0f + 20 * i, healthBar.Rect.Y - 20.0f), new Rectangle(39, 3, 15, 19), Color.White * 0.8f);
|
||||
float alpha = MathHelper.Clamp(bloodDropCount-i, 0.2f, 1.0f);
|
||||
spriteBatch.Draw(statusIcons.Texture, new Vector2(25.0f + 20 * i, healthBar.Rect.Y - 20.0f), new Rectangle(39, 3, 15, 19), Color.White * alpha);
|
||||
}
|
||||
|
||||
float pressureFactor = (character.AnimController.CurrentHull == null) ?
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace Barotrauma
|
||||
|
||||
state = InfectionState.Dormant;
|
||||
|
||||
IncubationTimer += 100* deltaTime / IncubationDuration;
|
||||
IncubationTimer += deltaTime / IncubationDuration;
|
||||
|
||||
if (Character.Controlled != character) return;
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace Barotrauma
|
||||
|
||||
private void UpdateTransitionState(float deltaTime, Character character)
|
||||
{
|
||||
IncubationTimer += deltaTime*10.0f/ IncubationDuration;
|
||||
IncubationTimer += deltaTime / IncubationDuration;
|
||||
|
||||
if (state == InfectionState.Dormant && Character.Controlled == character)
|
||||
{
|
||||
@@ -98,7 +98,7 @@ namespace Barotrauma
|
||||
state = InfectionState.Active;
|
||||
}
|
||||
|
||||
character.AddDamage(CauseOfDeath.Damage, 0.5f*deltaTime, null);
|
||||
character.AddDamage(CauseOfDeath.Husk, 0.5f*deltaTime, null);
|
||||
|
||||
if (character.AnimController.limbJoints[0].LimitEnabled &&
|
||||
(character.AnimController.CurrentHull == null ||
|
||||
|
||||
Reference in New Issue
Block a user