Advertisement
Guest User

Untitled

a guest
Feb 13th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 71.56 KB | None | 0 0
  1. import "tf_lib.ash"
  2. string scriptname = "tf_cs";
  3. string scriptversion = "1.0";
  4.  
  5. boolean use_borrowed = true;
  6. boolean do_pvp = true;
  7.  
  8. // Well apparently there's no better way to do this, so screw it
  9. string cs_all_macro = "scrollwhendone; sub weak_stag; if beenhit 1 || beenhit 2 || beenhit 3 || beenhit 4 || beenhit 5; # reset beenhit counter (is there a better way to do this?); endif; if hasskill curse of weaksauce; skill curse of weaksauce; endif; if beenhit 1; # Monster not staggered, kill it!; skill saucegeyser; repeat; endif; if hasskill micrometeorite; skill micrometeorite; endif; if hascombatitem Time-Spinner; use Time-Spinner; endif; if hasskill entangling noodles; skill entangling noodles; endif; if hasskill cowboy kick; skill cowboy kick; endif; if hasskill compress; skill compress; endif; endsub; ; sub try_banish1; if hasskill Asdon Martin: Spring-Loaded Front Bumper; skill asdon martin: spring-loaded front bumper; endif; if hasskill Snokebomb; skill snokebomb; endif; if hasskill KGB tranquilizer dart; skill kgb tranquilizer dart; endif; endsub; ; sub try_banish2; if hasskill Asdon Martin: Spring-Loaded Front Bumper; skill asdon martin: spring-loaded front bumper; endif; if hasskill KGB tranquilizer dart; skill kgb tranquilizer dart; endif; if hasskill Snokebomb; skill snokebomb; endif; endsub; ; if monstername The Icewoman || monstername The ghost of Lord Montague Spookyraven || monstername the ghost of Monsieur Baguelle || monstername The Headless Horseman; skill extract; skill shoot ghost; skill shoot ghost; skill shoot ghost; skill trap ghost; endif; ; abort hppercentbelow 20; ; if monstername spooky gravy fairy ninja; if hasskill shattering punch; skill shattering punch; endif; runaway; endif; ; if monstername novelty tropical skeleton || monstername amateur ninja || monstername sk8 gnome; if hasskill extract; skill extract; endif; skill shattering punch; endif; ; if monstername ancient insane monk || monstername Ferocious bugbear || monstername spooky gravy fairy guard; call try_banish1; runaway; endif; ; if monstername gelatinous cube || monstername Knob Goblin poseur || monstername spooky gravy fairy warlock; call try_banish2; runaway; endif; ; if monstername remaindered skeleton || match Fratskirt.gif; call try_banish1; call weak_stag; skill saucegeyser; endif; ; if monstername Orcish Frat Boy; skill toss; if match \"He whips out a frat-paddle and hits you\" || match \"He hands you a feather duster\" || match \"He pulls out a bra\" || match \"He beans you in the\" || match \"He swings his frat-paddle\" || match \"He winds up and smacks you\" || match \"He tries to get you\" || match \"He throws a can of Sir Schlitz\" || match \"He whips out his frat-paddle and prepares\"; skill asdon martin: missile launcher; endif; call try_banish2; endif; ; if monstername factory-irregular skeleton || monstername swarm of skulls; call try_banish2; call weak_stag; skill saucegeyser; endif; ; if monstername Eldritch Tentacle; skill Stuffed Mortar Shell ; skill Saucegeyser; repeat; endif; ; if monstername knob goblin embezzler; if hasskill Fire a badly romantic arrow; skill Fire a badly romantic arrow; endif; if hasskill digitize; skill digitize; endif; call weak_stag; skill Extract; if hasskill meteor shower; skill meteor shower; endif; skill Saucegeyser; repeat; endif; ; if monstername LOV Enforcer; if !mpbelow 40; call weak_stag; endif; skill Stuffed Mortar Shell ; skill Extract; if hasskill saucegeyser; skill Saucegeyser; endif; if hasskill compress; skill compress; endif; if hasskill cannelloni cannon; skill cannelloni cannon; endif; endif; ; if monstername LOV Engineer ; call weak_stag; skill Extract; use exploding cigar, exploding cigar; attack; repeat; endif; ; call weak_stag; if !match \"Cattle Prod\" && hasskill Stuffed Mortar Shell; skill Stuffed Mortar Shell; endif; if !match \"Cattle Prod\" && hasskill extract; skill extract; endif; skill Saucegeyser; repeat;";
  10.  
  11. void use_hipster(){
  12. if(my_daycount() == 2){
  13. // TODO: hipster equipment?
  14. if(get_property("_hipsterAdv").to_int() < 5){
  15. use_familiar($familiar[Mini-Hipster]);
  16. } else {
  17. use_familiar($familiar[Baby Sandworm]);
  18. }
  19. }
  20. }
  21.  
  22. void heal(){
  23. if(my_hp() < my_maxhp()){
  24. if(get_property("_hotTubSoaks").to_int() < 5){
  25. cli_execute("soak");
  26. } else {
  27. use_skill(1, $skill[Cannelloni Cocoon]);
  28. }
  29. }
  30. }
  31.  
  32. void heal_threshold(int threshold, boolean use_tub){
  33. if(my_hp() < threshold){
  34. if(use_tub && get_property("_hotTubSoaks").to_int() < 5){
  35. cli_execute("soak");
  36. } else {
  37. use_skill(1, $skill[Cannelloni Cocoon]);
  38. }
  39. }
  40. }
  41.  
  42. void get_potion(effect eff, item potion){
  43. if(have_effect(eff) < 1){
  44. if(item_amount(potion) < 1){
  45. cli_execute("make "+potion);
  46. }
  47. use(1, potion);
  48. }
  49. }
  50. // TODO: improve this
  51. void get_potion_ingr(effect eff, item potion, item ingredient){
  52. if(have_effect(eff) < 1){
  53. if(item_amount(potion) < 1){
  54. if(item_amount(ingredient) < 1) return;
  55. cli_execute("make "+potion);
  56. }
  57. use(1, potion);
  58. }
  59. }
  60.  
  61. // Make sugar item if we don't already have one
  62. void create_sugar_item(string it_string){
  63. item it;
  64.  
  65. if(contains_text(it_string, "sugar")){
  66. it = it_string.to_item();
  67. if(available_amount(it) > 0){
  68. // Make sure the item isn't equiped
  69. if(item_amount(it) < 1 && have_equipped(it)){
  70. cli_execute("unequip "+it_string);
  71. }
  72. } else {
  73. cli_execute("make "+it_string);
  74. }
  75. }
  76. }
  77.  
  78. void do_synthesis(effect eff){
  79. item it1, it2;
  80.  
  81. if(have_effect(eff) < 1){
  82. if(eff == $effect[Synthesis: Collection]){
  83. // Check that we did this right
  84. if(sweet_synthesis_result(get_property("_candy1_for_item").to_item(), get_property("_candy2_for_item").to_item()) != $effect[Synthesis: Collection]){
  85. abort("Problem with synthesizing Collection! Check preferences to see what's wrong");
  86. }
  87. create_sugar_item(get_property("_candy2_for_item"));
  88. sweet_synthesis(get_property("_candy1_for_item").to_item(), get_property("_candy2_for_item").to_item());
  89. } else if(eff == $effect[Synthesis: Learning]){
  90. // Check that we did this right
  91. if(sweet_synthesis_result(get_property("_candy1_for_mystg").to_item(), get_property("_candy2_for_mystg").to_item()) != $effect[Synthesis: Learning]){
  92. abort("Problem with synthesizing Learning! Check preferences to see what's wrong");
  93. }
  94. create_sugar_item(get_property("_candy2_for_mystg"));
  95. sweet_synthesis(get_property("_candy1_for_mystg").to_item(), get_property("_candy2_for_mystg").to_item());
  96. } else if(eff == $effect[Synthesis: Smart]){
  97. // No sugar sheet, hope we have the right candy heart
  98. if(get_property("_candy_for_myst") == "none"){
  99. cli_execute("synthesize "+eff);
  100. } else {
  101. // Create the right sugar item depending on what we need
  102. if(item_amount($item[white candy heart]) > 0){
  103. create_sugar_item("sugar shorts");
  104. it1 = $item[white candy heart];
  105. it2 = $item[sugar shorts];
  106. } else if(item_amount($item[green candy heart]) > 0){
  107. create_sugar_item("sugar shorts");
  108. it1 = $item[green candy heart];
  109. it2 = $item[sugar shorts];
  110. } else if(item_amount($item[pink candy heart]) > 0){
  111. it1 = $item[pink candy heart];
  112. it2 = $item[sugar sheet];
  113. } else if(item_amount($item[orange candy heart]) > 0){
  114. create_sugar_item("sugar shank");
  115. it1 = $item[orange candy heart];
  116. it2 = $item[sugar shank];
  117. } else if(item_amount($item[lavender candy heart]) > 0){
  118. create_sugar_item("sugar shillelagh");
  119. it1 = $item[lavender candy heart];
  120. it2 = $item[sugar shillelagh];
  121. } else if(item_amount($item[yellow candy heart]) > 0){
  122. create_sugar_item("sugar shotgun");
  123. it1 = $item[yellow candy heart];
  124. it2 = $item[sugar shotgun];
  125. }
  126. if(sweet_synthesis_result(it1, it2) != $effect[Synthesis: Smart]){
  127. abort("Problem with synthesizing Smart! Items are "+it1+" and "+it2);
  128. }
  129. sweet_synthesis(it1, it2);
  130. }
  131. } else {
  132. // TODO : do day 2 checks
  133. cli_execute("synthesize "+eff);
  134. }
  135. }
  136. if(have_effect(eff) < 1){
  137. abort("Sweet synthesis didn't work! :(");
  138. }
  139. }
  140.  
  141. void equip_garbage_item(item it){
  142. if(have_equipped($item[makeshift garbage shirt])){
  143. equip($slot[shirt], $item[none]);
  144. } else if(have_equipped($item[broken champagne bottle])){
  145. equip($slot[weapon], $item[none]);
  146. } else if(have_equipped($item[wad of used tape])){
  147. equip($slot[hat], $item[none]);
  148. }
  149.  
  150. if(item_amount($item[makeshift garbage shirt]) > 0 || item_amount($item[broken champagne bottle]) > 0 || item_amount($item[wad of used tape]) > 0){
  151. cli_execute("fold "+it);
  152. }
  153. if(item_amount(it) > 0){
  154. equip(it);
  155. }
  156. }
  157.  
  158. // TODO: use buff potions that may have randomly dropped from the snowglobe
  159. void buff_all(){
  160. // Bee's knees
  161. if(have_effect($effect[On the Trolley]) < 1 && inebriety_limit() - my_inebriety() >= 2){
  162. if(have_effect($effect[Ode to booze]) < 2){
  163. cli_execute("cast ode");
  164. }
  165. cli_execute("drink 1 Bee's Knees");
  166. }
  167.  
  168. // Songs
  169. if(have_effect($effect[Ode to booze]) > 0){
  170. cli_execute("shrug Ode to booze");
  171. }
  172. get_buff($effect[Stevedave's Shanty of Superiority], $skill[Stevedave's Shanty of Superiority]);
  173.  
  174. // Sauce potions
  175. get_potion($effect[Tomato Power], $item[tomato juice of powerful power]);
  176. get_potion_ingr($effect[Gr8tness], $item[potion of temporary gr8tness], $item[gr8ps]);
  177.  
  178. // Scope and protonic pack
  179. if(have_effect($effect[Total Protonic Reversal]) < 1 && !get_property("_streamsCrossed").to_boolean()){
  180. cli_execute("crossstreams");
  181. }
  182. if(have_effect($effect[Starry-Eyed]) < 1 && !get_property("telescopeLookedHigh").to_boolean()){
  183. cli_execute("telescope high");
  184. }
  185.  
  186. // Spacegate vaccine
  187. if(have_effect($effect[Broad-Spectrum Vaccine]) < 1 && !get_property("_spacegateVaccine").to_boolean() && get_property("spacegateVaccine2").to_boolean()){
  188. cli_execute("Spacegate vaccine 2");
  189. }
  190. }
  191.  
  192. void buff_myst(){
  193. // Sweet synthesis
  194. do_synthesis($effect[Synthesis: Smart]);
  195.  
  196. buff_all();
  197.  
  198. get_buff($effect[The Magical Mojomuscular Melody], $skill[The Magical Mojomuscular Melody]);
  199. get_buff($effect[Quiet Judgement], $skill[Quiet Judgement]);
  200.  
  201. // Sauce potions
  202. get_potion($effect[Mystically Oiled], $item[ointment of the occult]);
  203.  
  204. // Mascara
  205. if(have_effect($effect[Glittering Eyelashes]) < 1){
  206. cli_execute("use 1 glittery mascara");
  207. }
  208.  
  209. // Semi-rare
  210. if(item_amount($item[teeny-tiny magic scroll]) > 0 && have_effect($effect[Happy Trails]) < 1){
  211. use(1, $item[teeny-tiny magic scroll]);
  212. }
  213. }
  214.  
  215. void buff_moxie(){
  216. buff_all();
  217.  
  218. // Buffs
  219. get_buff($effect[The Moxious Madrigal], $skill[The Moxious Madrigal]);
  220. get_buff($effect[Quiet Desperation], $skill[Quiet Desperation]);
  221.  
  222. // Sauce potions
  223. get_potion($effect[Superhuman Sarcasm], $item[serum of sarcasm]);
  224. get_potion($effect[Expert Oiliness], $item[oil of expertise]);
  225.  
  226. // Sometimes you get lucky
  227. if(item_amount($item[pressurized potion of pulchritude]) > 0 && have_effect($effect[Pulchritudinous Pressure]) < 1){
  228. use(1, $item[pressurized potion of pulchritude]);
  229. }
  230.  
  231. // Hair spray
  232. if(have_effect($effect[Butt-Rock Hair]) < 1){
  233. cli_execute("use 1 hair spray");
  234. }
  235.  
  236. // Sweet synthesis
  237. do_synthesis($effect[Synthesis: Cool]);
  238.  
  239. // Myst quest reward
  240. if(item_amount($item[pocket maze]) > 0 && have_effect($effect[Amazing]) < 1){
  241. use(1, $item[pocket maze]);
  242. }
  243. }
  244.  
  245. void buff_muscle(){
  246. buff_all();
  247.  
  248. // Buffs
  249. get_buff($effect[Rage of the Reindeer], $skill[Rage of the Reindeer]);
  250. get_buff($effect[Power Ballad of the Arrowsmith], $skill[The Power Ballad of the Arrowsmith]);
  251. get_buff($effect[Quiet Determination], $skill[Quiet Determination]);
  252.  
  253. // Sauce potions
  254. get_potion($effect[Phorcefullness], $item[philter of phorce]);
  255. get_potion($effect[Expert Oiliness], $item[oil of expertise]);
  256.  
  257. // Bengal
  258. if(have_effect($effect[Go Get 'Em, Tiger!]) < 1){
  259. cli_execute("use 1 Ben-Gal Balm");
  260. }
  261.  
  262. // Semi-rare
  263. if(item_amount($item[bottle of rhinoceros hormones]) > 0 && have_effect($effect['Roids of the Rhinoceros]) < 1){
  264. use(1, $item[bottle of rhinoceros hormones]);
  265. }
  266.  
  267. // Sweet synthesis
  268. do_synthesis($effect[Synthesis: Strong]);
  269.  
  270. // Moxie quest reward
  271. if(item_amount($item[shady shades]) > 0 && have_effect($effect[Throwing Some Shade]) < 1){
  272. use(1, $item[shady shades]);
  273. }
  274. }
  275.  
  276. void buff_hp(){
  277. // Sweet synthesis
  278. do_synthesis($effect[Synthesis: Hardy]);
  279.  
  280. // Oil of expertise
  281. get_potion($effect[Expert Oiliness], $item[oil of expertise]);
  282.  
  283. // Buffs
  284. get_buff($effect[Reptilian Fortitude], $skill[Reptilian Fortitude]);
  285. get_buff($effect[A Few Extra Pounds], $skill[Holiday Weight Gain]);
  286. get_buff($effect[Rage of the Reindeer], $skill[Rage of the Reindeer]);
  287. get_buff($effect[Power Ballad of the Arrowsmith], $skill[The Power Ballad of the Arrowsmith]);
  288.  
  289. // Bengal
  290. if(have_effect($effect[Go Get 'Em, Tiger!]) < 1){
  291. cli_execute("use 1 Ben-Gal Balm");
  292. }
  293. }
  294.  
  295. void buff_spell(){
  296. // Buy and cast simmer
  297. if(!have_skill($skill[simmer])){
  298. visit_url("guild.php?place=trainer");
  299. visit_url("guild.php?action=buyskill&skillid=25", true);
  300. }
  301. if(have_effect($effect[Simmering]) < 1){
  302. use_skill(1, $skill[simmer]);
  303. }
  304.  
  305. // Buffs
  306. get_buff($effect[Jackasses' Symphony of Destruction], $skill[Jackasses' Symphony of Destruction]);
  307.  
  308. // Marble soda
  309. if(item_amount($item[tobiko marble soda]) > 0 || item_amount($item[Ye Wizard's Shack snack voucher]) > 0 && have_effect($effect[Pisces in the Skyces]) < 1){
  310. cli_execute("use 1 tobiko marble soda");
  311. }
  312.  
  313. // Sugar chapeau
  314. if(item_amount($item[sugar sheet]) > 0 && available_amount($item[sugar chapeau]) < 1){
  315. cli_execute("make sugar chapeau");
  316. }
  317.  
  318. // Affirmation
  319. if(item_amount($item[Daily affirmation: Be a Mind Master]) > 0){
  320. use(1, $item[Daily affirmation: Be a Mind Master]);
  321. }
  322.  
  323. // Pool
  324. if(get_property("_poolGames").to_int() < 3 && have_effect($effect[Mental A-cue-ity]) < 1){
  325. cli_execute("pool 2");
  326. }
  327. }
  328.  
  329. void buff_meat(){
  330. // Hobo monkey
  331. use_familiar($familiar[hobo monkey]);
  332.  
  333. // Buffs
  334. get_buff($effect[Leash of linguini], $skill[Leash of linguini]);
  335. get_buff($effect[Empathy], $skill[Empathy of the Newt]);
  336. get_buff($effect[Polka of Plenty], $skill[The Polka of Plenty]);
  337.  
  338. cli_execute("maximize meat");
  339. // Garbage hat
  340. equip_garbage_item($item[wad of used tape]);
  341. }
  342.  
  343. void fuel_asdon(int fuel_level){
  344. int bread_needed;
  345.  
  346. while(get_fuel() < fuel_level){
  347. // Calculate how many loaves of bread are needed
  348. bread_needed = (fuel_level - get_fuel()) / 5;
  349. if(bread_needed == 0) bread_needed = 1;
  350.  
  351. // Make them, minus the number we may already have
  352. cli_execute("make "+to_int(bread_needed - item_amount($item[loaf of soda bread]))+" loaf of soda bread");
  353. // Fuel the car
  354. cli_execute("asdonmartin fuel "+to_int(bread_needed)+" loaf of soda bread");
  355. }
  356. }
  357.  
  358. void buff_weight(){
  359. // Buffs
  360. get_buff($effect[Leash of linguini], $skill[Leash of linguini]);
  361. get_buff($effect[Empathy], $skill[Empathy of the Newt]);
  362.  
  363. // Play pool (+weight)
  364. if(get_property("_poolGames").to_int() < 3 && have_effect($effect[Billiards Belligerence]) < 1){
  365. cli_execute("pool 1");
  366. }
  367.  
  368. // Use candy heart if we have more than 1
  369. cli_execute("cast * candy heart");
  370. if(item_amount($item[green candy heart]) > 1 && have_effect($effect[Heart of Green]) < 1){
  371. use(1, $item[green candy heart]);
  372. }
  373.  
  374. // Use sandworm, equip pet sweater
  375. use_familiar($familiar[baby sandworm]);
  376. }
  377.  
  378. void buff_noncom_quest(){
  379. // Buffs
  380. if(have_effect($effect[Carlweather's cantata of confrontation]) > 0){
  381. cli_execute("shrug Carlweather's cantata of confrontation");
  382. }
  383. get_buff($effect[the sonata of sneakiness], $skill[the sonata of sneakiness]);
  384. get_buff($effect[Smooth Movements], $skill[Smooth Movement]);
  385.  
  386. // Asdon
  387. if(have_effect($effect[Driving Stealthily]) < 1){
  388. fuel_asdon(37);
  389. cli_execute("asdonmartin drive Stealthily");
  390. }
  391.  
  392. // Swim sprints
  393. if(have_effect($effect[Silent Running]) < 1){
  394. cli_execute("swim sprints");
  395. }
  396.  
  397. // KGB
  398. cli_execute("briefcase e spell hot -combat");
  399.  
  400. // Horse
  401. if(!contains_text(get_property("_horsery"), "Combat Rate")){
  402. visit_url("place.php?whichplace=town_right&action=town_horsery");
  403. visit_url("choice.php?pwd=&whichchoice=1266&option=2", true);
  404. }
  405.  
  406. // Quest reward
  407. if(have_effect($effect[A Rose by Any Other Material]) < 1 && item_amount($item[squeaky toy rose]) > 0){
  408. use(1, $item[squeaky toy rose]);
  409. }
  410.  
  411. // Genie wish
  412. if(get_property("_genieWishesUsed").to_int() < 3 && have_effect($effect[disquiet riot]) < 1){
  413. cli_execute("genie effect disquiet riot");
  414. }
  415.  
  416. // Deodorant
  417. if(have_effect($effect[Fresh Scent]) < 1 && item_amount($item[deodorant]) > 0){
  418. use(1, $item[deodorant]);
  419. }
  420. }
  421.  
  422. void buff_melee_dmg(){
  423. // Buffs
  424. get_buff($effect[Jackasses' Symphony of Destruction], $skill[Jackasses' Symphony of Destruction]);
  425. get_buff($effect[Rage of the Reindeer], $skill[Rage of the Reindeer]);
  426.  
  427. // Marble soda
  428. if((item_amount($item[wasabi marble soda]) > 0 || item_amount($item[Ye Wizard's Shack snack voucher]) > 0) && have_effect($effect[Wasabi With You]) < 1){
  429. cli_execute("use 1 wasabi marble soda");
  430. }
  431.  
  432. // Play pool (+weight)
  433. if(get_property("_poolGames").to_int() < 3 && have_effect($effect[Billiards Belligerence]) < 1){
  434. cli_execute("pool 1");
  435. }
  436. }
  437.  
  438. void buff_hot_res(){
  439. // Sweet synthesis
  440. do_synthesis($effect[Synthesis: Hot]);
  441.  
  442. // Buffs
  443. get_buff($effect[Astral Shell], $skill[Astral Shell]);
  444. get_buff($effect[Elemental Saucesphere], $skill[Elemental Saucesphere]);
  445.  
  446. // Asdon
  447. if(have_effect($effect[Driving Safely]) < 1){
  448. fuel_asdon(37);
  449. cli_execute("asdonmartin drive safely");
  450. }
  451.  
  452. // Ish kabibble
  453. if(my_inebriety() <= 12 && have_effect($effect[Feeling No Pain]) < 1){
  454. get_buff($effect[Ode to Booze], $skill[The Ode to Booze]);
  455. cli_execute("drink 1 ish kabibble");
  456. }
  457.  
  458. // Horse
  459. if(!contains_text(get_property("_horsery"), "Elemental")){
  460. visit_url("place.php?whichplace=town_right&action=town_horsery");
  461. visit_url("choice.php?pwd=&whichchoice=1266&option=4", true);
  462. }
  463.  
  464. // Spacegate vaccine
  465. if(have_effect($effect[Rainbow Vaccine]) < 1 && !get_property("_spacegateVaccine").to_boolean() && get_property("spacegateVaccine1").to_boolean()){
  466. cli_execute("Spacegate vaccine 1");
  467. }
  468. }
  469.  
  470. void buff_items_and_booze(){
  471. // Sweet synthesis
  472. do_synthesis($effect[Synthesis: Collection]);
  473.  
  474. // Buffs
  475. get_buff($effect[Fat Leon's Phat Loot Lyric], $skill[Fat Leon's Phat Loot Lyric]);
  476. get_buff($effect[Singer's Faithful Ocelot], $skill[Singer's Faithful Ocelot]);
  477.  
  478. // Pool
  479. if(get_property("_poolGames").to_int() < 3 && have_effect($effect[Hustlin']) < 1){
  480. cli_execute("pool 3");
  481. }
  482.  
  483. // Terminal
  484. if(get_property("_sourceTerminalEnhanceUses").to_int() < 3 && have_effect($effect[items.enh]) < 1){
  485. cli_execute("terminal enhance items.enh");
  486. }
  487.  
  488. // Asdon
  489. if(have_effect($effect[Driving Observantly]) < 1){
  490. fuel_asdon(37);
  491. cli_execute("asdonmartin drive Observantly");
  492. }
  493.  
  494. // Genie
  495. if(get_property("_genieWishesUsed").to_int() < 3 && have_effect($effect[Infernal thirst]) < 1){
  496. cli_execute("genie effect Infernal thirst");
  497. }
  498.  
  499. // Cyclops eyedrops
  500. if(have_effect($effect[One Very Clear Eye]) < 1 && item_amount($item[cyclops eyedrops]) > 0){
  501. use(1, $item[cyclops eyedrops]);
  502. }
  503.  
  504. // Squint
  505. if(!get_property("_steelyEyedSquintUsed").to_boolean() && have_effect($effect[Steely-Eyed Squint]) < 1){
  506. use_skill(1, $skill[Steely-Eyed Squint]);
  507. }
  508. }
  509.  
  510. void maximize_stash(string opts, boolean use_stash){
  511. string prop_val = get_property("autoSatisfyWithStash");
  512. set_property("autoSatisfyWithStash", use_stash);
  513. cli_execute("maximize "+opts);
  514. set_property("autoSatisfyWithStash", prop_val);
  515. }
  516.  
  517. void buff_coms(){
  518. maximize_stash("+combat", false);
  519.  
  520. if(have_effect($effect[The Sonata of Sneakiness]) > 0){
  521. cli_execute("shrug The Sonata of Sneakiness");
  522. }
  523. if(have_effect($effect[musk of the moose]) < 1){
  524. use_skill(1, $skill[musk of the moose]);
  525. }
  526. if(have_effect($effect[Carlweather's cantata of confrontation]) < 1){
  527. use_skill(1, $skill[Carlweather's cantata of confrontation]);
  528. }
  529. }
  530.  
  531. void kgb_buff(effect eff){
  532. string eff_string;
  533.  
  534. switch(eff){
  535. case $effect[Thunderspell]:
  536. eff_string = "myst";
  537. break;
  538. case $effect[Goldentongue]:
  539. eff_string = "moxie";
  540. break;
  541. case $effect[License to Punch]:
  542. eff_string = "muscle";
  543. break;
  544. case $effect[Items are forever]:
  545. eff_string = "item";
  546. break;
  547. }
  548.  
  549. // Try to get the buff we're looking for
  550. while(have_effect(eff) < 1 && get_property("_kgbClicksUsed").to_int() <= 21){
  551. cli_execute("briefcase buff "+eff_string);
  552. }
  553. }
  554.  
  555. void get_once_day(){
  556. if(!get_property("_perfectFreezeUsed").to_boolean()){
  557. use_skill(1, $skill[perfect freeze]);
  558. }
  559. if(get_property("grimoire2Summons").to_int() == 0){
  560. use_skill(1, $skill[Summon Tasteful Items]);
  561. }
  562. // TODO: use foot massage oil
  563. if(get_property("grimoire3Summons").to_int() == 0){
  564. use_skill(1, $skill[Summon Alice's Army Cards]);
  565. }
  566. if(get_property("cocktailSummons").to_int() == 0){
  567. use_skill(1, $skill[Advanced cocktailcrafting]);
  568. }
  569. if(get_property("reagentSummons").to_int() == 0){
  570. use_skill(1, $skill[Advanced saucecrafting]);
  571. }
  572. if(get_property("noodleSummons").to_int() == 0){
  573. use_skill(1, $skill[Pastamastery]);
  574. }
  575. if(get_property("_candySummons").to_int() == 0){
  576. use_skill(1, $skill[Summon crimbo candy]);
  577. }
  578. }
  579.  
  580. void do_lov(){
  581. int mp_req;
  582. string page;
  583.  
  584. // Set terminal
  585. cli_execute("terminal educate extract");
  586. cli_execute("terminal educate compress");
  587.  
  588. // Heal (probably with hot tub)
  589. heal();
  590.  
  591. // Make sure we have enough mp to cast mortar, extract, compress and cannon
  592. mp_req = 8 + 5 + 5 + 8 + 4*numeric_modifier("mana cost") + 5;
  593. if(my_mp() < mp_req){
  594. restore_mp(mp_req);
  595. }
  596.  
  597. // Enforcer: mortar, compress and cannon
  598. // Engineer: weaksauce, micrometeor, time-spinner, noodles, cow-bow boots, compress, cigar + cigar, toss
  599. // Last guy: mortar, geyser
  600. // cli_execute("/aa cs_all");
  601. cli_execute("ccs abort");
  602.  
  603. page = visit_url("place.php?whichplace=town_wrong&action=townwrong_tunnel");
  604. if(contains_text(page, "Come back tomorrow!")){
  605. print("Already visited L.O.V.E. Tunnel. Can't be visiting again.", "red");
  606. visit_url("choice.php?pwd=&whichchoice=1222&option=2");
  607. } else {
  608. visit_url("choice.php?pwd=&whichchoice=1222&option=1");
  609.  
  610. // LOV enforcer
  611. visit_url("choice.php?pwd=&whichchoice=1223&option=1");
  612. run_combat(cs_all_macro);
  613.  
  614. // Grab myst equip
  615. visit_url("choice.php?pwd=&whichchoice=1224&option=2");
  616.  
  617. // LOV engineer
  618. visit_url("choice.php?pwd=&whichchoice=1225&option=1");
  619. run_combat(cs_all_macro);
  620.  
  621. // Stat buff
  622. visit_url("choice.php?pwd=&whichchoice=1226&option=1");
  623.  
  624. // Last combat
  625. visit_url("choice.php?pwd=&whichchoice=1227&option=1");
  626. run_combat(cs_all_macro);
  627.  
  628. // Chocolate
  629. visit_url("choice.php?pwd=&whichchoice=1228&option=3");
  630.  
  631. // Use chocolate
  632. if(available_amount($item[LOV Extraterrestrial Chocolate]) > 0){
  633. use(1, $item[LOV Extraterrestrial Chocolate]);
  634. }
  635. }
  636.  
  637. cli_execute("/aa none");
  638. cli_execute("ccs default");
  639. }
  640.  
  641. void do_brickos(){
  642. int nb_brick;
  643. item it_bricko;
  644.  
  645. while(item_amount($item[bricko eye brick]) > 0 || item_amount($item[BRICKO trunk]) > 0){
  646. heal();
  647. nb_brick = 0;
  648.  
  649. // Open trunk if we got one
  650. if(item_amount($item[bricko trunk]) > 0){
  651. use(1, $item[bricko trunk]);
  652. }
  653. // See what we can make with our bricks
  654. else {
  655. if(item_amount($item[bricko brick]) >= 23){
  656. nb_brick = 23;
  657. it_bricko = $item[BRICKO elephant];
  658. } else if(item_amount($item[bricko brick]) >= 11){
  659. nb_brick = 11;
  660. it_bricko = $item[BRICKO turtle];
  661. } else if(item_amount($item[bricko brick]) >= 5){
  662. nb_brick = 5;
  663. it_bricko = $item[BRICKO bat];
  664. } else if(item_amount($item[bricko brick]) >= 2){
  665. nb_brick = 2;
  666. it_bricko = $item[BRICKO ooze];
  667. } else if(my_mp() > 150){
  668. cli_execute("cast 1 bricko");
  669. } else {
  670. break;
  671. }
  672. }
  673.  
  674. // Fight!
  675. if(nb_brick > 0){
  676. use_familiar($familiar[Baby sandworm]);
  677. // cli_execute("/aa cs_all");
  678. //cli_execute("ccs cs_all");
  679. cli_execute("terminal educate extract");
  680. cli_execute("terminal educate compress");
  681.  
  682. use(nb_brick, $item[bricko brick]);
  683. //use(1, it_bricko);
  684. visit_url("inv_use.php?checked=1&whichitem="+it_bricko.to_int()+"&pwd=");
  685. run_combat(cs_all_macro);
  686.  
  687. cli_execute("/aa none");
  688. cli_execute("ccs default");
  689. }
  690. }
  691. }
  692.  
  693. void do_ghost(){
  694. // Go kill a ghost if one is available
  695. if(get_property("ghostLocation").to_string() != ""){
  696. get_buff($effect[Astral Shell], $skill[Astral Shell]);
  697. get_buff($effect[Elemental Saucesphere], $skill[Elemental Saucesphere]);
  698. heal();
  699.  
  700. equip($item[protonic accelerator pack]);
  701. adv1(get_property("ghostLocation").to_location(), -1, cs_all_macro);
  702.  
  703. use_skill(1, $skill[Cannelloni Cocoon]);
  704. }
  705. }
  706.  
  707. void do_snojo(){
  708. int mp_req;
  709.  
  710. // Weak_stag if no mp absorb, mortar + geyser, cast turbo if mp < threshold
  711. if(get_property("_snojoFreeFights").to_int() < 10){
  712. // Terminal turbo
  713. cli_execute("terminal educate extract");
  714. cli_execute("terminal educate turbo");
  715.  
  716. cli_execute("/aa none");
  717.  
  718. get_buff($effect[Astral Shell], $skill[Astral Shell]);
  719. get_buff($effect[Elemental Saucesphere], $skill[Elemental Saucesphere]);
  720.  
  721. // TODO: make sure it's actually set to myst
  722. visit_url("place.php?whichplace=snojo&action=snojo_controller");
  723.  
  724. // TODO: for now the combat macro will abort if the snowman gets a hot resist part, but that may not be needed.
  725. //abort("Run your snojo fights manually!");
  726. while(get_property("_snojoFreeFights").to_int() < 10){
  727. //use_hipster();
  728.  
  729. // Make sure we are healed and have enough mp to cast weaksauce, mortar, extract and geyser
  730. mp_req = 8 + 8 + 5 + 24 + 4*numeric_modifier("mana cost") + 5;
  731. if(my_mp() < mp_req){
  732. restore_mp(mp_req);
  733. }
  734. heal_threshold(200, false);
  735.  
  736. visit_url("adventure.php?snarfblat=460");
  737. run_combat(cs_all_macro);
  738. }
  739.  
  740. // Get rid of potential negative effects
  741. if(have_effect($effect[Snowballed]) > 0 || have_effect($effect[Half-Blooded]) > 0 || have_effect($effect[Half-Drained]) > 0 || have_effect($effect[Bruised]) > 0 || have_effect($effect[Relaxed Muscles]) > 0 || have_effect($effect[Hypnotized]) > 0 || have_effect($effect[Bad Haircut]) > 0){
  742. heal_threshold(9999, true);
  743. }
  744. }
  745. }
  746.  
  747. void do_tentacle(){
  748. string temp;
  749.  
  750. if(!get_property("_eldritchTentacleFought").to_boolean()){
  751. heal();
  752. cli_execute("/aa none");
  753. cli_execute("ccs abort");
  754.  
  755. use_familiar($familiar[baby sandworm]);
  756. cli_execute("maximize exp -pants");
  757.  
  758. get_buff($effect[Leash of linguini], $skill[Leash of linguini]);
  759. get_buff($effect[Empathy], $skill[Empathy of the Newt]);
  760. get_buff($effect[Ur-Kel's Aria of Annoyance], $skill[Ur-Kel's Aria of Annoyance]);
  761. get_buff($effect[Drescher's Annoying Noise], $skill[Drescher's Annoying Noise]);
  762. get_buff($effect[Reptilian Fortitude], $skill[Reptilian Fortitude]);
  763. get_buff($effect[A Few Extra Pounds], $skill[Holiday Weight Gain]);
  764.  
  765. temp = visit_url("place.php?whichplace=forestvillage&action=fv_scientist");
  766. if(contains_text(temp, "Can I fight that tentacle you saved for science?")){
  767. //run_choice(1);
  768. visit_url("choice.php?whichchoice=1201&pwd=&option=1");
  769. run_combat(cs_all_macro);
  770. } else {
  771. run_choice(2);
  772. }
  773. }
  774. }
  775.  
  776. void get_ninja(){
  777. // Look for an amateur ninja if needed
  778. if(available_amount($item[li'l ninja costume]) < 1){
  779. // Prepare banishes & free runs
  780. fuel_asdon(50);
  781. equip($slot[acc2], $item[Kremlin's Greatest Briefcase]);
  782. restore_mp(50);
  783.  
  784. use_familiar($familiar[pair of stomping boots]);
  785.  
  786. while(available_amount($item[li'l ninja costume]) < 1){
  787. get_buff($effect[Leash of linguini], $skill[Leash of linguini]);
  788. get_buff($effect[Empathy], $skill[Empathy of the Newt]);
  789. restore_mp(30);
  790. adv1($location[the haiku dungeon], -1, cs_all_macro);
  791. }
  792. }
  793. }
  794.  
  795. boolean have_quest(string quest_text){
  796. string page;
  797. page = visit_url("council.php");
  798. return contains_text(page, quest_text);
  799. }
  800.  
  801. // This function gives us the number of turns left before a certain counter reaches 0 (can return a negative number)
  802. // Some code inspired by Ezandora's Guide
  803. int get_counter_from_now(string counter_label){
  804. int turn_number;
  805. string counter_name_raw;
  806. string counters = get_property("relayCounters").to_string();
  807.  
  808. string [int] counters_split = split_string(counters.replace_string("|", ":"), ":");
  809.  
  810. for i from 0 to (counters_split.count() - 1) by 3 {
  811. if (i + 3 > counters_split.count())
  812. break;
  813. if (counters_split[i].length() == 0)
  814. continue;
  815. turn_number = to_int(counters_split[i]);
  816. counter_name_raw = counters_split[i + 1];
  817.  
  818. if(contains_text(counter_name_raw, counter_label)){
  819. return turn_number - my_turncount();
  820. }
  821. }
  822.  
  823. return 1000;
  824. }
  825.  
  826. // This function set daily preferences with the name of candies to be sweet synthesized for:
  827. // - Item buff
  828. // - +Myst gains
  829. // - Myst buff
  830. void assign_candy(){
  831. // Only do day 1 for now
  832. if(my_daycount() == 1){
  833. // Map keys are nbP, nbF, nbC
  834. // With P = peppermint bark, F = fudge, C = candied pecan
  835. item [int, int, int] candy1_for_item;
  836. item [int, int, int] candy2_for_item;
  837. item [int, int, int] candy1_for_mystg;
  838. item [int, int, int] candy2_for_mystg;
  839. candy1_for_item[3, 0, 0] = $item[Crimbo peppermint bark];
  840. candy1_for_item[2, 1, 0] = $item[Crimbo peppermint bark];
  841. candy1_for_item[2, 0, 1] = $item[Crimbo peppermint bark];
  842. candy1_for_item[0, 3, 0] = $item[Crimbo fudge];
  843. candy1_for_item[1, 2, 0] = $item[Crimbo peppermint bark];
  844. candy1_for_item[0, 2, 1] = $item[Crimbo candied pecan];
  845. candy1_for_item[0, 0, 3] = $item[Crimbo candied pecan];
  846. candy1_for_item[1, 0, 2] = $item[Crimbo candied pecan];
  847. candy1_for_item[0, 1, 2] = $item[Crimbo candied pecan];
  848. candy1_for_item[1, 1, 1] = $item[Crimbo fudge];
  849.  
  850. candy2_for_item[3, 0, 0] = $item[Crimbo peppermint bark];
  851. candy2_for_item[2, 1, 0] = $item[Crimbo peppermint bark];
  852. candy2_for_item[2, 0, 1] = $item[Crimbo peppermint bark];
  853. candy2_for_item[0, 3, 0] = $item[sugar shorts];
  854. candy2_for_item[1, 2, 0] = $item[sugar shotgun];
  855. candy2_for_item[0, 2, 1] = $item[Sugar sheet];
  856. candy2_for_item[0, 0, 3] = $item[Sugar sheet];
  857. candy2_for_item[1, 0, 2] = $item[Sugar sheet];
  858. candy2_for_item[0, 1, 2] = $item[Sugar sheet];
  859. candy2_for_item[1, 1, 1] = $item[sugar shorts];
  860.  
  861. candy1_for_mystg[3, 0, 0] = $item[Crimbo peppermint bark];
  862. candy1_for_mystg[2, 1, 0] = $item[Crimbo fudge];
  863. candy1_for_mystg[2, 0, 1] = $item[Crimbo candied pecan];
  864. candy1_for_mystg[0, 3, 0] = $item[Crimbo fudge];
  865. candy1_for_mystg[1, 2, 0] = $item[Crimbo fudge];
  866. candy1_for_mystg[0, 2, 1] = $item[Crimbo fudge];
  867. candy1_for_mystg[0, 0, 3] = $item[Crimbo candied pecan];
  868. candy1_for_mystg[1, 0, 2] = $item[Crimbo candied pecan];
  869. candy1_for_mystg[0, 1, 2] = $item[Crimbo candied pecan];
  870. candy1_for_mystg[1, 1, 1] = $item[Crimbo candied pecan];
  871.  
  872. candy2_for_mystg[3, 0, 0] = $item[sugar shank];
  873. candy2_for_mystg[2, 1, 0] = $item[sugar shillelagh];
  874. candy2_for_mystg[2, 0, 1] = $item[sugar shotgun];
  875. candy2_for_mystg[0, 3, 0] = $item[Crimbo fudge];
  876. candy2_for_mystg[1, 2, 0] = $item[Crimbo fudge];
  877. candy2_for_mystg[0, 2, 1] = $item[Crimbo fudge];
  878. candy2_for_mystg[0, 0, 3] = $item[sugar shotgun];
  879. candy2_for_mystg[1, 0, 2] = $item[Crimbo peppermint bark];
  880. candy2_for_mystg[0, 1, 2] = $item[sugar shotgun];
  881. candy2_for_mystg[1, 1, 1] = $item[Crimbo peppermint bark];
  882.  
  883. // Item buff
  884. if(get_property("_candy1_for_item") == "" || get_property("_candy2_for_item") == ""){
  885. set_property("_candy1_for_item", candy1_for_item[item_amount($item[Crimbo peppermint bark]), item_amount($item[Crimbo fudge]), item_amount($item[Crimbo candied pecan])].to_string());
  886. set_property("_candy2_for_item", candy2_for_item[item_amount($item[Crimbo peppermint bark]), item_amount($item[Crimbo fudge]), item_amount($item[Crimbo candied pecan])].to_string());
  887. }
  888. // Myst gain buff
  889. if(get_property("_candy1_for_mystg") == "" || get_property("_candy2_for_mystg") == ""){
  890. set_property("_candy1_for_mystg", candy1_for_mystg[item_amount($item[Crimbo peppermint bark]), item_amount($item[Crimbo fudge]), item_amount($item[Crimbo candied pecan])].to_string());
  891. set_property("_candy2_for_mystg", candy2_for_mystg[item_amount($item[Crimbo peppermint bark]), item_amount($item[Crimbo fudge]), item_amount($item[Crimbo candied pecan])].to_string());
  892. }
  893. // Myst buff
  894. if(get_property("_candy_for_myst") == ""){
  895. // Cases where we don't have a sugar sheet left (CCC and CCF)
  896. if(item_amount($item[Crimbo candied pecan]) == 3 || (item_amount($item[Crimbo candied pecan]) == 2 && item_amount($item[Crimbo fudge]) == 1)){
  897. set_property("_candy_for_myst", "none");
  898. } else {
  899. set_property("_candy_for_myst", "candy_heart");
  900. }
  901. }
  902. }
  903. }
  904.  
  905. void common_step1(){
  906. // Detective cases + badge
  907. if(get_property("_detectiveCasesCompleted").to_int() < 3){
  908. cli_execute("call Detective Solver.ash");
  909. }
  910. if(available_amount($item[silver detective badge])> 0){
  911. equip($slot[acc3], $item[silver detective badge]);
  912. } else if(available_amount($item[gold detective badge])> 0){
  913. equip($slot[acc3], $item[gold detective badge]);
  914. }
  915.  
  916. // Pantogram
  917. if(get_property("_pantogramModifier") == ""){
  918. visit_url("inv_use.php?pwd=&which=3&whichitem=9573");
  919. if(item_amount($item[baconstone]) > 0){
  920. visit_url("choice.php?pwd=&whichchoice=1270&option=1&m=2&e=1&s1=705,1&s2=-1,0&s3=-1,0", true);
  921. } else {
  922. visit_url("choice.php?pwd=&whichchoice=1270&option=1&m=2&e=1&s1=-2,0&s2=-1,0&s3=-1,0", true);
  923. }
  924. }
  925. if(available_amount($item[pantogram pants]) > 0){
  926. equip($item[pantogram pants]);
  927. }
  928.  
  929. // Cowboy boots
  930. visit_url("place.php?whichplace=town_right&action=townright_ltt");
  931. if(available_amount($item[your cowboy boots]) > 0){
  932. equip($slot[acc1], $item[your cowboy boots]);
  933. }
  934.  
  935. // KGB
  936. if(my_inebriety() < inebriety_limit()){
  937. cli_execute("briefcase left");
  938. cli_execute("briefcase e spell hot ml");
  939. }
  940.  
  941. equip($slot[acc2], $item[Kremlin's Greatest Briefcase]);
  942.  
  943. // Tote's garbage shirt
  944. if(get_property("_garbageShirtCharge") > 0){
  945. if(available_amount($item[makeshift garbage shirt]) < 1){
  946. visit_url("inv_use.php?pwd=&which=3&whichitem=9690");
  947. visit_url("choice.php?pwd=&whichchoice=1275&option=5", true);
  948. }
  949. equip($item[makeshift garbage shirt]);
  950. }
  951.  
  952. // Mummery
  953. use_familiar($familiar[baby sandworm]);
  954. if(!contains_text(get_property("_mummeryMods"), "Mysticality")){
  955. cli_execute("mummery mysticality");
  956. }
  957.  
  958. // Protonic pack
  959. equip($item[protonic accelerator pack]);
  960. equip($item[KoL Con 13 snowglobe]);
  961. equip($item[astral pet sweater]);
  962.  
  963. // Fish hatchet
  964. if(!get_property("_floundryItemCreated").to_boolean()){
  965. cli_execute("make fish hatchet");
  966. }
  967. equip($item[fish hatchet]);
  968.  
  969. // Source terminal
  970. if(have_effect($effect[substats.enh]) < 1){
  971. cli_execute("terminal enhance substats");
  972. }
  973. cli_execute("terminal enquiry stats");
  974. cli_execute("terminal educate extract");
  975. cli_execute("terminal educate compress");
  976.  
  977. // VIP shower
  978. if(!get_property("_aprilShower").to_boolean()){
  979. cli_execute("shower mysticality");
  980. }
  981.  
  982. // Equip helmet
  983. if(available_amount($item[Van der Graaf helmet]) > 0){
  984. equip($item[Van der Graaf helmet]);
  985. } else if(available_amount($item[filthy knitted dread sack]) > 0){
  986. equip($item[filthy knitted dread sack]);
  987. } else if(available_amount($item[Hollandaise helmet]) > 0){
  988. equip($item[Hollandaise helmet]);
  989. }
  990.  
  991. if(get_property("_candySummons").to_int() == 0){
  992. use_skill(1, $skill[Summon crimbo candy]);
  993. }
  994.  
  995. // Get 2 sugar sheets
  996. while(get_property("tomeSummons").to_int() < 2 && available_amount($item[sugar sheet]) < 2){
  997. cli_execute("cast sugar sheet");
  998. }
  999.  
  1000. assign_candy();
  1001. }
  1002.  
  1003. void exec_step1(){
  1004. string page;
  1005.  
  1006. // Toot oriole
  1007. visit_url("tutorial.php?action=toot");
  1008. if(item_amount($item[letter from King Ralph XI]) > 0){
  1009. use(1, $item[letter from King Ralph XI]);
  1010. }
  1011. if(item_amount($item[pork elf goodies sack]) > 0){
  1012. use(1, $item[pork elf goodies sack]);
  1013. }
  1014.  
  1015. // Use astral six pack
  1016. if(item_amount($item[astral six-pack]) > 0){
  1017. use(1, $item[astral six-pack]);
  1018. }
  1019.  
  1020. // Use tent
  1021. if(item_amount($item[Newbiesport&trade; tent]) > 0){
  1022. use(1, $item[Newbiesport&trade; tent]);
  1023. }
  1024.  
  1025. // Get normal horse
  1026. if(get_property("_horsery") == ""){
  1027. visit_url("place.php?whichplace=town_right&action=town_horsery");
  1028. visit_url("choice.php?pwd=&whichchoice=1266&option=1", true);
  1029. }
  1030.  
  1031. // Do a bunch of stuff
  1032. common_step1();
  1033.  
  1034. // Autosell gems, buy accordion, mcd
  1035. cli_execute("autosell * baconstone");
  1036. cli_execute("autosell * porquoise");
  1037. cli_execute("autosell * hamethyst");
  1038. cli_execute("mcd 10");
  1039. if(item_amount($item[toy accordion]) < 1){
  1040. buy(1, $item[toy accordion]);
  1041. }
  1042.  
  1043. // Fish for turtle totem
  1044. while(item_amount($item[turtle totem]) < 1){
  1045. cli_execute("/gum");
  1046. }
  1047.  
  1048. // Open madness bakery
  1049. if(get_property("questM25Armorer").to_string() == "unstarted"){
  1050. visit_url("shop.php?whichshop=armory&action=talk");
  1051. run_choice(1);
  1052. }
  1053.  
  1054. // Break pvp stone
  1055. page = visit_url("peevpee.php?place=fight");
  1056. if(contains_text(page, "Smash that Hippy Crap!")){
  1057. visit_url("peevpee.php?action=smashstone&pwd=&confirm=on");
  1058. }
  1059.  
  1060. // Talk to guild master
  1061. visit_url("guild.php?place=challenge");
  1062. }
  1063.  
  1064. void exec_step2(){
  1065. // Eat hardboiled egg if fullness = 0
  1066. if(my_fullness() == 0){
  1067. cli_execute("eat 1 hardboiled egg");
  1068. }
  1069.  
  1070. // Calculate the universe if we can get adventures
  1071. check_calc_universe();
  1072.  
  1073. use_familiar($familiar[baby sandworm]);
  1074.  
  1075. do_synthesis($effect[Synthesis: Learning]);
  1076.  
  1077. // Do lov tunnel
  1078. if(!get_property("_loveTunnelUsed").to_boolean()){
  1079. // Cast buffs
  1080. get_buff($effect[The Magical Mojomuscular Melody], $skill[The Magical Mojomuscular Melody]);
  1081. get_buff($effect[The Moxious Madrigal], $skill[The Moxious Madrigal]);
  1082. get_buff($effect[Power Ballad of the Arrowsmith], $skill[The Power Ballad of the Arrowsmith]);
  1083. get_buff($effect[Jackasses' Symphony of Destruction], $skill[Jackasses' Symphony of Destruction]);
  1084. get_buff($effect[Spirit of Cayenne], $skill[Spirit of Cayenne]);
  1085. get_buff($effect[Leash of linguini], $skill[Leash of linguini]);
  1086. get_buff($effect[Empathy], $skill[Empathy of the Newt]);
  1087. // TODO: don't use if not needed
  1088. cli_execute("use 1 mascara");
  1089. cli_execute("use 1 bengal");
  1090. cli_execute("use 1 hair spray");
  1091.  
  1092. do_lov();
  1093. }
  1094.  
  1095. // Summon brickos && cast aria, drescher, fortitude, holiday weight gain, astral shell, elemental saucesphere
  1096. if(get_property("libramSummons").to_int() < 7){
  1097. // Cast aria, drescher, fortitude, holiday weight gain, astral shell, elemental saucesphere
  1098. if(have_effect($effect[The Moxious Madrigal]) > 0){
  1099. cli_execute("shrug The Moxious Madrigal");
  1100. }
  1101. get_buff($effect[Ur-Kel's Aria of Annoyance], $skill[Ur-Kel's Aria of Annoyance]);
  1102. get_buff($effect[Drescher's Annoying Noise], $skill[Drescher's Annoying Noise]);
  1103. get_buff($effect[Reptilian Fortitude], $skill[Reptilian Fortitude]);
  1104. get_buff($effect[A Few Extra Pounds], $skill[Holiday Weight Gain]);
  1105.  
  1106. while(get_property("libramSummons").to_int() < 7){
  1107. cli_execute("cast 1 bricko");
  1108. }
  1109. }
  1110.  
  1111. // Trap kitchen ghost
  1112. do_ghost();
  1113. use_skill(1, $skill[cannelloni cocoon]);
  1114.  
  1115. // Equip lov epaulettes
  1116. equip($item[LOV Epaulettes]);
  1117.  
  1118. // Snojo myst
  1119. do_snojo();
  1120.  
  1121. // Fight brickos
  1122. do_brickos();
  1123. }
  1124.  
  1125. void fight_embezzler(){
  1126. heal();
  1127. buff_meat();
  1128.  
  1129. cli_execute("/aa none");
  1130.  
  1131. adv1($location[the haunted pantry], -1, cs_all_macro);
  1132. check_calc_universe();
  1133. }
  1134.  
  1135. void exec_step3(){
  1136. int i;
  1137. string page = "";
  1138.  
  1139. // Chew 3 agua de vida
  1140. while(my_spleen_use() < 9 && item_amount($item[agua de vida]) > 0){
  1141. chew(1, $item[agua de vida]);
  1142. }
  1143.  
  1144. // Fighting embezzler
  1145. if(!get_property("_photocopyUsed").to_boolean()){
  1146. // Fax embezzler (try a few times, abort if no response)
  1147. i = 0;
  1148. while(item_amount($item[photocopied monster]) < 1 && i < 3){
  1149. i++;
  1150. cli_execute("faxbot knob goblin embezzler");
  1151. }
  1152.  
  1153. if(item_amount($item[photocopied monster]) > 0){
  1154. // Terminal to digitize
  1155. // cli_execute("/aa cs_all");
  1156. cli_execute("ccs abort");
  1157. cli_execute("terminal educate extract");
  1158. cli_execute("terminal educate digitize");
  1159.  
  1160. // Use obtuse angel
  1161. use_familiar($familiar[obtuse angel]);
  1162.  
  1163. // Cast polka
  1164. if(have_effect($effect[The Magical Mojomuscular Melody]) > 0){
  1165. cli_execute("shrug The Magical Mojomuscular Melody");
  1166. }
  1167. get_buff($effect[Polka of Plenty], $skill[The Polka of Plenty]);
  1168.  
  1169. // Fight embezzler: digitize, arrow, mortar, cannon
  1170. heal();
  1171. //use(1, $item[photocopied monster]);
  1172. visit_url("inv_use.php?pwd=&which=3&whichitem=4873");
  1173. run_combat(cs_all_macro);
  1174.  
  1175. cli_execute("/aa none");
  1176. cli_execute("ccs default");
  1177. check_calc_universe();
  1178. } else {
  1179. abort("Faxbot is broken :(");
  1180. }
  1181. }
  1182.  
  1183. // Get a cherry from skeletons
  1184. if(available_amount($item[cherry]) < 1){
  1185. // Buff +items
  1186. use_familiar($familiar[Jumpsuited Hound Dog]);
  1187. if(have_effect($effect[Carlweather's Cantata of Confrontation]) > 0){
  1188. cli_execute("shrug Carlweather's Cantata of Confrontation");
  1189. }
  1190. if(have_effect($effect[Polka of plenty]) > 0){
  1191. cli_execute("shrug polka of plenty");
  1192. }
  1193.  
  1194. get_buff($effect[Leash of linguini], $skill[Leash of linguini]);
  1195. get_buff($effect[Empathy], $skill[Empathy of the Newt]);
  1196. get_buff($effect[Fat Leon's Phat Loot Lyric], $skill[Fat Leon's Phat Loot Lyric]);
  1197. get_buff($effect[Singer's Faithful Ocelot], $skill[Singer's Faithful Ocelot]);
  1198.  
  1199. // Don't let the maximizer alternate between champagne bottle and wad of tape
  1200. cli_execute("maximize item drop -hat");
  1201. // Work around for garbage thing
  1202. equip_garbage_item($item[broken champagne bottle]);
  1203.  
  1204. // Open skeleton store
  1205. if(get_property("questM23Meatsmith").to_string() == "unstarted"){
  1206. visit_url("shop.php?whichshop=meatsmith&action=talk");
  1207. run_choice(1);
  1208. }
  1209.  
  1210. // Look for fruit skeleton, shatterpunch it (kgb dart + snokebomb for others)
  1211. while(available_amount($item[cherry]) < 1 && available_amount($item[oil of expertise]) < 3){
  1212. heal_threshold(130, true);
  1213. cli_execute("/aa none");
  1214. cli_execute("ccs abort");
  1215.  
  1216. adv1($location[the skeleton store], -1, cs_all_macro);
  1217. }
  1218. }
  1219.  
  1220. equip($item[fish hatchet]);
  1221. equip($item[KoL Con 13 snowglobe]);
  1222.  
  1223. // Make meatcar
  1224. if(available_amount($item[bitchin' meatcar]) < 1){
  1225. cli_execute("make bitchin' meatcar");
  1226. }
  1227.  
  1228. // Shore & open island
  1229. while(available_amount($item[Dingy dinghy]) < 1){
  1230. if(available_amount($item[dinghy plans]) > 0){
  1231. if(available_amount($item[dingy planks]) < 1){
  1232. buy(1, $item[dingy planks]);
  1233. }
  1234. use(1, $item[Dinghy plans]);
  1235. } else if(available_amount($item[Shore Inc. Ship Trip Scrip]) >= 3){
  1236. buy($coinmaster[The Shore, Inc. Gift Shop], 1, $item[dinghy plans]);
  1237. } else {
  1238. visit_url("adventure.php?snarfblat=355");
  1239. run_choice(2);
  1240. }
  1241. }
  1242.  
  1243. check_calc_universe();
  1244. refresh_status();
  1245.  
  1246. // Use hobo monkey, buff meat, fight embezzler
  1247. while(get_counter_from_now("Digitize Monster") <= 0 && my_meat() <= 5000){
  1248. fight_embezzler();
  1249. }
  1250.  
  1251. // Yellow ray (+ extract) hippy
  1252. if(available_amount($item[filthy knitted dread sack]) < 1){
  1253. heal_threshold(100, true);
  1254. use_familiar($familiar[space jellyfish]);
  1255.  
  1256. restore_mp(150);
  1257. // TODO: merge into main ccs
  1258. cli_execute("ccs cs_hippy");
  1259. adv1($location[hippy camp], -1, "");
  1260. check_calc_universe();
  1261. cli_execute("ccs abort");
  1262. }
  1263. }
  1264.  
  1265. void exec_step4(){
  1266. string page;
  1267.  
  1268. // Make sure we've seen the exposition page
  1269. visit_url("council.php");
  1270.  
  1271. // Coil wire, equip lov epaulettes, use reward
  1272. if(have_quest("Coil Wire")){
  1273. if(my_inebriety() == 0){
  1274. // Cast Ode
  1275. get_buff($effect[Ode to Booze], $skill[The Ode to Booze]);
  1276.  
  1277. // Drink 1 hacked gibson
  1278. cli_execute("drink 1 hacked gibson");
  1279. }
  1280.  
  1281. // Do quest
  1282. cli_execute("cast * candy heart");
  1283. visit_url("council.php");
  1284. visit_url("choice.php?pwd=&whichchoice=1089&option=11");
  1285.  
  1286. // Use reward
  1287. if(item_amount($item[a ten-percent bonus]) > 0){
  1288. equip($item[LOV epaulettes]);
  1289. use(1, $item[a ten-percent bonus]);
  1290. }
  1291. }
  1292.  
  1293. // Cast once/day things
  1294. get_once_day();
  1295.  
  1296. // Make sure that mafia is aware that turns have passed
  1297. refresh_status();
  1298.  
  1299. // Use hobo monkey, buff meat, fight 2 embezzlers
  1300. //print("Digitize monster in "+get_counter_from_now("Digitize Monster"));
  1301. //print("Romantic monster in "+get_counter_from_now("Romantic Monster window end"));
  1302. while(get_counter_from_now("Digitize Monster") <= 0 && my_meat() <= 9000){
  1303. fight_embezzler();
  1304. }
  1305. while(get_counter_from_now("Romantic Monster window end") <= 0 && my_meat() <= 13000){
  1306. fight_embezzler();
  1307. }
  1308.  
  1309. // Get tot ninja outfit
  1310. get_ninja();
  1311.  
  1312. // Missile a frat boy for gin bottle + flask hops + deodorant
  1313. while(!get_property("_missileLauncherUsed").to_boolean()){
  1314. buff_coms();
  1315. heal();
  1316. fuel_asdon(100);
  1317. cli_execute("ccs abort");
  1318. adv1($location[Frat house], -1, cs_all_macro);
  1319. }
  1320.  
  1321. // Food
  1322. if(my_fullness() < 15){
  1323. // Genie milk
  1324. if(have_effect($effect[Got Milk]) < 1){
  1325. cli_execute("genie effect Got Milk");
  1326. }
  1327.  
  1328. // Eat 1 browser cookie, re-eat with spinner
  1329. if(!contains_text(get_property("_timeSpinnerFoodAvailable").to_string(), "9035")){
  1330. cli_execute("eat 1 browser cookie");
  1331. }
  1332.  
  1333. while(contains_text(get_property("_timeSpinnerFoodAvailable").to_string(), "9035") && my_fullness() < 13 && get_property("_timeSpinnerMinutesUsed").to_int() <= 7){
  1334. cli_execute("timespinner eat browser cookie");
  1335. }
  1336.  
  1337. // Eat 1 ice rice
  1338. if(item_amount($item[ice rice]) > 0 && my_fullness() < 14){
  1339. eat(1, $item[ice rice]);
  1340. }
  1341.  
  1342. // Eat 1 optimal dog
  1343. if(!get_property("_fancyHotDogEaten").to_boolean() && my_fullness() < 15){
  1344. cli_execute("eat 1 optimal dog");
  1345. }
  1346. }
  1347.  
  1348. // Adventure in limerick dungeon for SR
  1349. if(item_amount($item[cyclops eyedrops]) < 1 && get_counter_from_now("Fortune Cookie") == 0){
  1350. adv1($location[The limerick dungeon], 0, "");
  1351. }
  1352.  
  1353. // Shape meteorbs into shoes + shield
  1354. if(available_amount($item[metal meteoroid]) > 0 && available_amount($item[meteorite guard]) < 1){
  1355. set_property("choiceAdventure1264", 2);
  1356. use(1, $item[metal meteoroid]);
  1357. //run_choice(2);
  1358. }
  1359. if(available_amount($item[metal meteoroid]) > 0 && available_amount($item[meteorthopedic shoes]) < 1){
  1360. set_property("choiceAdventure1264", 5);
  1361. use(1, $item[metal meteoroid]);
  1362. //run_choice(5);
  1363. }
  1364.  
  1365. // Make time halo
  1366. if(get_property("tomeSummons").to_int() < 3 && available_amount($item[time halo]) < 1){
  1367. cli_execute("make time halo");
  1368. }
  1369.  
  1370. // Breed border collies
  1371. if(have_quest("Breed More Collies")){
  1372. // Buff
  1373. buff_weight();
  1374. cli_execute("maximize familiar weight");
  1375.  
  1376. // Do quest
  1377. cli_execute("cast * candy heart");
  1378. visit_url("council.php");
  1379. visit_url("choice.php?pwd=&whichchoice=1089&option=5");
  1380. }
  1381.  
  1382. // Be a living statue
  1383. if(have_quest("Be a Living Statue") && !have_quest("Coil Wire")){
  1384. // Buff
  1385. buff_noncom_quest();
  1386. cli_execute("maximize -combat");
  1387.  
  1388. // Do quest
  1389. visit_url("council.php");
  1390. visit_url("choice.php?pwd=&whichchoice=1089&option=8");
  1391. }
  1392.  
  1393. do_ghost();
  1394.  
  1395. // Clean Steam Tunnels
  1396. if(have_quest("Clean Steam Tunnels") && !have_quest("Be a Living Statue")){
  1397. cli_execute("cast * candy heart");
  1398.  
  1399. // Buff
  1400. buff_hot_res();
  1401.  
  1402. // Tot costume
  1403. use_familiar($familiar[trick-or-treating tot]);
  1404. if(available_amount($item[li'l candy corn costume]) < 1){
  1405. buy(1, $item[li'l candy corn costume]);
  1406. }
  1407.  
  1408. cli_execute("maximize hot res");
  1409.  
  1410. // Do quest
  1411. visit_url("council.php");
  1412. visit_url("choice.php?pwd=&whichchoice=1089&option=10");
  1413. }
  1414.  
  1415. // Drink to have enough adventures
  1416. if(available_amount($item[perfect ice cube]) > 0 && available_amount($item[bottle of gin]) > 0 && my_inebriety() <= 11){
  1417. get_buff($effect[Ode to Booze], $skill[The Ode to Booze]);
  1418. cli_execute("drink 1 perfect negroni");
  1419. }
  1420. if(available_amount($item[perfect ice cube]) > 0 && available_amount($item[bottle of vodka]) > 0 && my_inebriety() <= 11){
  1421. get_buff($effect[Ode to Booze], $skill[The Ode to Booze]);
  1422. cli_execute("drink 1 perfect cosmopolitan");
  1423. }
  1424. if(available_amount($item[meadeorite]) > 0 && my_inebriety() < 14){
  1425. get_buff($effect[Ode to Booze], $skill[The Ode to Booze]);
  1426. drink(1, $item[meadeorite]);
  1427. }
  1428. while(available_amount($item[astral pilsner]) > 0 && my_inebriety() < 14){
  1429. get_buff($effect[Ode to Booze], $skill[The Ode to Booze]);
  1430. drink(1, $item[astral pilsner]);
  1431. }
  1432.  
  1433. // Reduce Gazelle Population
  1434. if(have_quest("Reduce Gazelle Population") && !have_quest("Clean Steam Tunnels")){
  1435. // Buff
  1436. buff_melee_dmg();
  1437. cli_execute("maximize weapon dmg");
  1438.  
  1439. // Do quest
  1440. cli_execute("cast * candy heart");
  1441. visit_url("council.php");
  1442. visit_url("choice.php?pwd=&whichchoice=1089&option=6");
  1443. }
  1444.  
  1445. // Make Margaritas
  1446. if(have_quest("Make Margaritas") && !have_quest("Reduce Gazelle Population")){
  1447. // Buff
  1448. buff_items_and_booze();
  1449. use_familiar($familiar[trick-or-treating tot]);
  1450. cli_execute("maximize item drop, booze drop -weapon");
  1451. // Work around for garbage thing
  1452. equip_garbage_item($item[wad of used tape]);
  1453.  
  1454. // Try to get kgb buff => shouldn't be needed anymore
  1455. //cli_execute("briefcase e spell hot adventures");
  1456. //kgb_buff($effect[Items Are Forever]);
  1457.  
  1458. // Do quest
  1459. visit_url("council.php");
  1460. visit_url("choice.php?pwd=&whichchoice=1089&option=9");
  1461. }
  1462.  
  1463. // Open guild and woods
  1464. if(get_property("questG07Myst").to_string() != "finished"){
  1465. // Talk to guild master
  1466. visit_url("guild.php?place=challenge");
  1467.  
  1468. // Adventure in the pantry until we exorcize the sandwich
  1469. while(get_property("questG07Myst").to_string() == "started" && !contains_text(page, "sudo exorcise me a sandwich")){
  1470. // Buff +combat
  1471. if(have_effect($effect[Polka of plenty]) > 0){
  1472. cli_execute("shrug polka of plenty");
  1473. }
  1474. if(have_effect($effect[Fat Leon's Phat Loot Lyric]) > 0){
  1475. cli_execute("shrug Fat Leon's Phat Loot Lyric");
  1476. }
  1477. get_buff($effect[Musk of the Moose], $skill[Musk of the Moose]);
  1478. get_buff($effect[Carlweather's Cantata of Confrontation], $skill[Carlweather's Cantata of Confrontation]);
  1479. get_buff($effect[Leash of linguini], $skill[Leash of linguini]);
  1480. get_buff($effect[Empathy], $skill[Empathy of the Newt]);
  1481. get_buff($effect[Ur-Kel's Aria of Annoyance], $skill[Ur-Kel's Aria of Annoyance]);
  1482.  
  1483. if(have_equipped($item[fish hatchet])){
  1484. equip($slot[weapon], $item[none]);
  1485. }
  1486. if(have_equipped($item[pantogram pants])){
  1487. equip($slot[pants], $item[old sweatpants]);
  1488. }
  1489. equip($slot[acc2], $item[Kremlin's Greatest Briefcase]);
  1490.  
  1491. // Use stomping boots
  1492. use_familiar($familiar[pair of stomping boots]);
  1493.  
  1494. // Free runs in pantry until sandwich (this should only use 2, since we've sent 3 embezzlers there)
  1495. heal_threshold(140, true);
  1496.  
  1497. cli_execute("/aa runaway");
  1498. cli_execute("ccs abort");
  1499.  
  1500. page = visit_url("adventure.php?snarfblat=113");
  1501. run_choice(-1);
  1502. check_calc_universe();
  1503. }
  1504.  
  1505. // Exorcize the sandwich
  1506. if(contains_text(page, "sudo exorcise me a sandwich")){
  1507. run_choice(-1);
  1508. if(have_effect($effect[Carlweather's Cantata of Confrontation]) > 0){
  1509. cli_execute("shrug Carlweather's Cantata of Confrontation");
  1510. }
  1511. }
  1512.  
  1513. // Complete quest
  1514. if(get_property("questG07Myst").to_string() == "step1"){
  1515. visit_url("guild.php?place=challenge");
  1516. }
  1517.  
  1518. cli_execute("/aa none");
  1519. cli_execute("ccs default");
  1520. }
  1521.  
  1522. // Make meatcar, open woods
  1523. if(get_property("questG07Myst").to_string() == "finished"){
  1524. if(get_property("questG01Meatcar").to_string() != "finished"){
  1525. if(get_property("questG01Meatcar").to_string() == "unstarted"){
  1526. visit_url("guild.php?place=paco");
  1527. }
  1528.  
  1529. if(get_property("questG01Meatcar").to_string() == "started" && available_amount($item[bitchin' meatcar]) > 0){
  1530. visit_url("guild.php?place=paco");
  1531. }
  1532. }
  1533.  
  1534. if(get_property("questG02Whitecastle").to_string() == "unstarted"){
  1535. visit_url("guild.php?place=paco");
  1536. run_choice(-1);
  1537. cli_execute("/go woods");
  1538. }
  1539. }
  1540.  
  1541. // Overdrink
  1542. if(my_inebriety() == inebriety_limit() && !have_quest("Reduce Gazelle Population")){
  1543. if(have_effect($effect[Ode to booze]) < 4){
  1544. use_skill(1, $skill[The ode to booze]);
  1545. }
  1546. cli_execute("drink 1 hacked gibson");
  1547. }
  1548.  
  1549. if(my_inebriety() > inebriety_limit()){
  1550. // Buff myst
  1551. buff_myst();
  1552. cli_execute("briefcase e spell hot adventures");
  1553. kgb_buff($effect[Thunderspell]);
  1554. while(get_property("_kgbClicksUsed").to_int() < 22){
  1555. cli_execute("briefcase identify");
  1556. }
  1557.  
  1558. // Fight tentacle while myst-buffed
  1559. restore_mp(120);
  1560. do_tentacle();
  1561.  
  1562. // Equip adv gear
  1563. use_familiar($familiar[trick-or-treating tot]);
  1564. if(available_amount($item[li'l unicorn costume]) < 1){
  1565. buy(1, $item[li'l unicorn costume]);
  1566. }
  1567. cli_execute("maximize adv");
  1568.  
  1569. // Hatter buff
  1570. visit_url("clan_viplounge.php?action=lookingglass&whichfloor=2");
  1571. if(!get_property("_madTeaParty").to_boolean()){
  1572. if(available_amount($item[coconut shell]) > 0){
  1573. cli_execute("hatter coconut shell");
  1574. } else if(available_amount($item[ravioli hat]) > 0){
  1575. cli_execute("hatter ravioli hat");
  1576. }
  1577. }
  1578. }
  1579.  
  1580. // FarFuture.ash
  1581. if(!get_property("_timeSpinnerReplicatorUsed").to_boolean()){
  1582. cli_execute("FarFuture.ash mall");
  1583. }
  1584. }
  1585.  
  1586. void exec_day2_step1(){
  1587. common_step1();
  1588.  
  1589. // Get crazy horse
  1590. if(get_property("_horsery") == ""){
  1591. visit_url("place.php?whichplace=town_right&action=town_horsery");
  1592. visit_url("choice.php?pwd=&whichchoice=1266&option=3", true);
  1593. }
  1594.  
  1595. // Buffs
  1596. get_buff($effect[Leash of linguini], $skill[Leash of linguini]);
  1597. get_buff($effect[Empathy], $skill[Empathy of the Newt]);
  1598. get_buff($effect[Ur-Kel's Aria of Annoyance], $skill[Ur-Kel's Aria of Annoyance]);
  1599. get_buff($effect[Drescher's Annoying Noise], $skill[Drescher's Annoying Noise]);
  1600. if(have_effect($effect[Driving Recklessly]) < 1){
  1601. fuel_asdon(37);
  1602. cli_execute("asdonmartin drive Recklessly");
  1603. }
  1604.  
  1605. // Calc universe?
  1606. check_calc_universe();
  1607.  
  1608. // Tome?
  1609. if(get_property("tomeSummons").to_int() == 0){
  1610. cli_execute("cast 2 sugar sheets");
  1611. }
  1612. }
  1613.  
  1614. void exec_day2_step2(){
  1615. int i;
  1616.  
  1617. // Drink 1 falcon maltese
  1618. if(my_inebriety() == 0 && have_effect($effect[Too Noir For Snoir]) < 1){
  1619. if(have_effect($effect[Fat Leon's Phat Loot Lyric]) > 0){
  1620. cli_execute("shrug Fat Leon's Phat Loot Lyric");
  1621. }
  1622.  
  1623. get_buff($effect[Ode to Booze], $skill[The Ode to Booze]);
  1624. cli_execute("drink 1 falcon maltese liquor");
  1625. }
  1626.  
  1627. if(numeric_modifier("monster level") >= 150){
  1628. cli_execute("mcd 1");
  1629. }
  1630.  
  1631. use_familiar($familiar[baby sandworm]);
  1632.  
  1633. // Summon some candy hearts
  1634. while(get_property("libramSummons").to_int() < 5){
  1635. cli_execute("cast 1 candy heart");
  1636. }
  1637.  
  1638. // Get cornucopia
  1639. visit_url("campground.php");
  1640. visit_url("campground.php?action=garden&pwd=");
  1641.  
  1642. // Fax sk8 gnome
  1643. if(!get_property("_photocopyUsed").to_boolean()){
  1644. // Sk8 gnome (try a few times, abort if no response)
  1645. i = 0;
  1646. while(item_amount($item[photocopied monster]) < 1 && i < 3){
  1647. i++;
  1648. cli_execute("faxbot sk8 gnome");
  1649. }
  1650.  
  1651. if(item_amount($item[photocopied monster]) > 0){
  1652. // cli_execute("/aa cs_all");
  1653. cli_execute("ccs abort");
  1654.  
  1655. // Get enough MP for shatterpunch
  1656. while(my_mp() < 80){
  1657. if(item_amount($item[psychokinetic energy blob]) > 0){
  1658. use(1, $item[psychokinetic energy blob]);
  1659. } else {
  1660. cli_execute("/mmj 1");
  1661. }
  1662. }
  1663.  
  1664. // Fight sk8 gnome: shatterpunch
  1665. heal();
  1666.  
  1667. visit_url("inv_use.php?pwd=&which=3&whichitem=4873");
  1668. run_combat(cs_all_macro);
  1669.  
  1670. cli_execute("/aa none");
  1671. cli_execute("ccs default");
  1672. } else {
  1673. abort("Faxbot is broken :(");
  1674. }
  1675. }
  1676.  
  1677. // LOV tunnel
  1678. if(!get_property("_loveTunnelUsed").to_boolean()){
  1679. buff_myst();
  1680. do_lov();
  1681. }
  1682.  
  1683. // Cast all 1/day things
  1684. get_once_day();
  1685.  
  1686. // Libram summons with lov mp
  1687. while(get_property("libramSummons").to_int() < 21){
  1688. cli_execute("cast 1 bricko");
  1689. }
  1690. //while(get_property("libramSummons").to_int() < 15){
  1691. //cli_execute("cast 1 candy heart");
  1692. //}
  1693.  
  1694. // Switch to hipster if fights left; or not, doesn't seem to work at the snojo
  1695. //use_hipster();
  1696.  
  1697. // Trap ghost
  1698. do_ghost();
  1699.  
  1700. // Equip lov epaulettes
  1701. equip($item[LOV Epaulettes]);
  1702.  
  1703. // Snojo fights
  1704. do_snojo();
  1705.  
  1706. // Bricko fights
  1707. do_brickos();
  1708.  
  1709. // Fight tentacle
  1710. do_tentacle();
  1711. }
  1712.  
  1713. void exec_day2_step3(){
  1714. // Donate blood (HP)
  1715. if(have_quest("Donate Blood")){
  1716. // Buff HP
  1717. buff_hp();
  1718.  
  1719. // The quest should take 1 turn at above > 2500 HP, which should be easy to get
  1720. if(my_maxhp() < 2500){
  1721. abort("Max HP is too low!");
  1722. }
  1723.  
  1724. // Do quest
  1725. visit_url("council.php");
  1726. visit_url("choice.php?pwd=&whichchoice=1089&option=1");
  1727. check_calc_universe();
  1728. }
  1729.  
  1730. // Build Playground Mazes (myst)
  1731. if(have_quest("Build Playground Mazes") && !have_quest("Donate Blood")){
  1732. // Buff myst
  1733. buff_myst();
  1734.  
  1735. // Try to get kgb buff
  1736. kgb_buff($effect[Thunderspell]);
  1737.  
  1738. // Equip myst gear
  1739. cli_execute("maximize myst");
  1740. // Work around for garbage hat, don't know if there's a better way to do this
  1741. equip_garbage_item($item[wad of used tape]);
  1742.  
  1743. // Do quest
  1744. cli_execute("cast * candy heart");
  1745. visit_url("council.php");
  1746. visit_url("choice.php?pwd=&whichchoice=1089&option=3");
  1747. check_calc_universe();
  1748. }
  1749.  
  1750. // Feed Conspirators (moxie)
  1751. if(have_quest("Feed Conspirators") && !have_quest("Build Playground Mazes")){
  1752. // Buff moxie
  1753. buff_moxie();
  1754.  
  1755. // Try to get kgb buff
  1756. kgb_buff($effect[Goldentongue]);
  1757.  
  1758. // Equip moxie gear
  1759. cli_execute("maximize moxie");
  1760. // Work around for garbage hat, don't know if there's a better way to do this
  1761. equip_garbage_item($item[wad of used tape]);
  1762.  
  1763. // Do quest
  1764. cli_execute("cast * candy heart");
  1765. visit_url("council.php");
  1766. visit_url("choice.php?pwd=&whichchoice=1089&option=4");
  1767. check_calc_universe();
  1768. }
  1769.  
  1770. // Feed The Children (muscle)
  1771. if(have_quest("Feed The Children") && !have_quest("Feed Conspirators")){
  1772. // Buff muscle
  1773. buff_muscle();
  1774.  
  1775. // Try to get kgb buff
  1776. kgb_buff($effect[License to Punch]);
  1777.  
  1778. // Equip muscle gear
  1779. cli_execute("maximize muscle");
  1780. // Work around for garbage hat, don't know if there's a better way to do this
  1781. equip_garbage_item($item[wad of used tape]);
  1782.  
  1783. // Do quest
  1784. visit_url("council.php");
  1785. visit_url("choice.php?pwd=&whichchoice=1089&option=2");
  1786. check_calc_universe();
  1787. }
  1788.  
  1789. // Make Sausage
  1790. if(have_quest("Make Sausage") && !have_quest("Feed The Children")){
  1791. // Buff spell damage
  1792. buff_spell();
  1793.  
  1794. // Equip spell dmg gear
  1795. // Get 1 obsidian nutcracker, to save 1 turn
  1796. if(available_amount($item[obsidian nutcracker]) < 1){
  1797. buy(1, $item[obsidian nutcracker]);
  1798. }
  1799. cli_execute("maximize spell dmg");
  1800.  
  1801. // Chew some agua de vida
  1802. while(my_adventures() < 53){
  1803. if(item_amount($item[agua de vida]) > 0){
  1804. chew(1, $item[agua de vida]);
  1805. }
  1806. }
  1807.  
  1808. // Do quest
  1809. visit_url("council.php");
  1810. visit_url("choice.php?pwd=&whichchoice=1089&option=7");
  1811. check_calc_universe();
  1812. }
  1813. }
  1814.  
  1815. int get_free_drunk(){
  1816. if(available_amount($item[[7302]Spookyraven library key]) < 1){
  1817. return 10 - my_inebriety();
  1818. } else {
  1819. return inebriety_limit() - my_inebriety();
  1820. }
  1821. }
  1822.  
  1823. void eat_drink(){
  1824. int drink_limit;
  1825.  
  1826. // Spleen 1 (agua de vida)
  1827. fillup_with($item[agua de vida], spleen_limit() - my_spleen_use(), 4, "chew", 10000, $item[none], 0);
  1828.  
  1829. // Food (sliders or lasagna or ??? + alien sandwich + bag of qwop)
  1830.  
  1831. // Use milk when needed
  1832. if(have_effect($effect[Got Milk]) < fullness_limit() - my_fullness()){
  1833. if(!buy_and_use($item[milk of magnesium], 1, 3000)){
  1834. abort("No Milk!");
  1835. }
  1836. }
  1837.  
  1838. if(my_level() >= 13){
  1839. elem_res_gear("hot");
  1840. use_skill($skill[Reptilian Fortitude]);
  1841. use_skill($skill[The power ballad of the arrowsmith]);
  1842. use_skill($skill[Holiday weight gain]);
  1843. fillup_with($item[extra-greasy slider], fullness_limit() - my_fullness(), 5, "eat", 35000, $item[Ol' Scratch's salad fork], 25000);
  1844. } else {
  1845. if(now_to_string("EEE") == "lun"){
  1846. // Eating on a monday: popular tarts and bag of qwop
  1847. fillup_with($item[popular tart], fullness_limit() - my_fullness(), 2, "eat", 1500, $item[none], 0);
  1848. fillup_with($item[bag of qwop], fullness_limit() - my_fullness(), 1, "eat", 1500, $item[none], 0);
  1849. } else {
  1850. // Eating on other days: lasagna!
  1851. if(fullness_limit() - my_fullness() >= 9){
  1852. buy_and_use($item[potion of the field gar], 1, 10000);
  1853. }
  1854. fillup_with($item[fishy fish lasagna], fullness_limit() - my_fullness(), 3, "eat", 7000, $item[none], 0);
  1855. }
  1856. }
  1857.  
  1858. fillup_with($item[alien sandwich], fullness_limit() - my_fullness(), 2, "eat", 1500, $item[none], 0);
  1859. fillup_with($item[bag of qwop], fullness_limit() - my_fullness(), 2, "eat", 1500, $item[none], 0);
  1860.  
  1861. // Spleen 2 (agua de vida)
  1862. fillup_with($item[agua de vida], spleen_limit() - my_spleen_use(), 4, "chew", 10000, $item[none], 0);
  1863.  
  1864. // Cast Ode if needed
  1865. while(have_effect($effect[Ode to booze]) < get_free_drunk()){
  1866. use_skill($skill[The Ode to booze]);
  1867. }
  1868.  
  1869. // Drink (astral pilsners + perfect drinks + elemental caipiroskas)
  1870. // If library isn't unlocked, only drink up to 10
  1871. fillup_with($item[astral pilsner], get_free_drunk(), 1, "drink", 0, $item[none], 0);
  1872. // Shotglass
  1873. if(!get_property("_mimeArmyShotglassUsed").to_boolean()){
  1874. have_or_buy($item[elemental caipiroska], 1, 1600);
  1875. drink(1, $item[elemental caipiroska]);
  1876. }
  1877. fillup_with($item[perfect negroni], get_free_drunk(), 3, "drink", 4000, $item[none], 0);
  1878. fillup_with($item[elemental caipiroska], get_free_drunk(), 1, "drink", 1600, $item[none], 0);
  1879.  
  1880. // Spleen 3 (agua de vida + octolus oculus)
  1881. fillup_with($item[agua de vida], spleen_limit() - my_spleen_use(), 4, "chew", 10000, $item[none], 0);
  1882. fillup_with($item[octolus oculus], spleen_limit() - my_spleen_use(), 1, "chew", 3000, $item[none], 0);
  1883.  
  1884. // Use borrowed time?
  1885. if(use_borrowed && !get_property("_borrowedTimeUsed").to_boolean()){
  1886. buy_and_use($item[borrowed time], 1, 7500);
  1887. }
  1888. }
  1889.  
  1890. void buff_noncoms(){
  1891. maximize_stash("-combat", false);
  1892.  
  1893. if(have_effect($effect[Carlweather's cantata of confrontation]) > 0){
  1894. cli_execute("shrug Carlweather's cantata of confrontation");
  1895. }
  1896. if(have_effect($effect[smooth movements]) < 1){
  1897. use_skill(1, $skill[smooth movement]);
  1898. }
  1899. if(have_effect($effect[the sonata of sneakiness]) < 1){
  1900. use_skill(1, $skill[the sonata of sneakiness]);
  1901. }
  1902. if(have_effect($effect[Fresh Scent]) < 1){
  1903. buy_and_use($item[chunk of rock salt], 1, 2000);
  1904. }
  1905. }
  1906.  
  1907. // Re-uses some code from http://kolmafia.us/showthread.php?10001-Tracking-Bugbears-a-Zapruder-Quest-Felonia-script
  1908. // Credit to Weatherboy
  1909. void do_zapruder(){
  1910. string zap_url = "place.php?whichplace=knoll_friendly&action=dk_mayor";
  1911. string status;
  1912.  
  1913. void give_pitchfork(){
  1914. have_or_buy($item[annoying pitchfork], 1, 500);
  1915. visit_url(zap_url);
  1916. }
  1917.  
  1918. void give_mushroom(){
  1919. // Just get 1 of each mushrooms, that'll work
  1920. have_or_buy($item[flaming mushroom], 1, 1000);
  1921. have_or_buy($item[frozen mushroom], 1, 1000);
  1922. have_or_buy($item[stinky mushroom], 1, 1000);
  1923. visit_url(zap_url);
  1924. }
  1925.  
  1926. void kill_felonia(){
  1927. have_or_buy($item[Small leather glove], 1, 1000);
  1928. use_familiar($familiar[Frozen Gravy Fairy]);
  1929. set_property("choiceAdventure5", 2);
  1930. buff_noncoms();
  1931.  
  1932. // Get GAP for free runs
  1933. if(get_property("_navelRunaways").to_int() < 9){
  1934. cli_execute("/whitelist Hardcore oxygenation");
  1935. if(take_stash(1, $item[greatest american pants]) || available_amount($item[greatest american pants]) > 0){
  1936. equip($item[greatest american pants]);
  1937. }
  1938. }
  1939. equip($slot[acc2], $item[Kremlin's Greatest Briefcase]);
  1940.  
  1941. // Do this until we have killed Felonia
  1942. while(get_property("questM03Bugbear") == "step2"){
  1943. // Make and equip spooky glove whenever we need it
  1944. if(available_amount($item[spooky glove]) < 1 && available_amount($item[spooky fairy gravy]) > 0 && available_amount($item[inexplicably glowing rock]) > 0){
  1945. cli_execute("make spooky glove");
  1946. equip($slot[acc1], $item[spooky glove]);
  1947. set_property("choiceAdventure5", 1);
  1948. }
  1949.  
  1950. //if(get_property("_navelRunaways").to_int() < 9){
  1951. // cli_execute("/aa runaway");
  1952. // cli_execute("ccs abort");
  1953. //} else {
  1954. // cli_execute("/aa none");
  1955. // cli_execute("ccs default");
  1956. //}
  1957.  
  1958. restore_mp(50);
  1959. adv1($location[The Spooky Gravy Burrow], -1, cs_all_macro);
  1960.  
  1961. //visit_url("adventure.php?snarfblat=48");
  1962. //run_turn();
  1963.  
  1964. visit_url("questlog.php?which=1");
  1965. }
  1966.  
  1967. // Put GAP back in stash
  1968. if(available_amount($item[greatest american pants]) > 0){
  1969. if(have_equipped($item[greatest american pants])){
  1970. equip($slot[pants], $item[none]);
  1971. }
  1972. cli_execute("/whitelist Hardcore oxygenation");
  1973. put_stash(1, $item[greatest american pants]);
  1974. }
  1975. cli_execute("/whitelist not dead yet");
  1976. cli_execute("/aa none");
  1977. cli_execute("ccs default");
  1978. }
  1979.  
  1980. repeat {
  1981. status = get_property("questM03Bugbear");
  1982. switch(status) {
  1983. case "unstarted" : visit_url(zap_url); break;
  1984. case "started" : give_pitchfork(); break;
  1985. case "step1" : give_mushroom(); break;
  1986. case "step2" : kill_felonia(); break;
  1987. case "step3" : visit_url(zap_url); break;
  1988. case "finished" : print("Felonia quest finished"); break;
  1989. }
  1990. } until (status == "finished");
  1991. cli_execute("/aa none");
  1992. cli_execute("ccs default");
  1993. }
  1994.  
  1995. void do_jelly(){
  1996. while(get_property("_spaceJellyfishDrops").to_int() < 5){
  1997. cli_execute("/aa auto_jelly");
  1998. cli_execute("ccs abort");
  1999.  
  2000. use_familiar($familiar[space jellyfish]);
  2001. buff_coms();
  2002. visit_url("adventure.php?snarfblat=26");
  2003. }
  2004.  
  2005. cli_execute("/aa none");
  2006. cli_execute("ccs default");
  2007. }
  2008.  
  2009. void unlock_billiards(){
  2010. if(available_amount($item[Spookyraven billiards room key]) < 1){
  2011. maximize_stash("hot res, stench res", false);
  2012. cli_execute("/aa cs_aftercore");
  2013. cli_execute("ccs abort");
  2014.  
  2015. use_familiar($familiar[robortender]);
  2016. equip($item[toggle switch (Bounce)]);
  2017. }
  2018.  
  2019. while(available_amount($item[Spookyraven billiards room key]) < 1){
  2020. adv1($location[the haunted kitchen], -1, "");
  2021. }
  2022.  
  2023. cli_execute("/aa none");
  2024. cli_execute("ccs default");
  2025. }
  2026.  
  2027. void unlock_library(){
  2028. boolean drink = true;
  2029. if(available_amount($item[[7302]Spookyraven library key]) < 1){
  2030. cli_execute("/aa cs_aftercore");
  2031. cli_execute("ccs abort");
  2032. use_familiar($familiar[robortender]);
  2033. equip($item[toggle switch (Bounce)]);
  2034. set_property("choiceAdventure875", 1);
  2035.  
  2036. // Equip pool cue
  2037. equip($item[pool cue]);
  2038. }
  2039.  
  2040. while(available_amount($item[[7302]Spookyraven library key]) < 1){
  2041. buff_noncoms();
  2042.  
  2043. // Buff pool skill
  2044. if(have_effect($effect[Chalky Hand]) < 1){
  2045. buy_and_use($item[handful of hand chalk], 1, 500);
  2046. }
  2047. if(have_effect($effect[Influence of Sphere]) < 1){
  2048. buy_and_use($item[sugar sphere], 1, 3000);
  2049. }
  2050.  
  2051. //if(have_effect($effect[Swimming with Sharks]) < 1){
  2052. // buy_and_use($item[shark cartilage], 1, 6000);
  2053. //}
  2054.  
  2055. adv1($location[the haunted billiards room], -1, "");
  2056. }
  2057.  
  2058. if(drink){
  2059. // Call eatdrink to fill up liver now
  2060. eat_drink();
  2061. }
  2062.  
  2063. cli_execute("/aa none");
  2064. cli_execute("ccs default");
  2065. }
  2066.  
  2067. void buff_items(){
  2068. int nb_cast = 0;
  2069. if(my_adventures() > 0){
  2070. // Buffbot ==> no good way to automate this without breaking chat commands (?), do it manually beforehand!
  2071. if(have_effect($effect[Fat Leon's Phat Loot Lyric]) < my_adventures() || have_effect($effect[Empathy]) < my_adventures() ){
  2072. abort("Get buffs from buffbot first!");
  2073. }
  2074.  
  2075. cli_execute("/aa cs_aftercore");
  2076. cli_execute("ccs abort");
  2077.  
  2078. // Terminal
  2079. while(get_property("_sourceTerminalEnhanceUses").to_int() < 3){
  2080. cli_execute("terminal enhance item");
  2081. }
  2082.  
  2083. // Pool
  2084. while(get_property("_poolGames").to_int() < 3){
  2085. cli_execute("pool 3");
  2086. }
  2087.  
  2088. // Self-buffs
  2089. nb_cast = nb_cast_req($effect[Leash of Linguini], 10, my_adventures());
  2090. if(nb_cast > 0) cli_execute("cast "+nb_cast+" leash");
  2091. nb_cast = nb_cast_req($effect[Singer's Faithful Ocelot], 10, my_adventures());
  2092. if(nb_cast > 0) cli_execute("cast "+nb_cast+" Singer's Faithful Ocelot");
  2093.  
  2094. // Familiar
  2095. // TODO: use boots runaways
  2096. use_familiar($familiar[trick-or-treating tot]);
  2097. if(available_amount($item[li'l ninja costume]) < 1){
  2098. buff_coms();
  2099. get_ninja();
  2100. }
  2101.  
  2102. if(available_amount($item[li'l ninja costume]) > 0){
  2103. equip($item[li'l ninja costume]);
  2104. }
  2105.  
  2106. // Gear
  2107. cli_execute("/whitelist hardcore oxygenation");
  2108. refresh_stash();
  2109. maximize_stash("item drop -weapon", true);
  2110. take_and_equip($item[bottle-rocket crossbow], 1, $slot[weapon]);
  2111. }
  2112.  
  2113. cli_execute("/aa none");
  2114. cli_execute("ccs default");
  2115. }
  2116.  
  2117. void farm_tattered(){
  2118. cli_execute("/aa cs_aftercore");
  2119. cli_execute("ccs abort");
  2120.  
  2121. // TODO: shatterpunch, jokester
  2122.  
  2123. while(my_adventures() > 0){
  2124. // Banish writing desk with rhino
  2125. if(get_property("_nanorhinoBanishedMonster") == ""){
  2126. use_familiar($familiar[Nanorhino]);
  2127. } else {
  2128. use_familiar($familiar[trick-or-treating tot]);
  2129. }
  2130.  
  2131. do_ghost();
  2132. adv1($location[the haunted library], -1, "");
  2133. }
  2134.  
  2135. cli_execute("/aa none");
  2136. cli_execute("ccs default");
  2137. }
  2138.  
  2139. void do_end(){
  2140. cli_execute("/whitelist hardcore oxygenation");
  2141. put_back_stash($item[hypnodisk], 1);
  2142. put_back_stash($item[Jekyllin hide belt], 3);
  2143. put_back_stash($item[flaming pink shirt], 1);
  2144. put_back_stash($item[Grimacite go-go boots], 1);
  2145. put_back_stash($item[Mr. Accessory Jr.], 3);
  2146. put_back_stash($item[bottle-rocket crossbow], 1);
  2147. put_back_stash($item[bag o' tricks], 1);
  2148. cli_execute("/whitelist not dead yet");
  2149.  
  2150. // Burn MP
  2151. cli_execute("cast * bricko");
  2152.  
  2153. // Make pocket wishes
  2154. while(get_property("_genieWishesUsed").to_int() < 3){
  2155. cli_execute("genie.ash wish");
  2156. }
  2157. }
  2158.  
  2159. void do_pvp(){
  2160. if(pvp_attacks_left() > 0 && do_pvp){
  2161. maximize_stash("hot dmg, hot spell dmg", false);
  2162. cli_execute("pvp fame fahrenheit");
  2163. }
  2164. }
  2165.  
  2166. void do_spacegate(){
  2167. if(!get_property("_spacegateToday").to_boolean()){
  2168. cli_execute("call Spacegate.ash");
  2169. use_skill(1, $skill[Cannelloni Cocoon]);
  2170. }
  2171. }
  2172.  
  2173. void exec_after(){
  2174. // KGB briefcase clicks
  2175. // Time-spinner minutes
  2176.  
  2177. // Breakfast
  2178. have_breakfast();
  2179.  
  2180. // Time spinner
  2181. if(!get_property("_timeSpinnerReplicatorUsed").to_boolean() && get_property("_timeSpinnerMinutesUsed").to_int() <= 8){
  2182. cli_execute("FarFuture.ash mall");
  2183. }
  2184.  
  2185. // Consume!
  2186. eat_drink();
  2187.  
  2188. // Do zapruder quest
  2189. do_zapruder();
  2190.  
  2191. // Get stench jellies
  2192. do_jelly();
  2193.  
  2194. // Spacegate research
  2195. do_spacegate();
  2196.  
  2197. // Unlock billiards room
  2198. unlock_billiards();
  2199.  
  2200. // Unlock library
  2201. unlock_library();
  2202.  
  2203. // Buff +items
  2204. buff_items();
  2205.  
  2206. // Farm tattered scraps of paper
  2207. farm_tattered();
  2208.  
  2209. // Put stuff back in the stash
  2210. do_end();
  2211.  
  2212. // Spend pvp fights
  2213. do_pvp();
  2214.  
  2215. // Mallsell stuff
  2216. cli_execute("use_and_mall.cli");
  2217. }
  2218.  
  2219. void check_daycount(int day_ref){
  2220. if(day_ref != my_daycount()){
  2221. abort("Cannot execute this when not on day "+day_ref+"!");
  2222. }
  2223. }
  2224.  
  2225. void main(string args){
  2226. switch(args){
  2227. case "step1":
  2228. check_daycount(1);
  2229. exec_step1();
  2230. break;
  2231. case "step2":
  2232. check_daycount(1);
  2233. exec_step2();
  2234. break;
  2235. case "step3":
  2236. check_daycount(1);
  2237. exec_step3();
  2238. break;
  2239. case "step4":
  2240. check_daycount(1);
  2241. exec_step4();
  2242. break;
  2243. case "day2_step1":
  2244. check_daycount(2);
  2245. exec_day2_step1();
  2246. break;
  2247. case "day2_step2":
  2248. check_daycount(2);
  2249. exec_day2_step2();
  2250. break;
  2251. case "day2_step3":
  2252. check_daycount(2);
  2253. exec_day2_step3();
  2254. break;
  2255. case "aftercore":
  2256. exec_after();
  2257. break;
  2258. default:
  2259. print("Step not recognized");
  2260. break;
  2261. }
  2262. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement