Quote:
Originally Posted by _DreadNought_
Was one of those things a class for a Tournament team? o.O
Code:
TournamentTeam Red = new TournamentTeam(500);
Go me! woot.
|
Not really that, I had that before I even had your source :P But a team shouldn't be done with a fixed size, rather a collection.
This is how my Tournament team class looks.
Code:
public class TournamentTeam
{
public TournamentTeam(uint MapID, string Name)
{
this.MapID = MapID;
this.Name = Name;
Reset();
}
public string Name;
private uint MapID;
private ThreadSafeList<Player> Players;
public TournamentGarment Garment;
private ushort[] spawn = new ushort[2];
public uint Points;
public uint Kills;
public bool Send;
public int Count
{
get
{
return Players.Count;
}
}
public ushort[] Spawn
{
get
{
return spawn;
}
}
public void Reset()
{
Players = new ThreadSafeList<Player>();
Points = 0;
Kills = 0;
Send = false;
}
public void Add(Player player)
{
if (player != null)
Players.Add(player);
}
public void Remove(Player player)
{
if (Players.Contains(player))
Players.Remove(player);
player.TournyClient.Reset();
}
public Player[] GetPlayers()
{
ThreadSafeList<Player> newPlayerList = new ThreadSafeList<Player>();
foreach (Player player in Players)
{
if (player != null)
{
if (player.Online)
{
if (player.MapID == MapID || !Send)
{
newPlayerList.Add(player);
}
else
player.Disconnect(true);
}
}
}
Players = newPlayerList;
return Players.ToArray();
}
public void TeleportToSpawn()
{
foreach (Player player in GetPlayers())
{
player.SpecClient.Teleport(MapID, Spawn[0], Spawn[1]);
}
Send = true;
}
public void TeleportToSpawn(Player player)
{
if (player != null)
{
player.SpecClient.Teleport(MapID, Spawn[0], Spawn[1]);
}
}
public void Dismiss()
{
foreach (Player player in GetPlayers())
{
player.SpecClient.Teleport(1002, 400, 400);
if (Players.Contains(player))
Players.Remove(player);
}
}
}