Got it. My question was less about coding for anti-venom and more about generating discussion on the philosphy of the DB design in this area I.e. more about the question of what should be handled by the engine as part of the world's physics and what should be handled by the bot. Let me try to explain. I think of venom as three main things 1) the ability for a bot to semi-persistantly (I.e. longer than a single cycle) overwrite a mem location in another bot 2) the fact that the DB engine maintains state about this for how long it lasts and 3) the fact that the engine, not the bot, is generally resposible for putting things right when it wears off (else, why maintain the state?).
Now, 1) makes perfect sense to me because without the ability for bot A to potentially impact bot B's memory for longer than a single cycle, the world would be smaller, the scope of possible bot variation would be less. But a question I pose is why should the engine be resposible for making it wear off? Should venom wearing off be world chemistry or bot genetics?
2) is a design decision IMHO. We could decide that the engine should maintain absolutely no state what so ever about venom I.e. that it is entirely the responsibility of the bot to check for venom effects and code for anti-venom via DNA self-checking approaches for all types of venom. This raises the bar for coding for anti-venom, puts more stuff into the DNA, simplifies the engine but I don't think it has an impact on diversity I.e. it does not reduce the size of the space of all possible organisms or adaptations. Personally, I think I favor this approach. I like simplifying the engine and putting more into the DNA as long as it maintains maximum diversity potential. Besides, there are problems with the engine maintaining state about venomized bots. What if a bot shoots multiple kinds of venom? What it a bot gets venomized by multiple bots with different venoms? Should the engine maintain separate venom countdown state about each and every memory location for every bot I.e. have a separate .paralyzed sysvar and maintain separate countdown timers for all the different possible ways to get venomized? Today this is kind of broken in my opinion as there is only a single paracount for each bot.
3) Okay, so, we can decide (as the DB powers that be have in fact done) that venom wearing off is in fact chemstry, not genetics, that it is an artifact of the world physics and that it should be the responsibility of the engine to maintain state and track this. Okay, I'm fine with this, but then lets be consistant. If venom wearing off is the resposibility of the the engine, then all venom should wear off without the bot having to do anything. A bot might and should be able to make it wear off faster by adding anti-venom code to it's DNA, but IMHO this should not be a necessary condition for any and all venom wearing off eventually. If we are going to have the engine maintain venom state and make venom wear off, then it should do so regardless of what kind of venom it was. Personal opinion.
Now, I fully realize that there is a lot of code history and that the engine, design and sysvars/mem have evolved over time (pun intended). There will always be inconsistances like this in any version. I just wanted to generate some discussion as to whether in future versions, we want to address this in some way. The two possibilties I see are
a. Getting rid of all venom state in the engine and making it entirely the responsibility of the bot to code for anti-venom. Bots can use venom to write to another bots memory, most thigns work liek they do today I.e. the size of the victum's shell and the size of the venom shot dictate whether or not it gets through, etc. but how long it lasts if it does get through is completely the resposibility of the venomized bot. If the bot has no anti-venom DNA, the venom lasts forever.
b. Enhancing the engine to handle multiple types of venom and enhancing the state maintained by the engine so that it remembers the value of toggles before they were venomized and puts them back when the specific venom that impacted that memory location wears off.
Hey, if a newbie isn't good for stirring things up a little, what the hell good are they for anyway? :)
-E