OK, here’s this rand() cycle’s round of Things That Did Happen:
[1.] FINALLY FIXED the SpawnWhenTriggered Patroling fuckery a few days ago, HELL YES. All I had to do was create an OldPhysics variable, get the current Physics at the start of the game and store it there, then set Physics to none and back to OldPhysics when bringing the pawn out of stasis. That was IT! So simple; I don’t know why I never thought to try that earlier.
All that remains to be fixed with SpawnWhenTriggered is some AI bullshit – probably my call to Global.Trigger() is causing pawns to start attacking you even if bHateWhenTriggered is false. Gonna have to look into this and fix it.
Speaking of SpawnWhenTriggered, I added a nice new laziness++ feature: a minimum and maximum delay time before spawning. This means you can select a whole group of pawns, set them to SpawnWhenTriggered, and give them a delay range between, say, 2 and 5 seconds, and they will all appear over the course of three seconds after the initial 2-second delay. This saves me about 92438263246^745375747573475 Dispatchers and CreatureFactories, so I’m pleased. One of my favorite things to do lately has been to make new functions and time-saving tools like this.
[2.] I also made a Brute Cascade thing, which is a projectile that rains down pretty much whatever you want it to as it flies overhead with an indirect fire trajectory. Kinda useless for the most part but it looks pretty cool and will probably be fun to throw into Map 20 for being a huge outdoor environment.
[3.] I’m working right now on making the Artillery Guardian, a type of special Hand Cannon Krall that can call in artillery strikes. I’m still not sure if I’ll make it functional in any old map or just in maps that have a designated EXUArtilleryStrike actor (which will probably be like a GenericSpawner, if not a direct subclass for convenience). I’m going to have to figure out how to make it behave properly, but it shouldn’t be too too hard.
It will shoot a green smoke flare near you (unless you can kill it fast enough) which, once it lands, will signal the target for an enemy artillery barrage. You’ll have a couple of seconds to get the hell out before a very large area around the beacon gets blown the fuck up. After firing one beacon, the Krall will be unable to fire another for a period of time and will revert to using its hand cannon. Perhaps it will have to wait 30-45 seconds to call in another one (assuming it’s still alive by then); dunno yet.
I may end up just using these things in huge outdoor maps, because that’s the only kind of environment that would make sense for them.
[4.] Had a shitty experience with models in UE1. I made these railing models that imported fine, spent a bunch of time scaling them and replacing the BSP railings in Map 19 with them, and then applied collision proxies to them using movers I built to match the shapes. Everything was going well until I discovered that the collision on them is really unreliable and you can basically walk through them at the seams for some reason. BOO. Had to revert to BSP railings, but the models are still in EXU.u and will stay there. The UVs are all fucked but hey, maybe someone will find a use for them. With fixed UVmaps they could make decent decorations somewhere, but shouldn’t be relied upon for real collision, I’m afraid.
[5.] Flares have all been ported to the glorious new flare system, which makes them perform way way better online. They’re currently kinda bugged out still and unfinished, but that will be reconciled soon.
[6.] All Lazyweapons have an inaccuracy variable, and I went to town working on weapon balance by taking these new toys into account. MP weapons were especially heavily rebalanced recently, especially with their ammo usage compared to their SP counterparts. SP guns have had inaccuracy applied, but are otherwise mostly unchanged.
MP guns, however, break down differently. A lot of weapons use more ammo in MP or are wildly inaccurate to help curb some overpoweredness. The MP RFPC is particularly wild, and the MP Shitgun alt fire and MP Hyper Flakker alt both cost more ammo to use now (20 ammo vs 15, and 5 ammo vs 1, respectively). Also boosted the damage on MP Clusterfucker rockets a bit.
[7.] Doom Troopers and their variants (subclasses) are now capable of wielding EXU2 guns against you. I’ve got some nasty varieties, like Hell Troopers with MP Hell Guns and Annihilation Troopers with MP Clusterfuckers. These guys are a great demonstration of how fucked up my weapons’ AI code is, so I’ve got some work cut out for me before I can actually use any of them in SP on a large-ish scale. I’m not exactly planning to give a ton of Skaarj Troopers Clusterfuckers, though, because that would just be a horrible rapestorm for the player. Would be hilarious to watch, though.
[8.] All EXU2 items are now EXUPickup subclasses, and all ammo is now an EXUAmmo subclass (the latter mostly just for organization in UED). This helps lower my blood pressure since I no longer have all kinds of shit thrown around in UED’s actor tree, and this may make it possible for us to do some cool stuff with pickups in coop.
[9.] Created a hilarious new gasbag, the Vermin Bagger, which does nothing but generate smaller versions of itself (Vermin Bags) that fire two-shot bursts of weak little Skaarj projectiles. But these little things add up fast, and it becomes a real show when you fire Clusterfucker rockets all over the place and watch them seek and destroy by spiraling all over the place. Occasionally some will even hit the Vermin Bagger! It’s a blast.
[10.] Dramatically increased the lifespan of gib chunks across the board. They last WAY longer now, which makes the scene of combat look hilarious, especially with MoreGore. I’m eventually going to add config variables for people to specify if they want gibs to be permanent or to just last a maximum of X seconds, but right now they’re set to stick around for at least 30 or so seconds instead of… like 2 or 3. Quite the improvement. Doesn’t even lag the game much! Still need to add DropDetail support that will destroy them sooner when shit starts hitting the fan.
[11.] Fixed gibs that weren’t inheriting their originating pawn’s lighting properly. Now you can have glow in the dark gibs! It looks hilarious. The glow won’t be active if DropDetail kicks in, though, so that’s good. And I had to be sure that lit-up gibs NEVER inherit fog, because holy shit if you ever wanted to crash the game quick, just blow up some pawn with foggy gibs and watch the GPFs explode onto the scene.
I can probably also combine this with the lifespan boost to disable lighting for currently-lit gibs if DropDetail mode activates. The question is whether or not scanning for the DropDetail condition is itself going to cause extra processing from all those individual chunks running checks every so often to see if they should make any changes to themselves, but that’s what experimentation is for.
[12.] Tried out using individual pickup sounds for every weapon and ammo item in EXU2 by borrowing UT3’s sounds, but ended up reverting. They were way too quiet in MP and didn’t really feel right in SP. I guess I’m just too used to the UT sound effects for inventory, though I HAVE done some stuff to differentiate items from each other using audio cues. EXU’s jump boots, for example, have little glowing flares on the boots and they use the UT3 jump boots pickup sound instead of the stock inventory grab noise, which makes it really obvious when you grabbed them. The little green flares also make them easy to see in the dark, which is very helpful in EXU2’s super fucking dark hellscape maps. I’ll probably do new sounds for the Firestorm Generator and Missile Backpack too.
Finally, of course, there’s been a shitload of misc. bug fixes, but right now I’m kind of in a limbo state while a few of the larger issues get worked out. Once major items like turrets and new systems are fully operational, the mapping shitstorm is going to happen and it is going to be SO GOOD. That’s all for now.