New Content CyberRealm keycode - 2025 item of the year

Magus_Prime

Well-known member
Much of this has been implemented but Manual provided this with r28248 :

Manuel says that 'bluehat hacker' (2455) 'Never wins initiative', but KoLmafia says it is 0
Manuel says that 'bluehat hacker' (2455) has element cold, but KoLmafia says it has attack element none and defense element none
Manuel says that 'bluehat hacker' (2455) has phylum dude, but KoLmafia says it is none
Manuel says that 'bluehat hacker' (2455) has article 'a', but KoLmafia says it is ''

Manuel says that 'corruption quarantine' (2461) 'Never wins initiative', but KoLmafia says it is 0
Manuel says that 'corruption quarantine' (2461) has element stench, but KoLmafia says it has attack element none and defense element none
Manuel says that 'corruption quarantine' (2461) has phylum construct, but KoLmafia says it is none
 
Collecting from the trashcan should probably be part of breakfast if it isn't yet. It's a GET to place.php?whichplace=serverroom&action=serverroom_trash1
 
Other things that need to be tracked:
  • check if the trashcan has been visited
  • Number of turns spent today in Cyberzone 1, 2, and 3
  • RAM available in combat
 
Last edited:
I tried this today for a few turns in-run, since I’d screwed up flyering and ran out of useful targets. Alas, I was not allowed to flyer. It told me - although I could not read it, because of the dark mode screen.
Is that a new monster flag?

I need a way to disable it. Is there a relay script, or do I need to make a property and build it in, much as I did to eliminate powerpixellation?

My eyes will not allow me to access this new content, without some such remedy.
 
It is horrible. They didn't have to use dark green. It helps to highlight the page. The trolls in ASS used the same stuff for the spading spreadsheet. And I suspect getting ready for this is what broke almost everything that scraped KoL's HTML. Get off my lawn!

There are two types of monsters there. Hackers, which are like normal scaling monsters. And programs, which only work with skills that use RAM (even if they cost 0 RAM). I tried to make a CCS today.
 
cannonfire40 submitted my report to /dev. It's an accessibility issue.
Who knows when/if, it will be addressed in KoL, but I will come up with something tomorrow to let KoLmafia users have an easier time in CyberRealm.
 
@Veracity

I wrote a simple override for the Cyberzones that kills all the styling, add to fight.ash relay script:
Code:
buffer KillCyber(buffer page) {
    //remove black / fixedsys / image changes
    matcher mkc = create_matcher("<body>.+?</script>",page);
    if (mkc.find()) {
        page.replace_string(group(mkc),"<body>");
    }
    return page;
}
 
Stuff to do (some of which is mentioned above)

1) I need the recipe to make a 3d printed server key

2) Visit place.php?whichplace=serverroom&action=serverroom_trash1 at breakfast - at least as long as it is not Standard restricted.

3) crAlways and _crToday properties.
This determines if you can visit the coinmaster, trash can, etc.
It is also the first part of canAdventure. Since adventuring turns are limited per zone, that will also be needed.

4) Scrape information from place.php?whichplace=serverroom&action=serverroom_filedrawer
For me, today, it says:
Code:
Owner: Inaba-Kubota Philanthropy
Security Level: 1
Countermeasures: corruption quarantine
Active Intrusion: blackhat
KoL bug: I had greyhat hackers
Code:
Owner: South Carolina Newspapers
Security Level: 2
Countermeasures: null container
Active Intrusion: blackhat
KoL bug: I had greyhat hackers
Code:
Owner: Hawaii Chemicals
Security Level: 3
Countermeasures: ICE barrier
Active Intrusion: redhat
No bugs here. :)

5) Track turns spent in each zone.
You get a choice adventure on turns 10 and 20.
Code:
[1534] Cyberzone 1
Encounter: One Man's TRS-80
Took choice 1545/1: Search it anyway
choice.php?pwd&whichchoice=1545&option=1
You acquire 0 (8)

[1543] Cyberzone 1
Encounter: The Final Node
Took choice 1546/1: Hacking Complete
choice.php?pwd&whichchoice=1546&option=1
You gain 5,000 Meat
You acquire an item: dedigitizer schematic: cybervisor

[1553] Cyberzone 2
Encounter:
Took choice 1547/1: Be not afraid of no ghosts
choice.php?pwd&whichchoice=1547&option=1
You acquire 0 (16)
You lose 18 hit points

