# PyWerwolf Trying to rebuild [https://github.com/foin137/werwolfonline.eu](https://github.com/foin137/werwolfonline.eu) in python ## Phases of the game ```plantuml @startuml [*] --> WaitingForPlayers: Created WaitingForPlayers : Show the game id/link WaitingForPlayers : Create game in Database WaitingForPlayers : Allow setting of rules WaitingForPlayers --> StartGame: len(Players)>=len(special roles) && start && num_werewolfes > 1 WaitingForPlayers --> WaitingForPlayers: start && (len(Players)> state NightPhaseCupin <> StartGame --> GameHasCupin : all ready GameHasCupin --> NightPhaseCupin: Game has Cupin GameHasCupin --> NightPhaseMain: no Cupin NightPhaseMain : Werewolfes awake & select (vote) their victim NightPhaseMain : Seer/Spy/Protector/ParanormalInvestigator awaken & access feat NightPhaseMain : sleep & confirm state NightPhaseCupinEnd <> NightPhaseCupin --> WaitToContinueCupin: !Cupin NightPhaseCupin --> SelectLovedOnes: Cupin WaitToContinueCupin --> NightPhaseCupinEnd SelectLovedOnes --> NightPhaseCupinEnd: selected and confirmed loved ones state NightPhaseLovedOnes <> state NightPhaseLovedOnesEnd <> NightPhaseCupinEnd --> NightPhaseLovedOnes NightPhaseLovedOnes --> LovedOnesAwake: Selected Loved Ones NightPhaseLovedOnes --> WaitForLovedOnes: other LovedOnesAwake --> NightPhaseLovedOnesEnd: ready WaitForLovedOnes --> NightPhaseLovedOnesEnd NightPhaseLovedOnesEnd --> NightPhaseMain : all ready NightPhaseMain --> NightPhaseLate : Witch/Leaderwolf && voted && actions done and all ready NightPhaseLate: LeaderWolf selects victim to convert NightPhaseLate: witch is allowed to select heal/murder NightPhaseMain --> ShowDead: no Witch/Leaderwolf && voted && actions done and all ready NightPhaseLate --> ShowDead: actions taken @enduml ```