loathers / autoscend

An ascension script for KoLMafia
Other
45 stars 66 forks source link

you robot support #934

Open taltamir opened 2 years ago

taltamir commented 2 years ago

adding support for You, Robot path. and track all the stuff that needs doing in it.

931 provided partial support. It can automate most of you robot with user needing to step in occasionally to do a thing.

TODO:

taltamir commented 2 years ago

Links: wiki scrapheap page: https://kol.coldfront.net/thekolwiki/index.php/The_Scrapheap wiki path page: https://kol.coldfront.net/thekolwiki/index.php/You,_Robot wiki strat page: https://kol.coldfront.net/thekolwiki/index.php/You,_Robot/Strategy mafia forums new content thread: https://kolmafia.us/threads/you-robot-spring-challenge-path.25870/

Mafia preferences I have found so far:

_chronolithActivations
_energyCollected
statbotUses
youRobotBody
youRobotBottom
youRobotCPUUpgrades
youRobotLeft
youRobotRight
youRobotTop

parts

parts notes:
//Top Attachment
//1, Pea Shooter, Deal 20 damage + 10% of your Mox, 5
//2, Bird Cage, Allows the use of a familiar, 5
//3, Solar Panel, Gain 1 energy after each fight, 5
//4, Mannequin Head, Allows you to equip a hat, 15
//5, Meat Radar, +50% Meat Drop, 30
//6, Junk Cannon, Spend 1 Scrap to deal 100% of your Moxie in damage, 30
//7, Tesla Blaster, Spend 1 Energy to deal 100% of your Moxie in damage, 30
//8, Snow Blower, Spend 1 energy to deal 100% of your Muscle in Cold damage, 40

//Left Arm. this is the weapon hand.
//kol devs drew it backwards. it says left arm but they drew it as right arm
//1, Pound-O-Tron, Deal 20 damage + 10% of your Mus, 5
//2, Reflective Shard, +3 Resistance to All Elements, 5
//3, Metal Detector, +30% Item Drop, 5
//4, Vice Grips, Allows you to equip a weapon, 15
//5, Sniper Rifle, Spend 1 Scrap to deal 100% of your Mysticality in damage, 30
//6, Junk Mace, Spend 1 Scrap to deal 100% of your Muscle in damage, 30
//7, Camoflage Curtain, -15% Combat Rate, 30
//8, Grease Gun, Spend 1 energy to deal 100% of your Moxie in Sleaze damage, 40

//Right Arm. this is the offhand.
//kol devs drew it backwards. it says right arm but they drew it as left arm
//1, Slab-O-Matic, +30 Maximum HP, 5
//2, Junk Shield, +10 DR, +50 DA, 5
//3, Horseshoe Magnet, +1 Scrap after each combat, 5
//4, Omni-Claw, Allows you to equip an offhand item, 15
//5, Mammal Prod, Spend 1 energy to deal 100% of your Myst in damage, 30
//6, Solenoid Piston, Spend 1 energy to deal 100% of your Mus in damage, 30
//7, Blaring Speaker, +30 ML, 30
//8, Surplus Flamethrower, Spend 1 energy to deal 100% of your Myst in hot damage, 40

//Propulsion System
//1, Bald Tires, +10 Maximum HP, 5
//2, Rocket Crotch, Deal 20 Hot Damage + 10% of your Myst, 5
//3, Motorcycle Wheel, +30% Combat Initiative, 5
//4, Robo-Legs, Allows you to equip pants, 15
//5, Magno-Lev, +30% Item Drop, 30
//6, Tank Treads, +50 Maximum HP, +10 DR, 30
//7, Snowplow, Gain 1 Scrap after each fight, 30

//CPU Upgrades
1. [Leverage Coprocessing] = +15 Buffed Muscle. costs 30 energy.
2. [Dynamic Arcane Flux Modeling] = +15 Buffed Mysticality. costs 30 energy.
3. [Upgraded Fashion Sensor] = +15 Buffed Moxie. costs 30 energy.
4. [Financial Neural Net] = +20% Meat Drops. costs 30 energy.
5. [Spatial Compression Functions] = +30 Maximum HP. costs 40 energy.
6. [Self-Repair Routines] = Regenerate +10 HP per Adventure. costs 40 energy.
7. [Weather Control Algorithms] = +2 Resistance to all elements. costs 40 energy.
8. [Improved Optical Processing] = +20% Item Drops. costs 40 energy.
9. [Topology Grid] = Allows you to equip shirts. costs 50 energy.
10. [Overclocking] = Gain 1 Energy per fight. costs 50 energy.
11. [Biomass Processing Function] = Allows use of potions. costs 50 energy.
12. [Holographic Deflector Projection] = +30 Maximum HP. costs 50 energy.
taltamir commented 2 years ago

is bonus from previous ascensions only for first step or for all steps?

