diff --git a/src/tasks/boozedrop.ts b/src/tasks/boozedrop.ts index 921ba6c..e344de8 100644 --- a/src/tasks/boozedrop.ts +++ b/src/tasks/boozedrop.ts @@ -14,6 +14,7 @@ import { inebrietyLimit, inMuscleSign, itemAmount, + myClass, myInebriety, myMeat, print, @@ -160,16 +161,21 @@ export const BoozeDropQuest: Quest = { have($item`corrupted marrow`) || have($effect`Cowrruption`), do: (): void => { + const monsterCow = + myClass().toString() === "Seal Clubber" && + CombatLoversLocket.unlockedLocketMonsters().includes($monster`furious cow`) + ? $monster`furious cow` + : $monster`ungulith`; if (checkLocketAvailable() >= 2) { - CombatLoversLocket.reminisce($monster`ungulith`); + CombatLoversLocket.reminisce(monsterCow); } else { cliExecute("chat"); - if (have($item`photocopied monster`) && get("photocopyMonster") !== $monster`ungulith`) { + if (have($item`photocopied monster`) && get("photocopyMonster") !== monsterCow) { cliExecute("fax send"); } if ( - (have($item`photocopied monster`) || faxbot($monster`ungulith`)) && - get("photocopyMonster") === $monster`ungulith` + (have($item`photocopied monster`) || faxbot(monsterCow)) && + get("photocopyMonster") === monsterCow ) { use($item`photocopied monster`); } diff --git a/src/tasks/stat.ts b/src/tasks/stat.ts index 61b7545..0e9c67e 100644 --- a/src/tasks/stat.ts +++ b/src/tasks/stat.ts @@ -28,11 +28,13 @@ import { } from "libram"; import { Quest } from "../engine/task"; import { + checkValue, logTestSetup, reagentBalancerEffect, reagentBalancerItem, tryAcquiringEffect, } from "../lib"; +import { forbiddenEffects } from "../resources"; function useBalancerForTest(testStat: Stat): void { if (testStat === myPrimestat()) { @@ -277,6 +279,23 @@ export const MoxieQuest: Quest = { }, limit: { tries: 1 }, }, + { + name: "Loathing Idol Microphone", + completed: () => + have($effect`Spitting Rhymes`) || + !have($item`2002 Mr. Store Catalog`) || + (get("availableMrStore2002Credits", 0) <= get("instant_saveCatalogCredits", 0) && + !have($item`Loathing Idol Microphone`)) || + forbiddenEffects.includes($effect`Poppy Performance`) || + checkValue("2002", Math.min(2, CommunityService.Moxie.prediction)), + do: (): void => { + if (!have($item`Loathing Idol Microphone`)) { + buy($coinmaster`Mr. Store 2002`, 1, $item`Loathing Idol Microphone`); + } + withChoice(1505, 3, () => use($item`Loathing Idol Microphone`)); + }, + limit: { tries: 1 }, + }, { name: "Test", completed: () => CommunityService.Moxie.isDone(), diff --git a/src/tasks/weapondamage.ts b/src/tasks/weapondamage.ts index 890d61e..cbc406a 100644 --- a/src/tasks/weapondamage.ts +++ b/src/tasks/weapondamage.ts @@ -51,7 +51,6 @@ import { wishFor, } from "../lib"; import { forbiddenEffects } from "../resources"; -import { checkThing } from "../sim"; export const WeaponDamageQuest: Quest = { name: "Weapon Damage", @@ -157,13 +156,12 @@ export const WeaponDamageQuest: Quest = { }, { name: "Fax Ungulith", - completed: () => - !get("instant_ExperimentalRouting", false) || - have($item`corrupted marrow`) || - have($effect`Cowrruption`), + ready: () => get("instant_ExperimentalRouting", false), + completed: () => have($item`corrupted marrow`) || have($effect`Cowrruption`), do: (): void => { const monsterCow = - myClass().toString() === "Seal Clubber" && checkThing($monster`furious cow`) + myClass().toString() === "Seal Clubber" && + CombatLoversLocket.unlockedLocketMonsters().includes($monster`furious cow`) ? $monster`furious cow` : $monster`ungulith`; if (checkLocketAvailable() >= 2) {