UNPKG

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
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; }