typed-adventureland
Version:
Strong TypeScript declarations for the game AdventureLand
198 lines (197 loc) • 7.49 kB
TypeScript
import type { ConditionKey } from "../conditions/Conditions";
import type { ProjectileKey } from "../projectiles/Projectiles";
import type { WeaponKey } from "../items/Weapon";
export type MonsterKey = "a1" | "a2" | "a3" | "a4" | "a5" | "a6" | "a7" | "a8" | "arcticbee" | "armadillo" | "bat" | "bbpompom" | "bee" | "bgoo" | "bigbird" | "bluefairy" | "boar" | "booboo" | "bscorpion" | "cgoo" | "chestm" | "crab" | "crabx" | "crabxx" | "croc" | "cutebee" | "d_wiz" | "dknight2" | "dragold" | "dryad" | "eelemental" | "ent" | "felemental" | "fieldgen0" | "fireroamer" | "franky" | "frog" | "fvampire" | "gbluepro" | "ggreenpro" | "ghost" | "goblin" | "goldenbat" | "goldenbot" | "goo" | "gpurplepro" | "gredpro" | "greenfairy" | "greenjr" | "grinch" | "gscorpion" | "harpy" | "hen" | "icegolem" | "iceroamer" | "jr" | "jrat" | "kitty1" | "kitty2" | "kitty3" | "kitty4" | "ligerx" | "mechagnome" | "minimush" | "mole" | "mrgreen" | "mrpumpkin" | "mummy" | "mvampire" | "nelemental" | "nerfedbat" | "nerfedmummy" | "odino" | "oneeye" | "osnake" | "phoenix" | "pinkgoblin" | "pinkgoo" | "plantoid" | "poisio" | "porcupine" | "pppompom" | "prat" | "puppy1" | "puppy2" | "puppy3" | "puppy4" | "rat" | "redfairy" | "rgoo" | "rharpy" | "rooster" | "rudolph" | "scorpion" | "skeletor" | "slenderman" | "snake" | "snowman" | "sparkbot" | "spider" | "spiderbl" | "spiderbr" | "spiderr" | "squig" | "squigtoad" | "stompy" | "stoneworm" | "target" | "target_a500" | "target_a750" | "target_ar500red" | "target_ar900" | "target_r500" | "target_r750" | "targetron" | "tiger" | "tinyp" | "tortoise" | "vbat" | "wabbit" | "welemental" | "wolf" | "wolfie" | "xmagefi" | "xmagefz" | "xmagen" | "xmagex" | "xscorpion" | "zapper0";
export type MonsterName = "Angel" | "Angry Chest" | "Arctic Bee" | "Armadillo" | "Bat" | "Bee" | "Bill" | "Black Scorpion" | "Black Spider Queen" | "Boo Boo" | "Brawl Goo" | "Brown Spider Queen" | "Chicken" | "Croc" | "Cute Bee" | "Dark Hound" | "Dark Knight" | "Dark Mage" | "Dark Wizard" | "Dino" | "Dracul" | "Dragold" | "Dryad" | "Earth Elemental" | "Elena" | "Ent" | "Fairy" | "Field Generator" | "Fire Elemental" | "Fire Spirit" | "Franky" | "Froggie" | "Ghost" | "Giga Crab" | "Golden Bat" | "Golden Bot" | "Goo" | "Green Jr." | "Grinch" | "Harpy" | "Hawk" | "Huge Crab" | "Ice Golem" | "Irradiated Goo" | "Jr." | "Kitty" | "Lestat" | "Liger X" | "Love Goo" | "Lucinda" | "Mage" | "Marceline" | "Mech-a Gnome" | "Mole" | "Mr. Green" | "Mr. Pumpkin" | "Ms. Dracul" | "Mummy" | "Nature Elemental" | "One Eye" | "Orlok" | "Phoenix" | "Pink Goblin" | "Poisio" | "Pom Pom" | "Porcupine" | "Protector of Darkness" | "Protector of Fire" | "Protector of Frost" | "Protector of Nature" | "Puppy" | "Rainbow Goo" | "Rat" | "Rebel Harpy" | "Red Spider Queen" | "Reindeer" | "Scorpion" | "Skeletor" | "Slenderman" | "Snake" | "Sneaky Goblin" | "Snowman" | "Spark Bot" | "Spider" | "Spike" | "Sprawling" | "Squig" | "Squigtoad" | "Stompy" | "Stone Worm" | "Target Automatron" | "Targetron" | "Tiger" | "Tiny Crab" | "Tortoise" | "Vampire Rat" | "Vampireling" | "Wabbit" | "Water Elemental" | "Water Spirit" | "White Wolf" | "Wild Boar" | "Zapper";
export type GMonsterAbilities = {
anger?: {
cooldown: number;
radius: number;
};
burn?: {
attr0: number;
unlimited: boolean;
};
curse_aura?: {
aura: boolean;
condition: ConditionKey;
cooldown: number;
radius: number;
};
dampening_aura?: {
aura: boolean;
condition: ConditionKey;
cooldown: number;
radius: number;
};
deepfreeze?: {
cooldown: number;
radius: number;
};
degen?: {
amount: number;
cooldown: number;
};
heal?: {
cooldown: number;
heal: number;
};
healing?: {
cooldown: number;
heal: number;
};
mlight?: {
cooldown: number;
};
mtangle?: {
cooldown: number;
};
multi_burn?: {
cooldown: number;
damage: number;
};
multi_freeze?: {
cooldown: number;
damage: number;
};
portal?: {
cooldown: number;
};
putrid?: {
curse: boolean;
poison: boolean;
};
self_healing?: {
cooldown: number;
heal: number;
};
stone?: {
cooldown: number;
};
tangle?: {
cooldown: number;
};
warp_on_hit?: {
attr0: number;
unlimited: boolean;
};
warpstomp?: {
cooldown: number;
radius: number;
stun: number;
};
weakness_aura?: {
aura: boolean;
condition: ConditionKey;
cooldown: number;
radius: number;
};
zap?: {
amount: number;
cooldown: number;
pure: boolean;
radius: number;
};
};
export interface GMonster {
"1hp"?: boolean;
abilities?: GMonsterAbilities;
achievements?: Array<[kills: number, effectType: "stat", stat: string, amount: number]>;
aggro: number;
announce?: string | boolean;
apiercing?: number;
armor?: number;
article?: string;
attack: number;
avoidance?: number;
balance?: string;
cbuff?: Array<[number, ConditionKey]>;
charge?: number;
charge_skin?: string;
cooperative?: boolean;
crit?: number;
cute?: boolean;
damage_type: string;
/** A multiplier for monsters' gold drops */
difficulty?: number;
dreturn?: number;
drop_on_hit?: boolean;
escapist?: boolean;
evasion?: number;
explanation?: string;
explosion?: number;
frequency: number;
global?: boolean;
goldsteal?: number;
hide?: boolean;
hit?: string;
hp: number;
humanoid?: boolean;
immune?: boolean;
lifesteal?: number;
mp: number;
max_hp: number;
name: MonsterName;
operator?: boolean;
orientation?: number;
passive?: boolean;
peaceful?: boolean;
pet?: {
aggression: [number, number];
brightness: number;
chatter: [number, number];
courage: [number, number];
exponential: boolean;
level: {
armor: number;
attack: number;
charge: number;
evasion: number;
hp: number;
resistance: number;
speed: number;
};
obedience: [number, number];
passion: [number, number];
xp: number;
};
phresistance?: number;
poisonous?: boolean;
prefix?: string;
projectile?: ProjectileKey;
rage: number;
range: number;
rbuff?: ConditionKey;
reflection?: number;
resistance?: number;
respawn: number;
respawn_as?: MonsterKey;
roam?: boolean;
rpiercing?: number;
s?: {
[K in ConditionKey]?: {
ms: number;
};
};
size?: number;
skin: string;
slots?: {
mainhand: {
level: number;
name: WeaponKey;
};
offhand?: {
level: number;
name: WeaponKey;
};
};
spawns?: [[number, MonsterKey]];
special?: boolean;
speed: number;
stationary?: boolean;
supporter?: boolean;
trap?: boolean;
unlist?: boolean;
xp: number;
aa?: number;
}