Events/chk_nightdone

From Werewolf Wiki
Jump to navigation Jump to search

The chk_nightdone event is called every time a night action is performed to see if night should end.

Event callback

def on_chk_nightdone(event: Event, cli: IRCClient, var: module) -> None
  • The default action performs some additional checks to see if everyone acted at night, namely if all assassins who can choose a target have chosen one and that all wolves have collectively agreed on a single kill target (or two if they're angry). If the default action is prevented, these checks are not performed.
  • event: The event object
  • cli: The IRC connection
  • var: Reference to the src.settings module

Event data

{
    "actedcount": int,
    "nightroles": list(str),
    "transition_day": func(cli: IRCClient) -> None
}

Night will only end if actedcount >= len(nightroles), modify those data items as appropriate if you wish to prolong night or force a more immediate end to it. The nightroles item is a list of nicks who are able to act at night. A nick can appear in the list multiple times, once for each night command they are able to issue. For example, a wolf shaman will appear in the list twice as they can both totem and kill. Assassins do not appear in the list, as they are handled further down as part of the default action. The transition_day data item can be used to modify the flow from this function to daytime, such as by injecting additional night events that should happen before transition_day resolves them all.