Added MP campaign setup to the dedicated server & some console commands for managing the campaign

This commit is contained in:
Joonas Rikkonen
2017-09-17 20:03:18 +03:00
parent 9114ae658f
commit e26600d088
11 changed files with 218 additions and 42 deletions
@@ -72,11 +72,27 @@ namespace Barotrauma
int index = -1;
if (int.TryParse(string.Join(" ", args), out index))
{
GameMain.NetLobbyScreen.SelectedModeIndex = index;
if (index > 0 && index < GameMain.NetLobbyScreen.GameModes.Length &&
GameMain.NetLobbyScreen.GameModes[index].Name == "Campaign")
{
MultiplayerCampaign.StartCampaignSetup();
}
else
{
GameMain.NetLobbyScreen.SelectedModeIndex = index;
}
}
else
{
GameMain.NetLobbyScreen.SelectedModeName = string.Join(" ", args);
string modeName = string.Join(" ", args);
if (modeName.ToLowerInvariant() == "campaign")
{
MultiplayerCampaign.StartCampaignSetup();
}
else
{
GameMain.NetLobbyScreen.SelectedModeName = modeName;
}
}
NewMessage("Set gamemode to " + GameMain.NetLobbyScreen.SelectedModeName, Color.Cyan);
}));
@@ -1,7 +0,0 @@
namespace Barotrauma
{
partial class GameSession
{
public const Map Map = null;
}
}
@@ -21,26 +21,31 @@ namespace Barotrauma
set { selectedShuttle = value; lastUpdateID++; }
}
private GameModePreset[] GameModes;
private GameModePreset[] gameModes;
public GameModePreset[] GameModes
{
get { return gameModes; }
}
private int selectedModeIndex;
public int SelectedModeIndex
{
get { return selectedModeIndex; }
set {
set
{
lastUpdateID++;
selectedModeIndex = Math.Max(0, Math.Min(GameModes.Count()-1, value));
selectedModeIndex = MathHelper.Clamp(value, 0, gameModes.Length - 1);
}
}
public string SelectedModeName
{
get { return GameModes[SelectedModeIndex].Name; }
get { return gameModes[SelectedModeIndex].Name; }
set
{
for (int i = 0; i < GameModes.Count(); i++)
for (int i = 0; i < gameModes.Count(); i++)
{
if (GameModes[i].Name.ToLower() == value.ToLower())
if (gameModes[i].Name.ToLower() == value.ToLower())
{
SelectedModeIndex = i;
break;
@@ -51,7 +56,7 @@ namespace Barotrauma
public GameModePreset SelectedMode
{
get { return GameModes[SelectedModeIndex]; }
get { return gameModes[SelectedModeIndex]; }
}
public string ServerMessageText;
@@ -117,14 +122,9 @@ namespace Barotrauma
DebugConsole.NewMessage("Selected sub: " + SelectedSub.Name, Color.White);
DebugConsole.NewMessage("Selected shuttle: " + SelectedShuttle.Name, Color.White);
GameModes = GameModePreset.list.ToArray();
gameModes = GameModePreset.list.ToArray();
}
public override void Select()
{
base.Select();
}
private List<Submarine> subs;
public List<Submarine> GetSubList()
{
@@ -152,5 +152,19 @@ namespace Barotrauma
get { return true; }
set { /* do nothing */ }
}
public void ToggleCampaignMode(bool enabled)
{
for (int i = 0; i < GameModes.Length; i++)
{
if ((GameModes[i].Name == "Campaign") == enabled)
{
selectedModeIndex = i;
break;
}
}
lastUpdateID++;
}
}
}