This week I mainly worked on implementing a flexible trait system. In the inspector, a designer can apply various traits to a character. Traits such as resistances to fear, delusion, and despair; susceptibility to fear, delusion, and despair (taking increased amounts); immunity to fear; not taking despair on killing of family type enemies; an aggression trait that will make the unit more likely to auto switch to aggressive behavior when enemies cross its path; general increase in stats; as well as a despair aura that can either increase or decrease the despair of nearby allies.
I also reintroduced a targeted ability archetype from which I made a healing ability as well as a direct damage ability. This ability type is aimed by simply clicking on a target in range. The target game object is then passed through the ability manager on the associated UI button to the ability’s scriptable object that then does the fun stuff such as dealing damage, healing, visual feedback, etc.
Finally, I improved the player name tag UI greatly by adding a dynamic image nesting system with the Unity vertical and horizontal layout system. This dynamic system will create and destroy traits and status effects images, with mouse over info panels, as needed. I also improved the prefab itself to allow a teammate to update a behavior image on the side of the name tag to give the player another way of seeing a unit's behavior.
Next month we enter a full-on design phase for the project now that the core tech has been built. Next week I will continue to fix bugs and refactor code to be more efficient and less error prone. Now that the core functionality of our game is in place I can start to focus on scripting new and interesting challenges for the players. Of course, modern RTS games are full of little things that we often take for granted these days so I will also be focusing on polishing our game to meet those standards.