UNPKG

typed-adventureland

Version:
81 lines (80 loc) 2.14 kB
import type { ProjectileKey } from "../projectiles/Projectiles"; import type { WeaponKey } from "../items/Weapon"; import type { OffhandType, WeaponType } from "../items/index"; import { Tuple } from "../utils"; import { CharacterEntityCXInfos } from "../../../entities/character-entity"; export type ClassKey = "mage" | "merchant" | "paladin" | "priest" | "ranger" | "rogue" | "warrior"; export interface GClass { armor: number; attack: number; base_slots: { mainhand: { gift: number; level: number; name: WeaponKey; }; }; bmresistance?: number; brave?: boolean; courage: number; damage_type: string; description: string; doublehand: { [Type in WeaponType | "great_sword"]?: { frequency?: number; miss?: number; mp_cost?: number; speed?: number; }; }; frequency: number; fzresistance?: number; hp: number; looks: Tuple<[string, CharacterEntityCXInfos], 4>; /** Gained stats per level. */ lstats: { dex: number; for: number; int: number; str: number; vit: number; }; main_stat: string; mainhand: { [K in WeaponType]?: { apiercing?: number; frequency?: number; mp_cost?: number; output?: number; speed?: number; }; }; mcourage: number; mp: number; mp_cost: number; offhand: { [Type in OffhandType]?: { frequency?: number; speed?: number; }; }; output: number; pcourage: number; phresistance?: number; pnresistance?: number; projectile: ProjectileKey; range: number; resistance: number; side_stat?: string; speed: number; /** Base stats the class starts with. */ stats: { dex: number; for: number; int: number; str: number; vit: number; }; stresistance?: number; xcx?: Array<string>; }