extends RefCounted ## Team management tests. ## Team enum: NONE=-1, T=0, CT=1 const TeamManager := preload("res://examples/multiplayer-fps/scripts/team-manager.gd") func test_team_enum_values() -> String: var e := "" if TeamManager.Team.NONE != -1: e += " NONE should be -1" if TeamManager.Team.T != 0: e += " T should be 0" if TeamManager.Team.CT != 1: e += " CT should be 1" return e func test_get_team_name() -> String: var tm := TeamManager.new() var e := "" if tm.get_team_name(TeamManager.Team.T) != "Terrorists": e += " T team name wrong" if tm.get_team_name(TeamManager.Team.CT) != "Counter-Terrorists": e += " CT team name wrong" if tm.get_team_name(TeamManager.Team.NONE) != "Unassigned": e += " NONE team name wrong" return e func test_empty_assignments() -> String: var tm := TeamManager.new() if tm.get_team(999) != TeamManager.Team.NONE: return "Unknown peer should return NONE" if tm.get_team_members(TeamManager.Team.T).size() != 0: return "No T members yet" return "" func test_auto_assign_balances() -> String: var tm := TeamManager.new() tm.assignments[101] = TeamManager.Team.T tm.assignments[102] = TeamManager.Team.CT # T=1, CT=1 — next goes to T (first alphabetically when tied) var team_a := tm.auto_assign(103) if team_a != TeamManager.Team.T: return "3rd peer should join T when tied, got " + str(team_a) # T=2, CT=1 — next goes to CT var team_b := tm.auto_assign(104) if team_b != TeamManager.Team.CT: return "4th peer should join CT when T has fewer, got " + str(team_b) return "" func test_auto_assign_to_undersized_team() -> String: var tm := TeamManager.new() tm.assignments[101] = TeamManager.Team.CT tm.assignments[102] = TeamManager.Team.CT # T=0, CT=2 var team := tm.auto_assign(103) if team != TeamManager.Team.T: return "Peer should join T (0 members) over CT (2 members), got " + str(team) return ""