User:Jaxad0127/State machine
From The Mana World
This article describes the internal state machines used in the client.
The core state machine is rather simple:
-> Exit <-
| |
Start -> Login <-> Game
\ v /
-> Error <--
Both Login and Game are sub machines.
The Login machine is more complicated. All states can go to Error, all but Start can go to Exit.
| Start | To | Condition |
|---|---|---|
| Start | Server | No login data is present (default; some may be present if we've already chosen a server and just want to switch accounts, or characters) |
| Login | Login server data present, but no login information present (we want to change logins, but not servers) | |
| Character | Login data present (we just want to change characters) | |
| Server | Server Detection | User selects a server |
| Server Detection | Server | Server type could not be determined |
| Login | Server type was successfully determined | |
| Login | Server | User wants to change servers |
| Login Attempt | User tries to log in | |
| Register | User wants to make a new account | |
| Login Attempt | Login | Login attempt failed (bad password, unknown username, etc) |
| Character | Login attempt succeeded | |
| Character | Login | User wants to use another account |
| Game | Character selected | |
| New | User wants to make a new character | |
| Delete | User wants to delete a character | |
| Account Detail | User wants to view/change account information | |
| Register | Login | User cancels registration |
| Register Attempt | User tries to register | |
| Register Attempt | Character | Registration succeeded |
| Register Attempt | Registration failed |