simple game statemachine
This commit is contained in:
104
README.md
104
README.md
@@ -16,58 +16,12 @@ WaitingForPlayers --> StartGame: Start && ready
|
||||
StartGame : Assign Player Roles
|
||||
StartGame : Show Introduction
|
||||
|
||||
StartGame --> MainPhaseNight : No Cupin
|
||||
StartGame --> CupinSelect: Cupin
|
||||
StartGame --> Night : All players ready
|
||||
|
||||
state "Inform Loved Ones" as InformLovedOnes
|
||||
|
||||
CupinSelect --> InformLovedOnes: Cupin selected
|
||||
InformLovedOnes --> MainPhaseNight: ack
|
||||
state MainPhaseNight {
|
||||
!include https://gitea.d1v3.de/matthias/pywerewolf/raw/branch/master/README.md!TheNight
|
||||
}
|
||||
MainPhaseNight --> Award: No Villagers left
|
||||
MainPhaseNight --> MainPhaseDay: Some Villagers left
|
||||
state MainPhaseDay {
|
||||
!include https://gitea.d1v3.de/matthias/pywerewolf/raw/branch/master/README.md!TheDay
|
||||
}
|
||||
MainPhaseDay --> Award: No Werewolfes left
|
||||
MainPhaseDay --> MainPhaseNight: Some Werewolfes left
|
||||
@enduml
|
||||
```
|
||||
Night --> Award: No Villagers left
|
||||
Night --> ShowDead: Some Villagers left
|
||||
|
||||
```plantuml
|
||||
@startuml(id=TheNight)
|
||||
hide empty description
|
||||
[*] --> NightPhaseMain
|
||||
' state NightPhaseCupinEnd <<join>>
|
||||
' NightPhaseCupin --> WaitToContinueCupin: !Cupin
|
||||
' NightPhaseCupin --> SelectLovedOnes: Cupin
|
||||
' WaitToContinueCupin --> NightPhaseCupinEnd
|
||||
' SelectLovedOnes --> NightPhaseCupinEnd: selected and confirmed loved ones
|
||||
|
||||
' state NightPhaseLovedOnes <<fork>>
|
||||
' state NightPhaseLovedOnesEnd <<fork>>
|
||||
' NightPhaseCupinEnd --> NightPhaseLovedOnes
|
||||
' NightPhaseLovedOnes --> LovedOnesAwake: Selected Loved Ones
|
||||
' NightPhaseLovedOnes --> WaitForLovedOnes: other
|
||||
' LovedOnesAwake --> NightPhaseLovedOnesEnd: ready
|
||||
' WaitForLovedOnes --> NightPhaseLovedOnesEnd
|
||||
'
|
||||
' NightPhaseLovedOnesEnd --> NightPhaseMain : all ready
|
||||
|
||||
state NightPhaseMain
|
||||
NightPhaseMain --> NightPhaseLate : Witch/Leaderwolf &&\nvoted &&\nactions done and all ready
|
||||
state NightPhaseLate
|
||||
NightPhaseMain --> [*]: no Witch/Leaderwolf &&\nvoted &&\nactions done and all ready
|
||||
NightPhaseLate --> [*]: actions taken
|
||||
@enduml
|
||||
```
|
||||
|
||||
```plantuml
|
||||
@startuml(id=TheDay)
|
||||
hide empty description
|
||||
[*] --> ShowDead: Done
|
||||
ShowDead: Show the Dead of the night
|
||||
ShowDead --> Election: No Major
|
||||
Election --> Discussion: Major elected
|
||||
@@ -77,55 +31,8 @@ Accuse --> Poll : Accuse ok
|
||||
Poll --> ShootTheConvict: Poll successfull
|
||||
Poll --> Voting: Poll unsuccessfull
|
||||
Voting --> ShootTheConvict: Voting Completed
|
||||
ShootTheConvict --> [*]: Done
|
||||
@enduml
|
||||
```
|
||||
|
||||
```plantuml
|
||||
@startuml(id=NightPhaseMain)
|
||||
hide empty description
|
||||
state NightPhaseMainStart <<fork>>
|
||||
[*] --> NightPhaseMainStart
|
||||
NightPhaseMainStart --> SelectVictim: Werewolfes || Spy
|
||||
NightPhaseMainStart --> SelectIdentity: Seer
|
||||
NightPhaseMainStart --> SelectProtectee: Protector
|
||||
NightPhaseMainStart --> SeeWerewolfes: ParanormalInvestigator
|
||||
NightPhaseMainStart --> Sleep: Villager
|
||||
|
||||
|
||||
state NightPhaseMainEnd <<join>>
|
||||
SelectVictim --> NightPhaseMainEnd: Werewolfes || Spy
|
||||
SelectIdentity --> NightPhaseMainEnd: Done
|
||||
SelectProtectee --> NightPhaseMainEnd: Done
|
||||
SeeWerewolfes --> NightPhaseMainEnd: Done
|
||||
Sleep --> NightPhaseMainEnd: Ready
|
||||
|
||||
NightPhaseMainEnd --> [*]
|
||||
|
||||
@enduml
|
||||
```
|
||||
|
||||
```plantuml
|
||||
@startuml(id=NightPhaseLate)
|
||||
hide empty description
|
||||
state NightPhaseLateStart <<fork>>
|
||||
[*] --> NightPhaseLateStart
|
||||
state "Witch selects\nHealing or Poison" as SelectHealOrPoison
|
||||
state "Leaderwolf selects victim\nfor conversion" as SelectLeaderVictim
|
||||
NightPhaseLateStart --> SelectHealOrPoison: Witch
|
||||
NightPhaseLateStart --> SelectLeaderVictim: Leaderwolf
|
||||
NightPhaseLateStart --> SleepAgain: Villager
|
||||
|
||||
|
||||
|
||||
state NightPhaseLateEnd <<join>>
|
||||
SelectHealOrPoison --> NightPhaseLateEnd: Selection finished
|
||||
SelectHealOrPoison -left-> SelectHealOrPoison: Next selection
|
||||
SelectLeaderVictim --> NightPhaseLateEnd: Done
|
||||
SleepAgain --> NightPhaseLateEnd
|
||||
|
||||
NightPhaseLateEnd --> [*]
|
||||
|
||||
ShootTheConvict --> Award: No Werewolfes left
|
||||
ShootTheConvict --> Night: Some Werewolfes left
|
||||
@enduml
|
||||
```
|
||||
|
||||
@@ -134,3 +41,4 @@ NightPhaseLateEnd --> [*]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user