/** * 游戏数据模型 * 基于GDD设计文档定义核心数据结构 */ /** * 种族类型 */ export enum RaceType { HUMAN = 'human', // 人族 ELF = 'elf', // 精灵 DWARF = 'dwarf', // 矮人 ORC = 'orc', // 兽人 GOBLIN = 'goblin', // 地精 DRAGONBORN = 'dragonborn', // 龙裔 UNDEAD = 'undead', // 亡灵 DEMON = 'demon', // 魔族 ANGEL = 'angel', // 神族 TITAN = 'titan', // 巨人 WEREWOLF = 'werewolf', // 狼人 VAMPIRE = 'vampire', // 吸血鬼 NEPHILIM = 'nephilim', // 深潜裔 CELESTIAL = 'celestial', // 天人 SPIRIT = 'spirit', // 精魂 FLAME = 'flame', // 火裔 FROST = 'frost', // 冰裔 THUNDER = 'thunder', // 雷裔 EARTH = 'earth', // 土裔 } /** * 职业类型 */ export enum ProfessionType { // 人族职业 SWORD_CULTIVATOR = 'sword_cultivator', // 副修 PILL_CULTIVATOR = 'pill_cultivator', // 炼丹 WEAPON_CULTIVATOR = 'weapon_cultivator', // 炼器 FORMATION_CULTIVATOR = 'formation_cultivator', // 阵修 SCHOLAR = 'scholar', // 儒修 MONK = 'monk', // 释修 HERETIC = 'heretic', // 邪修 // 种族专属职业 KNIGHT = 'knight', // 骑士 MAGE = 'mage', // 法师 ROGUE = 'rogue', // 盗贼 RANGER = 'ranger', // 游侠 SHAMAN = 'shaman', // 萨满 NECROMANCER = 'necromancer', // 死灵法师 PALADIN = 'paladin', // 圣骑士 WARLOCK = 'warlock', // 术士 } /** * 境界等级 */ export enum RealmLevel { QI_REFINING = 1, // 炼气期 FOUNDATION = 2, // 筑基期 GOLDEN_CORE = 3, // 金丹期 NASCENT_SOUL = 4, // 元婴期 SPIRIT_SEVERING = 5, // 化神期 BODY_INTEGRATION = 6, // 合体期 MAHAYANA = 7, // 大乘期 TRIBULATION = 8, // 渡劫期 ASCENSION = 9, // 飞升 } /** * 小境界 */ export enum SubRealm { EARLY = 1, // 初期 MIDDLE = 2, // 中期 LATE = 3, // 后期 PEAK = 4, // 圆满 HALF_STEP = 5, // 半步 TRANSITION = 6, // 突破中 } /** * 品阶 */ export enum ItemGrade { COMMON = 1, // 凡品 FINE = 2, // 良品 EXCELLENT = 3, // 优品 PREMIUM = 4, // 精品 SUPREME = 5, // 极品 CHAOS = 6, // 混沌 } /** * 品质 */ export enum ItemQuality { COMMON = 1, // 凡 FINE = 2, // 良 EXCELLENT = 3, // 优 PREMIUM = 4, // 精 SUPREME = 5, // 极 } /** * 角色数据 */ export interface CharacterData { id: string; name: string; race: RaceType; profession: ProfessionType; level: number; realm: RealmLevel; subRealm: SubRealm; // 属性 strength: number; // 力 constitution: number; // 体 wisdom: number; // 悟 speed: number; // 速 agility: number; // 灵 luck: number; // 命 // 资源 copper: number; // 铜钱 spiritStones: number; // 灵石 internalForce: number; // 内力 energy: number; // 能量 maxEnergy: number; // 能量上限 purity: number; // 纯净度 // 状态 hp: number; maxHp: number; san: number; // 理智值 alignment: number; // 善恶值 (-1000 ~ +1000) factionReputation: number; // 门派贡献 // 时间 createdAt: number; lastLoginAt: number; totalPlayTime: number; } /** * 装备数据 */ export interface EquipmentData { id: string; itemId: string; name: string; grade: ItemGrade; quality: ItemQuality; slot: EquipmentSlot; stats: { [key: string]: number }; enchants: string[]; durability: number; maxDurability: number; } /** * 装备槽位 */ export enum EquipmentSlot { WEAPON = 'weapon', HEAD = 'head', BODY = 'body', BELT = 'belt', BOOTS = 'boots', ACCESSORY = 'accessory', MOUNT = 'mount', } /** * 物品数据 */ export interface ItemData { id: string; name: string; description: string; grade: ItemGrade; quality: ItemQuality; type: ItemType; stackable: boolean; maxStack: number; price: number; } /** * 物品类型 */ export enum ItemType { EQUIPMENT = 'equipment', MATERIAL = 'material', PILL = 'pill', SCROLL = 'scroll', CURRENCY = 'currency', QUEST = 'quest', COSMETIC = 'cosmetic', } /** * 功法数据 */ export interface SkillData { id: string; name: string; description: string; grade: ItemGrade; type: SkillType; level: number; maxLevel: number; cooldown: number; energyCost: number; damage: number; effects: SkillEffect[]; } /** * 技能类型 */ export enum SkillType { ACTIVE = 'active', PASSIVE = 'passive', ULTIMATE = 'ultimate', } /** * 技能效果 */ export interface SkillEffect { type: string; value: number; duration: number; chance: number; } /** * 门派数据 */ export interface SectData { id: string; name: string; description: string; faction: string; buildings: SectBuilding[]; reputation: number; contribution: number; } /** * 门派建筑 */ export interface SectBuilding { id: string; name: string; level: number; description: string; unlockCondition: string; } /** * 地图位置 */ export interface MapLocation { id: string; name: string; description: string; realmRequirement: RealmLevel; type: LocationType; x: number; y: number; resources: string[]; events: string[]; } /** * 位置类型 */ export enum LocationType { SAFE_ZONE = 'safe_zone', WILDERNESS = 'wilderness', DUNGEON = 'dungeon', CITY = 'city', SECT = 'sect', } /** * 战斗数据 */ export interface CombatData { id: string; type: CombatType; player: CombatParticipant; enemy: CombatParticipant; rounds: CombatRound[]; result: CombatResult; startTime: number; endTime: number; } /** * 战斗类型 */ export enum CombatType { PVE = 'pve', PVP = 'pvp', BOSS = 'boss', DUNGEON = 'dungeon', } /** * 战斗参与者 */ export interface CombatParticipant { id: string; name: string; race: RaceType; profession: ProfessionType; level: number; hp: number; maxHp: number; energy: number; maxEnergy: number; stats: { [key: string]: number }; skills: string[]; buffs: string[]; debuffs: string[]; } /** * 战斗回合 */ export interface CombatRound { roundNumber: number; events: CombatEvent[]; } /** * 战斗事件 */ export interface CombatEvent { type: 'attack' | 'skill' | 'buff' | 'debuff' | 'dodge' | 'crit' | 'heal' | 'damage'; actor: string; target: string; value: number; description: string; isCrit: boolean; } /** * 战斗结果 */ export interface CombatResult { winner: 'player' | 'enemy' | 'draw'; rewards: { [key: string]: number }; experience: number; reputation: number; }