collect energy is supposed to start at 25 (with bonus on first time) and go down by 15% per use. collecting some data to see how it is handled.

using a spreadsheet to calculate from the data below:

  1. confirmed NOT rounding up every step
  2. confirmed NOT rounding down every step
  3. confirmed NOT rounding normally every step?
  4. confirmed NOT rounding up only the final step?
  5. confirmed NOT rounding down only the final step?
  6. confirmed YES rounding normally only the final step?

ash import autoscend; LX_robot_get_energy();

[1] Collecting energy
You gain 25 Energy
Preference _energyCollected changed from 0 to 1

[2] Collecting energy
You gain 21 Energy
Preference _energyCollected changed from 1 to 2

[4] Collecting energy
You gain 18 Energy
Preference _energyCollected changed from 2 to 3

[5] Collecting energy
You gain 15 Energy
Preference _energyCollected changed from 3 to 4

[6] Collecting energy
You gain 13 Energy
Preference _energyCollected changed from 4 to 5

[7] Collecting energy
You gain 11 Energy
Preference _energyCollected changed from 5 to 6

[8] Collecting energy
You gain 9 Energy
Preference _energyCollected changed from 6 to 7

[9] Collecting energy
You gain 8 Energy
Preference _energyCollected changed from 7 to 8

[10] Collecting energy
You gain 7 Energy
Preference _energyCollected changed from 8 to 9

[11] Collecting energy
You gain 6 Energy
Preference _energyCollected changed from 9 to 10

[12] Collecting energy
You gain 5 Energy
Preference _energyCollected changed from 10 to 11

[13] Collecting energy
You gain 4 Energy
Preference _energyCollected changed from 11 to 12

[14] Collecting energy
You gain 4 Energy
Preference _energyCollected changed from 12 to 13

[15] Collecting energy
You gain 3 Energy
Preference _energyCollected changed from 13 to 14

[16] Collecting energy
You gain 3 Energy
Preference _energyCollected changed from 14 to 15

[17] Collecting energy
You gain 2 Energy
Preference _energyCollected changed from 15 to 16
taltamir commented 2 years ago

Statbot 5000 costs 10 + X. where X is number of times it was used this ascension The minimum stats you absolutely must have to finish the ascension are 142 mainstat, 70 mys, 70 mox. classes start with 30/20/10 distribution of stats based on class.

Mys and mox classes need 32 purchases from statbot. which if my math is right will cost 832 energy. Mus is worse off since they need 40 buys instead of 32 buys. which by my calculations is 1200 energy. This is a lot of energy.

with overclocked process (+1 energy per combat) and solar panel (+1 energy per combat) if we grind those stats in the haunted bedroom we will get a pretty decent cycle of gaining energy and then spending that energy we gained on adventures. if we grind there until mys and mox are at 70 we should need about 15 (or maybe less) statbot uses. if 15 then I estimate 262.5 energy cost. energy initially converts at 1:1 ratio to adventures. but increases in cost each time used. with a softcap at 37 conversions a day (afterwhich it doubles). at the softcap the conversion rate is 4.7 energy to 1 adv.

The first 200 adv per day pay for themselves with the two above mentioned upgrades. and you can get a good deal more thanks to the earlier improved efficiency.

edit: 62 mus for machete is welcome as well for 15 adv saved. but not absolutely necessary to finish the run

taltamir commented 2 years ago

To find out the urls of the various buttons you can use cpu:

ash print(""); print("Grabbing CPU page"); print(""); string page = visit_url("choice.php?whichchoice=1445&show=cpus"); print(page);

top:

ash print(""); print("Grabbing Top page"); print(""); ash string page = visit_url("choice.php?whichchoice=1445&show=top"); print(page);

then check your session log for the page text and search for value= it will appear in the format of value="upgrade" and you want the upgrade string

cpu is the only one that uses words. the rest just use an int that matches their order

taltamir commented 2 years ago

I think our pathing should be:

  1. reach second floor in spookyraven for powerleveling. switching to generalist attachments. also do leaflet ASAP
  2. start war ASAP to unlock flyering. requires switching bottom to legs and top to hat. while having those attachments do extreme slope (hardcore only) and gobbot king (everyone).
  3. do other quests as available using generalist attachments.
  4. switch right hand to offhand slot for desert. with right iotm familiars switch top to bird cage. chain this into
  5. muscle classes only. switch top to snow blower for blech houses. everyone already has weapon slot for hatchet. load stone might require right hand switch
  6. Unstable Fulminate?
  7. switch back to legs to finish war
  8. switch right hand to Blaring Speaker for +30 ML to do oil peak and defiled cranny. waiting for #935 before it can be implemented in oil peak NOT implemented due to autoscend issue. L7 is currently a single megafunction boolean L7_crypt() which needs to be broken up and refactored before this is realistic to do.
  9. switch bottom motorcycle wheel for tower tests
  10. switch bottom to tank for tower

