diff --git a/Barotrauma/BarotraumaClient/Source/Characters/Character.cs b/Barotrauma/BarotraumaClient/Source/Characters/Character.cs index 8d54f0a0d..2d73f742c 100644 --- a/Barotrauma/BarotraumaClient/Source/Characters/Character.cs +++ b/Barotrauma/BarotraumaClient/Source/Characters/Character.cs @@ -298,15 +298,16 @@ namespace Barotrauma if (info != null) { - Vector2 namePos = new Vector2(pos.X, pos.Y - 110.0f - (5.0f / cam.Zoom)) - GUI.Font.MeasureString(Info.Name) * 0.5f / cam.Zoom; + string name = Info.DisplayName; + Vector2 namePos = new Vector2(pos.X, pos.Y - 110.0f - (5.0f / cam.Zoom)) - GUI.Font.MeasureString(name) * 0.5f / cam.Zoom; Color nameColor = Color.White; if (Character.Controlled != null && TeamID != Character.Controlled.TeamID) { nameColor = Color.Red; } - GUI.Font.DrawString(spriteBatch, Info.Name, namePos + new Vector2(1.0f / cam.Zoom, 1.0f / cam.Zoom), Color.Black, 0.0f, Vector2.Zero, 1.0f / cam.Zoom, SpriteEffects.None, 0.001f); - GUI.Font.DrawString(spriteBatch, Info.Name, namePos, nameColor, 0.0f, Vector2.Zero, 1.0f / cam.Zoom, SpriteEffects.None, 0.0f); + GUI.Font.DrawString(spriteBatch, name, namePos + new Vector2(1.0f / cam.Zoom, 1.0f / cam.Zoom), Color.Black, 0.0f, Vector2.Zero, 1.0f / cam.Zoom, SpriteEffects.None, 0.001f); + GUI.Font.DrawString(spriteBatch, name, namePos, nameColor, 0.0f, Vector2.Zero, 1.0f / cam.Zoom, SpriteEffects.None, 0.0f); if (GameMain.DebugDraw) { diff --git a/Barotrauma/BarotraumaClient/Source/Characters/CharacterHUD.cs b/Barotrauma/BarotraumaClient/Source/Characters/CharacterHUD.cs index 9a3ac7b23..8a9f1ebc4 100644 --- a/Barotrauma/BarotraumaClient/Source/Characters/CharacterHUD.cs +++ b/Barotrauma/BarotraumaClient/Source/Characters/CharacterHUD.cs @@ -208,7 +208,7 @@ namespace Barotrauma string focusName = character.FocusedCharacter.SpeciesName; if (character.FocusedCharacter.Info != null) { - focusName = character.FocusedCharacter.Info.Name; + focusName = character.FocusedCharacter.Info.DisplayName; } Vector2 textPos = startPos; textPos -= new Vector2(GUI.Font.MeasureString(focusName).X / 2, 20); diff --git a/Barotrauma/BarotraumaClient/Source/Items/Inventory.cs b/Barotrauma/BarotraumaClient/Source/Items/Inventory.cs index 8130dea44..b5204a9f0 100644 --- a/Barotrauma/BarotraumaClient/Source/Items/Inventory.cs +++ b/Barotrauma/BarotraumaClient/Source/Items/Inventory.cs @@ -296,9 +296,26 @@ namespace Barotrauma } else { - toolTip = string.IsNullOrEmpty(Items[i].Description) ? + string description = Items[i].Description; + if (Items[i].Name == "ID Card") + { + string[] readTags = Items[i].Tags.Split(','); + string idName = null; + string idJob = null; + foreach (string tag in readTags) + { + string[] s = tag.Split(':'); + if (s[0] == "name") + idName = s[1]; + if (s[0] == "job") + idJob = s[1]; + } + if (idName != null) + description = "This belongs to " + idName + (idJob != null ? ", the " + idJob + ".\n" : ".\n") + description; + } + toolTip = string.IsNullOrEmpty(description) ? Items[i].Name : - Items[i].Name + '\n' + Items[i].Description; + Items[i].Name + '\n' + description; } DrawToolTip(spriteBatch, toolTip, slots[i].Rect); diff --git a/Barotrauma/BarotraumaShared/Content/Items/Diving/divinggear.xml b/Barotrauma/BarotraumaShared/Content/Items/Diving/divinggear.xml index 238988d26..9cbd1a043 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Diving/divinggear.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Diving/divinggear.xml @@ -41,7 +41,7 @@ - + @@ -92,7 +92,7 @@ - + diff --git a/Barotrauma/BarotraumaShared/Content/Items/Jobgear/misc.xml b/Barotrauma/BarotraumaShared/Content/Items/Jobgear/misc.xml index 5a8c593f1..cdb8cb115 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Jobgear/misc.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Jobgear/misc.xml @@ -38,6 +38,7 @@ + diff --git a/Barotrauma/BarotraumaShared/Content/Items/Tools/tools.xml b/Barotrauma/BarotraumaShared/Content/Items/Tools/tools.xml index 882767d30..79c955152 100644 --- a/Barotrauma/BarotraumaShared/Content/Items/Tools/tools.xml +++ b/Barotrauma/BarotraumaShared/Content/Items/Tools/tools.xml @@ -197,8 +197,8 @@ - + aimpos="50,0" handle1="-5,0" holdangle="30" reload="1.7"> + diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs index 85e74eb6b..702b737f7 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Character.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Character.cs @@ -139,6 +139,19 @@ namespace Barotrauma } } + private float hideFaceTimer; + public bool HideFace + { + get + { + return hideFaceTimer > 0.0f; + } + set + { + hideFaceTimer = MathHelper.Clamp(hideFaceTimer + (value ? 1.0f : -0.5f), 0.0f, 10.0f); + } + } + public string ConfigPath { get; @@ -1406,6 +1419,8 @@ namespace Barotrauma item.Submarine = Submarine; } } + + HideFace = false; if (isDead) return; diff --git a/Barotrauma/BarotraumaShared/Source/Characters/CharacterInfo.cs b/Barotrauma/BarotraumaShared/Source/Characters/CharacterInfo.cs index dd6d8133f..12e5d93c4 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/CharacterInfo.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/CharacterInfo.cs @@ -12,7 +12,34 @@ namespace Barotrauma partial class CharacterInfo { public string Name; - + public string DisplayName + { + get { + string disguiseName = "?"; + if (Character != null && Character.HideFace) + { + if (Character.Inventory != null) + { + var idCard = Character.Inventory.FindItem("ID Card"); + if (idCard != null && Character.Inventory.IsInLimbSlot(idCard, InvSlotType.Card)) //Disguise as the ID card name if it's equipped + { + string[] readTags = idCard.Tags.Split(','); + foreach (string tag in readTags) + { + string[] s = tag.Split(':'); + if (s[0] == "name") + { + disguiseName = s[1]; + break; + } + } + } + } + return disguiseName; + } + return Name; + } + } public Character Character; public readonly string File; diff --git a/Barotrauma/BarotraumaShared/Source/Characters/Jobs/Job.cs b/Barotrauma/BarotraumaShared/Source/Characters/Jobs/Job.cs index d2b3e28e8..865e6bcbc 100644 --- a/Barotrauma/BarotraumaShared/Source/Characters/Jobs/Job.cs +++ b/Barotrauma/BarotraumaShared/Source/Characters/Jobs/Job.cs @@ -130,7 +130,8 @@ namespace Barotrauma { item.AddTag(s); } - item.Description = "This belongs to " + character.Name + ", the " + Name + "."; + item.AddTag("name:" + character.Name); + item.AddTag("job:" + Name); } if (parentItem != null) parentItem.Combine(item);