https://yuml.me/diagram/scruffy/class/draw ------------ [BootState|- Splash screen;- Secret level select{bg:orange}]-.-^[loadState|Loads main game assets{bg:orange}] [LoadState]-.-^[IntroVideoState|Plays educational videos{bg:orange}] [IntroVideoState]-.-^[IconSelect|Player selects avatar and name{bg:orange}] [IconSelect]-.-^[MainGameState|Actual game{bg:orange}] [MainGameState]->[InactivityTimer|Kick out of game;if inactive for too long] [MainGameState]->[Levels] [Levels]->[TangToPlas|Put tangibles into a plasmid{bg:thistle}] [TangToPlas]-.-^[PlasToPetri|Move plasmid to a bacterium{bg:thistle}] [PlasToPetri]-.-^[PetriToMars|- Bacteria multiply;- Move petri dish to resource icon{bg:thistle}] [PetriToMars]-.-^[MarsToReset|- Show updates to Mars;- Provide feedback{bg:thistle}] [MarsToReset]-.-^[NotebookScreen|Prompt player to fill in notebook] [NotebookScreen]-.-^[TangToPlas] [MarsToReset]->[WinState|Win feedback{bg:orange}] [NotebookScreen]->[JoinScreen|Make player select if wants to collaborate] [JoinScreen]->[MultiplayerScaffScreen|Explain peer view;(if applicable)] [JoinScreen]->[TangToPlas] [MultiplayerScaffScreen]->[TangToPlas] ------------ [MainGameState{bg:orange}]->[Level 0|CO2 ☞ Oxygen] [Level 0]->[Level 1|Solar ☞ Oxygen] [Level 1]->[Level 2|Any ☞ Oxygen] [Level 2]->[Level 3|Any ☞ Water] [Level 3]->[Level 4|Any ☞ Nutrients] [Level 4]->[Level 5|Biomass ☞ Any] [Level 5]->[Level 6|Any ☞ Any;(Wait for everyone to get here)] [Level 6]->[JoinScreen] [JoinScreen]->[MultiplayerScaffScreen] [MultiplayerScaffScreen]->[Level 7|Fuel Biomass Metal ☞ LaunchPad] [Level 6]-.-^[Level 7] [JoinScreen]-.-^[Level 7] [Level 7]->[Level 8|Fuel Biomass Metal ☞ Rocket] [Level 8]->[WinState{bg:orange}] ------------ [On Mars:{bg:lightsalmon}]->[BG|World background image{bg:plum}] [On Mars:]->[Astros|Astronauts on Mars{bg:lightsalmon}] [Astros]->[Class:Astronaut{bg:lightsalmon}] [Astros]->[AstroBubbles|Thought bubbles of;astronauts on Mars{bg:lightsalmon}] [AstroBubbles]->[Class:AstroBubble{bg:lightsalmon}] [On Mars:]->[Built from products:{bg:lightsalmon}] [Built from products:]->[LaunchPad|For the rocket{bg:lightsalmon}] [LaunchPad]-.->[Rocket|To get back to Earth{bg:lightsalmon}] [On Mars:]->[Icons:{bg:lightsalmon}] [Icons:]->[ResIcons|Represent resources{bg:lightsalmon}] [Icons:]->[ProdIcons|Represent products{bg:lightsalmon}] [In workspace:{bg:skyblue}]->[BG] [In workspace:]->[PeerView|Icons of collaborators{bg:skyblue}] [In workspace:]->[ConsoleController|Info console{bg:skyblue}] [ConsoleController]->[HelpButton|Toggle scaffolding{bg:palegreen}] [ConsoleController]->[Score|Team score{bg:skyblue}] [Step progression:{bg:thistle}]->[Levels{bg:thistle}] [Levels]->[Class:Level{bg:thistle}] [Levels]->[TangToPlas|Put tangibles;into a plasmid{bg:thistle}] [TangToPlas]-.-^[PlasToPetri|Move plasmid;to a bacterium{bg:thistle}] [PlasToPetri]-.-^[PetriToMars|- Bacteria multiply;- Move petri dish;to resource icon{bg:thistle}] [PetriToMars]-.-^[MarsToReset|- Show updates to Mars;- Provide feedback{bg:thistle}] [TangToPlas]->[TangiblePalettes|Tabbed palettes containing;tangibles representing genes] [TangToPlas]->[Plasmid|- DNA loop;- Tangibles put in;- Added to bacterium] [PlasToPetri]->[Plasmid] [PlasToPetri]->[Petri|Petri dish containing;bacterium and bacteria] [Petri]->[PetriBacteria|Bacteria in petri dish] [PetriToMars]->[Petri] [MarsToReset]->[FeedbackBox|- Summarizes combo efficiency;- Provides suggestions] [Scaffolding:{bg:gold}]->[GlobalScaff|Controls all scaffolding{bg:gold}] [GlobalScaff]->[AstroScaff|Astronaut with speech bubble;at the top of the screen{bg:gold}] [GlobalScaff]->[HandScaff|Hand sprite that;shows what to do{bg:gold}] [GlobalScaff]->[HelpButton] [Genes|Gene objects used throughout the code{bg:lightseagreen}] [Genes]->[Class:Gene{bg:lightseagreen}] [Class:Gene]->[Class:ResGene{bg:lightseagreen}] [Class:Gene]->[Class:ProdGene{bg:lightseagreen}] [Client{bg:navajowhite}]->[Server{bg:navajowhite}] [Server]->[Client] [Server]->[Class:Player{bg:navajowhite}] [IconSelect{bg:orange}]->[Class:SelectionSet{bg:orange}]