libram 0.9.5 → 0.9.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Clan.js +1 -1
- package/dist/challengePaths/2015/CommunityService.js +11 -11
- package/dist/diet/index.d.ts +3 -0
- package/dist/diet/index.js +55 -44
- package/dist/lib.d.ts +43 -3
- package/dist/lib.js +138 -28
- package/dist/lib.test.js +21 -1
- package/dist/maximize.d.ts +1 -0
- package/dist/maximize.js +5 -2
- package/dist/modifierTypes.d.ts +1 -1
- package/dist/modifierTypes.js +1 -1
- package/dist/propertyTypes.d.ts +3 -3
- package/dist/propertyTypes.js +3 -3
- package/dist/resources/2009/Bandersnatch.js +3 -4
- package/dist/resources/2011/StompingBoots.js +3 -4
- package/dist/resources/2014/ConspiracyIsland.d.ts +47 -0
- package/dist/resources/2014/ConspiracyIsland.js +128 -0
- package/dist/resources/2015/Dinseylandfill.js +1 -1
- package/dist/resources/2017/AsdonMartin.js +3 -1
- package/dist/resources/2017/Spacegate.js +0 -1
- package/dist/resources/2019/PocketProfessor.d.ts +26 -0
- package/dist/resources/2019/PocketProfessor.js +41 -0
- package/dist/resources/2020/RetroCape.d.ts +1 -1
- package/dist/resources/2021/DaylightShavings.d.ts +3 -2
- package/dist/resources/2021/DaylightShavings.js +7 -6
- package/dist/resources/2024/MayamCalendar.d.ts +1 -1
- package/dist/resources/2024/TearawayPants.d.ts +22 -0
- package/dist/resources/2024/TearawayPants.js +52 -0
- package/dist/resources/index.d.ts +4 -1
- package/dist/resources/index.js +4 -1
- package/dist/template-string.d.ts +37 -20
- package/dist/template-string.js +35 -31
- package/package.json +27 -28
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { visitUrl, runChoice, handlingChoice } from "kolmafia";
|
|
2
|
+
import { questStep } from "../../lib.js";
|
|
3
|
+
import { Requirement } from "../../maximize.js";
|
|
4
|
+
import { get } from "../../property.js";
|
|
5
|
+
import { $location, $item } from "../../template-string.js";
|
|
6
|
+
class ConspiracyQuest {
|
|
7
|
+
prop;
|
|
8
|
+
reward;
|
|
9
|
+
complete;
|
|
10
|
+
/** Location in which quest is completed */
|
|
11
|
+
location;
|
|
12
|
+
/** Requirements to complete quest */
|
|
13
|
+
requirements;
|
|
14
|
+
constructor(prop, reward, complete, location, requirements) {
|
|
15
|
+
this.prop = prop;
|
|
16
|
+
this.reward = reward;
|
|
17
|
+
this.complete = complete;
|
|
18
|
+
this.location = location;
|
|
19
|
+
this.requirements = requirements ?? new Requirement([], {});
|
|
20
|
+
}
|
|
21
|
+
isOneTime() {
|
|
22
|
+
return this.reward !== 30;
|
|
23
|
+
}
|
|
24
|
+
isStarted() {
|
|
25
|
+
return questStep(this.prop) >= 0;
|
|
26
|
+
}
|
|
27
|
+
isFinished() {
|
|
28
|
+
return questStep(this.prop) === 999;
|
|
29
|
+
}
|
|
30
|
+
isActive() {
|
|
31
|
+
return this.isStarted() && !this.isFinished();
|
|
32
|
+
}
|
|
33
|
+
isReadyToTurnIn() {
|
|
34
|
+
return questStep(this.prop) === this.complete;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
export const QUESTS = [
|
|
38
|
+
new ConspiracyQuest("questESpClipper", 20, 1, $location `The Mansion of Dr. Weirdeaux`),
|
|
39
|
+
new ConspiracyQuest("questESpEVE", 30, 1, $location `The Secret Government Laboratory`),
|
|
40
|
+
new ConspiracyQuest("questESpFakeMedium", 30, 1, $location `The Secret Government Laboratory`),
|
|
41
|
+
new ConspiracyQuest("questESpGore", 20, 2, $location `The Secret Government Laboratory`, new Requirement(["Meat Drop"], { forceEquip: [$item `gore bucket`] })),
|
|
42
|
+
new ConspiracyQuest("questESpJunglePun", 20, 2, $location `The Deep Dark Jungle`, new Requirement(["Mysticality"], {
|
|
43
|
+
forceEquip: [$item `encrypted micro-cassette recorder`],
|
|
44
|
+
})),
|
|
45
|
+
new ConspiracyQuest("questESpOutOfOrder", 30, 2, $location `The Deep Dark Jungle`, new Requirement(["Initiative"], {
|
|
46
|
+
forceEquip: [$item `GPS-tracking wristwatch`],
|
|
47
|
+
})),
|
|
48
|
+
new ConspiracyQuest("questESpSerum", 30, 1, $location `The Mansion of Dr. Weirdeaux`),
|
|
49
|
+
new ConspiracyQuest("questESpSmokes", 30, 1, $location `The Deep Dark Jungle`),
|
|
50
|
+
];
|
|
51
|
+
/**
|
|
52
|
+
* @returns Whether all one-time quests are completed
|
|
53
|
+
*/
|
|
54
|
+
export function completedOneTimeQuests() {
|
|
55
|
+
return QUESTS.filter((q) => q.isOneTime()).every((q) => q.isFinished());
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Activate a protocol in the bunker
|
|
59
|
+
* @param protocol Protocol to activate
|
|
60
|
+
*/
|
|
61
|
+
export function activateProtocol(protocol) {
|
|
62
|
+
visitUrl("place.php?whichplace=airport_spooky_bunker&action=si_controlpanel");
|
|
63
|
+
runChoice(protocol);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @returns Current omega charge level
|
|
67
|
+
*/
|
|
68
|
+
export function getOmega() {
|
|
69
|
+
return get("controlPanelOmega");
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Activate Omega Protocol
|
|
73
|
+
* @param completeAllQuests Abort if player has not completed all one-time quests
|
|
74
|
+
*/
|
|
75
|
+
export function activateOmega(completeAllQuests = false) {
|
|
76
|
+
if (get("_controlPanelUsed")) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
for (let i = 1; i <= 9; i++) {
|
|
80
|
+
const active = get(`controlPanel${i}`, false);
|
|
81
|
+
if (!active) {
|
|
82
|
+
activateProtocol(i);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
if (getOmega() < 99 || (!completedOneTimeQuests() && completeAllQuests))
|
|
87
|
+
return;
|
|
88
|
+
activateProtocol(1);
|
|
89
|
+
activateProtocol(10);
|
|
90
|
+
}
|
|
91
|
+
function visitRadio() {
|
|
92
|
+
return visitUrl("place.php?whichplace=airport_spooky&action=airport2_radio");
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* @param accept Whether to accept a quest if one is not currently active
|
|
96
|
+
* @returns Returns the current quest or null if no quest is active
|
|
97
|
+
*/
|
|
98
|
+
export function getQuest(accept = false) {
|
|
99
|
+
const active = QUESTS.find((q) => q.isActive());
|
|
100
|
+
if (active)
|
|
101
|
+
return active;
|
|
102
|
+
if (!accept)
|
|
103
|
+
return null;
|
|
104
|
+
// Sometimes we need to hit the radio a few times to successfully parse the quest
|
|
105
|
+
for (let i = 0; i < 11; i++) {
|
|
106
|
+
const page = visitRadio();
|
|
107
|
+
if (!handlingChoice())
|
|
108
|
+
return null;
|
|
109
|
+
if (page.includes("try again tomorrow"))
|
|
110
|
+
return null;
|
|
111
|
+
const quest = get("_questESp");
|
|
112
|
+
if (quest !== "")
|
|
113
|
+
return QUESTS.find((q) => q.prop === quest) ?? null;
|
|
114
|
+
}
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Turn in the current quest
|
|
119
|
+
* @returns Success of turning in the quest
|
|
120
|
+
*/
|
|
121
|
+
export function turnInQuest() {
|
|
122
|
+
const quest = getQuest();
|
|
123
|
+
if (!quest?.isReadyToTurnIn())
|
|
124
|
+
return false;
|
|
125
|
+
visitRadio();
|
|
126
|
+
runChoice(1);
|
|
127
|
+
return quest.isFinished();
|
|
128
|
+
}
|
|
@@ -129,7 +129,7 @@ export function acceptQuest(priority) {
|
|
|
129
129
|
jobs.push(quest.name);
|
|
130
130
|
});
|
|
131
131
|
const priorityNum = typeof priority === "string"
|
|
132
|
-
? quests.find((q) => q.name === priority)?.priority ?? 7
|
|
132
|
+
? (quests.find((q) => q.name === priority)?.priority ?? 7)
|
|
133
133
|
: priority;
|
|
134
134
|
const availableJobs = [];
|
|
135
135
|
const jobChoices = [["none", 999]];
|
|
@@ -162,8 +162,10 @@ export function fillTo(targetUnits) {
|
|
|
162
162
|
}
|
|
163
163
|
if (!canInteract())
|
|
164
164
|
retrieveItem(count, bestFuel);
|
|
165
|
+
else if (ceiling)
|
|
166
|
+
buy(count, bestFuel, ceiling);
|
|
165
167
|
else
|
|
166
|
-
|
|
168
|
+
buy(count, bestFuel);
|
|
167
169
|
if (!insertFuel(bestFuel, Math.min(itemAmount(bestFuel), count))) {
|
|
168
170
|
throw new Error("Failed to fuel Asdon Martin.");
|
|
169
171
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @returns Whether you `have` the Pocket Professor
|
|
3
|
+
*/
|
|
4
|
+
export declare function have(): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* @returns Whether or not you're currently able to `Deliver your Thesis`
|
|
7
|
+
*/
|
|
8
|
+
export declare function canThesis(): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Calculate the total number of lectures available to you given a particular familiar weight and chip-equipped status
|
|
11
|
+
* @param weight The weight to calculate at--defaults to your current total familiar weight
|
|
12
|
+
* @param includeChip Whether or not to include the memory chip--defaults to whether or not it's currently equipped
|
|
13
|
+
* @returns The total number of lectures you're able to deliver, including ones you've already delivered today
|
|
14
|
+
*/
|
|
15
|
+
export declare function totalAvailableLectures(weight?: number, includeChip?: boolean): number;
|
|
16
|
+
/**
|
|
17
|
+
* @returns The number of Pocket Professor lectures you've delivered today
|
|
18
|
+
*/
|
|
19
|
+
export declare function lecturesDelivered(): number;
|
|
20
|
+
/**
|
|
21
|
+
* Calculate the number of unused lectures available to you given a particular familiar weight and chip-equipped status
|
|
22
|
+
* @param weight The weight to calculate at--defaults to your current total familiar weight
|
|
23
|
+
* @param includeChip Whether or not to include the memory chip--defaults to whether or not it's currently equipped
|
|
24
|
+
* @returns The number of lectures you're able to deliver, accounting for any you've already delivered today
|
|
25
|
+
*/
|
|
26
|
+
export declare function currentlyAvailableLectures(weight?: number, includeChip?: boolean): number;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { haveEquipped } from "kolmafia";
|
|
2
|
+
import { have as have_, totalFamiliarWeight } from "../../lib.js";
|
|
3
|
+
import { get } from "../../property.js";
|
|
4
|
+
import { $familiar, $item } from "../../template-string.js";
|
|
5
|
+
const familiar = $familiar `Pocket Professor`;
|
|
6
|
+
/**
|
|
7
|
+
* @returns Whether you `have` the Pocket Professor
|
|
8
|
+
*/
|
|
9
|
+
export function have() {
|
|
10
|
+
return have_(familiar);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* @returns Whether or not you're currently able to `Deliver your Thesis`
|
|
14
|
+
*/
|
|
15
|
+
export function canThesis() {
|
|
16
|
+
return have() && familiar.experience >= 400 && !get("_thesisDelivered");
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Calculate the total number of lectures available to you given a particular familiar weight and chip-equipped status
|
|
20
|
+
* @param weight The weight to calculate at--defaults to your current total familiar weight
|
|
21
|
+
* @param includeChip Whether or not to include the memory chip--defaults to whether or not it's currently equipped
|
|
22
|
+
* @returns The total number of lectures you're able to deliver, including ones you've already delivered today
|
|
23
|
+
*/
|
|
24
|
+
export function totalAvailableLectures(weight = totalFamiliarWeight(familiar), includeChip = haveEquipped($item `Pocket Professor memory chip`)) {
|
|
25
|
+
return (includeChip ? 2 : 0) + Math.floor(Math.sqrt(weight - 1));
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @returns The number of Pocket Professor lectures you've delivered today
|
|
29
|
+
*/
|
|
30
|
+
export function lecturesDelivered() {
|
|
31
|
+
return get("_pocketProfessorLectures");
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Calculate the number of unused lectures available to you given a particular familiar weight and chip-equipped status
|
|
35
|
+
* @param weight The weight to calculate at--defaults to your current total familiar weight
|
|
36
|
+
* @param includeChip Whether or not to include the memory chip--defaults to whether or not it's currently equipped
|
|
37
|
+
* @returns The number of lectures you're able to deliver, accounting for any you've already delivered today
|
|
38
|
+
*/
|
|
39
|
+
export function currentlyAvailableLectures(weight = totalFamiliarWeight(familiar), includeChip = haveEquipped($item `Pocket Professor memory chip`)) {
|
|
40
|
+
return totalAvailableLectures(weight, includeChip) - lecturesDelivered();
|
|
41
|
+
}
|
|
@@ -23,7 +23,7 @@ declare const Heroes: {
|
|
|
23
23
|
};
|
|
24
24
|
type Hero = keyof typeof Heroes;
|
|
25
25
|
type Mode = "hold" | "thrill" | "kiss" | "kill";
|
|
26
|
-
export declare const currentHero: () =>
|
|
26
|
+
export declare const currentHero: () => Hero;
|
|
27
27
|
export declare const currentMode: () => Mode;
|
|
28
28
|
/**
|
|
29
29
|
* Tunes retro cape to a given setting
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Effect } from "kolmafia";
|
|
2
|
+
import { Tuple } from "../../utils.js";
|
|
2
3
|
/**
|
|
3
4
|
* Returns whether the player owns an unpackaged Daylight Shavings Helmet, and it's available in either the inventory or other zones as determined by autoSatisfy settings.
|
|
4
5
|
*
|
|
@@ -22,9 +23,9 @@ export declare function buffAvailable(): boolean;
|
|
|
22
23
|
* Calculates and returns the cycle of buffs that the hat should cycle through.
|
|
23
24
|
*
|
|
24
25
|
* @param playerclass The class to generate a cycle for
|
|
25
|
-
* @returns An ordered
|
|
26
|
+
* @returns An ordered 11-tuple consisting of the cycle for this class. The first element of the array will be the first buff a player should expect to get in a given ascension.
|
|
26
27
|
*/
|
|
27
|
-
export declare function buffCycle(playerclass?: import("kolmafia").Class): Effect
|
|
28
|
+
export declare function buffCycle(playerclass?: import("kolmafia").Class): Tuple<Effect, 11>;
|
|
28
29
|
/**
|
|
29
30
|
* Returns the next buff we expect to get from the shaving hat.
|
|
30
31
|
*
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { myClass, toEffect } from "kolmafia";
|
|
1
|
+
import { Effect, myClass, toEffect } from "kolmafia";
|
|
2
2
|
import { have as haveItem } from "../../lib.js";
|
|
3
3
|
import { get } from "../../property.js";
|
|
4
4
|
import { $effects, $item } from "../../template-string.js";
|
|
5
|
+
import { tuple } from "../../utils.js";
|
|
5
6
|
const helmet = $item `Daylight Shavings Helmet`;
|
|
6
7
|
/**
|
|
7
8
|
* Returns whether the player owns an unpackaged Daylight Shavings Helmet, and it's available in either the inventory or other zones as determined by autoSatisfy settings.
|
|
@@ -32,19 +33,19 @@ export function buffAvailable() {
|
|
|
32
33
|
* Calculates and returns the cycle of buffs that the hat should cycle through.
|
|
33
34
|
*
|
|
34
35
|
* @param playerclass The class to generate a cycle for
|
|
35
|
-
* @returns An ordered
|
|
36
|
+
* @returns An ordered 11-tuple consisting of the cycle for this class. The first element of the array will be the first buff a player should expect to get in a given ascension.
|
|
36
37
|
*/
|
|
37
38
|
export function buffCycle(playerclass = myClass()) {
|
|
39
|
+
const cycle = tuple(Effect.none, Effect.none, Effect.none, Effect.none, Effect.none, Effect.none, Effect.none, Effect.none, Effect.none, Effect.none, Effect.none);
|
|
38
40
|
if (playerclass.id <= 0)
|
|
39
|
-
return
|
|
40
|
-
const returnValue = [];
|
|
41
|
+
return cycle;
|
|
41
42
|
const id = playerclass.id;
|
|
42
43
|
const seed = id > 6 ? (id % 6) + 1 : id;
|
|
43
44
|
for (let i = 1; i < 12; i++) {
|
|
44
45
|
const index = (i * seed) % 11;
|
|
45
|
-
|
|
46
|
+
cycle[i - 1] = buffs[index];
|
|
46
47
|
}
|
|
47
|
-
return
|
|
48
|
+
return cycle;
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
50
51
|
* Returns the next buff we expect to get from the shaving hat.
|
|
@@ -61,7 +61,7 @@ export declare const RESONANCES: Readonly<{
|
|
|
61
61
|
"chair yam2 yam3 clock": Effect;
|
|
62
62
|
"yam1 yam2 cheese clock": Effect;
|
|
63
63
|
}>;
|
|
64
|
-
export declare const RESONANCE_KEYS: (
|
|
64
|
+
export declare const RESONANCE_KEYS: (keyof typeof RESONANCES)[];
|
|
65
65
|
/**
|
|
66
66
|
* Find the combination needed to get a particular resonance
|
|
67
67
|
* @param target The Item or Effect granted by the resonance
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @returns Whether you `have` the tearaway pants
|
|
3
|
+
*/
|
|
4
|
+
export declare function have(): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Calculate the chance of getting adventures from a fight against plants
|
|
7
|
+
* @param advs The number of adventures to calculate the probability at; defaults to the current value
|
|
8
|
+
* @returns The likelihood of getting an adventure from ripping off your pants against plants
|
|
9
|
+
*/
|
|
10
|
+
export declare function plantsAdventureChance(advs?: number): number;
|
|
11
|
+
/**
|
|
12
|
+
* Calculate the expected total number of pant-plant adventures you'll gain over a period
|
|
13
|
+
* @param turnsToSpend The total number of plant-combats you expect to spend
|
|
14
|
+
* @param startingAdvs The number of pant-plants adventures to start with--defaults to the current value
|
|
15
|
+
* @returns The expected total number of adventures to gain over the period
|
|
16
|
+
*/
|
|
17
|
+
export declare function expectedTotalAdventures(turnsToSpend: number, startingAdvs?: number): number;
|
|
18
|
+
/**
|
|
19
|
+
* Attempt to unlock the moxie guild--for free--using these incredible pants
|
|
20
|
+
* @returns Whether we've successfully unlocked the moxie guild
|
|
21
|
+
*/
|
|
22
|
+
export declare function unlockGuild(): boolean;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { myClass, cliExecute, equip, visitUrl } from "kolmafia";
|
|
2
|
+
import { have as have_, questStep } from "../../lib.js";
|
|
3
|
+
import { get } from "../../property.js";
|
|
4
|
+
import { $classes, $item, $slot } from "../../template-string.js";
|
|
5
|
+
const item = $item `tearaway pants`;
|
|
6
|
+
/**
|
|
7
|
+
* @returns Whether you `have` the tearaway pants
|
|
8
|
+
*/
|
|
9
|
+
export function have() {
|
|
10
|
+
return have_(item);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Calculate the chance of getting adventures from a fight against plants
|
|
14
|
+
* @param advs The number of adventures to calculate the probability at; defaults to the current value
|
|
15
|
+
* @returns The likelihood of getting an adventure from ripping off your pants against plants
|
|
16
|
+
*/
|
|
17
|
+
export function plantsAdventureChance(advs = get("_tearawayPantsAdvs")) {
|
|
18
|
+
return 1 / (2 + advs);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Calculate the expected total number of pant-plant adventures you'll gain over a period
|
|
22
|
+
* @param turnsToSpend The total number of plant-combats you expect to spend
|
|
23
|
+
* @param startingAdvs The number of pant-plants adventures to start with--defaults to the current value
|
|
24
|
+
* @returns The expected total number of adventures to gain over the period
|
|
25
|
+
*/
|
|
26
|
+
export function expectedTotalAdventures(turnsToSpend, startingAdvs = get("_tearawayPantsAdvs")) {
|
|
27
|
+
return ((1 -
|
|
28
|
+
2 * startingAdvs +
|
|
29
|
+
Math.sqrt(4 * startingAdvs ** 2 - 4 * startingAdvs + 1 + 8 * turnsToSpend)) /
|
|
30
|
+
2);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Attempt to unlock the moxie guild--for free--using these incredible pants
|
|
34
|
+
* @returns Whether we've successfully unlocked the moxie guild
|
|
35
|
+
*/
|
|
36
|
+
export function unlockGuild() {
|
|
37
|
+
if (!$classes `Disco Bandit, Accordion Thief`.includes(myClass()))
|
|
38
|
+
return false;
|
|
39
|
+
if (questStep("questG08Moxie") >= 999)
|
|
40
|
+
return true;
|
|
41
|
+
if (!have())
|
|
42
|
+
return false;
|
|
43
|
+
try {
|
|
44
|
+
cliExecute("checkpoint");
|
|
45
|
+
equip($slot `pants`, item);
|
|
46
|
+
visitUrl("guild.php?place=challenge");
|
|
47
|
+
}
|
|
48
|
+
finally {
|
|
49
|
+
cliExecute("outfit checkpoint");
|
|
50
|
+
}
|
|
51
|
+
return questStep("questG08Moxie") >= 999;
|
|
52
|
+
}
|
|
@@ -9,6 +9,7 @@ import * as RainDoh from "./2012/RainDoh.js";
|
|
|
9
9
|
import * as ReagnimatedGnome from "./2012/ReagnimatedGnome.js";
|
|
10
10
|
import * as FloristFriar from "./2013/Florist.js";
|
|
11
11
|
import * as JungMan from "./2013/JungMan.js";
|
|
12
|
+
import * as ConspiracyIsland from "./2014/ConspiracyIsland.js";
|
|
12
13
|
import * as CrimboShrub from "./2014/CrimboShrub.js";
|
|
13
14
|
import * as DNALab from "./2014/DNALab.js";
|
|
14
15
|
import * as WinterGarden from "./2014/WinterGarden.js";
|
|
@@ -31,6 +32,7 @@ import * as Latte from "./2018/LatteLoversMembersMug.js";
|
|
|
31
32
|
import * as SongBoom from "./2018/SongBoom.js";
|
|
32
33
|
import * as BeachComb from "./2019/BeachComb.js";
|
|
33
34
|
import * as CampAway from "./2019/CampAway.js";
|
|
35
|
+
import * as PocketProfessor from "./2019/PocketProfessor.js";
|
|
34
36
|
import * as Snapper from "./2019/Snapper.js";
|
|
35
37
|
import * as Cartography from "./2020/Cartography.js";
|
|
36
38
|
import * as Guzzlr from "./2020/Guzzlr.js";
|
|
@@ -50,6 +52,7 @@ import * as CursedMonkeyPaw from "./2023/CursedMonkeyPaw.js";
|
|
|
50
52
|
import * as AprilingBandHelmet from "./2024/AprilingBandHelmet.js";
|
|
51
53
|
import * as ChestMimic from "./2024/ChestMimic.js";
|
|
52
54
|
import * as MayamCalendar from "./2024/MayamCalendar.js";
|
|
53
|
-
|
|
55
|
+
import * as TearawayPants from "./2024/TearawayPants.js";
|
|
56
|
+
export { AprilingBandHelmet, AugustScepter, AutumnAton, AsdonMartin, Bandersnatch, BarrelShrine, BeachComb, BurningLeaves, CampAway, Cartography, ChateauMantegna, ChestMimic, CinchoDeMayo, ClosedCircuitPayphone, CombatLoversLocket, ConspiracyIsland, CrimboShrub, CrownOfThrones, CrystalBall, CursedMonkeyPaw, DaylightShavings, DeckOfEveryCard, Dinseylandfill, DNALab, FloristFriar, GingerBread, GreyGoose, Guzzlr, Horsery, JuneCleaver, JungMan, Latte, LookingGlass, MayamCalendar, MayoClinic, MummingTrunk, ObtuseAngel, Pantogram, PocketProfessor, RainDoh, ReagnimatedGnome, RetroCape, Robortender, Snapper, SongBoom, SourceTerminal, Spacegate, SpookyPutty, Stickers, StompingBoots, TearawayPants, TrainSet, TunnelOfLove, WinterGarden, Witchess, };
|
|
54
57
|
export * from "./putty-likes.js";
|
|
55
58
|
export * from "./LibramSummon.js";
|
package/dist/resources/index.js
CHANGED
|
@@ -9,6 +9,7 @@ import * as RainDoh from "./2012/RainDoh.js";
|
|
|
9
9
|
import * as ReagnimatedGnome from "./2012/ReagnimatedGnome.js";
|
|
10
10
|
import * as FloristFriar from "./2013/Florist.js";
|
|
11
11
|
import * as JungMan from "./2013/JungMan.js";
|
|
12
|
+
import * as ConspiracyIsland from "./2014/ConspiracyIsland.js";
|
|
12
13
|
import * as CrimboShrub from "./2014/CrimboShrub.js";
|
|
13
14
|
import * as DNALab from "./2014/DNALab.js";
|
|
14
15
|
import * as WinterGarden from "./2014/WinterGarden.js";
|
|
@@ -31,6 +32,7 @@ import * as Latte from "./2018/LatteLoversMembersMug.js";
|
|
|
31
32
|
import * as SongBoom from "./2018/SongBoom.js";
|
|
32
33
|
import * as BeachComb from "./2019/BeachComb.js";
|
|
33
34
|
import * as CampAway from "./2019/CampAway.js";
|
|
35
|
+
import * as PocketProfessor from "./2019/PocketProfessor.js";
|
|
34
36
|
import * as Snapper from "./2019/Snapper.js";
|
|
35
37
|
import * as Cartography from "./2020/Cartography.js";
|
|
36
38
|
import * as Guzzlr from "./2020/Guzzlr.js";
|
|
@@ -50,6 +52,7 @@ import * as CursedMonkeyPaw from "./2023/CursedMonkeyPaw.js";
|
|
|
50
52
|
import * as AprilingBandHelmet from "./2024/AprilingBandHelmet.js";
|
|
51
53
|
import * as ChestMimic from "./2024/ChestMimic.js";
|
|
52
54
|
import * as MayamCalendar from "./2024/MayamCalendar.js";
|
|
53
|
-
|
|
55
|
+
import * as TearawayPants from "./2024/TearawayPants.js";
|
|
56
|
+
export { AprilingBandHelmet, AugustScepter, AutumnAton, AsdonMartin, Bandersnatch, BarrelShrine, BeachComb, BurningLeaves, CampAway, Cartography, ChateauMantegna, ChestMimic, CinchoDeMayo, ClosedCircuitPayphone, CombatLoversLocket, ConspiracyIsland, CrimboShrub, CrownOfThrones, CrystalBall, CursedMonkeyPaw, DaylightShavings, DeckOfEveryCard, Dinseylandfill, DNALab, FloristFriar, GingerBread, GreyGoose, Guzzlr, Horsery, JuneCleaver, JungMan, Latte, LookingGlass, MayamCalendar, MayoClinic, MummingTrunk, ObtuseAngel, Pantogram, PocketProfessor, RainDoh, ReagnimatedGnome, RetroCape, Robortender, Snapper, SongBoom, SourceTerminal, Spacegate, SpookyPutty, Stickers, StompingBoots, TearawayPants, TrainSet, TunnelOfLove, WinterGarden, Witchess, };
|
|
54
57
|
export * from "./putty-likes.js";
|
|
55
58
|
export * from "./LibramSummon.js";
|
|
@@ -8,6 +8,7 @@ export declare const $bounty: {
|
|
|
8
8
|
(literals: TemplateStringsArray, ...placeholders: string[]): Bounty;
|
|
9
9
|
cls: typeof MafiaClass & (new () => Bounty);
|
|
10
10
|
none: Bounty;
|
|
11
|
+
get(name: string): Bounty | null;
|
|
11
12
|
};
|
|
12
13
|
/**
|
|
13
14
|
* A list of Bounties specified by a comma-separated list of names.
|
|
@@ -28,6 +29,7 @@ export declare const $class: {
|
|
|
28
29
|
(literals: TemplateStringsArray, ...placeholders: string[]): Class;
|
|
29
30
|
cls: typeof MafiaClass & (new () => Class);
|
|
30
31
|
none: Class;
|
|
32
|
+
get(name: string): Class | null;
|
|
31
33
|
};
|
|
32
34
|
/**
|
|
33
35
|
* A list of Classes specified by a comma-separated list of names.
|
|
@@ -48,6 +50,7 @@ export declare const $coinmaster: {
|
|
|
48
50
|
(literals: TemplateStringsArray, ...placeholders: string[]): Coinmaster;
|
|
49
51
|
cls: typeof MafiaClass & (new () => Coinmaster);
|
|
50
52
|
none: Coinmaster;
|
|
53
|
+
get(name: string): Coinmaster | null;
|
|
51
54
|
};
|
|
52
55
|
/**
|
|
53
56
|
* A list of Coinmasters specified by a comma-separated list of names.
|
|
@@ -68,6 +71,7 @@ export declare const $effect: {
|
|
|
68
71
|
(literals: TemplateStringsArray, ...placeholders: string[]): Effect;
|
|
69
72
|
cls: typeof MafiaClass & (new () => Effect);
|
|
70
73
|
none: Effect;
|
|
74
|
+
get(name: string): Effect | null;
|
|
71
75
|
};
|
|
72
76
|
/**
|
|
73
77
|
* A list of Effects specified by a comma-separated list of names.
|
|
@@ -88,6 +92,7 @@ export declare const $element: {
|
|
|
88
92
|
(literals: TemplateStringsArray, ...placeholders: string[]): Element;
|
|
89
93
|
cls: typeof MafiaClass & (new () => Element);
|
|
90
94
|
none: Element;
|
|
95
|
+
get(name: string): Element | null;
|
|
91
96
|
};
|
|
92
97
|
/**
|
|
93
98
|
* A list of Elements specified by a comma-separated list of names.
|
|
@@ -108,6 +113,7 @@ export declare const $familiar: {
|
|
|
108
113
|
(literals: TemplateStringsArray, ...placeholders: string[]): Familiar;
|
|
109
114
|
cls: typeof MafiaClass & (new () => Familiar);
|
|
110
115
|
none: Familiar;
|
|
116
|
+
get(name: string): Familiar | null;
|
|
111
117
|
};
|
|
112
118
|
/**
|
|
113
119
|
* A list of Familiars specified by a comma-separated list of names.
|
|
@@ -128,6 +134,7 @@ export declare const $item: {
|
|
|
128
134
|
(literals: TemplateStringsArray, ...placeholders: string[]): Item;
|
|
129
135
|
cls: typeof MafiaClass & (new () => Item);
|
|
130
136
|
none: Item;
|
|
137
|
+
get(name: string): Item | null;
|
|
131
138
|
};
|
|
132
139
|
/**
|
|
133
140
|
* A list of Items specified by a comma-separated list of names.
|
|
@@ -148,6 +155,7 @@ export declare const $location: {
|
|
|
148
155
|
(literals: TemplateStringsArray, ...placeholders: string[]): Location;
|
|
149
156
|
cls: typeof MafiaClass & (new () => Location);
|
|
150
157
|
none: Location;
|
|
158
|
+
get(name: string): Location | null;
|
|
151
159
|
};
|
|
152
160
|
/**
|
|
153
161
|
* A list of Locations specified by a comma-separated list of names.
|
|
@@ -168,6 +176,7 @@ export declare const $modifier: {
|
|
|
168
176
|
(literals: TemplateStringsArray, ...placeholders: string[]): Modifier;
|
|
169
177
|
cls: typeof MafiaClass & (new () => Modifier);
|
|
170
178
|
none: Modifier;
|
|
179
|
+
get(name: string): Modifier | null;
|
|
171
180
|
};
|
|
172
181
|
/**
|
|
173
182
|
* A list of Modifiers specified by a comma-separated list of names.
|
|
@@ -188,6 +197,7 @@ export declare const $monster: {
|
|
|
188
197
|
(literals: TemplateStringsArray, ...placeholders: string[]): Monster;
|
|
189
198
|
cls: typeof MafiaClass & (new () => Monster);
|
|
190
199
|
none: Monster;
|
|
200
|
+
get(name: string): Monster | null;
|
|
191
201
|
};
|
|
192
202
|
/**
|
|
193
203
|
* A list of Monsters specified by a comma-separated list of names.
|
|
@@ -199,6 +209,27 @@ export declare const $monsters: {
|
|
|
199
209
|
(literals: TemplateStringsArray, ...placeholders: string[]): Monster[];
|
|
200
210
|
all(): Monster[];
|
|
201
211
|
};
|
|
212
|
+
/**
|
|
213
|
+
* A Path specified by name.
|
|
214
|
+
*
|
|
215
|
+
* @category In-game constant
|
|
216
|
+
*/
|
|
217
|
+
export declare const $path: {
|
|
218
|
+
(literals: TemplateStringsArray, ...placeholders: string[]): Path;
|
|
219
|
+
cls: typeof MafiaClass & (new () => Path);
|
|
220
|
+
none: Path;
|
|
221
|
+
get(name: string): Path | null;
|
|
222
|
+
};
|
|
223
|
+
/**
|
|
224
|
+
* A list of Paths specified by a comma-separated list of names.
|
|
225
|
+
* For a list of all possible Paths, leave the template string blank.
|
|
226
|
+
*
|
|
227
|
+
* @category In-game constant
|
|
228
|
+
*/
|
|
229
|
+
export declare const $paths: {
|
|
230
|
+
(literals: TemplateStringsArray, ...placeholders: string[]): Path[];
|
|
231
|
+
all(): Path[];
|
|
232
|
+
};
|
|
202
233
|
/**
|
|
203
234
|
* A Phylum specified by name.
|
|
204
235
|
*
|
|
@@ -208,6 +239,7 @@ export declare const $phylum: {
|
|
|
208
239
|
(literals: TemplateStringsArray, ...placeholders: string[]): Phylum;
|
|
209
240
|
cls: typeof MafiaClass & (new () => Phylum);
|
|
210
241
|
none: Phylum;
|
|
242
|
+
get(name: string): Phylum | null;
|
|
211
243
|
};
|
|
212
244
|
/**
|
|
213
245
|
* A list of Phyla specified by a comma-separated list of names.
|
|
@@ -228,6 +260,7 @@ export declare const $servant: {
|
|
|
228
260
|
(literals: TemplateStringsArray, ...placeholders: string[]): Servant;
|
|
229
261
|
cls: typeof MafiaClass & (new () => Servant);
|
|
230
262
|
none: Servant;
|
|
263
|
+
get(name: string): Servant | null;
|
|
231
264
|
};
|
|
232
265
|
/**
|
|
233
266
|
* A list of Servants specified by a comma-separated list of names.
|
|
@@ -248,6 +281,7 @@ export declare const $skill: {
|
|
|
248
281
|
(literals: TemplateStringsArray, ...placeholders: string[]): Skill;
|
|
249
282
|
cls: typeof MafiaClass & (new () => Skill);
|
|
250
283
|
none: Skill;
|
|
284
|
+
get(name: string): Skill | null;
|
|
251
285
|
};
|
|
252
286
|
/**
|
|
253
287
|
* A list of Skills specified by a comma-separated list of names.
|
|
@@ -268,6 +302,7 @@ export declare const $slot: {
|
|
|
268
302
|
(literals: TemplateStringsArray, ...placeholders: string[]): Slot;
|
|
269
303
|
cls: typeof MafiaClass & (new () => Slot);
|
|
270
304
|
none: Slot;
|
|
305
|
+
get(name: string): Slot | null;
|
|
271
306
|
};
|
|
272
307
|
/**
|
|
273
308
|
* A list of Slots specified by a comma-separated list of names.
|
|
@@ -288,6 +323,7 @@ export declare const $stat: {
|
|
|
288
323
|
(literals: TemplateStringsArray, ...placeholders: string[]): Stat;
|
|
289
324
|
cls: typeof MafiaClass & (new () => Stat);
|
|
290
325
|
none: Stat;
|
|
326
|
+
get(name: string): Stat | null;
|
|
291
327
|
};
|
|
292
328
|
/**
|
|
293
329
|
* A list of Stats specified by a comma-separated list of names.
|
|
@@ -308,6 +344,7 @@ export declare const $thrall: {
|
|
|
308
344
|
(literals: TemplateStringsArray, ...placeholders: string[]): Thrall;
|
|
309
345
|
cls: typeof MafiaClass & (new () => Thrall);
|
|
310
346
|
none: Thrall;
|
|
347
|
+
get(name: string): Thrall | null;
|
|
311
348
|
};
|
|
312
349
|
/**
|
|
313
350
|
* A list of Thralls specified by a comma-separated list of names.
|
|
@@ -319,23 +356,3 @@ export declare const $thralls: {
|
|
|
319
356
|
(literals: TemplateStringsArray, ...placeholders: string[]): Thrall[];
|
|
320
357
|
all(): Thrall[];
|
|
321
358
|
};
|
|
322
|
-
/**
|
|
323
|
-
* A Path specified by name.
|
|
324
|
-
*
|
|
325
|
-
* @category In-game constant
|
|
326
|
-
*/
|
|
327
|
-
export declare const $path: {
|
|
328
|
-
(literals: TemplateStringsArray, ...placeholders: string[]): Path;
|
|
329
|
-
cls: typeof MafiaClass & (new () => Path);
|
|
330
|
-
none: Path;
|
|
331
|
-
};
|
|
332
|
-
/**
|
|
333
|
-
* A list of Paths specified by a comma-separated list of names.
|
|
334
|
-
* For a list of all possible Paths, leave the template string blank.
|
|
335
|
-
*
|
|
336
|
-
* @category In-game constant
|
|
337
|
-
*/
|
|
338
|
-
export declare const $paths: {
|
|
339
|
-
(literals: TemplateStringsArray, ...placeholders: string[]): Path[];
|
|
340
|
-
all(): Path[];
|
|
341
|
-
};
|