Player : DraftChanceCard() Player --> ChanceCard : 1-pickChanceCard Player --> ChanceCard : 2-getEffect"> Player : DraftChanceCard() Player --> ChanceCard : 1-pickChanceCard Player --> ChanceCard : 2-getEffect"> Player : DraftChanceCard() Player --> ChanceCard : 1-pickChanceCard Player --> ChanceCard : 2-getEffect">
%%{init: {"theme": "default"}%%
%% Chance Card Draft and Usage
stateDiagram-v2
state ":Player" as Player
state ":ChanceCard" as ChanceCard
[*] --> Player : DraftChanceCard()
Player --> ChanceCard : 1-pickChanceCard
Player --> ChanceCard : 2-getEffect
%%{init: {"theme": "default"}%%
%% Exchange Army
stateDiagram-v2
state ":Player" as Player
state ":ButtonController" as ButtonController
state ":GameInterface" as GameInterface
state ":OptionsMenu" as OptionsMenu
[*] --> Player : ExchangeArmy()
Player --> ButtonController : 1. DetermineButtonVisibilityAndDisplay()
ButtonController --> GameInterface : 2. Button Clicked
state GAMEINTERFACE {
GameInterface --> ChangeArmy : 3.1. Yes
GameInterface --> NoAction : 3.2. No
}
ChangeArmy --> OptionsMenu : 4. ViewArmyOptions()
OptionsMenu --> ApplyChanges : 5. Select Option
NoAction --> [*] : 6. No Action
%%{init: {"theme": "default"}%%
%%Help Button
stateDiagram-v2
state ":Player" as Player
state ":DisplayHelpPopup" as DisplayHelpPopup
[*] --> Player : HelpButton()
Player --> HelpButtonClicked : HelpButtonClicked()
HelpButtonClicked --> DisplayHelpPopup : DisplayHelpPopup()
DisplayHelpPopup --> ViewHelpDocument : ViewHelpDocument()
%%{init: {"theme": "default"}%%
%% Conquer the Territory
stateDiagram-v2
state ":Player" as Player
state ":Inventory" as Inventory
[*] --> Player : ConquerTerritory()
Player --> ClickTerritory : 1. Result(Won)
ClickTerritory --> CaptureTerritory : 2. CaptureTerritory()
CaptureTerritory --> GainTerritoryCard : 3. GainTerritoryCard()
GainTerritoryCard --> Inventory : 4. AddTerritoryCardInventory()
%%{init: {"theme": "default"}%%
%% Pause/Resume Game
stateDiagram-v2
state ":Player" as Player
state ":Game" as Game
[*] --> Player : Pause/ResumeGame()
Player --> Game : 1. ClikedPause/ReButton()
Game --> Game : 2. ChangeGameStatus()
Player
%%{init: {"theme": "default"}%%
%% Decide Player Order
stateDiagram-v2
state ":Player" as Player
state ":Dice" as Dice
[*] --> Player : SetPlayerOrder()
Player --> Dice : 1. RollDice()
Dice --> ShowDiceResult : 2. DisplayDiceResult()
ShowDiceResult --> CompareResults : 3. CompareDiceResults()
%%{init: {"theme": "default"}%%
%% Territory Selection
stateDiagram-v2
state ":Player[i=0]" as Player[i=0]
state ":Player[i+1]" as Player[i+1]
[*] --> Player[i=0] : TerritorySelection()
State Untill_all_territories_selected{
Player[i=0] --> SelectTerritory : 1. ClickedTerritory
SelectTerritory --> Player[i+1] : 2. TerritoryCaptured
Player[i+1] --> SelectTerritory : 3.1 While i<6 -> ClikedTerritoryOnMap
Player[i+1] --> Player[i=0] : 3.2 i>=6 ->Back to first player
}
%%{init: {"theme": "default"}%%
%% Building Mode Territory Separation
stateDiagram-v2
state ":Player" as Player
[*] --> Player : Phase(Building)
Player --> CheckTerritory : DisplayTerritoryStatus()
CheckTerritory --> EnabledTerritory : EnableTerritory()
CheckTerritory --> DisabledTerritory : DisableTerritory()
%%{init: {"theme": "default"}%%
%%Game setup
stateDiagram-v2
state ":Game" as Game
state ":Player" as Player
[*] --> Game : 1. GameSetup()
Game --> Player : 2. addPlayer()
Player --> SelectAvatar : 3. ChooseAvatar()
Player --> SelectColor : 4. ChooseColor()
Player --> SelectName : 5. ChooseName()
%%{init: {"theme": "default"}%%
%%Launch Offensive
stateDiagram-v2
state ":GameInterface" as GameInterface
state ":Dice" as Dice
[*] --> CheckArmySize : LaunchOffensive()
CheckArmySize --> GameInterface : 1. ButtonClicked()
state GAMEINTERFACE {
GameInterface --> LaunchOffense : 2.1. AttackTerritory()
GameInterface --> NoAction : 2.2. No Action
}
LaunchOffense --> SelectTerritory : 3. SelectTerritory()
SelectTerritory --> PerformAttack : 4. Perform the Attack
PerformAttack --> Dice : 5. RollDice()
state ROLLDICE {
Dice --> AdjustArmies : 6.1. AdjustArmySize()
Dice --> RollAgain : 6.2. RollDice()
AdjustArmies --> CheckArmyCount : 7. Check Army Count
}
CheckArmyCount --> DetermineWinner : 8.1. DetermineWinner()
CheckArmyCount --> Dice : 8.2. Attacking continues
DetermineWinner --> [*] : 9. Result()
NoAction --> [*] : 10. No Action
%%Prepare For Attack
stateDiagram-v2
state ":Player" as Player
state ":GameSystem" as GameSystem
state ":FortifyPhase" as FortifyPhase
state ":AttackPhase" as AttackPhase
[*] --> Player : PrepareForAttack()
Player --> GameSystem : 1. EvaluateArmyCount()
state GAMESYSTEM {
GameSystem --> InsufficientForces : 1.1. Insufficient
GameSystem --> SufficientForces : 1.2. Sufficient
}
InsufficientForces --> FortifyPhase : 2.1. InitiateFortification()
SufficientForces --> AttackPhase : 2.2. LaunchOffense()
FortifyPhase --> Player : 3. IncreaseArmyCount()
%% End Turn
stateDiagram-v2
state ":Player" as Player
state ":GameSystem" as GameSystem
[*] --> Player : EndTurn()
Player --> GameSystem : 1. SelectEndTurn()
state GAMESYSTEM {
GameSystem --> TurnEnd : 2.1. EndCurrentTurn
GameSystem --> Error : 2.2. NotPlayerTurn
}
TurnEnd --> [*] : 3. NextPlayerTurn()
Error --> [*] : DisplayErrorMessage()
%% Save
stateDiagram-v2
state ":Player" as Player
state ":GameSystem" as GameSystem
[*] --> Player : SaveGame()
Player --> GameSystem : 1. SelectSaveGame()
GameSystem --> [*] : 2. SaveGame()
%% Load
stateDiagram-v2
state ":Player" as Player
state ":GameSystem" as GameSystem
[*] --> Player : LoadGame()
Player --> GameSystem : 1. SelectLoadGame()
GameSystem --> [*] : 2. LoadGame()