MinigameBase
by Michael Peng
1. Brainstorming
1.1. Variables
1.1.1. isRunning
1.1.2. All players in game
1.1.3. World
1.1.4. Lobby location data
1.2. Methods
1.2.1. StartGame
1.2.2. JoinTeam
1.2.3. Join
1.3. Team management
1.3.1. Personal
1.3.2. Teamed
1.3.2.1. teamOf(Player)
1.3.3. Player count and ArrayList
1.4. Map management
1.4.1. Boundaries
2. Minigame Procedures
2.1. Listeners
2.2. Threads
2.2.1. Synchronization Abstraction Layer (SAL)
2.3. Runnables
2.3.1. Start game
2.3.2. End game
3. Structure
3.1. MGUtils.java
3.1.1. Not static
3.1.2. Provides assistance and abstraction to minigame procedures
3.2. Minigame.interface
3.2.1. MGTeamed.interface
3.2.2. MGPersonal.interface
4. Process
4.1. Lobby management
4.1.1. Join command / sign
4.1.2. Join sequence (teleport to lobby, random team)
4.1.3. use command to join team