Advertisement
myName_Is_Seesee

Slime tube Fast run

Mar 9th, 2020
513
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 32.79 KB | None | 0 0
  1. script "Seesee_Slime.ash";
  2. /**************************************************************************************************
  3. This script uses LOW ML as a first strike to get "covered in slime", and then uses HIGH ML to fight subsequent slimes.
  4. It also automatically collects 5 Groose Grease each day.
  5. It also uses as many Free Run-aways as it can for fighting the low ML slimes, before using CLEESH.
  6. Run away methods:
  7. 1. Natural run aways
  8. 2. After natural run aways run out, it gets the Susie buff for one more runaway.
  9. 3. After Susie, it gets the Hatter buff for one more run away.
  10. 4. After Hatter, it uses Meteorshower (combat skill +20 familiar weight) for 4 more runaways
  11. 5. After meteor shower, it uses 3 Snoke bombs skills
  12. 6. After Snoke, it uses Louder than bombs
  13. 7. After bombs...it begins to use Cleesh.
  14.  
  15. It also keeps you informed of your progress throughout the run, and keeps a running estimate of when you should be done.
  16. This progress report can be continued without interuption over rollovers. (As sometimes, a slime run will be finished over two days. )
  17.  
  18. It gives the option to use Louder than bomb or not.
  19. It gives the option to use Swimming pool buff or not.
  20. It stops in the beginning to allow you to check if your ML is correct for both LOW and HIGH moments.
  21. It keeps track of how many turns you're getting before you have to use Chamois.
  22.  
  23. It auto preps all the necessary pre-fight buffs and preparations in order to start the slime run:
  24. 1. Checks all buffs, and extends them if they are too short on turns.
  25. 2. Checks all materials to see if you have enough for the run.
  26. 3. Fills up the bucket with Chamois
  27. 4. Makes sure you're in the correct clan before fighting. and auto corrects if you are not.
  28.  
  29. It's really made for my own private (Sauceror) use, but it could work for others if they have the same gear.
  30. *******************************************************************************************************/
  31. ###########################################################################################################
  32.  
  33.  
  34. boolean Check_firstStrike = false; #Gives the user a chance to confirm if LOW ML is correct before starting.
  35. boolean Check_followupStrikes = false; #Gives the user a chance to confirm if HIGH ML is correct before continuing.
  36. int runAway_Count = 0; #Keeps track how many free-aways you were able to get before you started cleeshing low-level slimes.
  37. boolean Check_First_While_Adventures = false; #Makes sure we only check the number of initial fights we're getting ONCE.
  38. boolean Check_Second_While_Adventures = false; #Makes sure we only check the number of secondary fghts we're getting ONCE.
  39.  
  40. int fightCount_holder = 0; #Keeps track of how many fights we had.
  41. int my_starting_adv_count = my_adventures(); #Keeps track of how many fights we had.
  42. int Clan_out_attempts = 0; #Keeps track of how many times we tried to go to Old CW's, so we can stop if we don't make it after 3 tries.
  43. int Clan_return_attempts = 0; #Keeps track of how many times we tried to return to Big Timers, so we can stop if we don't make it after 3 tries.
  44. int lacking = 0; #Tells us how many potions we are lacking of different buffs, so we can drink more if we need to.
  45. int iteration_count_holder = 7; #We fight in a WHILE loop, this keeps track of how many fights we can get inside of each WHILE loop (called an iteration).
  46. int Total_ML_Killed = 0; #Keeps track of how much ML we killed so far.
  47. boolean end_after_lapdog = false; #Keeps track of whether you want to end script when lapdog wears off.
  48. int try_susie = 0; #Sometimes there are problems with getting the Fortune buff. This variable allows 3 tries and then gives up on it.
  49. int try_hatter = 0; #Sometimes there are problems with getting the Hatter buff. This variable allows 3 tries and then gives up on it.
  50.  
  51. int estimated_total_fight_count_to_finish = 0;
  52. int total_fights_used_with_runaways = 0; #Keeps track of how many fights were completed using a free runaway after getting covered in slime.
  53. int fights_still_needed = 0;
  54. int number_of_bombs_to_use = 5; #This constant can be changed to use more or less Louder than bombs.
  55.  
  56.  
  57. int ML_per_turn = 0; #We can continually estimate how many more turns are left till we finish.
  58. int ML_remaining = 0; #
  59. int Turns_still_needed = 0; #Useful if you've got a turn goal in mind.
  60.  
  61. float[int] slime_percent; #for calculating "covered in slime" damage.
  62. slime_percent[1] = 5.334167;
  63. slime_percent[2] = 4.001677;
  64. slime_percent[3] = 2.9025;
  65. slime_percent[4] = 2.016667;
  66. slime_percent[5] = 1.325;
  67. slime_percent[6] = .805833;
  68. slime_percent[7] = .4391667;
  69. slime_percent[8] = .200833;
  70. slime_percent[9] = .066667;
  71. slime_percent[10] = 0;
  72. slime_percent[11] = 0;
  73.  
  74.  
  75. #5 persistant properties are tracked throughout the run.
  76. #This resets those variables if you are starting a fresh run, or continues the variables from where you last left off.
  77. void restart_actions() #It also fills up the bucket with chamois if you are on a fresh start. Aborts on lack of chamois.
  78. {
  79. if ( user_confirm( "Are you starting a fresh Slimetube run?" ) )
  80. {
  81. set_property("freerun_away_count",0);
  82. print("Your free runaway count has been reset to " + get_property("freerun_away_count") , "blue");
  83.  
  84. set_property("total_fight_count",0);
  85. print("Your current fight count has been reset to " + get_property("total_fight_count") , "blue");
  86.  
  87. set_property("total_ML_count",0);
  88. print("Your current ML count has been reset to " + get_property("total_ML_count") , "blue");
  89.  
  90. set_property("total_cleesh_Count",0);
  91. print("Your current Cleesh count has been reset to " + get_property("total_cleesh_Count") , "blue");
  92.  
  93. set_property("total_Bomb_Count",0);
  94. print("Your current Louder than bomb count has been reset to " + get_property("total_Bomb_Count") , "blue");
  95.  
  96. set_property("fightCount_holder",0);
  97.  
  98. if (item_amount($item[big bundle of chamoix]) < 1)
  99. {
  100. print("Sorry, you don't have any more chamois to fill up the bucket.", "blue");
  101. abort("Go get some more chamois!");
  102. }
  103. else
  104. {
  105. use( 1, $item[big bundle of chamoix] );
  106. print("...and your Slimetube bucket was filled with 100 chamois." , "blue");
  107. }
  108. }
  109. else
  110. {
  111. fightCount_holder = get_property("total_fight_count").to_int();
  112. print("Your free runaway count is currently at " + get_property("freerun_away_count") , "blue");
  113. print("Your fight count is currently at " + get_property("total_fight_count") , "blue");
  114. print("Your ML count is currently at " + get_property("total_ML_count") , "blue");
  115. print("Your Cleesh count is currently at " + get_property("total_cleesh_Count") , "blue");
  116. print("Your Louder than Bomb count is currently at " + get_property("total_Bomb_Count") , "blue");
  117. }
  118. }
  119.  
  120. void get_buffs() #Automatically gives enough turns of each buff to last for the amount of turns we have. Aborts if we don't have enough supply.
  121. {
  122. if ( have_effect($effect[Go Get 'Em, Tiger!]) < my_adventures() )
  123. {
  124. Print("You need more, --> Go Get 'Em, Tiger!" , "blue" );
  125. lacking = max( ((my_adventures() - have_effect($effect[Go Get 'Em, Tiger!]))/3)+1 , 0 );
  126.  
  127. If ( item_amount( $item[Ben-Gal&trade; Balm] ) < lacking )
  128. {
  129. abort("You don't have enough Ben-Gal Balm. Go buy some more!");
  130. }
  131. Else
  132. {
  133. use( lacking, $item[Ben-Gal&trade; Balm] );
  134. print("You now have " + have_effect($effect[Go Get 'Em, Tiger!]) + " turns of --> Go Get 'Em, Tiger!" , "blue" );
  135. }
  136. }
  137.  
  138. if ( have_effect($effect[Incredibly Hulking]) < my_adventures() )
  139. {
  140. Print("You need more, --> Incredibly Hulking" , "blue" );
  141. lacking = max( ((my_adventures() - have_effect($effect[Incredibly Hulking]))/15)+1 , 0 );
  142.  
  143. If ( item_amount( $item[Ferrigno's Elixir of Power] ) < lacking )
  144. {
  145. abort("You don't have enough Ferrigno's Elixir of Power. Go buy some more!");
  146. }
  147. Else
  148. {
  149. use( lacking, $item[Ferrigno's Elixir of Power] );
  150. print("You now have " + have_effect($effect[Incredibly Hulking]) + " turns of --> Incredibly Hulking." , "blue" );
  151. }
  152. }
  153.  
  154. if ( have_effect($effect[Phorcefullness]) < my_adventures() )
  155. {
  156. Print("You need more, --> Phorcefullness" , "blue" );
  157. lacking = max( ((my_adventures() - have_effect($effect[Phorcefullness]))/15)+1 , 0 );
  158.  
  159. If ( item_amount( $item[philter of phorce] ) < lacking )
  160. {
  161. abort("You don't have enough Philter of Phorce. Go buy some more!");
  162. }
  163. Else
  164. {
  165. use( lacking, $item[philter of phorce] );
  166. print("You now have " + have_effect($effect[Phorcefullness]) + " turns of --> Phorcefullness." , "blue" );
  167. }
  168. }
  169.  
  170. if ( have_effect($effect[Tomato Power]) < my_adventures() )
  171. {
  172. Print("You need more, --> Tomato Power" , "blue" );
  173. lacking = max( ((my_adventures() - have_effect($effect[Tomato Power]))/15)+1 , 0 );
  174.  
  175. If ( item_amount( $item[tomato juice of powerful power] ) < lacking )
  176. {
  177. abort("You don't have enough tomato juice of powerful power. Go buy some more!");
  178. }
  179. Else
  180. {
  181. use( lacking, $item[tomato juice of powerful power] );
  182. print("You now have " + have_effect($effect[Tomato Power]) + " turns of --> Tomato Power." , "blue" );
  183. }
  184. }
  185.  
  186. if (item_amount($item[scroll of drastic healing]) < 100 )
  187. {
  188. abort("You should go get more Scrolls of Drastic Healing and start again.");
  189. }
  190. if (item_amount($item[honey-dipped locust]) < 150 )
  191. {
  192. abort("You should go get more Honey-dipped Locusts and start again.");
  193. }
  194.  
  195. if (user_confirm( "Number of Bombs to be used: " + number_of_bombs_to_use + " Is that ok?") )
  196. {
  197. if (item_amount($item[louder than bomb]) < number_of_bombs_to_use )
  198. {
  199. abort("You don't have enough Bombs. Go buy some more and start again!");
  200. }
  201. else
  202. {
  203. print("Ok, we will use " + number_of_bombs_to_use + " bombs before we start cleeshing.", "blue");
  204. }
  205.  
  206. }
  207. else
  208. {
  209. abort("Ok...we'll stop and you can change that.");
  210. }
  211. }
  212.  
  213. int Expected_slime_damage() #considers "slime resistance" and "damage expected" from current monster to determine a final expected damage for the turn.
  214. {
  215. int damage = my_maxhp() * slime_percent[ have_effect( $effect[Coated in Slime] ) ];
  216. return ceil( damage - ( damage * ( elemental_resistance( $element[slime] ) / 100 ) ) ) + expected_damage($monster[Slime Colossus]);
  217. }
  218.  
  219. Void VerifyUsed_Chamois () #This routine helps to guard against internet problems and "time out" errors to MAKE SURE you used a Chamois
  220. {
  221. while ( have_effect( $effect[Coated in Slime] ) > 0 )
  222. {
  223. cli_execute
  224. {
  225. /chamois
  226. }
  227. }
  228. }
  229.  
  230. void check_if_lapdog() #Gives option to use Lapdog for 50 advs. and option to STOP when lapdog wears off.
  231. {
  232. if (user_confirm( "Should we use the pool to get Lapdog?" ) )
  233. {
  234. while ( get_clan_id()!= 14909 ) #Keep trying to get back if we're not successful.
  235. {
  236. visit_url("showclan.php?recruiter=1&whichclan="+ 14909 +"&pwd&whichclan=" + 14909 + "&action=joinclan&apply=Apply+to+this+Clan&confirm=on");
  237. if (get_clan_id()!= 14909)
  238. {
  239. Clan_out_attempts = Clan_out_attempts+1;
  240. Print("Could not jump to CW's. Attempts: " + Clan_out_attempts, "blue");
  241. if (Clan_out_attempts == 3)
  242. {
  243. Print("We tried 3 times to join CW's clan, but failed.", "blue");
  244. abort("Find out why.");
  245. }
  246. }
  247. }
  248. cli_execute
  249. {
  250. swim laps
  251. }
  252. if (user_confirm( "Should we end script when Lapdog is over?" ) )
  253. {
  254. end_after_lapdog = true;
  255. print("Ok...we'll stop when we run out of Lapdog", "blue");
  256. }
  257. else
  258. {
  259. end_after_lapdog = false;
  260. print("Ok...we'll keep going when we run out of Lapdog", "blue");
  261. }
  262. while (get_clan_id()!= 35794) #Keep trying to get back if we're not successful.
  263. {
  264. visit_url("showclan.php?recruiter=1&whichclan="+ 35794 +"&pwd&whichclan=" + 35794 + "&action=joinclan&apply=Apply+to+this+Clan&confirm=on");
  265. if (get_clan_id()!= 35794)
  266. {
  267. Clan_return_attempts = Clan_return_attempts+1;
  268. Print("Could not return to Big Timers. Attempts: " + Clan_return_attempts, "blue");
  269. if (Clan_return_attempts == 3)
  270. {
  271. Print("We tried 3 times to return to Big Timers, but failed.", "blue");
  272. abort("Find out why.");
  273. }
  274. }
  275. }
  276. }
  277. else
  278. {
  279. print("ok...no swimming today!");
  280. }
  281. }
  282.  
  283. void Get_susie () #This routine jumps clans to get Fortune Teller buff, and protects against "time out" errors that may interfere.
  284. {
  285. while ( get_clan_id()!= 14909 ) #Try only 3 times to get to OLD CW's and if we're not successful then abort.
  286. {
  287. visit_url("showclan.php?recruiter=1&whichclan="+ 14909 +"&pwd&whichclan=" + 14909 + "&action=joinclan&apply=Apply+to+this+Clan&confirm=on");
  288. if (get_clan_id()!= 14909)
  289. {
  290. Clan_out_attempts = Clan_out_attempts+1;
  291. Print("Could not jump to CW's. Attempts: " + Clan_out_attempts, "blue");
  292. if (Clan_out_attempts == 3)
  293. {
  294. Print("We tried 3 times to join CW's clan, but failed.", "blue");
  295. abort("Find out why.");
  296. }
  297. }
  298. }
  299.  
  300. while ( get_property("_clanFortuneBuffUsed") == false ) #makes sure we get this buff.
  301. {
  302. cli_execute
  303. {
  304. fortune buff familiar
  305. }
  306. }
  307.  
  308.  
  309. while (get_clan_id()!= 35794) #Try only 3 times to return to Big Timer's and if we're not successful then abort.
  310. {
  311. visit_url("showclan.php?recruiter=1&whichclan="+ 35794 +"&pwd&whichclan=" + 35794 + "&action=joinclan&apply=Apply+to+this+Clan&confirm=on");
  312. if (get_clan_id()!= 35794)
  313. {
  314. Clan_return_attempts = Clan_return_attempts+1;
  315. Print("Could not return to Big Timers. Attempts: " + Clan_return_attempts, "blue");
  316. if (Clan_return_attempts == 3)
  317. {
  318. Print("We tried 3 times to return to Big Timers, but failed.", "blue");
  319. abort("Find out why.");
  320. }
  321. }
  322. }
  323. }
  324.  
  325. void VerifyUsed_HealScroll () #This routine helps to guard against internet problems and "time out" errors to MAKE SURE you used a Heal Scroll.
  326. {
  327. while (my_hp() < my_maxhp())
  328. {
  329. use( 1, $item[scroll of drastic healing] );
  330. }
  331. }
  332.  
  333. void visit_the_hatter () #I've noticed that this will have trouble if your hat has 3 words in it...such as, reinforced beaded headband.
  334. {
  335. cli_execute
  336. {
  337. hatter suspicious-looking fedora
  338. }
  339. }
  340.  
  341. void Determine_FirstStrike_and_Familiar ()
  342. /**************************************************************************************************
  343. This routine determines how to attack our FIRST "low level" slime fight that will cover us in Slime. We want to get as low ML as possible obviously.
  344. Also, it uses as many different ways as possible to squeeze as many free run_aways out of our Stomping boots as possible.
  345. It utilizes:
  346. 1. Normal Free run_away count
  347. 2. Susie buff to get 1 more run-way
  348. 3. Hatter buff to get 1 more run-way
  349. 4. Meteorshower skill to get 4 more run-ways
  350. 5. 3 snoke bombs to get 3 more run-ways
  351.  
  352. After ALL free run_aways are used, we start to cleesh. We could perhaps use a few more potions, but I don't want to spend the meat!
  353. *******************************************************************************************************/
  354. {
  355.  
  356. if ( get_property( "_banderRunaways" ).to_int() < floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 )
  357. {
  358. cli_execute("familiar Stomping"); #We only come here if we have more NATURAL free run_aways.
  359. cli_execute("ccs FreeRun");
  360. print("using stomping boots runaway skill");
  361. set_property("freerun_away_count" , (get_property("freerun_away_count").to_int()+1) ); #Keeping track of the free run_away count for verification in the end.
  362. }
  363.  
  364. if ( get_property( "_banderRunaways" ).to_int() >= floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 &&
  365. get_property( "_banderRunaways" ).to_int() < (floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5)+4 &&
  366. get_property( "_madTeaParty" ) == true )
  367.  
  368. {
  369. cli_execute("familiar Stomping"); #We only come here if we are ready to use METEOR SHOWER to get 4 more free run_aways.
  370. cli_execute("ccs MicroFreeRun");
  371. print("using meteor shower skill " + (get_property("_meteorShowerUses")+1) );
  372. print("You have " + (have_effect($effect[You Can Really Taste the Dormouse])) + " turns of +5 Fam Weight Hatter effect.");
  373. set_property("freerun_away_count" , (get_property("freerun_away_count").to_int()+1) ); #Keeping track of the free run_away count for verification in the end.
  374. }
  375.  
  376. if ( get_property( "_banderRunaways" ).to_int() >= floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 &&
  377. get_property( "_madTeaParty" ) == false &&
  378. get_property("_clanFortuneBuffUsed") == true )
  379. {
  380. print("Trying to get Hatter buff.", "blue"); #We only come here if we are ready to use Hatter buff to get 1 more free run_away.
  381. visit_the_hatter ();
  382. if ( get_property( "_banderRunaways" ).to_int() < floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 )
  383. {
  384. print("We successfully got Hatter buff.", "green");
  385. cli_execute("familiar Stomping");
  386. set_property("freerun_away_count" , (get_property("freerun_away_count").to_int()+1) );
  387. cli_execute("ccs FreeRun");
  388. }
  389. else
  390. {
  391. print("For some reason we did NOT get Hatter buff. We have to use Cleesh.", "green");
  392. cli_execute("familiar Stomping");
  393. cli_execute("ccs cleesh");
  394. set_property("total_cleesh_Count", (get_property("total_cleesh_Count").to_int()+1) );
  395. try_hatter = try_hatter + 1;
  396. if(try_hatter >2)
  397. {
  398. print("We tried 2 times to get the Hatter buff, but failed. Giving up now.", "green");
  399. set_property("_madTeaParty", true );
  400. }
  401. else
  402. {
  403. print("I will try to get the Hatter buff again next iteration.", "green");
  404. }
  405.  
  406. }
  407. }
  408.  
  409. if ( get_property( "_banderRunaways" ).to_int() >= floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 &&
  410. get_property( "_madTeaParty" ) == false &&
  411. get_property("_clanFortuneBuffUsed") == false )
  412. {
  413. print("Trying to get Susie buff.", "blue"); #We only come here if we are ready to use Susie buff to get 1 more free run_away.
  414. Get_susie ();
  415. if ( get_property( "_banderRunaways" ).to_int() < floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 )
  416. {
  417. print("We successfully got Susie buff.", "green"); #A foolproof safety check to INSURE we got the susie buff before trying to fight again. IMPORTANT!
  418. cli_execute("familiar Stomping");
  419. set_property("freerun_away_count" , (get_property("freerun_away_count").to_int()+1) );
  420. cli_execute("ccs FreeRun");
  421. }
  422. else
  423. {
  424. print("For some reason we did NOT get Susie buff. We have to use Cleesh.", "green");
  425. cli_execute("familiar Stomping");
  426. cli_execute("ccs cleesh");
  427. set_property("total_cleesh_Count", (get_property("total_cleesh_Count").to_int()+1) );
  428. try_susie = try_susie + 1;
  429. if(try_susie >2)
  430. {
  431. print("We tried 2 times to get Susie, but failed. Giving up now.", "green");
  432. set_property("_clanFortuneBuffUsed", true );
  433. }
  434. else
  435. {
  436. print("I will try to get susie buff again next iteration.", "green");
  437. }
  438.  
  439. }
  440. }
  441.  
  442. if ( get_property( "_banderRunaways" ).to_int() >= (floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 )+4 &&
  443. get_property("_snokebombUsed" ).to_int() <3 &&
  444. get_property( "_madTeaParty" ) == true )
  445. { #It doesn't matter what familiar is active. I picked sombrero to show that I'm using snokes.
  446. cli_execute("Familiar sombrero"); #We only come here if we are ready to use SNOKE skill to get 3 more free run_aways.
  447. cli_execute("ccs Snoke_run"); #Unfortunately, Shatterfist advances the fight counter in the Tube, even though it does NOT advance the turn counter.
  448. print("using snokebombs to runaway."); #So we can't use Shatterfist in low level FIRST strikes.
  449. set_property("freerun_away_count" , (get_property("freerun_away_count").to_int()+1) );
  450. }
  451.  
  452. if ( get_property( "_banderRunaways" ).to_int() >= (floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 )+4 &&
  453. get_property("_snokebombUsed" ).to_int() >=3 &&
  454. get_property("total_Bomb_Count").to_int() < number_of_bombs_to_use + 1 ) #We only come here when we're completely done with our free run aways.
  455. {
  456. cli_execute("Familiar sombrero"); #It really doesn't matter which familiar we use here, as we are using Louder than bomb to end the turn.
  457. cli_execute("ccs bombs");
  458. print("Using Bombs now.");
  459. set_property("total_Bomb_Count", (get_property("total_Bomb_Count").to_int()+1) );
  460.  
  461. }
  462.  
  463. if ( get_property( "_banderRunaways" ).to_int() >= (floor( numeric_modifier( "Familiar Weight" ) + familiar_weight( $familiar[Pair of Stomping Boots] ) ) / 5 )+4 &&
  464. get_property("total_Bomb_Count").to_int() > number_of_bombs_to_use )
  465. {
  466. cli_execute("Familiar sombrero"); #We only come here at the end, when all Free run_aways are used up.
  467. cli_execute("ccs cleesh"); #It really doesn't matter which familiar we use here, as we are cleeshing anyway.
  468. print("Starting to use Cleesh now.");
  469. set_property("total_cleesh_Count", (get_property("total_cleesh_Count").to_int()+1) );
  470. }
  471. }
  472.  
  473. void Determine_FollowUpStrikes_and_Familiar ()
  474. /**************************************************************************************************
  475. This routine determines how to continue attacking after the FIRST strike. We want to get as HIGH ML as possible obviously.
  476. Also, it gets 5 grease drops from our Groose before switching to the Purse Rat.
  477. This does add 2 or 3 turns to the fight count, but it's worth it to get the 5 grease.
  478. *******************************************************************************************************/
  479. {
  480. if (my_familiar() == $familiar[Bloovian Groose] && # just in case Mafia looses track of "_grooseDrops"!
  481. my_adventures() < my_starting_adv_count-29 ) # if we adventured for 30 turns and didn't get 5 "_grooseDrops", something is wrong! So let's start using Purse Rat.
  482. {
  483. cli_execute("familiar Purse rat");
  484. cli_execute("ccs fight");
  485. print("Something went wrong with Mafia keeping track of your grease drops. Switching to Purse Rat now.");
  486. }
  487.  
  488. if ( get_property("_grooseDrops" ).to_int() <=4 && #Trying to get our 5 grease drops for at most 30 turns, so keep using the Groose.
  489. my_adventures() >= my_starting_adv_count-29)
  490. {
  491. cli_execute("familiar Groose");
  492. cli_execute("ccs fight");
  493. print("CONTINUING STRIKES: Still using Groose trying to get 5 grease drops. We have " + (get_property("_grooseDrops" ).to_int()) );
  494. }
  495.  
  496. if ( get_property("_grooseDrops" ).to_int() >=5 ) #When we finally get our 5 grease drops, switch over to Purse Rat.
  497. {
  498. cli_execute("familiar Purse rat");
  499. cli_execute("ccs fight");
  500. print("CONTINUING STRIKES: All grease collected..Purse rat is used ALL the time");
  501. }
  502. }
  503.  
  504. void check_Clan() #Makes sure we are in the right clan! I can't tell you how many times made this mistake BEFORE I added this code!
  505. {
  506. if (get_clan_name() != "Big Timers" )
  507. {
  508. if (user_confirm( "You seem to be in the wrong clan. Do you want to switch to Big Timers? If not we'll stop." ) )
  509. {
  510. visit_url("showclan.php?recruiter=1&whichclan="+ 35794 +"&pwd&whichclan=" + 35794 + "&action=joinclan&apply=Apply+to+this+Clan&confirm=on");
  511. }
  512. else
  513. {
  514. abort("Ok then. We'll stop.");
  515. }
  516. }
  517. }
  518.  
  519. boolean keep_Fighting() #This makes sure I stop fighting if I run out of booze/food/spleen buffs, or adventures.
  520. {
  521. if ( have_effect($effect[Grimace]) < iteration_count_holder )
  522. {
  523. Print("Sorry, your Grimace buff is too low to continue." , "blue" );
  524. return false;
  525. }
  526.  
  527. if ( have_effect($effect[Bilious]) < iteration_count_holder )
  528. {
  529. Print("Sorry, your Bilious buff is too low to continue." , "blue" );
  530. return false;
  531. }
  532.  
  533. if ( have_effect($effect[Slimebreath]) < iteration_count_holder )
  534. {
  535. Print("Sorry, your Slimebreath buff is too low to continue." , "blue" );
  536. return false;
  537. }
  538.  
  539. if ( end_after_lapdog == true )
  540. {
  541. if ( have_effect($effect[lapdog]) < iteration_count_holder )
  542. {
  543. Print("Your Lapdog is about to run out." , "blue" );
  544. return false;
  545. }
  546. }
  547.  
  548. if ( have_effect($effect[Slimebreath]) < iteration_count_holder )
  549. {
  550. Print("Sorry, your Slimebreath buff is too low to continue." , "blue" );
  551. return false;
  552. }
  553.  
  554. if ( my_adventures() < iteration_count_holder )
  555. {
  556. Print("You're out of adventures.");
  557. return false;
  558. }
  559. else
  560. {
  561. return true;
  562. }
  563. }
  564.  
  565. void bookkeeping()
  566. {
  567. iteration_count_holder = get_property("total_fight_count").to_int() - fightCount_holder;
  568. fightCount_holder = get_property("total_fight_count").to_int();
  569.  
  570. print("You are getting " + iteration_count_holder + " fights before you have to use a chamois", "green"); #Tracks how many fights before we have to use chamois and start again.
  571. print( (my_adventures()/iteration_count_holder) + " iterations left.", "blue"); #notification of how many more fight iterations we have remaining
  572. print(" ");
  573.  
  574. ML_per_turn = Round( get_property("total_ML_count").to_int() / get_property("total_fight_count").to_int() ); #Tracks how much ML we are getting each fight.
  575. print("We are killing " + ML_per_turn + " ML of slime per turn.", "purple");
  576.  
  577. print("We killed " + get_property("total_ML_count") + " ML of Slimetube monsters already.", "green");
  578.  
  579. ML_remaining = 400000 - get_property("total_ML_count").to_int();
  580. print("We have " + ML_remaining + " ML of slime remaining.", "purple");
  581. fights_still_needed = Round( ML_remaining / ML_per_turn ); #Tracks how many more fights in the tube are needed.
  582. total_fights_used_with_runaways = get_property("freerun_away_count").to_int()*iteration_count_holder;
  583. print("Total fights used with runways: " + total_fights_used_with_runaways, "blue"); #Tracks the number of fights before we had to use bombs or cleesh
  584. estimated_total_fight_count_to_finish = fights_still_needed + get_property("total_fight_count").to_int();
  585.  
  586. print("run_away count = " + get_property("freerun_away_count") , "blue"); #Tracks how many Run aways have been used this run.
  587. print("Cleesh count = " + get_property("total_cleesh_Count") , "blue"); #Tracks how many Cleeshes have been used this run.
  588. print(" ");
  589. print("Fight count = " + get_property("total_fight_count"), "purple"); #Tracks how many fights have occured in the Slimetube this run.
  590. print("Number of fights remaining to finish Slimetube: " + fights_still_needed , "purple" ); #How many Slimetube fights are left...estimated.
  591. print(" ");
  592. print("On target to finishing the Slimetube run in " + estimated_total_fight_count_to_finish + " fights.", "red" ); #Tracks estimated end-turn count.
  593. }
  594.  
  595. void main()
  596. {
  597.  
  598. check_Clan(); #Making sure I don't adventure in Old CW's slime tube!
  599. get_buffs(); #As a Saucerer, I need quite a few MUSCLE buffs in order to fight against the 1100+ML slimes. (I rely on Hero of the Half Shell)
  600. restart_actions(); #If this is a brand new run, Put 100 chammies in the bucket, and start keeping track of 'free runaways', 'number of fights' and 'total ML' for the whole run.
  601.  
  602. if( get_property("_olympicSwimmingPool") == false )
  603. {
  604. check_if_lapdog();
  605. }
  606.  
  607. while ( keep_Fighting() ) #keep fighting till TURNS or BUFFS run out.
  608. {
  609.  
  610. while ( current_mcd() > 0 || have_effect($effect[Ur-Kel's Aria of Annoyance]) > 0 || !is_wearing_outfit("minml") ) #protects against time-out errors, insuring we do these commands.
  611. {
  612. cli_execute {
  613. outfit minml
  614. mcd 0
  615. shrug Ur-kel's
  616. }
  617. }
  618.  
  619. Determine_FirstStrike_and_Familiar (); #Planning our FIRST attack.
  620.  
  621. if ( my_hp() < my_maxhp() )
  622. {
  623. VerifyUsed_HealScroll (); #Making sure we start with full health
  624. }
  625.  
  626. if (Check_firstStrike==false) #A one time check to verify if our Low ML is correct.
  627. {
  628. if (user_confirm( "Is your MINIMAL +ML ok?" ) )
  629. {
  630. Check_firstStrike = true;
  631. }
  632. else
  633. {
  634. abort("Find out what's wrong and try again.");
  635. }
  636. }
  637.  
  638. while ( have_effect( $effect[Coated in Slime] ) < 1 ) #we need this method because free runaways don't advance the turn counter thus "adventure(1,..." keeps repeating.
  639. { #BUT...adv1 will ONLY adventure ONCE, so we have to make sure that we got "coated in slime" before moving on.
  640. adv1($location[The Slime Tube], -1, ""); #It's possible to get the "engulfed" non-combat thereby NOT getting covered in slime.
  641. } #This makes sure we only spend ONE turn (even though we use a Free run_away) AND we get slimed!
  642.  
  643. while ( current_mcd() < 10 || !is_wearing_outfit("maxml") )
  644. {
  645. cli_execute {
  646. outfit maxml
  647. mcd 10
  648. }
  649. }
  650.  
  651. use_skill( 1, $skill[Ur-Kel's Aria of Annoyance] ); #Replace the mana we just used casting Ur-Kel's
  652. use( 5, $item[honey-dipped locust] ); #Helps to replenish mana. The higher level slimes take about 5 or 6 rounds of combat to kill.
  653.  
  654. Determine_FollowUpStrikes_and_Familiar (); #Planning our High level attacks (Groose or Purse Rat?)
  655.  
  656. if (Check_followupStrikes == false) #A one time check to verify if our HIGH ML is correct.
  657. {
  658. if (user_confirm( "Is your MAXIMAL +ML ok?" ) )
  659. {
  660. Check_followupStrikes = true;
  661. }
  662. else
  663. {
  664. abort("Find out what's wrong and try again.");
  665. }
  666. }
  667.  
  668. while (Expected_slime_damage() < my_hp()) #Expecting 4-5 fights here in this FIRST "while" loop
  669. {
  670. adventure(1, $location[The Slime Tube]);
  671.  
  672. set_property("total_fight_count" , (get_property("total_fight_count").to_int()+1) );
  673.  
  674. set_property("total_ML_count" , (get_property("total_ML_count").to_int()+1) + monster_level_adjustment() + 400 );
  675. }
  676.  
  677. if (Check_First_While_Adventures == false) #One time Check to see if you got the expected fight count in the FIRST "while" loop
  678. {
  679. Print("In this first 'While' loop you got " + (get_property("total_fight_count").to_int() - fightCount_holder) + " fights.", "blue");
  680. if (user_confirm( "Did you get the expected number of fights at this first stage?" ) )
  681. {
  682. Check_First_While_Adventures = true;
  683. }
  684. else
  685. {
  686. VerifyUsed_Chamois ();
  687. abort("Find out what's wrong and try again.");
  688. }
  689. }
  690.  
  691. VerifyUsed_HealScroll ();
  692.  
  693. while (Expected_slime_damage() < my_hp()) #squeezing out a few more advs. before using a Chamois...using heal scrolls instead
  694. { #expecting 2 more fights
  695. adventure(1, $location[The Slime Tube]);
  696.  
  697. set_property("total_fight_count" , (get_property("total_fight_count").to_int()+1) ); #Keeping track of our total fight count for the tube run.
  698. set_property("total_ML_count" , (get_property("total_ML_count").to_int()+1) + monster_level_adjustment() + 400 ); #Keeping track of how much ML we kill. (need:400K ML.)
  699. VerifyUsed_HealScroll ();
  700. }
  701.  
  702. if (Check_Second_While_Adventures == false) #One time Check to see if you got the expected fight count in the SECOND "while" loop
  703. {
  704. Print("You got " + (get_property("total_fight_count").to_int() - fightCount_holder) + " total fights before using a chamois.", "blue");
  705. if (user_confirm( "Did you get the expected number of fights?" ) )
  706. {
  707. Check_Second_While_Adventures = true;
  708. }
  709. else
  710. {
  711. VerifyUsed_Chamois ();
  712. abort("Find out what's wrong and try again.");
  713. }
  714. }
  715.  
  716. VerifyUsed_Chamois ();
  717. bookkeeping();
  718. }
  719. bookkeeping(); #A final tally if we actually use up all adventures before getting to the mother slime.
  720. Print("All done.");
  721. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement