Servers can disable the disguise feature. Closes #568

This commit is contained in:
Joonas Rikkonen
2018-08-14 16:06:23 +03:00
parent 1e02d7406d
commit 4866a89253
5 changed files with 29 additions and 2 deletions

View File

@@ -69,6 +69,12 @@ namespace Barotrauma.Networking
{
get { return entityEventManager.MidRoundSyncing; }
}
public bool AllowDisguises
{
get;
private set;
}
public GameClient(string newName)
{
@@ -705,6 +711,7 @@ namespace Barotrauma.Networking
bool respawnAllowed = inc.ReadBoolean();
bool loadSecondSub = inc.ReadBoolean();
bool disguisesAllowed = inc.ReadBoolean();
bool isTraitor = inc.ReadBoolean();
string traitorTargetName = isTraitor ? inc.ReadString() : null;
@@ -743,6 +750,8 @@ namespace Barotrauma.Networking
GameMain.NetLobbyScreen.UsingShuttle = usingShuttle;
AllowDisguises = disguisesAllowed;
if (campaign == null)
{
if (!GameMain.NetLobbyScreen.TrySelectSub(subName, subHash, GameMain.NetLobbyScreen.SubList))

View File

@@ -144,6 +144,10 @@ namespace Barotrauma
{
get
{
if (GameMain.Server != null && !GameMain.Server.AllowDisguises) return Name;
#if CLIENT
if (GameMain.Client != null && !GameMain.Client.AllowDisguises) return Name;
#endif
return info != null && !string.IsNullOrWhiteSpace(info.Name) ? info.Name + (info.DisplayName != info.Name ? " (as " + info.DisplayName + ")" : "") : SpeciesName;
}
}

View File

@@ -17,11 +17,16 @@ namespace Barotrauma
get
{
string disguiseName = "?";
if (Character == null || !Character.HideFace)
if (Character == null || !Character.HideFace || (GameMain.Server != null && !GameMain.Server.AllowDisguises))
{
return Name;
}
#if CLIENT
if (GameMain.Client != null && !GameMain.Client.AllowDisguises)
{
return Name;
}
#endif
if (Character.Inventory != null)
{
int cardSlotIndex = Character.Inventory.FindLimbSlot(InvSlotType.Card);

View File

@@ -1456,6 +1456,8 @@ namespace Barotrauma.Networking
msg.Write(AllowRespawn && missionAllowRespawn);
msg.Write(Submarine.MainSubs[1] != null); //loadSecondSub
msg.Write(AllowDisguises);
Traitor traitor = null;
if (TraitorManager != null && TraitorManager.TraitorList.Count > 0)
traitor = TraitorManager.TraitorList.Find(t => t.Character == client.Character);

View File

@@ -177,6 +177,13 @@ namespace Barotrauma.Networking
set;
}
[Serialize(true, true)]
public bool AllowDisguises
{
get;
set;
}
public YesNoMaybe TraitorsEnabled
{
get;