Status Effects and Skeleton Skills


Jamari Williams - April 7th, 2023

This week, I started working on status effects, abilities the player will unlock for the skeleton, and a few bug fixes and tweaks here and there. 

Starting with the status effects, I created an actor component called AC_StatusEffectBar. I placed it on the PossessBase so it will work for every enemy. It’s function is similar to the health bar, where it just increases a number for each status effect, and starts an event when the bar is full. I also created deal damage events for each status effect in the health manager so the functions can be called from anywhere. We plan to have five different status effects: bleed, confusion, stun, frost, and ignite. 

I started working on the bleed first, since it was the most simple. Bleed inflicting bleed on an enemy deals a small amount of damage to them over time. 

Next, I started working on the stun effect, which was a bit more complicated. I created an Stun event on the PossessBase that pauses the AI. I had to do a bit of research to find the proper function, but I ended up grabbing the AI’s brain component and calling the StopLogic function. After that, I set the animation to idle and spawn a blip to indicate to the player that the enemy has been stunned.  

https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/AI/Logic/StopLogic/ 

The final effect I implemented this week was frost. It is also simple in concept, only meant to slow enemies down. All I did for this was limit the maximum walk speed and lower the global animation play rate for the enemy that gets afflicted with frost.

Aside from the status effects, I started implementing the unlockable skills for the skeleton. The first thing I did was rework how the skeleton is controlled. I made it so right-click toggles through the skeleton’s arrows and the reticle appears whenever you press right-click to fire an arrow. Then I created a shock arrow that costs mana and stuns enemies for a time. 

Next, I copied over the dash to the skeleton. This gives him a good way to create distance between himself and his enemies. I also implemented a triple arrow shot. To activate it, the player has to charge their bow while the skeleton is dashing. It will shoot out three of whatever arrow the player has selected. 

Next, I created an arrow barrage for the skeleton. The arrow barrage deals damage to enemies in it’s range for a period of time. It also works for the stun arrows to deal stun damage over time. To use this, the player has to hold space while charging a shot. 

A small change I made was reworking the target switching when locked on. As long as an enemy is in range, the player can toggle through enemies in range by clicking “C”. Before, you had to flick the mouse to the left or right, and it was pretty inconsistent and the player had to be facing the enemy. 

I also did a couple of bug fixing. There was an issue where the missile turtle wasn’t staying invincible when he goes into his shell and he doesn’t die when he’s unpossessed. This week was pretty straight-forward, I mostly took existing code and reworked it to serve different purposes, mainly the damage over time component I created earlier. Next week, I plan to implement an ultimate ability for the skeleton and work on the necromancer’s possession.

Leave a comment

Log in with itch.io to leave a comment.