Skip to content

Commit

Permalink
PB tweaks
Browse files Browse the repository at this point in the history
- Increase likelihood of success at graveyard by a bit
- Villagers observing vigilante (via 2 evidence at square while the vigilante is in the stocks or via the !observe command) now get fake evidence that the vigilante is a villager. All other roles continue to observe vigilante as-is.
  • Loading branch information
skizzerz authored Jan 8, 2025
1 parent 6f9d744 commit b3d378b
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion src/gamemodes/pactbreaker.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,7 +250,7 @@ def build_deck(self, var: GameState, location: Location, visitors: set[User]) ->
num_draws = 4
elif location is Graveyard:
deck = (["clue"] * 3
+ ["empty-handed"] * 5
+ ["empty-handed"] * 2
+ ["hunted", "empty-handed"] * num_wolves
+ ["empty-handed", "empty-handed"] * num_other)
num_draws = 1
Expand Down Expand Up @@ -413,6 +413,9 @@ def on_night_kills(self, evt: Event, var: GameState):
target_role = "vigilante" if evidence_target in self.turned else "villager"
else:
target_role = get_main_role(var, evidence_target)
# also hide vigi evidence (or vigi fake evidence) from vills
if target_role == "vigilante" and visitor_role == "villager":
target_role = "villager"
self.collected_evidence[visitor][target_role].add(evidence_target)
visitor.send(messages[f"pactbreaker_{loc}_evidence"].format(evidence_target, target_role))
elif self.clue_pool > 0 and location is not VillageSquare:
Expand Down Expand Up @@ -713,12 +716,17 @@ def observe(self, wrapper: MessageDispatcher, message: str):

self.clue_pool += min_tokens
self.clue_tokens[wrapper.source] -= min_tokens
player_role = get_main_role(var, wrapper.source)
target_role = get_main_role(var, target)
if target in get_all_players(var, ("cursed villager",)):
target_role = "wolf"
elif target_role == "vampire":
target_role = "vigilante" if target in self.turned else "villager"

# also hide vigi evidence (or vigi fake evidence) from vills
if target_role == "vigilante" and player_role == "villager":
target_role = "villager"

self.collected_evidence[wrapper.source][target_role].add(target)
wrapper.send(messages["pactbreaker_observe_success"].format(target, target_role))

Expand Down

0 comments on commit b3d378b

Please sign in to comment.