Character.DisplayName looks at the Card slot directly instead of finding the first ID card in the inventory and seeing if it's in the Card slot. + reduced nesting
This commit is contained in:
@@ -14,30 +14,34 @@ namespace Barotrauma
|
|||||||
public string Name;
|
public string Name;
|
||||||
public string DisplayName
|
public string DisplayName
|
||||||
{
|
{
|
||||||
get {
|
get
|
||||||
|
{
|
||||||
string disguiseName = "?";
|
string disguiseName = "?";
|
||||||
if (Character != null && Character.HideFace)
|
if (Character == null || !Character.HideFace)
|
||||||
{
|
{
|
||||||
if (Character.Inventory != null)
|
return Name;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Character.Inventory != null)
|
||||||
|
{
|
||||||
|
int cardSlotIndex = Character.Inventory.FindLimbSlot(InvSlotType.Card);
|
||||||
|
if (cardSlotIndex < 0) return disguiseName;
|
||||||
|
|
||||||
|
var idCard = Character.Inventory.Items[cardSlotIndex];
|
||||||
|
if (idCard == null) return disguiseName;
|
||||||
|
|
||||||
|
//Disguise as the ID card name if it's equipped
|
||||||
|
string[] readTags = idCard.Tags.Split(',');
|
||||||
|
foreach (string tag in readTags)
|
||||||
{
|
{
|
||||||
var idCard = Character.Inventory.FindItem("ID Card");
|
string[] s = tag.Split(':');
|
||||||
if (idCard != null && Character.Inventory.IsInLimbSlot(idCard, InvSlotType.Card)) //Disguise as the ID card name if it's equipped
|
if (s[0] == "name")
|
||||||
{
|
{
|
||||||
string[] readTags = idCard.Tags.Split(',');
|
return s[1];
|
||||||
foreach (string tag in readTags)
|
|
||||||
{
|
|
||||||
string[] s = tag.Split(':');
|
|
||||||
if (s[0] == "name")
|
|
||||||
{
|
|
||||||
disguiseName = s[1];
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return disguiseName;
|
|
||||||
}
|
}
|
||||||
return Name;
|
return disguiseName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public Character Character;
|
public Character Character;
|
||||||
|
|||||||
Reference in New Issue
Block a user