start breaking things
This commit is contained in:
@@ -18,7 +18,8 @@ namespace OpenRA.FileFormats
|
|||||||
public string Palette;
|
public string Palette;
|
||||||
public string Race;
|
public string Race;
|
||||||
public bool OwnsWorld = false;
|
public bool OwnsWorld = false;
|
||||||
public bool NonCombatant = false;
|
public bool NonCombatant = false;
|
||||||
|
public bool Playable = false;
|
||||||
public Color Color = Color.FromArgb(238,238,238);
|
public Color Color = Color.FromArgb(238,238,238);
|
||||||
public Color Color2 = Color.FromArgb(44,28,24);
|
public Color Color2 = Color.FromArgb(44,28,24);
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ namespace OpenRA.Network
|
|||||||
public int Index;
|
public int Index;
|
||||||
public string Bot; // trait name of the bot to initialize in this slot, or null otherwise.
|
public string Bot; // trait name of the bot to initialize in this slot, or null otherwise.
|
||||||
public bool Closed; // host has explicitly closed this slot.
|
public bool Closed; // host has explicitly closed this slot.
|
||||||
|
public string MapPlayer; // playerReference to bind against.
|
||||||
|
|
||||||
// todo: more stuff?
|
// todo: more stuff?
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -115,9 +115,25 @@ namespace OpenRA.Server
|
|||||||
} ) { IsBackground = true }.Start();
|
} ) { IsBackground = true }.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Session.Slot MakeSlotFromPlayerReference(PlayerReference pr)
|
||||||
|
{
|
||||||
|
if (!pr.Playable) return null;
|
||||||
|
return new Session.Slot
|
||||||
|
{
|
||||||
|
MapPlayer = pr.Name,
|
||||||
|
Bot = null, /* todo: allow the map to specify a bot class? */
|
||||||
|
Closed = false,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
static void LoadMap()
|
static void LoadMap()
|
||||||
{
|
{
|
||||||
Map = new Map(ModData.AvailableMaps[lobbyInfo.GlobalSettings.Map].Package);
|
Map = new Map(ModData.AvailableMaps[lobbyInfo.GlobalSettings.Map].Package);
|
||||||
|
lobbyInfo.Slots = Map.Players
|
||||||
|
.Select(p => MakeSlotFromPlayerReference(p.Value))
|
||||||
|
.Where(s => s != null)
|
||||||
|
.Select((s, i) => { s.Index = i; return s; })
|
||||||
|
.ToList();
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ChooseFreePlayerIndex()
|
static int ChooseFreePlayerIndex()
|
||||||
@@ -423,7 +439,9 @@ namespace OpenRA.Server
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case "Chat": case "TeamChat":
|
|
||||||
|
case "Chat":
|
||||||
|
case "TeamChat":
|
||||||
foreach (var c in conns.Except(conn).ToArray())
|
foreach (var c in conns.Except(conn).ToArray())
|
||||||
DispatchOrdersToClient(c, GetClient(conn).Index, 0, so.Serialize());
|
DispatchOrdersToClient(c, GetClient(conn).Index, 0, so.Serialize());
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -8,8 +8,7 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
namespace OpenRA.Mods.RA
|
namespace OpenRA.Mods.RA
|
||||||
|
|||||||
@@ -6,9 +6,8 @@
|
|||||||
* as published by the Free Software Foundation. For more information,
|
* as published by the Free Software Foundation. For more information,
|
||||||
* see LICENSE.
|
* see LICENSE.
|
||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user