It works, on the BOS side. The problem is... Spring doesn't seem to work right, and it has to do with the economy handler.
I've always had some questions, in the back of my mind, about the economy handler. NanoBlobs would work veeeeeeery differently in OTA- the wild ups and downs of the E/M "economy" would probably make it crash, for one. But even if it didn't, units would stop/start/stop on a regular basis, as the economy went empty during early game. In Spring, I've never had that problem, which has always seemed weird. At first, I used to have M/E costs for firing weapons, but that just didn't cause the stark effects I expected- instead, everything somehow magically slowed down proportionally, but never STOPPED.
My problem here is very basic: the economy never seems to go truly empty. It acts like it does- under veeeeeery specific circumstances. If you have a weapon that costs 10000 E to fire, then it won't fire until you hit 10000 E. However, I have yet to see one of my factories ever stop building entirely, so long as my economy had positive income- nevermind if that income was less than outgo and I have no reserves. I am sure this has been observed by serious players for ages, and probably beaten to death, but now that I'm trying to harness it beyond simple statistical stuff, it's very irksome, especially as there doesn't seem to be a way to turn it off.
Moving on, to my specific beef:
I wrote up a modified Archer script as a tester, and it has the following lines in the BOS:
Code: Select all
Activate()
{
signal SIG_ACTIVATE;
SET MAX_SPEED to [0.9375];
}
Deactivate()
{
signal SIG_ACTIVATE;
set-signal-mask SIG_ACTIVATE;
SET MAX_SPEED to [0];
moving=FALSE;
set-signal-mask 0;
}
I tried it out... and it didn't work. At all. I .gave myself dozens of Demons, to drain my economy so dry that I should never, ever, EVER have any Energy or Metal available... and yet, this thing still walked around as if nothing was wrong.
Soooo... I made it OnOffAble. And tested. And guess what? Every once in awhile, the code works just fine before suddenly getting interrupted.
Final test? Took out the EnergyUse/EnergyMake lines, to remove that condition. Guess what? Now it works- for less than a second.
So... there appear to be two things that are borked here:
1. After observing my M/E economy with dozens of Demons... something is horribly, horribly wrong. Dozens of Demons should equal instant economic stall, forever, period- we're talking negatives in the tens of thousands here. This is not what happens.
Instead, I can watch the full value of the Lord (200E, 200M) being put into the Economy, and it takes about a second for it to disappear down to zero. What's up with that? Why isn't the current cost of my economy being subtracted from my current gain before allowing for building new units? I mean... so far as I can tell, it's impossible to really stall. Is there any way to shut this off, mod-side, so that I can inflict proper stalling behavior on NanoBlobs? I want my units to stop moving when I tell them to- including when they don't have enough Energy to sustain themselves.
The main thing that irks me is that your Economy should always hit (and stay at) zero if your demand outstrips supply. What is causing this to not happen? Don't tell me it's some magical AI trick that's "autobalancing" the books- because if that's the answer, my answer to that is that it's obviously committing fraud somewhere, and we'd better make sure it isn't investing our money in shares of its stock


2. GET/SET MAX_SPEED doesn't seem to work for more than a half-second or so- I'm assuming that's a SlowUpdate. What's up with that? What's making this so hard to fix? I'm not saying you guys haven't been trying- I know that several of you have looked at this issue. But it's clearly still borked. Is there anything I could do that would be remotely helpful? I was planning to use this feature in the next version of NanoBlobs, since it didn't make the cut for 0.63, but it's not working right now, irregardless of the problem listed above.