DoopelPonger
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 12]
 CAIBallPong ball that moves without gravity across the screen
 CAIPlayerPaddle that will automatically follow the AIBall on the side of the screen
 CAITriggerMovementPhysics trigger to tell the AIPlayer that the AIBall is getting close and the player should follow the ball again
 CAudioManagerPlays sound effects based on game events emitted through the EventManager
 CAudioMappingUsed to configure events and sound effects in the editor for the AudioManager
 CAudioSelectorAbstract class used to play sound effects
 CAutoStateInformationState data used to configure the AutoStateMachine
 CAutoStateMachineStateMachine that when the current state is finished it will automatically transition to the next registered state
 CBackgroundMusic
 CBackgroundMusicMixerManages the different types of background tracks that are being played
 CBallColorWaveManagerBoth the wall and the shield have a shader where if a bullet hits, the color of the bullet is absorbed into the shader. This class manages the colors being absorbed by those materials
 CBallLightInformationData given to the BallColorWaveManager when the color should splash through an object
 CBloomApplies the bloom shader to the camera. The bloom effect is split into 3 shaders. 1) Find the brightest objects on the screen and render them. 2) Blur the above rendered image 3) Add the blurred, bright image to the camera
 CBounceLightEmitterWhen colliding with an object it checks to see if that object has the BallColorWaveManager attached and tells it to start splashing the color
 CBoundriesCreatorCreates all game objects needed to start the game
 CCameraFadeInAndOutMakes the screen go black to allow for a fade in and out transition
 CCameraFadeOutParametersParameters to give to listeners of the camera fade out event
 CCameraShakeEvent based effect to shake the camera to make impacts look more intense
 CCameraShakeParametersParameters to give listeners of the camera shake event
 CChangeTimeParametersParameters to give listeners of the time change event
 CCommonDelegatesCollection of delegate definitions that are used throughout the code base
 CContinuousPressInputCheckerInputChecker that will call the trigger every frame the key is pressed
 CCoopAbstractActionPatternProviderParent class used to craete action patterns to be used by Schmitty Doop
 CCoopActionInformationData class given to Schmitty Doop to do the action. Any time Schmitty Doop moves or attacks, the CoopActionInformation tells Schmitty Doop what to do
 CCoopActionItemData container that holds an action type to the editor information
 CCoopActionPatternCreatorThe class used in the ActionPatternEditor to allow for Editor Scripts to take affect
 CCoopActionPatternCreatorInspectorCustom inspector for creating SchmittyDoop attack patterns
 CCoopActionPatternMappingsData container that holds which data types map to serialization information. This data is used in the custom inspector to show all the necesary information
 CCoopActionPatternProbabilityData class used by the CoopActionPatternProvider to add weight to specific patterns so they show up more often. This is not actually used in the final game
 CCoopActionPatternProviderUses a list of CoopActionPatternProbability to create a prioritized list of actions to be selected from when Schmitty Doop needs a new pattern to perform. This is not used in the final game, but is hanging around because it was used initially
 CCoopActionRuntimeInformationData container that holds action names with the prefab to instantiate the action
 CCoopActionRuntimeInformationHolderData container that holds the action type to the information needed to instantiate the action
 CCoopAlphaChangeInformationData object used to change the alpha of Schmitty Doop
 CCoopArrayActionPatternProvide Schmitty Doop with actions based on an array. This is the primary way Schmitty Doop gets attack information
 CCoopAttackInformationData used to give Schmitty Doop when it should fire bullets
 CCoopBadBallAll bullets fired from Schmitty Doop
 CCoopBadSingleLinePatternAction to fire a cluster of bullets one after the other
 CCoopBadSlowDownBurstAs one could possible guess by the name, this action pattern will shoot several balls in a circle. Each ball will have a movement speed that will always be decreasing
 CCoopBallParent level class for bullets that fly through the game
 CCoopBallAttackInformationData class used to give Schmitty Doop the information needed to fire bullets
 CCoopBallCollectorArea of the screen used to catch CoopBalls that did not hit a player and should be put back in the object pooler for future use
 CCoopBallHitParticleParticle system to spawn when a ball is destroyed
 CCoopBallManagerA class full of helper methods for spawning balls from Schmitty Doop
 CCoopBallMovementParent level class to control how a ball/bullet moves in the game scene
 CCoopBallSplitterThe CoopBallSplitter is a ball that moves for a set amount of time, once that time is met the ball will split into several other balls
 CCoopBallSplitterAttackInformationData used to give to Schmitty Doop when it should fire ball splitter bullets
 CCoopBallSplitterPatternPattern that shoots balls that will then split into other balls
 CCoopBaseActionPatternThe parent class for a collection of actions Schmitty Doop should perform
 CCoopBaseLaserAttackPatternPattern that fires lasers out of Schmitty Doop's ears
 CCoopBoomerangPower up that, as you would guess by the name, fires out of the player and then returns before any more charge can be collected
 CCoopBoomerangAnimatorClass to control the size of the boomerang as it gets thrown
 CCoopBoomerangControllerCoopPlayerPowerUp implementation to shoot the CoopBoomerang
 CCoopBoomerangTriggerHandles object collision with the boomerang. If the boomerang hits the other player, notify the boomerang object it has hit a player. If the boomerang hits Schmitty Doop, notifiy the boomerang that the Schmitty Doop is inside the boomerang
 CCoopCannonsBelong to the homing missile power up. The cannons will shoot homing missiles that go after Schmitty Doop
 CCoopChargeCollectorCollider used to determine if a player has successfully dodged a bullet fired by Schmitty Doop
 CCoopConstantSpeedMoves the bullets at a constant speed that will never change
 CCoopDecreaseSpeedMovement pattern that will make the ball slow down and eventually go backwards
 CCoopFlashSpriteRendererUsed by SchmittyDoop to change the colors of each component when it gets hit by a player
 CCoopGoodBallA ball that if it hits a player will not cause damage to thme but instead charge their power up meter
 CCoopGoodBallFirstAttackPattern used by SchmittyDoop to fire bullets that will charge the player's power up meter
 CCoopHealPlayerParametersParameters to give to listeners of the heal players event
 CCoopHealthBackPowerUpPower up to heal the player
 CCoopHomingMissileThe bullet that will find SchmittyDoop with the FindGameObjectWithTag method and go after him
 CCoopHomingMissileControllerImplementation of the CoopPlayerPowerUp that spawns the homing missile cannons and fires the homing missiles as the power up
 CCoopIncreaseSpeedMovement pattern that starts at a speed and then continously increases the speed
 CCoopIncrementalMoveInformationData used to give to Schmitty Doop to make it move as an offset of it's current position
 CCoopLaserAttackAttack laser fired by Schmitty Doop. It is a long rectangle shape thing that comes out of Schmitty Doop's ear
 CCoopLaserAttackInformationData used to give to Schmitty Doop to make lasers come out of its ears
 CCoopLaserHitParticlePlay the particle system specific for the player laser when it raycast hits an object. This class doesn't need to exist and should be replaced with CoopBallHitParticle
 CCoopMiniBallA type of good ball that should charge a player's power up if it hits a player and should damage Schmitty Doop when hit
 CCoopMiniCannonsThe mini cannons are two cannons that shoot good balls out of the center of the player. The two cannons are fired at the same time
 CCoopMiniShooterControllerPower up controller used to spawn and manage the CoopMiniCannons
 CCoopMovementInformationData class for the type of movement Schmitty Doop can move. It can teleport, move contiuously, make the alpha go down, or make the alpha go up
 CCoopMusicChangeParametersParameters to give to listenerrs of the change music event
 CCoopObjectPoolerClass used to hold and dish out allocated objects
 CCoopPatternCreatorProviderProvides next action pattern to SchmittyDoop in the ActionPatternEditor scene
 CCoopPlayerThe core logic for anything related to the player. This class ended up being a bit too large, so chances are it does basically anything related to the player
 CCoopPlayerAnimatorControllerListens for specific events about a player and delegates the tasks to the animatorDeltates
 CCoopPlayerAnimatorDelegateParent class of all animations for the player. All implementations of this class will have the methods triggerd by CoopPlayerAnimatorController
 CCoopPlayerChargeParametersParameters to give to listeners of the player power up charge increase event
 CCoopPlayerColorAnimatorDelegateAnimation delegate used to change the color of the player
 CCoopPlayerDeadParametersParameters to give to listeners of the player death event
 CCoopPlayerGoodHitParametersParameters to give to listeners of the event emitted when a player gets hit by a good ball
 CCoopPlayerHitParametersParameters to give to listeners of the event emitted when a player gets hit by a bad ball
 CCoopPlayerLaserA raycast attack from the player. A ray is fired from the end of a barrel and tries to find something to hit. If Schmitty Doop is hit, then damage is applied. If a player is found, then a charge is applied
 CCoopPlayerLaserAnimatorClass that handles setting the animation state in the Unity Animator for the laser power up
 CCoopPlayerLaserCannonThe cannon object attached to the player when the laser power up is used
 CCoopPlayerLaserControllerPower up for firing a laser out of the player
 CCoopPlayerLightAnimatorDelegateAnimation delegate used to change the size and color of the light behind the player
 CCoopPlayerPaddleHealthIs essentially a glorified health bar for the player
 CCoopPlayerPowerUpParent class for every power up a player can use
 CCoopPlayerPowerUpDeciderClass used when a player's charge is full to randomly pick the power up the player gets to use
 CCoopPlayerScaleAnimatorDelegateAnimation delegate used to change the size of the player
 CCoopPlayerShieldShield activated by the player used to block balls and send them flying in the opposite direction
 CCoopPlayerShieldAnimatorAnimates the player sheild from being nothing to fully active and back to nothing
 CCoopPlayerShieldCollisionClass to handle when objects hit the players shield
 CCoopPlayerShieldDeflectParametersParameters to give to listeners of the event emitted when a ball is deflected off a player's shield
 CCoopPlayerSpawnedParametersParameters to give to listeners of the player spawned event
 CCoopPlayerVomitAnimatorHandles the state management of the Unity Animator for the vomit power up
 CCoopPlayerVomitPowerUpA player powerup used to project a bunch of balls randomly across the screen
 CCoopPositionRotationChangeInformationData class used to change the position and rotation of Schmitty Doop
 CCoopPowerUpControllerClass designated to draw the power up meter, listen for charge events, and triggering power ups. This class is too large and should be broken up. Also the code is too convoluted and should be reworked
 CCoopPowerUpFinishedParametersParameters to give to listeners of the player's power up running out event
 CCoopPowerUpIconUI for showing the player what power up they have
 CCoopPowerUpTriggeredParametersParameters to give to listeners of the player's power up triggered event
 CCoopPreloadActionPatterns
 CCoopRandomMovementPatternPattern to move SchmittyDoop randomly on the screen. I don't think this is actually used anywhere, but was originally used for testing
 CCoopReadFileActionPatternProviderProvider that reads in all files that end in .pattern within the Unity streaming assets directory
 CCoopSchmittyDoopThe main code that controls Schmitty Doop. It's a bit too long and should be refactored
 CCoopSchmittyDoopAnimatorParent class used for animating pieces of Schmitty Doop when it fires bullets, is sitting idle, is hit, or when it spawns
 CCoopSchmittyDoopAnimatorControllerAnimation component that will take the state changes of Schmitty Doop and pass them on to the animators that will actually be animating
 CCoopSchmittyDoopBodyAnimatorAnimation for the body of Schmitty Doop. The only animation needed for the body is during spawning
 CCoopSchmittyDoopCollider
 CCoopSchmittyDoopDeath
 CCoopSchmittyDoopEarAnimatorClass used to animate the ears of Schmitty Doop
 CCoopSchmittyDoopExplodableOnce SchmittyDoop dies, a short animation plays of Schmitty Doop shaking and then exploding. This component is used to break Schmitty Doop into pieces
 CCoopSchmittyDoopEyeSchmitty Doop's eyes will follow a player and blink. Every time the eyes blink it can change which player too look at. This class controls a single eye on Schmitty Doop
 CCoopSchmittyDoopEyeAnimatorSchmitty Doop's eyes will follow a player and blink. Every time the eyes blink it can change which player too look at. This class controls which player the eyes should follow and when/how to blink
 CCoopSchmittyDoopIncrementalMovementParent class used by Schmitty Doop to move it when the action is of movement type
 CCoopSchmittyDoopLinearMovementData class used to move Schmitty Doop to a position/rotation and uses Lerp to do the movement
 CCoopSchmittyDoopMaterialWrapper
 CCoopSchmittyDoopMouthAnimator
 CCoopSchmittyDoopSmallMovementControllerHandles any movement of Schmitty Doop that does not involve action patterns
 CCoopSchmittyDoopSmoothMovementData class used to move Schmitty Doop to a position/rotation and uses SmoothSrep to do the movement
 CCoopShotgunAttackInformationData class gived to Schmitty Doop to fire a fan of bullets from its ears
 CCoopShotgunAttackPatternPattern to fire a fan of bullets out of Schmitty Doop's ears
 CCoopSineWaveMovementData configuration to move the bullets along a sine wave
 CCoopSlowMoPowerUpTriggers slow motion when the player activates the power up
 CCoopSmoothMovementPatternMovement pattern class that uses smooth step to translate Schmitty Doop in the game world
 CCoopSquareWaveMovementData configuration to move a bullet along a square wave
 CCoopStartGameParametersParameters to give to listeners of the game starting event
 CCoopStartStopMovementThe data necessary to have a bullet's speed be constantly starting and stopping
 CCoopTimerRecords the amount of time playing the game, single player or cooperative, so that it can record how long it takes to kill Schmitty Doop
 CCoopTriangleWaveMovementThe data necessary to have a bullet move along a triangle wave
 CCoopVShooterCannonOne of two cannons sticking out of the player at 45 degrees(ish) that fire alternately. When firing the bullets look like they are traveling in a V
 CCoopVShooterControllerA power up that fires two cannons alternately. The cannos are pointed at angles away from eachother to look like a V on it's side
 CCoopWhirlyMovementThe data necessary to make a ball in a spiral pattern
 CDestroyAfterWaitClass to destroy a game object after a set period of time after it is spawned
 CEditorActionInformationTop level serialization class for creating action patterns in the Inspector
 CEditorActionInformationSerializerA collection of methods used to read/write action patterns from/to a file
 CEditorAlphaChangeMovementInformationInformation needed to change the alpha coloring of Schmitty Doop
 CEditorAlphaDownMovementInformationScriptableObject implementation for the Schmitty Doop action of become invisible
 CEditorAlphaUpMovementInformationScriptableObject implementation for the Schmitty Doop action of become visible
 CEditorAttackInformationTop level serialization class for creatting attack patterns in the Inspector
 CEditorBadBallAttackInformationConfigures a traditional bullet that is fired by Schmitty Doop
 CEditorBallMovementInformationTop level data class used to configure and serialize movement information of the bullets fired by Schmitty Doop
 CEditorBallMovementInspectorInformationParent class for movement information that needs to have information displayed in the inspector
 CEditorBallMovementInspectorInformationHolderData container that holds a ball movement type to the inspector information
 CEditorBallSplitterAttackInformationSerialization class for spawning/configuring the splitter ball attack
 CEditorConstantsMisc. variables used to make spacing of properties in the inspector more consistent
 CEditorConstantSpeedBallMovementInformationInformation needed to create a bullet with the constant speed movement type
 CEditorConstantSpeedBallMovementInspectorInformationScriptableObject implementation for the constant speed movement inspector
 CEditorDecreaseSpeedBallMovementInformationInformation needed to create a bullet with the decrease speed movement type
 CEditorDecreaseSpeedBallMovementInspectortInformationScriptableObject implementation for the movement type that is always decreasing ball speed
 CEditorIncreaseSpeedBallMovementInformationInformation needed to create a bullet with the increase speed movement type
 CEditorIncreaseSpeedBallMovementInspectorInformationScriptableObject implementation for the movement type that is always increasing ball speed
 CEditorLaserAttackInformationSerialization class for spawning/configuring the laser attack
 CEditorLinearMovementInformationInformation needed to have Schmitty Doop move around the screen
 CEditorMovementInformationTop level serialization class used to save/read information to move Schmitty Doop
 CEditorPositionRotationChangeMovementInformationMovement serialization class to move Schmitty Doop to an absolute position and rotation
 CEditorShotgunAttackInformationSerialization class for spawning/configuring the shotgun attack, an attack that shoots a fan of bullets
 CEditorSineWaveBallMovementInformationInformation needed to create a bullet that moves like it is traveling along a sine wave
 CEditorSineWaveBallMovementInspectorInformationScriptableObject implementation for the movement type that makes a ball move like a sine wave
 CEditorSmoothStepMovementInformationMovement serialization class to move/rotate Schmitty Doop with a smooth step interpolation
 CEditorSquareWaveBallMovementInformationInformation needed to create a bullet that moves like it is traveling along a square wave
 CEditorSquareWaveBallMovementInspectorInformationScriptableObject implementation for the movement type that makes a ball move like a square wave
 CEditorStartStopBallMovementInformationInformation needed to create a bullet that moves like it is stuck in stop and go trafffic
 CEditorStartStopBallMovementInspectorInformationScriptableObject implementation for the movement type that makes a ball move like it is stuck in stop and go traffic
 CEditorTriangleWaveBallMovementInformationInformation needed to create a bullet that moves like it is traveling on a triangle wave
 CEditorTriangleWaveBallMovementInspectorInformationScriptableObject implementation for the movement type that makes a ball move along a triangle wave
 CEditorWhirlyBallMovementInformationInformation needed to create a bullet that moves like it is traveling in a spiral
 CEditorWhirlyBallMovementInspectorInformationScriptableObject implementation for the movement type that makes a ball move like it is on a spiral
 CEnumUtilsCollection of helper methods for Enums
 CEventManagerOrchestrates the publishing, receiving, registering and deregistering events and even listeners
 CEventParameters
 CFadeAndDestroyAs soon as the object is created, fade the alpha of the sprite to 0 and destroy
 CFirstFrameBlockerInputCheckerInputcheck that calls the trigger method the first frame an input key is pressed
 CInputActionMapperClass used to map actions that link to KeyCodes
 CInputChecker
 CInputCheckerActionData class to be returned by InputChecker implementations for functions pointers to call in the FixedUpdate once it is verified that the InputTriggerOption should be notified a button has been pressed
 CInputCheckerContainerHolds a mapping of InputTriggerOptions to registered tags for deduplication checking
 CInputManagerImportant class that handles all user input
 CInputManagerValidKeysData class used to hold all the valid KeyCodes that a player can use to set to Actions
 CMainMenuBackgroundIn the background of the main menu there is a game of pong playing in the background. This class is the parent in the scene of all pieces that make up the game of pong
 CMenuBackgroundParametersParameters to give to listeners of the event to enable/disable the background pong game in the main menu
 CMenuControlsParameters
 CMenuTutorialParametersParameters to give to listeners of the tutorial start event
 CMovementInputCheckerInputChecker to used to get a range of -1 to 1 based on user input
 CMrPaddleFadeInAndOutClass to control the visibility of MrPaddle while in the tutorial
 CMrPaddleMoveUpAndDownMakes MrPaddle move up and down slowly to make things a little more lively
 CPiecesTravelToController
 CPircesTravelToControllerOnce a ball ball is successfully dodged by a player, it splits into several pieces and then moves to the player
 CPitchShiftAudioSelectorWill play the sound effect at different pitches. This is to make sure things don't sound too repetative
 CPlayOnceAudioPlays an AudioSource once and then returns it to the CoopObjectPooler
 CPossibleMissZone
 CRandomClipAudioSelectorSelects a random sound effect from the predefined list and plays it
 CRandomUtilsCollection of methods for generating random numbers
 CRangeData class that holds a minimum and maximum value
 CRangeDrawerDraws the data class Range in the Inspector
 CRegistrationQueueGeneric queue used for items that need to be added or removed at a future point in time
 CReleaseInputCheckerInputChecker to notify the trigger when the key has been released
 CShockwaveSmall shock wave effect that is spawned when a player fires a bullet
 CSingleInputCheckerInputChecker to call the trigger every frame with the state of the action
 CSinglePressInputCheckerInputchecker to notify the trigger when the key first gets pressed down
 CSingletonBe aware this will not prevent a non singleton constructor such as T myT = new T(); To prevent that, add protected T () {} to your singleton class
 CSingletonScriptableObjectClass used to enforce the Singleton pattern for ScriptableObjects
 CSmallRippleWorks with the shader to distort a small area on the screen
 CSmoothingUtilsCollection of functions that perform smoothing functions
 CStateInformationState data used to configure the StateMachine
 CStateMachine
 CStreamingAssetsOrchestrator
 CSubmenuBackParametersParameters used to send to listeners of the event for switching back from a submenu like single player in the main menu
 CTestingBallLauncher
 CTimeChangeEventManagerEvent listener to change the timescale based on game events. For example, a player dies
 CTimeChangeListenerListens for the ChangeTime event to change the timescale
 CTutorialBadCannonObject used to fire bullets directly at a player to make sure they know how to use the shield
 CTutorialBringTextImageDownTutorial step to make MrPaddle and the text UI image go invisibile
 CTutorialBringTextImageOnlyDownTutorial step to make the text UI image go invisibile. MrPaddle's state will remain untouched
 CTutorialBringTextImageOnlyUpStep to make the text UI image visible. MrPaddle's state will remain untouched
 CTutorialBringTextImageUpStep to make MrPaddle and the text UI image visible
 CTutorialHealPlayersStep to heal a player if they missed blocking a ball from the TutorialBadCannon and need to try again
 CTutorialManagerTop level orchestrator during the tutorial. Spawns MrPaddle, the UI, and anything necessary to start the tutorial. It also keeps track of what step the player is on
 CTutorialMovePlayerToCenterSimple step to force a player to have their y axis position set to 0
 CTutorialPlayerMoveStep to make sure the player knows how to move up and down. The step records which wall the player touched first to provide a comment about how well the player can listen
 CTutorialPlayerMoveToTriggerTrigger used to record if the player has touched the collider or not. It is used by the TutorialPlayerMove to make sure the player touched the walls
 CTutorialPlayerPowerUpDeciderImplementation of the CoopPlayerPowerUpDecider to always give the exact power up no matter what
 CTutorialPlayersGivePowerUpStep to give all players a full charge so they can get a power up to use
 CTutorialPlayerShieldStep that makes sure the player can trigger their shield. This step spawns a cannon that will fire bullets at one player and they need to deflect every bullet before the next step is triggered
 CTutorialPlayerUsePowerUpStep used to make sure the player knows how to trigger their power up
 CTutorialShowTextStep that will show text on the UI for the player to read. The text is updated a letter at a time, or until the MENU_SELECT InputTriggerOption is selected. Once that key is pressed the full text will be shown. Once the full text is shown then the player will need to press MENU_SELECt again to go to the next tutorial step
 CTutorialShowTextWithPlayerListeningStep that displays information based on the actions taken by the players
 CTutorialSpawnPlayersStep that spawns the players into the tutorial
 CTutorialSpawnSinglePlayerStep to spawn only 1 player. Used if a player dies in the tutorial and they should be placed back into the world
 CTutorialSpawnWallsStep to spawn the walls on the top and bottom of the screen
 CTutorialStartGameStep to finish the tutorial and start the proper game
 CTutorialStepParent class for all steps in the tutorial. The TutorialStep can be thought of as a glorified linked list with each step pointing to the next step in the tutorial. The tutorial can have two next steps depending on the game mode, single player and cooperative,
 CTutorialTextSubstituteControlsStep that needs to show text on the UI but also needs to substitute some of the text with KeyCodes the player(s) should press. The Step uses the string.Format method, so the {#} notation should be used to detect substitution
 CTutorialTextUIClass that handles the text to put on the UI image during the tutorial
 CTutorialWaitTutorial step to make the player(s) wait patiently for something
 CTweenToA generic class used to move one object to another. Event though it's supposed to be generic, it's only used by balls that missed a player
 CTweenToColorChanges the _Tint property of a material to the endColor over time
 CTweenToPiecesManagerThis class only exists to hold all the pieces that should be used to tween
 CUIAboutBack
 CUIAboutManager
 CUIBackgroundPongFade
 CUIBlendTreeTransitionUITransition that modifies a blend tree in the Unity Animator
 CUIButtonFadeAllow for a UI button to fade in and out
 CUIControlConfigurableButtonButton in the main menu used to change the keys the player presses to play the game. This class doesn't handle the change of the KeyCodes but only handles what text is displayed on the button
 CUIControlsButtonManagerClass that handles linking the InputManager to the buttons in the setting menu
 CUIControlsSerializeDataData class to hold an Action KeyCode pair
 CUIControlsSerializeDataCollectionData class to hold a list of UIControlsSerializeData
 CUIControlsSerializerClass to save and load previous controls scheme configured from the settings menu
 CUIControlsTextUI manager that looks to see if the mouse is over text in the settings menu. If the mouse is over text, then it will highlight. This is a poorly constructed class because the only text object interactable is the back text
 CUIEndStateMenu
 CUIExitSelectable action to quit the game when selected
 CUIFadeA UI element that should adjust the alpha to fade in and out the component
 CUIFadeManager
 CUIKeyboardControllerClass that listens for keyboard input to change the selected menu item. It will also check the location of the mouse and if the mouse hovers over a selectable text object it will make that text item the selected item
 CUIKeyboardControllerContextData class used to tell the UIKeyboardController which text objects should be scrolled though/activated by the mouse
 CUIKeyboardControllerContextManagerContainer that holds the relationship between the context names and the contexts
 CUIMenuControllerController that handles the transition in and out of the main menu. A better name for this class probably should have been UIMainMenuController
 CUIMusicVolumeInteractive slider to change the volume of the background music
 CUIPauseManagerCode to bring up and turn off the pause menu while playing the game
 CUIResumeSelection action used to resume the game from the pause menu
 CUISelectActionParent class for text items that can be selected by players
 CUISettingsManagerCode that controls when the settings menu should be enabled/disabled
 CUISfxVolumeInteractive slider to change the volume of the sound effects
 CUIShowAboutSelection action to show the about page in the main menu
 CUIShowControlsSelection action to show the settings page. The settings page used to just show the controls which is why it's called the show controls action
 CUIShowMainMenuSelection action to show the main menu
 CUIShowMainMenuFromTutorial
 CUIShowTutorialSelection action to show the tutorial submenu that asks if its single player or cooperative
 CUISliderFadeFade in and out the slider UI object
 CUISpawnSubmenuActionSelection action to trigger a submenu to appear
 CUIStartCoopSelection action to start the cooperative match
 CUIStartFromTutorial
 CUIStartGameSelection action to start the single player match
 CUIStartTutorialActionSelection action to start the tutorial
 CUITextControllerUI text object that can be higlighted and selected to perform an action
 CUITextFadeFade in and out the text UI object
 CUITransitionUI object that should have a transition in and transition out animation
 CUITryAgainSelection action to start the game mode again after all players are dead
 CUITutorialTextClass used to show the tutorial text and underlying image
 CUIWinTime
 CVector2UtilsCollection of functions around the Vectotr2 object
 CVector3UtilsCollection of functions around the Vector3 object
 CWallBoundry on the top and bottom of the screen to bounce bullets