[1562] Cyberzone 2
Encounter: The Final Node
Took choice 1548/1: Mission Accomplished.
choice.php?pwd&whichchoice=1548&option=1
You gain 10,000 Meat
You acquire an item: dedigitizer schematic: cybeer

[1572] Cyberzone 3
Encounter:
Took choice 1549/1: Push through
choice.php?pwd&whichchoice=1549&option=1
You acquire 0 (32)
You lose 19 hit points

[1581] Cyberzone 3
Encounter: The Final Node
Took choice 1550/1: You Cyber-Did It!
choice.php?pwd&whichchoice=1550&option=1
You gain 20,000 Meat
You acquire an item: dedigitizer schematic: STATS+++ rom chip
The half-way-through the zone choices do not take a turn.
Why no "Encounter" name for two of those?
Add some choice spoilers and defaults, I suppose.

6) When I vist zone 1 after it is complete:

You've already hacked this system.
Back to the Network Map

When I visit zone 2 after it is complete:

You've already hacked this system.
...no link...

Ditto for zone 3.
Lack-of-links is a KoL bug.

I COULD add them myself, much as we do when you defeat the last Dook in a Farm area during the island war.

7) Yeah, we need settings for turns visited in each zone. See canAdventure.

8) Sure, amount of RAM available. I don't have any items, yet, which increase RAM, and throwing a rock doesn't actually use any.
I've only been here for 2 days. :)
 
3) crAlways and _crToday properties.
This determines if you can visit the coinmaster, trash can, etc.
It is also the first part of canAdventure. Since adventuring turns are limited per zone, that will also be needed.

...

8) Sure, amount of RAM available. I don't have any items, yet, which increase RAM, and throwing a rock doesn't actually use any.
I've only been here for 2 days. :)

I don't think we need crAlways pref. If you have the server room key in inventory you have access.
I assume if you use the 3d printed server room key you have access for the day, so maybe that need to be tracked.

You can get more RAM with the datastick from the Top Right Drawer... not that you will need to use it.
 
I don't think we need crAlways pref. If you have the server room key in inventory you have access.
I assume if you use the 3d printed server room key you have access for the day, so maybe that need to be tracked.
Ryo has his server key in his display case.
 
Regarding what the lower left drawer says:

Apparently those are elemental colors - red, blue, green, purple, ... and black?
The greyhat hacker is "spooky"
 
Countermeasures determines both what the special virus is, and the halfway adventure element.

Yes, the intrusion determines the hacker. Everything is named accordingly except black implies grey.

I guess it doesn't show up with a name due to the HTML not matching (the name is set in code). Eventually I'll remember to get some debug HTML to fix it ;)
 
As of r28272, everything I noted is in, save for RAM tracking.
Code:
user    crAlways    false
user    _crToday    false
Set when you get a server key, use a 3d printed key, or from api.php.
Checked in the preadventure checking phase of canAdventure
Code:
user    cyberDatastickCollected    false
user    _cyberTrashCollected    false
I assume getting the datastick resets on ascension.
Does it reset if you don't have "always" access, and use a daypass?
Breakfast now roots through the trash.
Code:
user    _cyberZone1Defense
user    _cyberZone1Hacker
user    _cyberZone1Owner
user    _cyberZone1Turns    0
user    _cyberZone2Defense
user    _cyberZone2Hacker
user    _cyberZone2Owner
user    _cyberZone2Turns    0
user    _cyberZone3Defense
user    _cyberZone3Hacker
user    _cyberZone3Owner
user    _cyberZone3Turns    0
"Defense" is the "countermeasures" and "Hacker" is the hacker.
As described in the filedrawer; I don't change "blackhat" to "greyhat".
Should it? Should it be actual monster name, so you can to_monster() it?
Ryo said "countermeasures determines the Half-Way choice element."
$monster.defense_element() tells you that.
Another reason to make the hackers actual monster names.

And I added "Back to Network Map" links to zone 2 and zone 3 "You've already hacked this system" message.

So, things I still know about:

