Player Functionality Layout

This page describes how Players will be implemented code-side.

The Player Base Class
Within SMLimitless.Sprites, a new abstract class called Player will be added. This type will inherit from Sprite and implement either overrides for Sprite's abstract methods or implement abstract overrides for methods that subclasses of Players must themselves implement. Virtual methods that are called during each frame that any action button is pressed will be added to the Player class.

Each subclass of Player should represent a player or a player with a certain powerup. Each subclass can then override the action button methods or the core Sprite methods to implement a player's motion, handling, and powerup abilities. This does increase the difficulty of creating new players and new powerup states but also increases the flexibility of the core player classes.