Evan's Dev Blog 3/3 - The Status Screen
Hello everyone! This post is going up on Tuesday instead of Saturday because this past Saturday, I was at PAX East, meeting with other developers and showcasing one of my other projects, Stabby Cats! Today, I'm going to talk for a bit about the development of the Status Screen. Any good RPG has a place where the player can check their stats, and read up on what spells they may have cast. While "Random Encounter" is an immensely simplified RPG, it is still important for the player to track their progress. Taking a page from other moble games, a character's stats can be pulled by clicking and holding on their sprite.
The status screen listens for an event called OpenStatusScreen. This event takes an Entity as its argument, and the values on the screen change based on the Entity's stats, including stat modifications.
Note that the enemy Slime's display lacks numerical values for HP and MP display, and does not display its attack, defense, and speed stats. This is because an Entity's controller has a boolean value indicating if it has been "identified," which enables the display of these stats in code. This not only keeps the player guessing when they first encounter a new enemy type, but also allows for Paper Mario style "Tattle" moves which would reveal enemy stats when used. I may change tweak the behavior of the display later so an unidentified enemy will no longer disable the stat display outright, but will instead display question marks.
The final major component of the status screen is a display for active spell effects. This display only appears if at least one effect is active. This required the creation of a new ScriptableObject, the EffectDisplay object. The display defines which icons and text strings should be displayed for a given effect. Note that EffectDisplays are optional. For example, the standard Attack decreases in accuracy each consecutive turn it is used successfully, but we do not want to reveal this information to the player. When displaying effects, the system checks if a display is not null before proceeding.
With all this sorted, it's finally time to make a nice looking editor for spells. My next blog post will discuss the process of getting a clean spell editor up and running! See you then!