From 88f7a9bd15e3300fb7dbdc70b8a7b0774ab15479 Mon Sep 17 00:00:00 2001 From: Ryan Schmidt Date: Sun, 8 Sep 2024 15:53:25 -0700 Subject: [PATCH] Fix some pb bugs and weird gameplay - Vampire drawing hunted card in forest is now correctly told that a wolf discovered them - Vampire drawing hunted card in square now properly gives evidence to that wolf - Villagers drawing hunted cards in forest or square treat the card as empty-handed instead if the wolf has evidence that they are a villager --- src/gamemodes/pactbreaker.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gamemodes/pactbreaker.py b/src/gamemodes/pactbreaker.py index c38045e6..053f3b8d 100644 --- a/src/gamemodes/pactbreaker.py +++ b/src/gamemodes/pactbreaker.py @@ -221,8 +221,8 @@ def on_night_kills(self, evt: Event, var: GameState): elif card == "hunted" and role == "vampire": self.collected_evidence[wolf].add(visitor) wolf.send(messages["pactbreaker_hunter_vampire"].format(visitor)) - wolf.send(messages["pactbreaker_hunted_vampire"]) - elif card == "hunted": + visitor.send(messages["pactbreaker_hunted_vampire"]) + elif card == "hunted" and (role != "villager" or visitor not in self.collected_evidence[wolf]): evt.data["victims"].add(visitor) evt.data["killers"][visitor].append(wolf) self.night_kill_messages[(wolf, visitor)] = location @@ -294,10 +294,12 @@ def on_night_kills(self, evt: Event, var: GameState): visitor.send(messages["pactbreaker_stocks"].format(target, get_main_role(var, target))) elif role == "vampire" and card == "hunted": # vampires give wolves evidence when a hunted card is drawn + self.collected_evidence[actor].add(visitor) actor.send(messages["pactbreaker_hunter_vampire"].format(visitor)) visitor.send(messages["pactbreaker_hunted_vampire"]) - elif card == "hunted": + elif card == "hunted" and (role != "villager" or visitor not in self.collected_evidence[actor]): # vigilantes and villagers get killed by the wolf + # (except a wolf will not kill a villager that they know is just a regular vil) evt.data["victims"].add(visitor) evt.data["killers"][visitor].append(actor) self.night_kill_messages[(actor, visitor)] = location