Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions iotmcargo
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
// Cargo cultist shorts
RegisterResourceGenerationFunction("IOTMCargoCultistShortsGenerateResource");
void IOTMCargoCultistShortsGenerateResource(ChecklistEntry [int] resource_entries)
{
if (!get_property_boolean("_cargoPocketEmptied")) {
string image_name = "__item cargo cultist shorts";
string description = "Pick a pocket for something useful! Too many to list!";

string [int] options;
if (__misc_state["in run"] && my_path_id() != PATH_COMMUNITY_SERVICE)
{
if (!locationAvailable($location[The royal guard Chamber]))
{
options.listAppend("Stink like a filthworm drone");
}
if (!locationAvailable($location[The eXtreme Slope]) == false)
{
options.listAppend("Mountain Man, YR for 2x ore");
}
if ($location[The Battlefield (Frat Uniform)].turns_spent < 100)
{
options.listAppend("Green Ops Soldier, olfact for funny meme strategies");
}
}
if (options.count() > 0)
options.listAppend("Possible pockets:<hr>" + options.listJoinComponents("<hr>").HTMLGenerateIndentedText());

resource_entries.listAppend(ChecklistEntryMake("__item cargo cultist shorts", "inventory.php?action=pocket", ChecklistSubentryMake("Cargo shorts pocket openable", "", description), 1).ChecklistEntrySetIDTag("Cargo shorts resource"));
}
}
21 changes: 21 additions & 0 deletions iotmcrystalball
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
//Miniature Crystal ball

