alclient
Version:
A node client for interacting with Adventure Land - The Code MMORPG. This package extends the functionality of 'alclient' by managing a mongo database.
170 lines (169 loc) • 5.34 kB
TypeScript
import type { SlotInfo, StatusInfo } from "./definitions/adventureland.js";
import type { Attribute, ConditionName, DamageType, GData, GMonster, GMonsterAbilities, MapName, MonsterName, SkillName } from "./definitions/adventureland-data.js";
import type { ActionData, MonsterData } from "./definitions/adventureland-server.js";
import type { Character } from "./Character.js";
import type { Player } from "./Player.js";
export declare class Entity implements MonsterData, Partial<GMonster> {
protected G: GData;
abs?: false;
angle: number;
cid: number;
focus?: string;
going_x: number;
going_y: number;
in: string;
map: MapName;
move_num: number;
moving: boolean;
x: number;
y: number;
target: string;
abilities: GMonsterAbilities;
charge: number;
cooperative: boolean;
damage_type: DamageType;
attack: number;
frequency: number;
hp: number;
mp: number;
range: number;
speed: number;
apiercing: number;
armor: number;
avoidance: number;
blast: number;
breaks: number;
crit: number;
critdamage: number;
evasion: number;
lifesteal: number;
mcourage: number;
reflection: number;
resistance: number;
rpiercing: number;
aggro: number;
name: string;
rage: number;
respawn: number;
skin: string;
"1hp": boolean;
aa: number;
achievements: [number, "stat", Attribute, number][];
announce?: string;
article?: string;
balance?: string;
cute: boolean;
difficulty?: number;
drop_on_hit: boolean;
escapist: boolean;
explanation?: string;
global: boolean;
goldsteal: number;
hit?: string;
humanoid: boolean;
immune: boolean;
lucrativeness?: number;
operator: boolean;
orientation?: number;
passive: boolean;
peaceful: boolean;
pet?: {
aggression: [number, number];
brightness: number;
chatter: [number, number];
courage: [number, number];
exponential: boolean;
level: {
[T in Attribute]?: number;
};
obedience: [number, number];
passion: [number, number];
xp: number;
};
poisonous: boolean;
prefix: string;
projectile?: string;
rbuff: ConditionName;
roam: boolean;
size?: number;
slots?: Partial<SlotInfo>;
spawns?: [number, MonsterName][];
special: boolean;
stationary: boolean;
supporter: boolean;
trap: boolean;
unlist: boolean;
id: string;
level: number;
max_hp: number;
max_mp: number;
s: StatusInfo & {
[T in SkillName]?: {
ms: number;
ability: true;
};
};
type: MonsterName;
xp: number;
width: number;
height: number;
constructor(data: MonsterData, map: MapName, instance: string, G: GData);
updateData(data: MonsterData): void;
calculateDamageRange(defender: Character | Entity | Player): [number, number];
/**
* Returns true if the entity has a >0% chance to die from projectiles already cast.
*
* TODO: Consider `blast` and `explosion`
*
* @param {Map<string, ActionData>} projectiles (e.g.: bot.projectiles)
* @param {Map<string, Player>} players (e.g.: bot.players)
* @param {Map<string, Player>} entities (e.g.: bot.entities)
* @return {*} {boolean}
* @memberof Entity
*/
couldDieToProjectiles(character: Character, projectiles: Map<string, ActionData>, players: Map<string, Player>, entities: Map<string, Entity>): boolean;
/**
* Returns true if killing this monster could drop gold/loot, or give us tracker credit.
*
* @param {Character} player
* @return {*} {boolean}
* @memberof Entity
*/
couldGiveCreditForKill(player: Character): boolean;
/**
* Returns true if the monster is attacking the player, or one of its party members
* @param player The player whose party to check if the monster is attacking
*/
isAttackingPartyMember(player: Character): boolean;
/**
* Returns true if the monster is attacking us specifically, false otherwise
* @param player The player to check if the monster is attacking
*/
isAttackingUs(player: Character): boolean;
/**
* If the entity is disabled, they cannot move or attack
* @returns If the entity is disabled
*/
isDisabled(): boolean;
/**
* Returns whether or not the Warrior could taunt this monster
* @param by The player that will perform the taunt
*/
isTauntable(by: Character): boolean;
/**
* Returns true if the entity will burn to death without taking any additional damage
* @return {*} {boolean}
* @memberof Entity
*/
willBurnToDeath(): boolean;
/**
* Returns true if the entity has a 100% chance to die from projectiles already cast.
*
* @param {Map<string, ActionData>} projectiles (e.g.: bot.projectiles)
* @param {Map<string, Player>} players (e.g.: bot.players)
* @param {Map<string, Player>} entities (e.g.: bot.entities)
* @return {*} {boolean}
* @memberof Entity
*/
willDieToProjectiles(character: Character, projectiles: Map<string, ActionData>, players: Map<string, Player>, entities: Map<string, Entity>): boolean;
}