- track current RAM. It seems like a Modifier.
- track free fights (I made "_cyberFreeFights" property. I see a draft PR working on this issue.)
- adjust the "Hacker" values to be actual monster name
- collect HTML from fights and choices to use in tests for the Turns properties - and to see why Encounter parsing wasn't working?
- Update shoprows.txt and allshoprows.txt, now that The Dedigitizer coinmaster is complete.
- Finish canAdventure support in the Server Room to account for Turns used in each zone.
- Do we want some automatic way to open the filedrawer and thereby set the Owner/Defense/Hacker properties?

I added it to Breakfast.
 
I guess it doesn't show up with a name due to the HTML not matching (the name is set in code). Eventually I'll remember to get some debug HTML to fix it ;)
Referring to the Encounter name.

The issue seems to be that the name is within bold tags, but the name ends with a ctrl-M character, and we do not use DOTALL - or trim() - when extracting it.
 
Should breakfast also grab the datastick automatically if it hasn't been acquired this ascension?
 
I was just thinking that.

I am also considering looking at the file drawer, although it’s not really breakfasty, because we do need to parse it once a day in order to set properties.
 
Some observations on new mechanics:

1) The three different Half-Way choices can each have different Encounters, appropriate to the Elemental damage you will suffer if you collect 0s.
There appear to my multiple possibilities for each element and they can appear on any of the choices. Here is an example:

Code:
[1534] Cyberzone 1
Encounter: One Man's TRS-80
Took choice 1545/1: Search it anyway

[2522] Cyberzone 3
Encounter: One Man's TRS-80
Took choice 1549/1: Get 0 (32) and suffer stench damage

(Note that I added spoilers to tell you the reward and elemental damage.)

Another example:

Code:
[2007] Cyberzone 1
Encounter: Grave Secrets
Took choice 1545/1: Commence digging

[2503] Cyberzone 2
Encounter: The Skeleton Dance
Took choice 1547/1: Get 0 (16) and suffer spooky damage

I'm going to collect these and consider detecting the element name for the spoiler from the Encounter name, in case you'd not visited the file drawer yet - although that is now part of Breakfast.

2) The monsters can all appear in all three locations, but their stats scale differently

I have Manuel, so I collected some data yesterday:

Zone 1:

Hacker: scale: 3
Scale: 1
defense monster: HP: 55
normal monster: HP: 35

Zone 2:

Hacker: scale: 6
Scale: 4
defense monster: HP: 129, 120, 120, 122, 124, 128
normal monster: HP: 85, 81, 89, 80, 90, 86

Zone 3:

Hacker: scale: 9
Scale: 9
defense monster: HP 326, 356
normal monster: HP 236, 216, 215, 241, 243, 226, 222

I'll do a better job today and start collecting data by individual monster...

In any case, I'm not sure we have monster expressions that can handle "same monster in different zones with different stats" yet.
 
After a bunch of PRs, this all that I think is missing

1) Tracking free fights from OVERCLOCKED (10) skill.
There was an open PR for this, but the author closed it.
I'll get the digitizer schematic for it in two days and will buy the rom chip and get the skill.
If nobody has submitted code to support it before then, I'll start looking at it the next day.

2) The monsters, as I mentioned above, have new mechanics which I am not sure we can support, yet.
I'll continue gathering data on them, although I may not be the best one to adjust the monster expression language, should it come to that. :)

3) The Half-Way choice adventures have from 2-4 Encounters per element, that the Wiki knows about.
We now have choice spoilers for them that will use either what we parsed from the file drawer, or, as a backup, what we can deduce from the Encounter to tell you what element the damage will be for option 1.
- I expect that if 2 elements have 4 encounters, the other three should also have 4, rather than the two we know about.
- How much damage can be expected?
I run with a lot of elemental resistance from my Mu, which also does prismatic damage every round, making battles with all processes trivial, given my zero-trust tanktop, which was the very first schematic that dropped for me. Cyber rocks FTW. :)
 
Hashing vise (11826) when used leads to choiceadv 1551 Hashing with your vice
This has a dropdown menu with all of the dedigitizer schematics, and destroys them individually to give a total of 16x 1s and 0s (random). Behaves almost exactly like the crimbo candied egg deviler.
Could have a vise command to destroy more than one at a time, eg vise 11 cyburger
 
Seems reasonable.

The vise was not high on my list to get one of - the schematic won't come until Friday - but since you were kind enough to send me one, I guess I should work on this now? I certainly have excess schematics for the consumables, which I don't care about, to use as fuel.
 
Back
Top