v1.4.4.1 (Blood in the Water Update)

This commit is contained in:
Regalis11
2024-04-24 18:09:05 +03:00
parent 89b91d1c3e
commit ff1b8951a7
397 changed files with 15250 additions and 6479 deletions
@@ -32,11 +32,6 @@ namespace Barotrauma.Items.Components
private LocalizedString prevMsg;
private Dictionary<RelatedItem.RelationType, List<RelatedItem>> prevRequiredItems;
//the distance from the holding characters elbow to center of the physics body of the item
protected Vector2 holdPos;
protected Vector2 aimPos;
private float swingState;
private Character prevEquipper;
@@ -131,6 +126,9 @@ namespace Barotrauma.Items.Components
get { return ConvertUnits.ToDisplayUnits(holdPos); }
set { holdPos = ConvertUnits.ToSimUnits(value); }
}
//the distance from the holding characters elbow to center of the physics body of the item
protected Vector2 holdPos;
[Serialize("0.0,0.0", IsPropertySaveable.No, description: "The position the character holds the item at when aiming (in pixels, as an offset from the character's shoulder)."+
" Works similarly as HoldPos, except that the position is rotated according to the direction the player is aiming at. For example, a value of 10,-100 would make the character hold the item 100 pixels below the shoulder and 10 pixels forwards when aiming directly to the right.")]
@@ -139,6 +137,7 @@ namespace Barotrauma.Items.Components
get { return ConvertUnits.ToDisplayUnits(aimPos); }
set { aimPos = ConvertUnits.ToSimUnits(value); }
}
protected Vector2 aimPos;
protected float holdAngle;
#if DEBUG
@@ -258,12 +257,12 @@ namespace Barotrauma.Items.Components
}
canBePicked = true;
prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(RequiredItems);
if (attachable)
{
prevMsg = DisplayMsg;
prevPickKey = PickKey;
prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(requiredItems);
if (item.Submarine != null)
{
@@ -320,7 +319,7 @@ namespace Barotrauma.Items.Components
if (attachable)
{
prevMsg = DisplayMsg;
prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(requiredItems);
prevRequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(RequiredItems);
}
}
@@ -649,7 +648,7 @@ namespace Barotrauma.Items.Components
DisplayMsg = prevMsg;
PickKey = prevPickKey;
requiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(prevRequiredItems);
RequiredItems = new Dictionary<RelatedItem.RelationType, List<RelatedItem>>(prevRequiredItems);
Attached = true;
#if CLIENT
@@ -667,7 +666,7 @@ namespace Barotrauma.Items.Components
item.DrawDepthOffset = 0.0f;
#endif
//make the item pickable with the default pick key and with no specific tools/items when it's deattached
requiredItems.Clear();
RequiredItems.Clear();
DisplayMsg = "";
PickKey = InputType.Select;
#if CLIENT
@@ -916,15 +915,25 @@ namespace Barotrauma.Items.Components
bool aim = picker.IsKeyDown(InputType.Aim) && aimPos != Vector2.Zero && picker.CanAim && !UsageDisabledByRangedWeapon(picker);
if (aim)
{
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, holdPos + swingPos, aimPos + swingPos, aim, holdAngle, aimAngle);
if (picker.AnimController.IsHoldingToRope && GetRope() is { Snapped: false } rope)
{
Vector2 targetPos = Submarine.GetRelativeSimPosition(picker, rope.Item);
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, itemPos: aimPos, aim: true, holdAngle, aimAngle, targetPos: targetPos);
}
else
{
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, itemPos: aimPos + swingPos, aim: true, holdAngle, aimAngle);
}
}
else
{
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, holdPos + swingPos, aimPos + swingPos, aim, holdAngle);
var rope = GetRope();
if (rope != null && rope.SnapWhenNotAimed && rope.Item.ParentInventory == null)
picker.AnimController.HoldItem(deltaTime, item, scaledHandlePos, itemPos: holdPos + swingPos, aim: false, holdAngle);
if (GetRope() is { SnapWhenNotAimed: true } rope)
{
rope.Snap();
if (rope.Item.ParentInventory == null)
{
rope.Snap();
}
}
}
}
@@ -1054,15 +1063,15 @@ namespace Barotrauma.Items.Components
}
var tempMsg = DisplayMsg;
var tempRequiredItems = requiredItems;
var tempRequiredItems = RequiredItems;
DisplayMsg = prevMsg;
requiredItems = prevRequiredItems;
RequiredItems = prevRequiredItems;
XElement saveElement = base.Save(parentElement);
DisplayMsg = tempMsg;
requiredItems = tempRequiredItems;
RequiredItems = tempRequiredItems;
return saveElement;
}