libram 0.8.26 → 0.8.28
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/package.json +9 -8
- package/dist/Clan.d.ts +0 -128
- package/dist/Clan.js +0 -300
- package/dist/Copier.d.ts +0 -9
- package/dist/Copier.js +0 -15
- package/dist/Dungeon.d.ts +0 -45
- package/dist/Dungeon.js +0 -115
- package/dist/Kmail.d.ts +0 -104
- package/dist/Kmail.js +0 -182
- package/dist/actions/ActionSource.d.ts +0 -131
- package/dist/actions/ActionSource.js +0 -177
- package/dist/actions/Banish.d.ts +0 -16
- package/dist/actions/Banish.js +0 -121
- package/dist/actions/FreeKill.d.ts +0 -16
- package/dist/actions/FreeKill.js +0 -94
- package/dist/actions/FreeRun.d.ts +0 -16
- package/dist/actions/FreeRun.js +0 -77
- package/dist/actions/index.d.ts +0 -4
- package/dist/actions/index.js +0 -4
- package/dist/ascend.d.ts +0 -83
- package/dist/ascend.js +0 -268
- package/dist/challengePaths/2014/HeavyRains.d.ts +0 -22
- package/dist/challengePaths/2014/HeavyRains.js +0 -75
- package/dist/challengePaths/2015/CommunityService.d.ts +0 -125
- package/dist/challengePaths/2015/CommunityService.js +0 -334
- package/dist/challengePaths/2016/NuclearAutumn.d.ts +0 -13
- package/dist/challengePaths/2016/NuclearAutumn.js +0 -21
- package/dist/challengePaths/index.d.ts +0 -4
- package/dist/challengePaths/index.js +0 -4
- package/dist/combat.d.ts +0 -414
- package/dist/combat.js +0 -711
- package/dist/console.d.ts +0 -12
- package/dist/console.js +0 -14
- package/dist/counter.d.ts +0 -22
- package/dist/counter.js +0 -37
- package/dist/diet/index.d.ts +0 -80
- package/dist/diet/index.js +0 -662
- package/dist/diet/knapsack.d.ts +0 -8
- package/dist/diet/knapsack.js +0 -128
- package/dist/index.d.ts +0 -29
- package/dist/index.js +0 -26
- package/dist/lib.d.ts +0 -497
- package/dist/lib.js +0 -958
- package/dist/logger.d.ts +0 -35
- package/dist/logger.js +0 -62
- package/dist/maximize.d.ts +0 -121
- package/dist/maximize.js +0 -525
- package/dist/modifier.d.ts +0 -41
- package/dist/modifier.js +0 -160
- package/dist/modifierTypes.d.ts +0 -16
- package/dist/modifierTypes.js +0 -9
- package/dist/mood.d.ts +0 -105
- package/dist/mood.js +0 -349
- package/dist/moonSign.d.ts +0 -13
- package/dist/moonSign.js +0 -25
- package/dist/overlappingNames.d.ts +0 -3
- package/dist/overlappingNames.js +0 -42
- package/dist/property.d.ts +0 -222
- package/dist/property.js +0 -385
- package/dist/propertyTypes.d.ts +0 -19
- package/dist/propertyTypes.js +0 -10
- package/dist/propertyTyping.d.ts +0 -65
- package/dist/propertyTyping.js +0 -91
- package/dist/resources/2007/CandyHearts.d.ts +0 -9
- package/dist/resources/2007/CandyHearts.js +0 -24
- package/dist/resources/2008/DivineFavors.d.ts +0 -9
- package/dist/resources/2008/DivineFavors.js +0 -27
- package/dist/resources/2008/Stickers.d.ts +0 -49
- package/dist/resources/2008/Stickers.js +0 -84
- package/dist/resources/2009/Bandersnatch.d.ts +0 -56
- package/dist/resources/2009/Bandersnatch.js +0 -93
- package/dist/resources/2009/LoveSongs.d.ts +0 -9
- package/dist/resources/2009/LoveSongs.js +0 -24
- package/dist/resources/2009/SpookyPutty.d.ts +0 -31
- package/dist/resources/2009/SpookyPutty.js +0 -49
- package/dist/resources/2010/Brickos.d.ts +0 -9
- package/dist/resources/2010/Brickos.js +0 -21
- package/dist/resources/2010/CrownOfThrones.d.ts +0 -68
- package/dist/resources/2010/CrownOfThrones.js +0 -418
- package/dist/resources/2010/LookingGlass.d.ts +0 -29
- package/dist/resources/2010/LookingGlass.js +0 -89
- package/dist/resources/2011/Gygaxian.d.ts +0 -9
- package/dist/resources/2011/Gygaxian.js +0 -24
- package/dist/resources/2011/ObtuseAngel.d.ts +0 -33
- package/dist/resources/2011/ObtuseAngel.js +0 -51
- package/dist/resources/2011/StompingBoots.d.ts +0 -37
- package/dist/resources/2011/StompingBoots.js +0 -57
- package/dist/resources/2012/RainDoh.d.ts +0 -25
- package/dist/resources/2012/RainDoh.js +0 -37
- package/dist/resources/2012/ReagnimatedGnome.d.ts +0 -31
- package/dist/resources/2012/ReagnimatedGnome.js +0 -46
- package/dist/resources/2012/Resolutions.d.ts +0 -9
- package/dist/resources/2012/Resolutions.js +0 -28
- package/dist/resources/2013/Florist.d.ts +0 -81
- package/dist/resources/2013/Florist.js +0 -245
- package/dist/resources/2013/JungMan.d.ts +0 -33
- package/dist/resources/2013/JungMan.js +0 -69
- package/dist/resources/2013/PulledTaffy.d.ts +0 -9
- package/dist/resources/2013/PulledTaffy.js +0 -33
- package/dist/resources/2014/CrimboShrub.d.ts +0 -42
- package/dist/resources/2014/CrimboShrub.js +0 -89
- package/dist/resources/2014/DNALab.d.ts +0 -56
- package/dist/resources/2014/DNALab.js +0 -162
- package/dist/resources/2014/WinterGarden.d.ts +0 -23
- package/dist/resources/2014/WinterGarden.js +0 -35
- package/dist/resources/2015/BarrelShrine.d.ts +0 -8
- package/dist/resources/2015/BarrelShrine.js +0 -25
- package/dist/resources/2015/ChateauMantegna.d.ts +0 -52
- package/dist/resources/2015/ChateauMantegna.js +0 -99
- package/dist/resources/2015/DeckOfEveryCard.d.ts +0 -29
- package/dist/resources/2015/DeckOfEveryCard.js +0 -122
- package/dist/resources/2015/Dinseylandfill.d.ts +0 -89
- package/dist/resources/2015/Dinseylandfill.js +0 -205
- package/dist/resources/2015/MayoClinic.d.ts +0 -23
- package/dist/resources/2015/MayoClinic.js +0 -49
- package/dist/resources/2016/GingerBread.d.ts +0 -32
- package/dist/resources/2016/GingerBread.js +0 -73
- package/dist/resources/2016/SourceTerminal.d.ts +0 -181
- package/dist/resources/2016/SourceTerminal.js +0 -275
- package/dist/resources/2016/Witchess.d.ts +0 -17
- package/dist/resources/2016/Witchess.js +0 -47
- package/dist/resources/2017/AsdonMartin.d.ts +0 -59
- package/dist/resources/2017/AsdonMartin.js +0 -238
- package/dist/resources/2017/Horsery.d.ts +0 -19
- package/dist/resources/2017/Horsery.js +0 -42
- package/dist/resources/2017/MummingTrunk.d.ts +0 -8
- package/dist/resources/2017/MummingTrunk.js +0 -33
- package/dist/resources/2017/Pantogram.d.ts +0 -92
- package/dist/resources/2017/Pantogram.js +0 -174
- package/dist/resources/2017/Robortender.d.ts +0 -30
- package/dist/resources/2017/Robortender.js +0 -90
- package/dist/resources/2017/Spacegate.d.ts +0 -86
- package/dist/resources/2017/Spacegate.js +0 -178
- package/dist/resources/2017/TunnelOfLove.d.ts +0 -39
- package/dist/resources/2017/TunnelOfLove.js +0 -120
- package/dist/resources/2018/LatteLoversMembersMug.d.ts +0 -392
- package/dist/resources/2018/LatteLoversMembersMug.js +0 -303
- package/dist/resources/2018/SongBoom.d.ts +0 -33
- package/dist/resources/2018/SongBoom.js +0 -55
- package/dist/resources/2019/BeachComb.d.ts +0 -72
- package/dist/resources/2019/BeachComb.js +0 -118
- package/dist/resources/2019/CampAway.d.ts +0 -39
- package/dist/resources/2019/CampAway.js +0 -72
- package/dist/resources/2019/Snapper.d.ts +0 -33
- package/dist/resources/2019/Snapper.js +0 -73
- package/dist/resources/2020/Cartography.d.ts +0 -16
- package/dist/resources/2020/Cartography.js +0 -48
- package/dist/resources/2020/Guzzlr.d.ts +0 -160
- package/dist/resources/2020/Guzzlr.js +0 -275
- package/dist/resources/2020/RetroCape.d.ts +0 -51
- package/dist/resources/2020/RetroCape.js +0 -115
- package/dist/resources/2021/CrystalBall.d.ts +0 -14
- package/dist/resources/2021/CrystalBall.js +0 -39
- package/dist/resources/2021/DaylightShavings.d.ts +0 -40
- package/dist/resources/2021/DaylightShavings.js +0 -74
- package/dist/resources/2022/AutumnAton.d.ts +0 -78
- package/dist/resources/2022/AutumnAton.js +0 -182
- package/dist/resources/2022/CombatLoversLocket.d.ts +0 -44
- package/dist/resources/2022/CombatLoversLocket.js +0 -82
- package/dist/resources/2022/GreyGoose.d.ts +0 -59
- package/dist/resources/2022/GreyGoose.js +0 -90
- package/dist/resources/2022/JuneCleaver.d.ts +0 -47
- package/dist/resources/2022/JuneCleaver.js +0 -69
- package/dist/resources/2022/TrainSet.d.ts +0 -146
- package/dist/resources/2022/TrainSet.js +0 -228
- package/dist/resources/2023/AugustScepter.d.ts +0 -25
- package/dist/resources/2023/AugustScepter.js +0 -40
- package/dist/resources/2023/BurningLeaves.d.ts +0 -25
- package/dist/resources/2023/BurningLeaves.js +0 -74
- package/dist/resources/2023/CinchoDeMayo.d.ts +0 -25
- package/dist/resources/2023/CinchoDeMayo.js +0 -45
- package/dist/resources/2023/ClosedCircuitPayphone.d.ts +0 -80
- package/dist/resources/2023/ClosedCircuitPayphone.js +0 -129
- package/dist/resources/2023/CursedMonkeyPaw.d.ts +0 -46
- package/dist/resources/2023/CursedMonkeyPaw.js +0 -113
- package/dist/resources/2024/AprilingBandHelmet.d.ts +0 -50
- package/dist/resources/2024/AprilingBandHelmet.js +0 -103
- package/dist/resources/2024/ChestMimic.d.ts +0 -35
- package/dist/resources/2024/ChestMimic.js +0 -108
- package/dist/resources/LibramSummon.d.ts +0 -18
- package/dist/resources/LibramSummon.js +0 -74
- package/dist/resources/index.d.ts +0 -54
- package/dist/resources/index.js +0 -54
- package/dist/resources/putty-likes.d.ts +0 -21
- package/dist/resources/putty-likes.js +0 -33
- package/dist/session.d.ts +0 -169
- package/dist/session.js +0 -284
- package/dist/since.d.ts +0 -51
- package/dist/since.js +0 -108
- package/dist/template-string.d.ts +0 -324
- package/dist/template-string.js +0 -265
- package/dist/url.d.ts +0 -35
- package/dist/url.js +0 -67
- package/dist/utils.d.ts +0 -178
- package/dist/utils.js +0 -255
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @returns Whether we `have` the SongBoom™ BoomBox
|
|
3
|
-
*/
|
|
4
|
-
export declare function have(): boolean;
|
|
5
|
-
declare const keywords: {
|
|
6
|
-
"Eye of the Giger": string;
|
|
7
|
-
"Food Vibrations": string;
|
|
8
|
-
"Remainin' Alive": string;
|
|
9
|
-
"These Fists Were Made for Punchin'": string;
|
|
10
|
-
"Total Eclipse of Your Meat": string;
|
|
11
|
-
};
|
|
12
|
-
export declare type SongBoomSong = keyof typeof keywords | null;
|
|
13
|
-
export declare const songBoomSongs: Set<string>;
|
|
14
|
-
/**
|
|
15
|
-
* @returns The `SongBoomSong` you currently have active; `null` if none is active at this time
|
|
16
|
-
*/
|
|
17
|
-
export declare function song(): SongBoomSong;
|
|
18
|
-
/**
|
|
19
|
-
* @returns Song changes left today.
|
|
20
|
-
*/
|
|
21
|
-
export declare function songChangesLeft(): number;
|
|
22
|
-
/**
|
|
23
|
-
* Change the song. Throws an error if unable.
|
|
24
|
-
*
|
|
25
|
-
* @param newSong Song to change to.
|
|
26
|
-
* @returns Whether we successfully changed the song; `false` thus means that this was already our current song.
|
|
27
|
-
*/
|
|
28
|
-
export declare function setSong(newSong: SongBoomSong): boolean;
|
|
29
|
-
/**
|
|
30
|
-
* @returns Progress to next song drop (e.g. gathered meat-clip).
|
|
31
|
-
*/
|
|
32
|
-
export declare function dropProgress(): number;
|
|
33
|
-
export {};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { cliExecute } from "kolmafia";
|
|
2
|
-
import { have as haveItem } from "../../lib";
|
|
3
|
-
import { get } from "../../property";
|
|
4
|
-
import { $item } from "../../template-string";
|
|
5
|
-
const item = $item `SongBoom™ BoomBox`;
|
|
6
|
-
/**
|
|
7
|
-
* @returns Whether we `have` the SongBoom™ BoomBox
|
|
8
|
-
*/
|
|
9
|
-
export function have() {
|
|
10
|
-
return haveItem(item);
|
|
11
|
-
}
|
|
12
|
-
const keywords = {
|
|
13
|
-
"Eye of the Giger": "spooky",
|
|
14
|
-
"Food Vibrations": "food",
|
|
15
|
-
"Remainin' Alive": "dr",
|
|
16
|
-
"These Fists Were Made for Punchin'": "damage",
|
|
17
|
-
"Total Eclipse of Your Meat": "meat",
|
|
18
|
-
};
|
|
19
|
-
export const songBoomSongs = new Set(Object.keys(keywords));
|
|
20
|
-
/**
|
|
21
|
-
* @returns The `SongBoomSong` you currently have active; `null` if none is active at this time
|
|
22
|
-
*/
|
|
23
|
-
export function song() {
|
|
24
|
-
const stored = get("boomBoxSong");
|
|
25
|
-
return songBoomSongs.has(stored) ? stored : null;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* @returns Song changes left today.
|
|
29
|
-
*/
|
|
30
|
-
export function songChangesLeft() {
|
|
31
|
-
return get("_boomBoxSongsLeft");
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Change the song. Throws an error if unable.
|
|
35
|
-
*
|
|
36
|
-
* @param newSong Song to change to.
|
|
37
|
-
* @returns Whether we successfully changed the song; `false` thus means that this was already our current song.
|
|
38
|
-
*/
|
|
39
|
-
export function setSong(newSong) {
|
|
40
|
-
if (song() !== newSong) {
|
|
41
|
-
if (songChangesLeft() === 0)
|
|
42
|
-
throw new Error("Out of song changes!");
|
|
43
|
-
cliExecute(`boombox ${newSong ? keywords[newSong] : "none"}`);
|
|
44
|
-
return true;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* @returns Progress to next song drop (e.g. gathered meat-clip).
|
|
52
|
-
*/
|
|
53
|
-
export function dropProgress() {
|
|
54
|
-
return get("_boomBoxFights");
|
|
55
|
-
}
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Effect } from "kolmafia";
|
|
2
|
-
/**
|
|
3
|
-
* Determines whether we `have` the beach comb
|
|
4
|
-
*
|
|
5
|
-
* @returns Whether we `have` the beach comb
|
|
6
|
-
*/
|
|
7
|
-
export declare function have(): boolean;
|
|
8
|
-
/**
|
|
9
|
-
* Determines whether we `have` the beach comb or the driftwood beach comb
|
|
10
|
-
*
|
|
11
|
-
* @returns Whether we `have` either the beach comb or the driftwood beach comb
|
|
12
|
-
*/
|
|
13
|
-
export declare function available(): boolean;
|
|
14
|
-
export declare const headBuffs: readonly [Effect, Effect, Effect, Effect, Effect, Effect, Effect, Effect, Effect, Effect, Effect];
|
|
15
|
-
export declare const head: {
|
|
16
|
-
readonly HOT: Effect;
|
|
17
|
-
readonly COLD: Effect;
|
|
18
|
-
readonly STENCH: Effect;
|
|
19
|
-
readonly SPOOKY: Effect;
|
|
20
|
-
readonly SLEAZE: Effect;
|
|
21
|
-
readonly MUSCLE: Effect;
|
|
22
|
-
readonly MYSTICALITY: Effect;
|
|
23
|
-
readonly INITIATIVE: Effect;
|
|
24
|
-
readonly FAMILIAR: Effect;
|
|
25
|
-
readonly EXPERIENCE: Effect;
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* Column starts at 0, rows at 1
|
|
29
|
-
*/
|
|
30
|
-
export declare type BeachTile = {
|
|
31
|
-
minute: number;
|
|
32
|
-
row: number;
|
|
33
|
-
column: number;
|
|
34
|
-
};
|
|
35
|
-
/**
|
|
36
|
-
* Calculates the tide level for a given game day
|
|
37
|
-
*
|
|
38
|
-
* @param day The day to check the tide level of; defaults to today
|
|
39
|
-
* @returns The tide level as an integer
|
|
40
|
-
*/
|
|
41
|
-
export declare function tideLevel(day?: number): number;
|
|
42
|
-
/**
|
|
43
|
-
* Determines whether a given tile can currently be combed, based on the tide level
|
|
44
|
-
*
|
|
45
|
-
* @param tile The tile to check
|
|
46
|
-
* @returns Whether today's tides permit the combing of this tile
|
|
47
|
-
*/
|
|
48
|
-
export declare function canComb(tile: BeachTile): boolean;
|
|
49
|
-
/**
|
|
50
|
-
* @returns The number of free combs we have available for today
|
|
51
|
-
*/
|
|
52
|
-
export declare function freeCombs(): number;
|
|
53
|
-
/**
|
|
54
|
-
* Comb a tile or tiles; skips any presently uncombablle tiles
|
|
55
|
-
*
|
|
56
|
-
* @param tiles The tiles to comb
|
|
57
|
-
*/
|
|
58
|
-
export declare function comb(...tiles: BeachTile[]): void;
|
|
59
|
-
/**
|
|
60
|
-
* Determines whether a given Beach Head can be combed today
|
|
61
|
-
*
|
|
62
|
-
* @param target The head in question, either as the Effect it grants or as its name
|
|
63
|
-
* @returns Whether the given head is combable
|
|
64
|
-
*/
|
|
65
|
-
export declare function headAvailable(target: Effect | keyof typeof head): boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Tries to comb a given Beach Head
|
|
68
|
-
*
|
|
69
|
-
* @param target The Beach Head to comb, given either as its effect or as its name
|
|
70
|
-
* @returns Whether we have the head effect at the end of the whole rigamarole; this means that if you `tryHead` when you already have the effect, it will (presumably) fail to comb but will return `true`
|
|
71
|
-
*/
|
|
72
|
-
export declare function tryHead(target: Effect | keyof typeof head): boolean;
|
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { cliExecute, Effect, gamedayToInt, getProperty, handlingChoice, Item, runChoice, } from "kolmafia";
|
|
2
|
-
import { have as have_ } from "../../lib";
|
|
3
|
-
import { get } from "../../property";
|
|
4
|
-
import { $effect } from "../../template-string";
|
|
5
|
-
import { clamp } from "../../utils";
|
|
6
|
-
/**
|
|
7
|
-
* Determines whether we `have` the beach comb
|
|
8
|
-
*
|
|
9
|
-
* @returns Whether we `have` the beach comb
|
|
10
|
-
*/
|
|
11
|
-
export function have() {
|
|
12
|
-
return have_(Item.get("Beach Comb"));
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Determines whether we `have` the beach comb or the driftwood beach comb
|
|
16
|
-
*
|
|
17
|
-
* @returns Whether we `have` either the beach comb or the driftwood beach comb
|
|
18
|
-
*/
|
|
19
|
-
export function available() {
|
|
20
|
-
return have() || have_(Item.get("driftwood beach comb"));
|
|
21
|
-
}
|
|
22
|
-
export const headBuffs = [
|
|
23
|
-
$effect `Hot-Headed`,
|
|
24
|
-
$effect `Cold as Nice`,
|
|
25
|
-
$effect `A Brush with Grossness`,
|
|
26
|
-
$effect `Does It Have a Skull In There??`,
|
|
27
|
-
$effect `Oiled, Slick`,
|
|
28
|
-
$effect `Lack of Body-Building`,
|
|
29
|
-
$effect `We're All Made of Starfish`,
|
|
30
|
-
$effect `Pomp & Circumsands`,
|
|
31
|
-
$effect `Resting Beach Face`,
|
|
32
|
-
$effect `Do I Know You From Somewhere?`,
|
|
33
|
-
$effect `You Learned Something Maybe!`,
|
|
34
|
-
];
|
|
35
|
-
export const head = {
|
|
36
|
-
HOT: $effect `Hot-Headed`,
|
|
37
|
-
COLD: $effect `Cold as Nice`,
|
|
38
|
-
STENCH: $effect `A Brush with Grossness`,
|
|
39
|
-
SPOOKY: $effect `Does It Have a Skull In There??`,
|
|
40
|
-
SLEAZE: $effect `Oiled, Slick`,
|
|
41
|
-
MUSCLE: $effect `Lack of Body-Building`,
|
|
42
|
-
MYSTICALITY: $effect `We're All Made of Starfish`,
|
|
43
|
-
INITIATIVE: $effect `Resting Beach Face`,
|
|
44
|
-
FAMILIAR: $effect `Do I Know You From Somewhere?`,
|
|
45
|
-
EXPERIENCE: $effect `You Learned Something Maybe!`,
|
|
46
|
-
};
|
|
47
|
-
/**
|
|
48
|
-
* Calculates the tide level for a given game day
|
|
49
|
-
*
|
|
50
|
-
* @param day The day to check the tide level of; defaults to today
|
|
51
|
-
* @returns The tide level as an integer
|
|
52
|
-
*/
|
|
53
|
-
export function tideLevel(day = gamedayToInt()) {
|
|
54
|
-
const dayOfMonth = 1 + (day % 8);
|
|
55
|
-
return 4 - Math.abs(4 - dayOfMonth);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Determines whether a given tile can currently be combed, based on the tide level
|
|
59
|
-
*
|
|
60
|
-
* @param tile The tile to check
|
|
61
|
-
* @returns Whether today's tides permit the combing of this tile
|
|
62
|
-
*/
|
|
63
|
-
export function canComb(tile) {
|
|
64
|
-
return tile.row > tideLevel();
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* @returns The number of free combs we have available for today
|
|
68
|
-
*/
|
|
69
|
-
export function freeCombs() {
|
|
70
|
-
return available() ? clamp(11 - get("_freeBeachWalksUsed"), 0, 11) : 0;
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Comb a tile or tiles; skips any presently uncombablle tiles
|
|
74
|
-
*
|
|
75
|
-
* @param tiles The tiles to comb
|
|
76
|
-
*/
|
|
77
|
-
export function comb(...tiles) {
|
|
78
|
-
if (!available() || !tiles.length)
|
|
79
|
-
return;
|
|
80
|
-
for (const tile of tiles) {
|
|
81
|
-
if (canComb(tile)) {
|
|
82
|
-
const { minute, row, column } = tile;
|
|
83
|
-
cliExecute(`beach wander ${minute}`);
|
|
84
|
-
cliExecute(`beach comb ${row} ${column}`);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (handlingChoice())
|
|
88
|
-
runChoice(5);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Determines whether a given Beach Head can be combed today
|
|
92
|
-
*
|
|
93
|
-
* @param target The head in question, either as the Effect it grants or as its name
|
|
94
|
-
* @returns Whether the given head is combable
|
|
95
|
-
*/
|
|
96
|
-
export function headAvailable(target) {
|
|
97
|
-
const effect = target instanceof Effect ? target : head[target];
|
|
98
|
-
const headNumber = 1 + headBuffs.indexOf(effect);
|
|
99
|
-
return (getProperty("beachHeadsUnlocked")
|
|
100
|
-
.split(",")
|
|
101
|
-
.includes(headNumber.toString()) &&
|
|
102
|
-
!getProperty("_beachHeadsUsed").split(",").includes(headNumber.toString()));
|
|
103
|
-
}
|
|
104
|
-
/**
|
|
105
|
-
* Tries to comb a given Beach Head
|
|
106
|
-
*
|
|
107
|
-
* @param target The Beach Head to comb, given either as its effect or as its name
|
|
108
|
-
* @returns Whether we have the head effect at the end of the whole rigamarole; this means that if you `tryHead` when you already have the effect, it will (presumably) fail to comb but will return `true`
|
|
109
|
-
*/
|
|
110
|
-
export function tryHead(target) {
|
|
111
|
-
const effect = target instanceof Effect ? target : head[target];
|
|
112
|
-
if (!headBuffs.includes(effect))
|
|
113
|
-
return false;
|
|
114
|
-
if (!headAvailable(target))
|
|
115
|
-
return false;
|
|
116
|
-
cliExecute(effect.default);
|
|
117
|
-
return have_(effect);
|
|
118
|
-
}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { Effect } from "kolmafia";
|
|
2
|
-
/**
|
|
3
|
-
* Determines whether we `have` the campsite
|
|
4
|
-
*
|
|
5
|
-
* @returns Whether we `have` the campsite
|
|
6
|
-
*/
|
|
7
|
-
export declare function have(): boolean;
|
|
8
|
-
/**
|
|
9
|
-
* @returns Number of cloud buffs acquired today
|
|
10
|
-
*/
|
|
11
|
-
export declare function getCloudBuffsToday(): number;
|
|
12
|
-
/**
|
|
13
|
-
* @returns Number of cloud buffs acquired today
|
|
14
|
-
*/
|
|
15
|
-
export declare function getSmileBuffsToday(): number;
|
|
16
|
-
/**
|
|
17
|
-
* @returns Number of buffs acquired today from gazing at the stars
|
|
18
|
-
*/
|
|
19
|
-
export declare function getBuffsToday(): number;
|
|
20
|
-
/**
|
|
21
|
-
* @returns Whether player has acquired all their buffs today from gazing at the stars
|
|
22
|
-
*/
|
|
23
|
-
export declare function canGaze(): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* Gaze at the stars
|
|
26
|
-
*/
|
|
27
|
-
export declare function gaze(): void;
|
|
28
|
-
/**
|
|
29
|
-
* @param daycountToCheck Daycount to check, defaults to today
|
|
30
|
-
* @returns The buff that the user will get if they gaze on the supplied daycount
|
|
31
|
-
*/
|
|
32
|
-
export declare function getGazeBuff(daycountToCheck?: number): Effect;
|
|
33
|
-
/**
|
|
34
|
-
* Retrieve a number of campfire smokes and use them selecting randomly from the supplied messages
|
|
35
|
-
*
|
|
36
|
-
* @param messages Array of messages to blow
|
|
37
|
-
* @param times Number of times to blow smoke
|
|
38
|
-
*/
|
|
39
|
-
export declare function blowSmoke(messages: string[], times?: number): void;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import { Effect, daycount, myPath, mySign, retrieveItem, use, visitUrl, } from "kolmafia";
|
|
2
|
-
import { signIdToName } from "../../moonSign";
|
|
3
|
-
import { get, withChoice } from "../../property";
|
|
4
|
-
import { $item } from "../../template-string";
|
|
5
|
-
import { random } from "../../utils";
|
|
6
|
-
/**
|
|
7
|
-
* Determines whether we `have` the campsite
|
|
8
|
-
*
|
|
9
|
-
* @returns Whether we `have` the campsite
|
|
10
|
-
*/
|
|
11
|
-
export function have() {
|
|
12
|
-
return get("getawayCampsiteUnlocked");
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* @returns Number of cloud buffs acquired today
|
|
16
|
-
*/
|
|
17
|
-
export function getCloudBuffsToday() {
|
|
18
|
-
return get("_campAwayCloudBuffs");
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* @returns Number of cloud buffs acquired today
|
|
22
|
-
*/
|
|
23
|
-
export function getSmileBuffsToday() {
|
|
24
|
-
return get("_campAwaySmileBuffs");
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* @returns Number of buffs acquired today from gazing at the stars
|
|
28
|
-
*/
|
|
29
|
-
export function getBuffsToday() {
|
|
30
|
-
return getCloudBuffsToday() + getSmileBuffsToday();
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* @returns Whether player has acquired all their buffs today from gazing at the stars
|
|
34
|
-
*/
|
|
35
|
-
export function canGaze() {
|
|
36
|
-
return getBuffsToday() < 4;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Gaze at the stars
|
|
40
|
-
*/
|
|
41
|
-
export function gaze() {
|
|
42
|
-
if (!canGaze())
|
|
43
|
-
return;
|
|
44
|
-
visitUrl("place.php?whichplace=campaway&action=campaway_sky");
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* @param daycountToCheck Daycount to check, defaults to today
|
|
48
|
-
* @returns The buff that the user will get if they gaze on the supplied daycount
|
|
49
|
-
*/
|
|
50
|
-
export function getGazeBuff(daycountToCheck = daycount()) {
|
|
51
|
-
const buffSign = signIdToName(((daycountToCheck + myPath().id) % 9) + 1);
|
|
52
|
-
const effectName = [];
|
|
53
|
-
if (buffSign === mySign())
|
|
54
|
-
effectName.push("Big");
|
|
55
|
-
effectName.push("Smile of the", buffSign);
|
|
56
|
-
return Effect.get(effectName.join(" "));
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Retrieve a number of campfire smokes and use them selecting randomly from the supplied messages
|
|
60
|
-
*
|
|
61
|
-
* @param messages Array of messages to blow
|
|
62
|
-
* @param times Number of times to blow smoke
|
|
63
|
-
*/
|
|
64
|
-
export function blowSmoke(messages, times = 1) {
|
|
65
|
-
const smoke = $item `campfire smoke`;
|
|
66
|
-
retrieveItem(smoke, times);
|
|
67
|
-
for (let i = 0; i < times; i++) {
|
|
68
|
-
withChoice(1394, `1&message=${random(messages)}`, () => {
|
|
69
|
-
use(smoke);
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { Item, Phylum } from "kolmafia";
|
|
2
|
-
/**
|
|
3
|
-
* Map of phylum to item that phylum drops.
|
|
4
|
-
*/
|
|
5
|
-
export declare const phylumItem: Map<Phylum, Item>;
|
|
6
|
-
/**
|
|
7
|
-
* Map of drop item to phylum it drops from.
|
|
8
|
-
*/
|
|
9
|
-
export declare const itemPhylum: Map<Item, Phylum>;
|
|
10
|
-
/**
|
|
11
|
-
* Return whether you have a Red-Nosed Snapper.
|
|
12
|
-
*
|
|
13
|
-
* @returns True if you have a Red-Nosed Snapper, false otherwise.
|
|
14
|
-
*/
|
|
15
|
-
export declare function have(): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Get the phylum currently being tracked by the snapper.
|
|
18
|
-
*
|
|
19
|
-
* @returns Tracked phylum, or null if no phylum tracked.
|
|
20
|
-
*/
|
|
21
|
-
export declare function getTrackedPhylum(): Phylum | null;
|
|
22
|
-
/**
|
|
23
|
-
* Set snapper tracking to a certain phylum.
|
|
24
|
-
*
|
|
25
|
-
* @param phylum Phylum to track.
|
|
26
|
-
*/
|
|
27
|
-
export declare function trackPhylum(phylum: Phylum): void;
|
|
28
|
-
/**
|
|
29
|
-
* Get progress to next snapper drop.
|
|
30
|
-
*
|
|
31
|
-
* @returns Number of fights completed (out of 11) to reach next drop.
|
|
32
|
-
*/
|
|
33
|
-
export declare function getProgress(): number;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { cliExecute, Familiar, haveFamiliar, Item, myFamiliar, Phylum, useFamiliar, } from "kolmafia";
|
|
2
|
-
import { get } from "../../property";
|
|
3
|
-
const familiar = Familiar.get("Red-Nosed Snapper");
|
|
4
|
-
/**
|
|
5
|
-
* Map of phylum to item that phylum drops.
|
|
6
|
-
*/
|
|
7
|
-
export const phylumItem = new Map([
|
|
8
|
-
[Phylum.get("beast"), Item.get("patch of extra-warm fur")],
|
|
9
|
-
[Phylum.get("bug"), Item.get("a bug's lymph")],
|
|
10
|
-
[Phylum.get("constellation"), Item.get("micronova")],
|
|
11
|
-
[Phylum.get("construct"), Item.get("industrial lubricant")],
|
|
12
|
-
[Phylum.get("demon"), Item.get("infernal snowball")],
|
|
13
|
-
[Phylum.get("dude"), Item.get("human musk")],
|
|
14
|
-
[Phylum.get("elemental"), Item.get("livid energy")],
|
|
15
|
-
[Phylum.get("elf"), Item.get("peppermint syrup")],
|
|
16
|
-
[Phylum.get("fish"), Item.get("fish sauce")],
|
|
17
|
-
[Phylum.get("goblin"), Item.get("guffin")],
|
|
18
|
-
[Phylum.get("hippy"), Item.get("organic potpourri")],
|
|
19
|
-
[Phylum.get("hobo"), Item.get("beggin' cologne")],
|
|
20
|
-
[Phylum.get("horror"), Item.get("powdered madness")],
|
|
21
|
-
[Phylum.get("humanoid"), Item.get("vial of humanoid growth hormone")],
|
|
22
|
-
[Phylum.get("mer-kin"), Item.get("Mer-kin eyedrops")],
|
|
23
|
-
[Phylum.get("orc"), Item.get("boot flask")],
|
|
24
|
-
[Phylum.get("penguin"), Item.get("envelope full of Meat")],
|
|
25
|
-
[Phylum.get("pirate"), Item.get("Shantix™")],
|
|
26
|
-
[Phylum.get("plant"), Item.get("goodberry")],
|
|
27
|
-
[Phylum.get("slime"), Item.get("extra-strength goo")],
|
|
28
|
-
[Phylum.get("undead"), Item.get("unfinished pleasure")],
|
|
29
|
-
[Phylum.get("weird"), Item.get("non-Euclidean angle")],
|
|
30
|
-
]);
|
|
31
|
-
/**
|
|
32
|
-
* Map of drop item to phylum it drops from.
|
|
33
|
-
*/
|
|
34
|
-
export const itemPhylum = new Map([...phylumItem].map(([phylum, item]) => [item, phylum]));
|
|
35
|
-
/**
|
|
36
|
-
* Return whether you have a Red-Nosed Snapper.
|
|
37
|
-
*
|
|
38
|
-
* @returns True if you have a Red-Nosed Snapper, false otherwise.
|
|
39
|
-
*/
|
|
40
|
-
export function have() {
|
|
41
|
-
return haveFamiliar(familiar);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Get the phylum currently being tracked by the snapper.
|
|
45
|
-
*
|
|
46
|
-
* @returns Tracked phylum, or null if no phylum tracked.
|
|
47
|
-
*/
|
|
48
|
-
export function getTrackedPhylum() {
|
|
49
|
-
return get("redSnapperPhylum");
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Set snapper tracking to a certain phylum.
|
|
53
|
-
*
|
|
54
|
-
* @param phylum Phylum to track.
|
|
55
|
-
*/
|
|
56
|
-
export function trackPhylum(phylum) {
|
|
57
|
-
const currentFamiliar = myFamiliar();
|
|
58
|
-
try {
|
|
59
|
-
useFamiliar(familiar);
|
|
60
|
-
cliExecute(`snapper ${phylum}`);
|
|
61
|
-
}
|
|
62
|
-
finally {
|
|
63
|
-
useFamiliar(currentFamiliar);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get progress to next snapper drop.
|
|
68
|
-
*
|
|
69
|
-
* @returns Number of fights completed (out of 11) to reach next drop.
|
|
70
|
-
*/
|
|
71
|
-
export function getProgress() {
|
|
72
|
-
return get("redSnapperProgress");
|
|
73
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Location, Monster } from "kolmafia";
|
|
2
|
-
/**
|
|
3
|
-
* Determines whether you `have` the skill Comprehensive Cartography
|
|
4
|
-
*
|
|
5
|
-
* @returns Whether you currently `have` the skill
|
|
6
|
-
*/
|
|
7
|
-
export declare function have(): boolean;
|
|
8
|
-
/**
|
|
9
|
-
* Map a particular monster in a particular location
|
|
10
|
-
* You'll need to set your autoattack or CCS in advance of using this. Additionally, it will loop to try to avoid time-spinner pranks or zone intro adventures
|
|
11
|
-
*
|
|
12
|
-
* @param location The location to target
|
|
13
|
-
* @param monster The monster to target
|
|
14
|
-
* @returns Whether we successfully mapped the monster
|
|
15
|
-
*/
|
|
16
|
-
export declare function mapMonster(location: Location, monster: Monster): boolean;
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { canAdventure, currentRound, handlingChoice, lastChoice, myTurncount, runChoice, toUrl, useSkill, visitUrl, } from "kolmafia";
|
|
2
|
-
import { have as _have } from "../../lib";
|
|
3
|
-
import { get } from "../../property";
|
|
4
|
-
import { $skill } from "../../template-string";
|
|
5
|
-
const passive = $skill `Comprehensive Cartography`;
|
|
6
|
-
/**
|
|
7
|
-
* Determines whether you `have` the skill Comprehensive Cartography
|
|
8
|
-
*
|
|
9
|
-
* @returns Whether you currently `have` the skill
|
|
10
|
-
*/
|
|
11
|
-
export function have() {
|
|
12
|
-
return _have(passive);
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Map a particular monster in a particular location
|
|
16
|
-
* You'll need to set your autoattack or CCS in advance of using this. Additionally, it will loop to try to avoid time-spinner pranks or zone intro adventures
|
|
17
|
-
*
|
|
18
|
-
* @param location The location to target
|
|
19
|
-
* @param monster The monster to target
|
|
20
|
-
* @returns Whether we successfully mapped the monster
|
|
21
|
-
*/
|
|
22
|
-
export function mapMonster(location, monster) {
|
|
23
|
-
if (!have())
|
|
24
|
-
return false;
|
|
25
|
-
if (get("_monstersMapped") >= 3)
|
|
26
|
-
return false;
|
|
27
|
-
if (!canAdventure(location))
|
|
28
|
-
return false;
|
|
29
|
-
useSkill($skill `Map the Monsters`);
|
|
30
|
-
if (!get("mappingMonsters"))
|
|
31
|
-
return false;
|
|
32
|
-
const turns = myTurncount();
|
|
33
|
-
while (currentRound() < 1) {
|
|
34
|
-
// Not in combat
|
|
35
|
-
if (myTurncount() > turns) {
|
|
36
|
-
throw new Error("Map the Monsters unsuccessful?");
|
|
37
|
-
}
|
|
38
|
-
visitUrl(toUrl(location));
|
|
39
|
-
if (handlingChoice() && lastChoice() === 1435) {
|
|
40
|
-
runChoice(1, `heyscriptswhatsupwinkwink=${monster.id}`);
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
runChoice(-1, false);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return false;
|
|
48
|
-
}
|