mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-10-02 10:01:34 -04:00
And also fix CTF to send you to spawn too
This commit is contained in:
parent
8ce87ed122
commit
2f4c18c83b
@ -35,6 +35,7 @@ namespace MCGalaxy.Games {
|
||||
|
||||
OnPlayerSpawningEvent.Register(HandlePlayerSpawning, Priority.High);
|
||||
OnTabListEntryAddedEvent.Register(HandleTabListEntryAdded, Priority.High);
|
||||
OnSentMapEvent.Register(HandleSentMap, Priority.High);
|
||||
OnJoinedLevelEvent.Register(HandleJoinedLevel, Priority.High);
|
||||
|
||||
base.HookEventHandlers();
|
||||
@ -48,6 +49,7 @@ namespace MCGalaxy.Games {
|
||||
|
||||
OnPlayerSpawningEvent.Unregister(HandlePlayerSpawning);
|
||||
OnTabListEntryAddedEvent.Unregister(HandleTabListEntryAdded);
|
||||
OnSentMapEvent.Unregister(HandleSentMap);
|
||||
OnJoinedLevelEvent.Unregister(HandleJoinedLevel);
|
||||
|
||||
base.UnhookEventHandlers();
|
||||
@ -131,21 +133,14 @@ namespace MCGalaxy.Games {
|
||||
}
|
||||
}
|
||||
|
||||
void HandleJoinedLevel(Player p, Level prevLevel, Level level, ref bool announce) {
|
||||
HandleJoinedCommon(p, prevLevel, level, ref announce);
|
||||
|
||||
void HandleSentMap(Player p, Level prevLevel, Level level) {
|
||||
if (level != Map) return;
|
||||
MessageMapInfo(p);
|
||||
if (TeamOf(p) != null) return;
|
||||
if (TeamOf(p) == null) AutoAssignTeam(p);
|
||||
}
|
||||
|
||||
if (Blue.Members.Count > Red.Members.Count) {
|
||||
JoinTeam(p, Red);
|
||||
} else if (Red.Members.Count > Blue.Members.Count) {
|
||||
JoinTeam(p, Blue);
|
||||
} else {
|
||||
bool red = new Random().Next(2) == 0;
|
||||
JoinTeam(p, red ? Red : Blue);
|
||||
}
|
||||
void HandleJoinedLevel(Player p, Level prevLevel, Level level, ref bool announce) {
|
||||
HandleJoinedCommon(p, prevLevel, level, ref announce);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -145,6 +145,7 @@ namespace MCGalaxy.Games {
|
||||
|
||||
public override void PlayerJoinedGame(Player p) {
|
||||
bool announce = false;
|
||||
HandleSentMap(p, Map, Map);
|
||||
HandleJoinedLevel(p, Map, Map, ref announce);
|
||||
}
|
||||
|
||||
@ -156,6 +157,17 @@ namespace MCGalaxy.Games {
|
||||
DropFlag(p, team);
|
||||
}
|
||||
|
||||
void AutoAssignTeam(Player p) {
|
||||
if (Blue.Members.Count > Red.Members.Count) {
|
||||
JoinTeam(p, Red);
|
||||
} else if (Red.Members.Count > Blue.Members.Count) {
|
||||
JoinTeam(p, Blue);
|
||||
} else {
|
||||
bool red = new Random().Next(2) == 0;
|
||||
JoinTeam(p, red ? Red : Blue);
|
||||
}
|
||||
}
|
||||
|
||||
void JoinTeam(Player p, CtfTeam team) {
|
||||
Get(p).HasFlag = false;
|
||||
team.Members.Add(p);
|
||||
|
@ -104,7 +104,6 @@ namespace MCGalaxy.Games {
|
||||
|
||||
void HandleSentMap(Player p, Level prevLevel, Level level) {
|
||||
if (level != Map) return;
|
||||
|
||||
MessageMapInfo(p);
|
||||
if (TeamOf(p) == null) AutoAssignTeam(p);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user