Skip to content

Commit 2848d47

Browse files
initial commit
1 parent 0aa6849 commit 2848d47

File tree

5 files changed

+124
-0
lines changed

5 files changed

+124
-0
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
const UnbanderableTargets: string[] = [];
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import { $item, $skill, clamp, get, getFoldGroup, have } from "libram";
2+
import { FreeRunBanishSource } from "./lib";
3+
import { Macro } from "../../combat";
4+
5+
export const BanishSources: FreeRunBanishSource[] = [
6+
{
7+
name: "KGB Tranquilizer Dart",
8+
banish: $skill`KGB tranquilizer dart`,
9+
spec: { acc1: $item`Kremlin's Greatest Briefcase` },
10+
macro: Macro.skill($skill`KGB tranquilizer dart`),
11+
have: () => have($item`Kremlin's Greatest Briefcase`),
12+
available: () => get("_kgbTranquilizerDartUses") < 3,
13+
remaining: () => clamp(3 - get("_kgbTranquilizerDartUses"), 0, 3),
14+
},
15+
{
16+
name: "Latte Lovers Member's Mug",
17+
banish: $skill`Throw latte on Opponent`,
18+
spec: { offhand: $item`Latte Lovers Member's Mug` },
19+
macro: Macro.skill($skill`Throw latte on opponent`),
20+
have: () => have($item`Latte Lovers Member's Mug`),
21+
available: () => !get("_latteBanishUsed"),
22+
remaining: () => Number(!get("_latteBanishUsed")),
23+
},
24+
{
25+
name: "Mafia Middle Finger Ring",
26+
banish: $skill`Show them your middle finger`,
27+
spec: { acc1: $item`Mafia middle finger ring` },
28+
macro: Macro.skill($skill`Show them your middle finger`),
29+
have: () => have($item`Mafia middle finger ring`),
30+
available: () => get("_mafiaMiddleFingerRingUsed"),
31+
remaining: () => Number(!get("_mafiaMiddleFingerRingUsed")),
32+
},
33+
{
34+
name: "Creepy Grin",
35+
banish: $skill`Creepy Grin`,
36+
spec: { acc1: $item`V for Vivala Mask` },
37+
macro: Macro.skill($skill`Creepy Grin`),
38+
have: () => have($item`V for Vivala Mask`),
39+
available: () => get("_vmaskBanisherUsed"),
40+
remaining: () => Number(!get("_vmaskBanisherUsed")),
41+
},
42+
{
43+
name: "Stinky Cheese Eye",
44+
banish: $skill`Give Your Opponent The Stinkeye`,
45+
spec: { acc1: $item`stinky cheese eye` },
46+
macro: Macro.skill($skill`Give Your Opponent The Stinkeye`),
47+
have: () =>
48+
[
49+
$item`stinky cheese eye`,
50+
...getFoldGroup($item`stinky cheese eye`),
51+
].some((i) => have(i)),
52+
available: () => !get("_stinkyCheeseBanisherUsed"),
53+
remaining: () => Number(!get("_stinkyCheeseBanisherUsed")),
54+
},
55+
// et cetera
56+
];
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { OutfitSpec } from "grimoire-kolmafia";
2+
import { Macro } from "../../combat";
3+
import { Location, Monster } from "kolmafia";
4+
5+
type ItemStealSource = {
6+
have: boolean;
7+
remaining: () => number;
8+
macro: Macro;
9+
perFight: () => number;
10+
spec: OutfitSpec;
11+
};
12+
13+
type ItemStealTarget = {
14+
location: Location;
15+
monster: Monster;
16+
};

packages/garbo/src/tasks/runs/lib.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { OutfitSpec } from "grimoire-kolmafia";
2+
import { Item, Skill } from "kolmafia";
3+
import { Macro } from "../../combat";
4+
5+
export type FreeRunSource = {
6+
name: string;
7+
spec: OutfitSpec;
8+
available: (task: string) => boolean;
9+
have: () => boolean;
10+
macro: Macro;
11+
};
12+
13+
export type FreeRunBanishSource = FreeRunSource & {
14+
banish: Item | Skill;
15+
remaining: () => number;
16+
};

packages/garbo/src/tasks/runs/runs.ts

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { $item, have, $effect, $skill, get } from "libram";
2+
import { Macro } from "../../combat";
3+
import { FreeRunSource } from "./lib";
4+
import { globalOptions } from "../../config";
5+
6+
export const RunSources: FreeRunSource[] = [
7+
{
8+
name: "Spring Runaway",
9+
spec: { acc1: $item`Spring Shoes` },
10+
macro: Macro.skill($skill`Spring Away`),
11+
available: () => !have($effect`Everything Looks Green`),
12+
have: () => have($item`Spring Shoes`),
13+
},
14+
{
15+
name: "GAP Runaway",
16+
spec: { pants: $item`Greatest American Pants` },
17+
macro: Macro.runaway(),
18+
available: () => get("_navelRunaways") < 3,
19+
have: () => have($item`greatest american pants`),
20+
},
21+
{
22+
name: "Navel Ring Runaway",
23+
spec: { acc1: $item`Navel Ring of Navel Gazing` },
24+
macro: Macro.runaway(),
25+
available: () => get("_navelRunaways") < 3,
26+
have: () => have($item`navel ring of navel gazing`),
27+
},
28+
{
29+
name: "Fish Oil Smoke Bomb",
30+
spec: {},
31+
macro: Macro.item($item`fish oil smoke bomb`),
32+
available: () => have($item`fish oil smoke bomb`),
33+
have: () => globalOptions.ascend,
34+
},
35+
];

0 commit comments

Comments
 (0)