As for PR #931 I implemented most of it. except 7. which needs other fixes to come first and is beyond the scope of that PR

taltamir commented 2 years ago

energy collection seems to have some variance to it. day 1 of my first ascension

[1] Collecting energy
You gain 25 Energy
Preference _energyCollected changed from 0 to 1

[2] Collecting energy
You gain 21 Energy
Preference _energyCollected changed from 1 to 2

day 5 of my first ascension

[1204] Collecting energy
You gain 25 Energy
Preference _energyCollected changed from 0 to 1

[1205] Collecting energy
You gain 22 Energy
Preference _energyCollected changed from 1 to 2

day 1 of my 2nd acension

[1] Collecting energy
You gain 26 Energy
Preference _energyCollected changed from 0 to 1

[2] Collecting energy
You gain 22 Energy
Preference _energyCollected changed from 1 to 2

How come the 1st ascension went up from 21 to 22 on the 2nd collect?

also on the first day of 1st ascension I had a prediction of 4 and got 3 for my last collect. I thought it was some bug I am unable to find with my prediction. but turns out it is just some weird wobble. anyways increasing the initial energy collection definitely increases the subsequent collections too. on the 2nd ascension many of my collects are higher than expected

putting it in a spreadsheet. the bonus from ascension points really does boost every energy collection done then at the max of 37 ascension points you can expect to spend 18 adv each day collecting energy to get 390 energy. then you can expect to spend 370 adventures to get as much as 1110 energy. unlikely though since noncombats and combat losses do not give energy. and sometimes you need to remove the solar panel which reduces gains per fight from 3 to 2.

taltamir commented 2 years ago

Mafia issues

unfixed

  1. https://kolmafia.us/threads/you-robot-spring-challenge-path.25870/page-4#post-165019 maximizer thinks that muscle provides HP to robots. no workaround currently and this causes some issues such as automating aboo peak

  2. https://kolmafia.us/threads/you-robot-spring-challenge-path.25870/page-4#post-164964 mafia has some tracking issues with quests in this path. currently handled via the workaround of enabling paranoia mode (we refresh quests from quest log every turn)

Already fixed

fixed upstream r25759 (or maybe r25758. someone mixed up their commit messages when squashing and merging on github): https://kolmafia.us/threads/you-robot-spring-challenge-path.25870/page-4#post-164832 https://kolmafia.us/threads/you-robot-spring-challenge-path.25870/page-4#post-164833 https://kolmafia.us/threads/you-robot-spring-challenge-path.25870/page-4#post-164834

fixed upstream r25774 https://github.com/kolmafia/kolmafia/pull/109 https://github.com/kolmafia/kolmafia/releases/tag/r25774 https://kolmafia.us/threads/you-robot-spring-challenge-path.25870/page-4#post-164853 https://kolmafia.us/threads/you-robot-spring-challenge-path.25870/page-4#post-164841

fixed upstream r25791 https://github.com/kolmafia/kolmafia/pull/134

taltamir commented 2 years ago

interesting. I can confirm that robots do in fact get extra adv overnight from equipment. since they are only supposed to get 40 energy by default I was wondering if this disable getting equipment adv on rollover.

with this equipped

equip weapon chrome sword (+3 adv)
equip shirt shoe ad T-shirt (+3 adv)
equip acc1 tiny plastic Mirth (+3 adv)
equip acc2 Boots of Twilight Whispers (+3 adv)
equip acc3 gold skull ring (+7 pvp)

my robot went from 1 adv left to 13 adv on the next day. which is exactly the expected amount

jle30303 commented 1 year ago

I discovered a weirdness, which seems to be only applicable to softcore with the Buddy Bjorn (and of course, was not discoverable while the path was in-season, because of the Bjorn being well out of Standard):

If you do not currently have the "Bird Cage" enhancement, of course you can't use familiars.

This also means you can't put a familiar in the Buddy Bjorn.

But, if you have bjornified a familiar while you had that enhancement, you can equip the Bjorn itself, even after you switch enhancements and no longer have the Bird Cage enhancement, because back items can be equipped at any time.

The trouble comes, when autoscend tries to switch the Bjornified familiar to a different one, while you don't have the relevant attachment: it then can't switch familiars, and aborts and won't carry on going.

(I had to workaround this issue by removing the familiar that was in the Bjorn - which was possible, although replacing it was not - and sticking the Bjorn in my display case so that it wasn't available for use.)

Suggestion: either it should switch attachments (and be willing and able to consume scrap to do this) to allow itself to switch to a different Bjornified familiar, or it should not attempt to use the Buddy Bjorn at all in "You, Robot". Or, at the very least, having failed to switch familiars, it should default to "carry on regardless without switching the bjornified familiar" rather than "abort". To be honest, I think "don't use the Bjorn" might be the easiest way.