void HandleDisconnect(Player p, string reason) { if (p.level != Game.Map) { return; } CtfTeam2 team = Game.TeamOf(p); if (team == null) { return; } Game.DropFlag(p, team); team.Remove(p); Chat.MessageLevel(Game.Map, team.Color + p.DisplayName + " %Sleft the ctf game"); }
void HandleOnJoinedLevel(Player p, Level prevLevel, Level level) { if (p == null || !Game.started) { return; } if (prevLevel == Game.Map) { CtfTeam2 team = Game.TeamOf(p); if (team == null) { return; } Game.DropFlag(p, team); team.Remove(p); Chat.MessageLevel(Game.Map, team.Color + p.DisplayName + " %Sleft the ctf game"); } else if (level == Game.Map) { if (Game.Blue.Members.Count > Game.Red.Members.Count) { Game.JoinTeam(p, Game.Red); } else if (Game.Red.Members.Count > Game.Blue.Members.Count) { Game.JoinTeam(p, Game.Blue); } else if (new Random().Next(2) == 0) { Game.JoinTeam(p, Game.Red); } else { Game.JoinTeam(p, Game.Blue); } } }