RegisterTaskGenerationFunction("IOTMCrystalBallGenerateTasks");
void IOTMCrystalBallGenerateTasks(ChecklistEntry [int] task_entries, ChecklistEntry [int] optional_task_entries, ChecklistEntry [int] future_task_entries)
{
string title;
title = "Miniature crystal ball monster prediction";
monster crystalBallPrediction = (get_property_monster("crystalBallMonster"));
location crystalBallZone = (get_property_location("crystalBallLocation"));
string [int] description;
if (!lookupItem("miniature crystal ball").equipped())
{
description.listAppend("Next fight in " + HTMLGenerateSpanFont(crystalBallZone, "blue") + " will be: " + HTMLGenerateSpanFont(crystalBallPrediction, "blue"));
optional_task_entries.listAppend(ChecklistEntryMake("__item miniature crystal ball", "url", ChecklistSubentryMake(title, description)));
}
else
{
description.listAppend("Next fight in " + HTMLGenerateSpanFont(crystalBallZone, "blue") + " will be: " + HTMLGenerateSpanFont(crystalBallPrediction, "blue"));
task_entries.listAppend(ChecklistEntryMake("__item miniature crystal ball", "url", ChecklistSubentryMake(title, description), -11));
}
}
87 changes: 87 additions & 0 deletions iotmemotionchip
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
//Emotion Chip
RegisterResourceGenerationFunction("IOTMEmotionChipGenerateResource");
void IOTMEmotionChipGenerateResource(ChecklistEntry [int] resource_entries)
{
if (!lookupSkill("Emotionally Chipped").have_skill())
return;
ChecklistSubentry getEmotions() {
// Title
string main_title = "Emotion chip feelings";
// Entries
string [int] description;
string [int] emotions;

int emotionDisappointed = clampi(3 - get_property_int("_feelDisappointedUsed"), 0, 3);
if (emotionDisappointed > 0)
{
emotions.listAppend(emotionDisappointed + " Disappointments left. This must be the 'your parents' emotion chip.");
}
int emotionExcitement = clampi(3 - get_property_int("_feelExcitementUsed"), 0, 3);
if (emotionExcitement > 0)
{
emotions.listAppend(emotionExcitement + " Excitement left. 20 advs of +25 Mus/Mys/Mox.");
}
int emotionLonely = clampi(3 - get_property_int("_feelLonelyUsed"), 0, 3);
if (emotionLonely > 0)
{
emotions.listAppend(emotionLonely + " Lonelys left. 20 advs of -5% Combat.");
}
int emotionLost = clampi(3 - get_property_int("_feelLostUsed"), 0, 3);
if (emotionLost > 0)
{
emotions.listAppend(emotionLost + " Losts left. 20 advs of weird Teleportitis buff.");
}
int emotionNervous = clampi(3 - get_property_int("_feelNervousUsed"), 0, 3);
if (emotionNervous > 0)
{
emotions.listAppend(emotionNervous + " Nervouses left. 20 avs of passive damage.");
}
int emotionPeaceful = clampi(3 - get_property_int("_feelPeacefulUsed"), 0, 3);
if (emotionPeaceful > 0)
{
emotions.listAppend(emotionPeaceful + " Peacefuls left. 20 advs of +2 elemental resist.");
}
int emotionPride = clampi(3 - get_property_int("_feelPrideUsed"), 0, 3);
if (emotionPride > 0)
{
emotions.listAppend(emotionPride + " Prides left. Triple stat gain from current fight.");
}
int emotionHatred = clampi(3 - get_property_int("_feelHatredUsed"), 0, 3);
if (emotionHatred > 0)
{
emotions.listAppend(emotionHatred + " Hatreds left. 50-turn banish.");

resource_entries.listAppend(ChecklistEntryMake("__skill feel hatred", "", ChecklistSubentryMake(pluralise(emotionHatred, "Feel Hatred", "Feels Hatreds"), "", "Cast Feel Hatred. Free run/banish.")).ChecklistEntrySetCombinationTag("banish").ChecklistEntrySetIDTag("Emotion chip feel hatred banish"));
}
int emotionEnvy = clampi(3 - get_property_int("_feelEnvyUsed"), 0, 3);
if (emotionEnvy > 0)
{
emotions.listAppend(emotionEnvy + " Envys left. Black Ray.");
}
int emotionNostalgic = clampi(3 - get_property_int("_feelNostalgicUsed"), 0, 3);
monster nostalgicMonster = (get_property_monster("feelNostalgicMonster"));
if (emotionNostalgic > 0)
{
emotions.listAppend(emotionNostalgic + " Nostalgias left. Item copying. Can currently feel nostalgic for: " + HTMLGenerateSpanFont(nostalgicMonster, "blue"));
}
int emotionSuperior = clampi(3 - get_property_int("_feelSuperiorUsed"), 0, 3);
if (emotionSuperior > 0)
{
emotions.listAppend(emotionSuperior + " Superiors left. +1 PvP Fight if used as killshot.");
}
return ChecklistSubentryMake(main_title, description, emotions);
}

ChecklistEntry entry;
entry.image_lookup_name = "__item emotion chip";
entry.tags.id = "emotion chip resource";

ChecklistSubentry emotions = getEmotions();
if (emotions.entries.count() > 0) {
entry.subentries.listAppend(emotions);
}

if (entry.subentries.count() > 0) {
resource_entries.listAppend(entry);
}
}
84 changes: 84 additions & 0 deletions iotmmaps
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
//experimental cartography code
RegisterResourceGenerationFunction("IOTMCartographyMapsGenerateResource");
void IOTMCartographyMapsGenerateResource(ChecklistEntry [int] resource_entries)
{
if (!(__misc_state["in run"] && in_ronin())) return;

int maps_left = clampi(3 - get_property_int("_monstersMapped"), 0, 3);
if (maps_left > 0 && my_path_id() != PATH_POCKET_FAMILIARS)
{
string [int] description;
description.listAppend("Map the monsters you want to fight!");
description.listAppend("This IotM also gives you a special noncom in the following zones:");
string [int] options;
if (!__quest_state["cc_spookyravennecklace"].finished)
{
options.listAppend("The Haunted Billiards Room");
}
if (!__quest_state["cc_friars"].finished)
{
options.listAppend("The Dark Neck of the Woods");
}
if (get_property_int("cyrptNookEvilness") > 25)
{
options.listAppend("The Defiled Nook");
}
if (get_property_int("twinPeakProgress") != 15)
{
options.listAppend(HTMLGenerateSpanOfClass("First adv", "r_bold") + " A-Boo Peak: gives Twin Peak noncom");
}
if (!__quest_state["cc_castletop"].finished)
{
options.listAppend("Castle Top Floor");
}
if (!__quest_state["warProgress"].started)
{
options.listAppend("The Hippy Camp (Verge of War)");
}
string [int] monsterMaps;
if (!__quest_state["Level 11 Ron"].finished)
{
monsterMaps.listAppend("Red Butler, 30% free kill item and 15% fun drop item. Combine with Olfaction/Use the Force?");
}
if (get_property_int("twinPeakProgress") < 15 && $item[rusty hedge trimmers].available_amount() < 4)
{
monsterMaps.listAppend("hedge beast, 15% quest progress item. Possibly Spit.");
}
if (__quest_state["Level 9"].state_int["a-boo peak hauntedness"] > 0)
{
monsterMaps.listAppend("Whatsian Commander Ghost, 15% free runaway item. Possibly Spit.");
}
if ($item[star chart].available_amount() < 1 || $item[richard's star key].available_amount() < 1)
{
monsterMaps.listAppend("Astronomer");
}
if (!__quest_state["Level 12"].state_boolean["Lighthouse Finished"] && $item[barrel of gunpowder].available_amount() < 5)
{
monsterMaps.listAppend("Lobsterfrogman, probably a weak option. Combine with Use the Force?");
}
if ($location[The Battlefield (Frat Uniform)].turns_spent < 100)
{
monsterMaps.listAppend("Green Ops Soldier. Combine with Olfaction/Use the Force and Spit and Explodinal pills.");
}

if (options.count() > 0)
description.listAppend("Noncoms of interest:|*-" + options.listJoinComponents("|*-"));
if (monsterMaps.count() > 0)
description.listAppend("Monsters to map:|*-" + monsterMaps.listJoinComponents("|*-"));

resource_entries.listAppend(ChecklistEntryMake("__item Comprehensive Cartographic Compendium", "", ChecklistSubentryMake(pluralise(maps_left, "Cartography skill use", "Cartography skill uses"), "", description), 5).ChecklistEntrySetIDTag("Cartography skills resource"));
}
}

RegisterTaskGenerationFunction("IOTMCartographyMapsGenerateTasks");
void IOTMCartographyMapsGenerateTasks(ChecklistEntry [int] task_entries, ChecklistEntry [int] optional_task_entries, ChecklistEntry [int] future_task_entries)
{
{
string [int] description;
string title = "Your mapping senses are activated!";
description.listAppend(HTMLGenerateSpanFont("Pick your monster!", "blue"));
if (!get_property_boolean("mappingMonsters") == false) {
task_entries.listAppend(ChecklistEntryMake("__item Comprehensive Cartographic Compendium", "url", ChecklistSubentryMake(title, description), -11));
}
}
}
32 changes: 32 additions & 0 deletions iotmpocketprof
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
if ($familiar[pocket professor].familiar_is_usable());
{
int lectures_used = get_property_int("_pocketProfessorLectures");
string name = lectures_used + " Pocket Professor lectures used";
string [int] description;
string image_name = "";

description.listAppend("Sausage goblins, ninja snowman assassin, ghosts, or something else...?");

string url = "";

if ($familiar[pocket professor].familiar_is_usable())
{
image_name = "pocket professor";
}

if (!($familiars[Frumious Bandersnatch, pocket professor] contains my_familiar()))
url = "familiar.php";

resource_entries.listAppend(ChecklistEntryMake(image_name, url, ChecklistSubentryMake(name, "", description)));

if (!get_property_boolean("_thesisDelivered"))
{
string [int] description;
description.listAppend("+8 advs from a 256+ HP monster");
description.listAppend("+10 advs from a 625+ HP monster");
description.listAppend("+11 advs from a 1,296+ HP monster");

resource_entries.listAppend(ChecklistEntryMake("__familiar Pocket Professor", "", ChecklistSubentryMake("Deliver your Thesis!", "", description), 0).ChecklistEntryTagEntry("+11 Adventures"));

}
}
20 changes: 20 additions & 0 deletions iotmpowerglove
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
RegisterResourceGenerationFunction("IOTMPowerfulGloveGenerateResource");
void IOTMPowerfulGloveGenerateResource(ChecklistEntry [int] resource_entries)
{
if (lookupItem("Powerful Glove").available_amount() == 0) return;
if (get_property_int("_powerfulGloveBatteryPowerUsed") < 100)
{
int uses_remaining = clampi(100 - get_property_int("_powerfulGloveBatteryPowerUsed"), 0, 100);
string url = "";
if (!lookupItem("Powerful Glove").equipped())
url = "inventory.php?which=2";
string [int] description;
description.listAppend("Use CHEAT CODES, which let you:");
description.listAppend("Get +200% stats - 5% battery");
description.listAppend("Get -10% combat frequency - 5% battery");
description.listAppend("Shrink the target - 5% battery");
description.listAppend("Replace the target - 10% battery");
//description.listAppend("Choose one of:|*" + options.listJoinComponents("|*"));
resource_entries.listAppend(ChecklistEntryMake("__item powerful glove", url, ChecklistSubentryMake(pluralise(uses_remaining, "% Powerful Glove battery", "% Powerful Glove battery"), "", description), 0));
}
}
25 changes: 25 additions & 0 deletions iotmshroom
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
RegisterResourceGenerationFunction("IOTMMushroomGardenGenerateResource");
void IOTMMushroomGardenGenerateResource(ChecklistEntry [int] resource_entries)
{
int mushroom_growth = (get_property_int("mushroomGardenCropLevel"));
int total_piranha_fights_available = 1;
if (my_path_id() == PATH_OF_THE_PLUMBER)
total_piranha_fights_available = 5;
int piranha_fights_remaining = clampi(total_piranha_fights_available - get_property_int("_mushroomGardenFights"), 0, total_piranha_fights_available);

if (get_property_int("_mushroomGardenFights") < total_piranha_fights_available)
{
string url = "";
string [int] description;
description.listAppend("5 free fights if you are a Plumber.");
description.listAppend("Only 1 free fight if you aren't a Plumber.");
description.listAppend("Harvest a mushroom, or fertilize it to make it grow bigger.");
description.listAppend("Current growth level: " + mushroom_growth + "/5");
description.listAppend("4 days: 1 mushroom slab");
description.listAppend("5 days: 2 mushroom slabs");
description.listAppend("10 days: 1 mushroom house (tradable, but still bad)");
description.listAppend("Mushrooms give good-tier food, awesome-tier booze, or a 1-spleen +com/ML buff.");

resource_entries.listAppend(ChecklistEntryMake("__item spanish fly trap", url, ChecklistSubentryMake(pluralise(piranha_fights_remaining, "piranha plant fight", "piranha plant fights"), "", description), 0));
}
}
56 changes: 56 additions & 0 deletions iotmsnapper
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
RegisterResourceGenerationFunction("IOTMRedNosedSnapperResource");
void IOTMRedNosedSnapperResource(ChecklistEntry [int] resource_entries)
{
ChecklistSubentry getPhylumRewards() {
// Title
string redSnapperPhylum = get_property("redSnapperPhylum");
int redSnapperProgress = get_property_int("redSnapperProgress");
string main_title = redSnapperProgress + "/11 fights until next Snapper drop";

// Subtitle
string subtitle = "";

// Entries
string [int] description;
if (redSnapperPhylum != "")
{
description.listAppend("Tracked phylum gains +2 copies per monster.");
string snapperPhylum = get_property("redSnapperPhylum");
description.listAppend(HTMLGenerateSpanFont("Currently tracking " + redSnapperPhylum + "-type.", "blue"));
description.listAppend("Red Zeppelin - track Dudes.");
description.listAppend("The Palindrome - track Dudes.");
description.listAppend("Twin Peak - track Beasts.");
description.listAppend("Whitey's Grove - track Beasts.");
description.listAppend("The Haunted Laundry Room - track Undead");
description.listAppend("The Haunted Wine Cellar - track Constructs.");
description.listAppend(HTMLGenerateSpanFont("WARNING: changing phylum resets progress.", "red"));
description.listAppend(HTMLGenerateSpanOfClass("Dudes:", "r_bold") + " Free banish item");
description.listAppend(HTMLGenerateSpanOfClass("Goblins:", "r_bold") + " 3-size " + HTMLGenerateSpanOfClass("awesome", "r_element_awesome") + " food");
description.listAppend(HTMLGenerateSpanOfClass("Orcs:", "r_bold") + " 3-size " + HTMLGenerateSpanOfClass("awesome", "r_element_awesome") + " booze");
description.listAppend(HTMLGenerateSpanOfClass("Undead:", "r_bold") + " +5 " + HTMLGenerateSpanOfClass("spooky", "r_element_spooky") + " res potion");
description.listAppend(HTMLGenerateSpanOfClass("Constellations:", "r_bold") + " Yellow ray");
}

return ChecklistSubentryMake(main_title, subtitle, description);
}

if (!lookupFamiliar("Red Nosed Snapper").familiar_is_usable()) return;

int muskBanishes_left = clampi(3 - get_property_int("_humanMuskUses"), 0, 3);
if ($item[human musk].available_amount() > 0 && in_ronin() && $item[human musk].item_is_usable())
{
resource_entries.listAppend(ChecklistEntryMake("__item human musk", "", ChecklistSubentryMake(pluralise($item[human musk]), "", "" + muskBanishes_left + " free uses left today."), 6).ChecklistEntryTagEntry("banish"));
}

ChecklistEntry entry;
entry.image_lookup_name = "__familiar red-nosed snapper";

ChecklistSubentry rewards = getPhylumRewards();
if (rewards.entries.count() > 0) {
entry.subentries.listAppend(rewards);
}

if (entry.subentries.count() > 0) {
resource_entries.listAppend(entry);
}
}
Loading