Event Begin Play
At the start of the game, a multitude of functions are set to run to constantly update the systems of the Wendigo. This includes checking the player's health, spawning a breath particle at intervals, a hunger meter, and movement counter for use with a blueprint below. In retrospect this was a very inefficient way to check certain stats, as they only needed to be called at certain times.
The hunger system was put to match the cannibalistic nature of the Wendigo. Hunger replaced health, and if the player did not feed consistently they would die. This on top of combat brought a lot of player choice to the game as far as how to approach certain situations.
The Player Rig
In order to get the player to move like a monster with only block-in hands, I had to blueprint a full animation cycle of crawling arms. Each box represents a point at which the arms move during an animation cycle.
The Walk Cycle
Since I didn't want the game to feel like a typical First Person Shooter, I decided to replace WASD/ Thumbstick controls with Mouse Clicks/Triggers. The Idea was that instead of simply pressing a key to move forward, you would need to click to each step you took. If you moved too fast, your fingers would cramp up. The player needed to find a good momentum for clicking to move the wendigo forward. This is the system I built for that idea. The player starts by clicking, this sets the reset counter to zero. (If the reset is 0, the player can start with left click or right, if not, the player has to click the opposite button used previously, sort of like taking steps). Then it detects if there is a static mesh ahead (the walk uses teleports, so the player will go through walls without this check). Then it will run a series of checks to see if you are walking properly, and animate the hands by moving and rotating components around.
This would have worked better had I used Impulses instead of teleports in retrospect.
The Swing Cycle
The swing attack works similar to the walk animation cycle. The event will check to make sure you arent already swinging, (I should have just used a DoOnce node instead of a boolean) then execute the animation cycle. If we are going to make a monster, we need to make it act like one!
The Spit Attack
The Spit attack was one of the abilities set to have a cooldown timer. When the spit is not on cooldown, it displays a random UI bile image from an array and spawns a green projectile that shoots forward into the air. When the player uses this ability, it goes on cooldown and increases your hunger meter. The spit came from the idea that the wendigo is a corrupted cannibal human, so it's insides were probably infected and festering. Adding a projectile for diverse gameplay was a must, and what better way to do it than to spit out your own bile?
The Bite Attack
The bite was another must-have ability for a monster. The bite checks to make sure its not in use (once again, should have used a DoOnce Node). It also checks to make sure the player isn't swinging to prevent conflicting code. When it passes, a UI bite animation will play and the character will move forward.