Fix team swapping nonsense
This commit is contained in:
parent
884f113bd3
commit
bcbd7b0b03
@ -495,11 +495,7 @@ impl Game {
|
||||
if NetworkManager::singleton().bind().is_host() {
|
||||
for player in s.players.clone() {
|
||||
s.run_deferred(move |s| {
|
||||
s.try_set_player_team(
|
||||
player.id(),
|
||||
player.data.team.clamp(0, teams_max),
|
||||
true,
|
||||
)
|
||||
s.try_set_player_team(player.id(), player.data.team.clamp(0, teams_max))
|
||||
});
|
||||
}
|
||||
}
|
||||
@ -520,8 +516,12 @@ impl Game {
|
||||
self.get_teams().get(team as usize)
|
||||
}
|
||||
|
||||
pub fn try_set_player_team(&mut self, player_id: u16, team: u8, emit: bool) {
|
||||
pub fn try_set_player_team(&mut self, player_id: u16, team: u8) {
|
||||
godot_print!("set player team");
|
||||
if let Some(player) = self.find_player_mut(player_id) {
|
||||
if player.data.team == team {
|
||||
return;
|
||||
}
|
||||
player.data.team = team;
|
||||
self.run_deferred(move |_| {
|
||||
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer {
|
||||
@ -535,11 +535,9 @@ impl Game {
|
||||
}
|
||||
}
|
||||
});
|
||||
if emit {
|
||||
self.run_deferred(move |s| {
|
||||
s.signals().on_player_team_changed().emit(player_id, team);
|
||||
});
|
||||
}
|
||||
self.run_deferred(move |s| {
|
||||
s.signals().on_player_team_changed().emit(player_id, team);
|
||||
});
|
||||
self.run_deferred(|s| s.signals().on_players_updated().emit());
|
||||
}
|
||||
}
|
||||
@ -602,7 +600,7 @@ impl Game {
|
||||
.map(|(team_idx, _)| team_idx)
|
||||
.unwrap_or(0);
|
||||
|
||||
self.try_set_player_team(id, team_with_least as u8, true);
|
||||
self.try_set_player_team(id, team_with_least as u8);
|
||||
id
|
||||
}
|
||||
|
||||
|
||||
@ -416,7 +416,7 @@ impl NetworkManager {
|
||||
if game.bind().opts.is_true(GameOption::AllowAnyTeam)
|
||||
|| self_id == player_id
|
||||
{
|
||||
game.bind_mut().try_set_player_team(player_id, team, true);
|
||||
game.bind_mut().try_set_player_team(player_id, team);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -127,7 +127,7 @@ impl LobbyPlayerListing {
|
||||
pub fn on_team_selection_changed(&mut self, team: u8) {
|
||||
if let Some(mut game) = Game::singleton() {
|
||||
game.bind_mut()
|
||||
.try_set_player_team(self.player_id.unwrap_or(0), team, false);
|
||||
.try_set_player_team(self.player_id.unwrap_or(0), team);
|
||||
|
||||
if let Some(player) = game.bind().find_player(self.player_id.unwrap_or(0))
|
||||
&& let Some(player_label) = &mut self.name_label
|
||||
|
||||
Loading…
Reference in New Issue
Block a user