r28292 added counting _cyberFreeFights if you have OVERCLOCK(10) - before CDM added FREEFREEFREE
r28298 adjusted that, after CDM added FREEFREEFREE
29298 also adds support for all the CyberRealm combat skills.
One - Throw Cyber Rock uses no RAM and requires no equipment or items, and is always available in a Cyber Zone
Two - Launch Logic Bomb and Deploy Glitched Malware - use no RAM, but consume an item from inventory
Five - Brute Force Hammer, Inject Malware, Encrypted Shuriken, Refresh HP, Thrust your geofencing rapier - use available RAM and require a specific piece of equipment to be worn.
We now track the current value of RAM.
If you are not in combat, it is 3 + the current value of the "RAM" modifer, based on two possible equipment pieces and one status effect. Thus: from 3 - 10.
If you are in combat not in a Cyber Zone, it is irrelevant.
If you are in combat in a Cyber Zone, it is the initial value you started the fight with (3 + modifier), deducted, as appropriate, by skill usage.
ASH function my_ram() returns the value, for use in consult scripts.
Additionally, available_combat_skill($skill) will return true or false, as appropriate, if you can currently use the skill.
If you are not in combat, always false; you don't really have Cyber Skills unless you are in combat in a Cyber Zone.
If you are in a Cyber Zone fighting a hacker, false, since KoL doesn't make it available for you.
If you are in a Cyber Zone fighting a process, true or false depending on whether you have the appropriate item in inventory or equipment equipped, and whether you have enough RAM left to cast the skill. Again, this is consistent with what KoL displays for you.
If your script wants to cast skills with item or equipment dependencies, it is up to you to suit up appropriately first. (Nothing new there; same is true for EVERY item-granted skill. Use the Force, for example.)
Your consult script can use my_ram() and/or combat_skill_available() to choose actions.
This seems sufficient, to me. Different thoughts? Let's hear 'em.