Today I have begun the first phase of a series of enhancements to the blood-spraying system in EXU, i.e. the shitty Unreal one which is being replaced in favor of a newer, more flexible one. This one already supports custom hit effects and a variety of color presets. By the time I’m done with the whole shebang, the aftermath of any given battle is going to look hilarious.
So far, I have successfully implemented a custom enum, Hemospectrum (Homestuck owns), which allows you to specify the blood color of any EXUScriptedPawn. I have Red, Green, Blue, Brown, White, Black, and None currently designated, and I have a single blood spray class set up to change its visual properties depending on which color you set (I haven’t actually made the textures yet, but the code works).
Selecting None allows you to switch to using a custom hit effect instead of the colored blood spurt thing. This opens up a HUGE range of possibilities, and makes a lot of really cool impact effects possible – even dangerous. I experimented and made one pawn shoot out bursts of razor blades every time you hit it, which looks hilarious AND will kill you. I’ve started to set up other stuff, like having energy-based pawns shoot out sparks instead of blood, and having vehicles generate small explosions, sparks, and/or smoke bursts from their impacts instead of shooting out blood (which looks stupid coming from a Hellfighter).
Technically speaking, I’m not sure if I should keep BLOOD_None for this purpose or make an entirely separate variable for it, possibly one which can be used in tandem with colored blood. I’m starting to think that BLOOD_None should just disable the blood spurt rather than automatically enable the custom hit actor. Perhaps the custom hit actor should be triggerable with a boolean, or maybe a scale value when greater than 0. I just haven’t figured out what would be the most efficient way to do this, which actually IS important since it affects every single enemy in the game, and if you start doing shit that lags out the game when you damage dozens of pawns at once, THAT IS BAD.
I also have a lot of work cut out for me in terms of gibs and blood splatter decals. If I’m going to make all these blood color classes, that means I’m gonna be busy modifying textures to fit all these color criteria, AND I’m going to need custom decals which inherit their owner’s blood color. I’m also going to need custom gib skins for a variety of monsters for a variety of chunk types in a variety of colors. That’s a lot of goddamn textures, but I think it may be worth it.
I’m also planning to overhaul the gib and carcass system so that chunks will inherit their parent actor’s visual properties, such as the texture, translucency, lighting (or maybe not if this bogs down performance), etc. Because tell me, really, how it could it POSSIBLY be NOT hilarious to shoot an Extreme Laser Lord, watch green sparks and green blood spray out, and then watch the corpse explode into little glowing green XFX-textured chunks? Impossible, of course – this would be hilarious under any circumstances.