-
Notifications
You must be signed in to change notification settings - Fork 1
StatusEffects
A UML link was created before coding commenced. This laid out the design plans of the classes clearly, allowing all of the team members to work on the code efficiently (i.e. Not wasting time making classes that have already been defined).
More classes and slightly increased coupling was required in the end after the design of the UML diagram. Some examples of the added classes were the statusEffectTask class and statusEffectsConfig class. The StatusEffectComponent class was also renamed to StatusEffectController to remain consistent with other similar classes used when creating entities.
Disposing of the statusEffect entity upon player collision proved harder than expected when running the entity.dispose method returned an error which broke the game. To fix this we set the entities scale to be -0.01f which make the entity appear invisible. This left a bug where the entity's collision size remained the initial size (so the player has to jump over it). We fixed this by changing the collision state of the entity to true so that it falls through the floor.
Initialising the statusEffect was implemented in the StatusEffectOperation class. This class is called from the StatusEffectsController class (which contains a method that runs when the the player has collided with a statusEffect). The StatusEffectOperation class works as described by the UML above with minor alterations. These alterations include additional methods in the StatusEffectOperation class (one for each statusEffectEnum) as well as additional attributes created (e.g. A static array called originalValues made to save the original values). Each method calls its respective Enum from StatusEffectEnum class which has a Boost method Overridden. The statChange Method has also contains minor alteration form the UML diagram in that there are now three method variables (with the addition of the OriginalValue which is the original speed or jump value).
Increases the speed by the amount specified from the enum's attribute statChange in SPEED (currently 5) This lasts for the duration specified from the enum's attribute statDuration in SPEED (currently 4 seconds) The new speed value is calculated through the statChangeMethod which is the original value plus the boost or minus the boost.
Increases the jump by the amount specified from the enum's attribute statChange in JUMPBUFF (currently 200) This lasts for the duration specified from the enum's attribute statDuration in JUMPBUFF (currently 4 seconds)
Sets the players speed to 0 so that they cannot move. This lasts for the duration specified from the enum's attribute statDuration in STUCKINMUD (currently 3 seconds)
(Note: This was implemented slightly different to the above methods as we required an instance of the voids entity. Therefore the code for this method was created in TheVoidController class, made public static and called from the StatusEffectOperation class) Sets the void's speed to 0 so that it does not move. Reverts the void's speed back to normal after 3 seconds. This lasts for the duration specified from the enum's attribute statDuration in VOIDFREEZE (currently 3 seconds)
(Note: Has not been implemented in this sprint) Should obscure the players (your) view of the game for a certain duration of time.
Testing Plans
Team 1
Team 2
Team 3
Team 4
Team 5
Team 1
Team 2
Team 3
Team 4
Team 5
User Testing
Sprint 1 - Game Audio
Sprint 1 - Character Design
Sprint 1 - Menu Assets
Sprint 1 - Map Design
Sprint 1 - Void
Sprint 2 - Game Audio
Sprint 2 - Character Design
Sprint 2 - Menu Assets
Sprint 2 - Interactable Design Animation
Sprint 2 - Levels 1 & 4, and Level Editor
Sprint 2 - Proposed Level 2 & 3 Designs
Sprint 2 - Current Game State
Sprint 3 - Menu Assets
Sprint 3 - Map Design
Sprint 3 - Score Display
Sprint 3 - Player Death and Spawn Animations
Sprint 3 - Pick Ups and Pause Screen
Sprint 4 - Gameplay
Sprint 4 - Game UI and Animation
Sprint 4 - Level Background and Music
Sprint 4 - Game User Testing
Sprint 4 - Final Game State Testing
Entities and Components
Status Components
Event System
Player Animations Implementation
Development Resources
Entities and Components
Level Editor (Saving and Loading
Multiple Levels)