This sprint, I started by implementing alternate success conditions for certain scenarios. This means that for some scenarios, there will be multiple different stat checks that can lead to different outcomes, and potentially different scenarios down the line. Two different outcomes of the scholar’s exam scenario. One for high intelligence, and one for high charm! This was an interesting programming challenge, as I had to figure out how to associate these alternate conditions with the data table that is currently holding all the scenario information. The interesting thing about these alternative outcomes is that they function as almost half a scenario. They have no intro dialogue, but they do have a unique stat check, outcome dialogue, and list of scenarios to unlock on success. Because of this, I decided that I would copy the current scenario into a new struct. That way, I could “swap out” certain pieces of data at runtime without having to fill my data table with duplicate inf...
This sprint, I worked on some improvements to the enemy wave and damage system, some status conditions for the enemies, as well as some exciting VFX! When I started working on the blood VFX, I knew I wanted to do something similar to ULTRAKILL’s rendition. I started with Unreal Engine 5’s directional burst niagara template, because it featured ribbon-like trails behind the particles that I knew I wanted. However, these ribbons were square on each end, and I wanted mine to taper off instead of just end abruptly. To this end, I duplicated the built in ribbon material so I could make some modifications. I found that by plugging a sphere mask into the opacity of the material, and then multiplying the radius by the particle’s relative age (a 0-1 value representing the percentage of the particle’s lifetime that has already passed). This worked pretty well, and gave my ribbons a more rounded, tapering look! The second major problem I had to solve was getting the particles to leave...