Cleaner handling of tracking seen opponents.

Instead of keeping track of unique identifiers, keep track of weak pointers to the pokemon, so we can just try and upgrade them later.
This commit is contained in:
2022-06-06 16:24:13 +02:00
parent c27ea0ae1e
commit 10e93949e4
2 changed files with 14 additions and 10 deletions

View File

@@ -137,10 +137,10 @@ impl<'a> BattleSide<'a> {
if side.index() == self.index {
continue;
}
for opponent in side.pokemon().iter().flatten() {
let mut opponent = opponent.write().unwrap();
opponent.mark_opponent_as_seen(pokemon.unique_identifier());
pokemon.mark_opponent_as_seen(opponent.unique_identifier());
for opponent_mutex in side.pokemon().iter().flatten() {
let mut opponent = opponent_mutex.write().unwrap();
opponent.mark_opponent_as_seen(Arc::downgrade(pokemon_mutex));
pokemon.mark_opponent_as_seen(Arc::downgrade(opponent_mutex));
}
}
battle.event_hook().trigger(Event::Switch {