/** * Player Store 测试夹具 */ /** * 创建模拟玩家数据 * @param {Object} overrides - 覆盖的属性 * @returns {Object} 模拟玩家对象 */ export function createMockPlayer(overrides = {}) { return { baseStats: { strength: 10, agility: 8, dexterity: 8, intuition: 10, vitality: 10, ...overrides.baseStats }, currentStats: { health: 100, maxHealth: 100, stamina: 100, maxStamina: 100, sanity: 100, maxSanity: 100, ...overrides.currentStats }, level: { current: 1, exp: 0, maxExp: 100, ...overrides.level }, skills: overrides.skills || {}, equipment: { weapon: null, armor: null, shield: null, accessory: null, ...overrides.equipment }, inventory: overrides.inventory || [], currency: { copper: 0, ...overrides.currency }, currentLocation: 'camp', flags: overrides.flags || {}, milestoneBonuses: overrides.milestoneBonuses || {}, globalBonus: overrides.globalBonus || { critRate: 0, attackBonus: 0, expRate: 1, critMult: 0, darkPenaltyReduce: 0, globalExpRate: 0, readingSpeed: 1 }, equipmentStats: overrides.equipmentStats || null, killCount: overrides.killCount || {} } } /** * 创建已解锁技能的玩家 * @param {string} skillId - 技能ID * @param {number} level - 技能等级 * @returns {Object} 模拟玩家对象 */ export function createPlayerWithSkill(skillId, level = 1) { return createMockPlayer({ skills: { [skillId]: { level, exp: 0, unlocked: true } } }) } /** * 创建高等级玩家 * @param {number} level - 玩家等级 * @returns {Object} 模拟玩家对象 */ export function createHighLevelPlayer(level = 10) { return createMockPlayer({ level: { current: level, exp: 0, maxExp: level * 100 * Math.pow(1.5, level - 1) }, baseStats: { strength: 10 + level * 2, agility: 8 + level * 2, dexterity: 8 + level * 2, intuition: 10 + level * 2, vitality: 10 + level * 2 } }) } /** * 创建受伤的玩家 * @param {number} healthPercent - 生命值百分比 * @returns {Object} 模拟玩家对象 */ export function createInjuredPlayer(healthPercent = 30) { return createMockPlayer({ currentStats: { health: 100 * healthPercent / 100, maxHealth: 100, stamina: 50, maxStamina: 100, sanity: 80, maxSanity: 100 } }) } /** * 创建富有的玩家 * @param {number} copper - 铜币数量 * @returns {Object} 模拟玩家对象 */ export function createRichPlayer(copper = 10000) { return createMockPlayer({ currency: { copper } }) } /** * 创建已装备武器的玩家 * @param {Object} weapon - 武器对象 * @returns {Object} 模拟玩家对象 */ export function createPlayerWithWeapon(weapon) { return createMockPlayer({ equipment: { weapon: null, armor: null, shield: null, accessory: null }, inventory: [weapon] }) }