bc/server/data/dataUtils.js
svoboda200786@gmail.com d0241d6053
Some checks failed
Deploy Project BC / deploy (push) Failing after 33s
test
2025-06-10 00:23:43 +03:00

72 lines
3.3 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// /server/data/dataUtils.js
// Импортируем непосредственно определенные статы и способности
const { elenaBaseStats, balardBaseStats, almagestBaseStats } = require('./characterStats');
const { elenaAbilities, balardAbilities, almagestAbilities } = require('./characterAbilities');
// const { tauntSystem } = require('./taunts'); // Если нужны утилиты для насмешек
/**
* Получает полный набор данных для персонажа по его ключу.
* Включает базовые статы и список способностей.
* @param {string} characterKey - Ключ персонажа ('elena', 'balard', 'almagest').
* @returns {{baseStats: object, abilities: Array<object>}|null} Объект с данными или null, если ключ неизвестен.
*/
function getCharacterData(characterKey) {
if (!characterKey) {
console.warn("[DataUtils] getCharacterData_called_with_null_or_undefined_key");
return null;
}
switch (characterKey.toLowerCase()) { // Приводим к нижнему регистру для надежности
case 'elena':
return { baseStats: elenaBaseStats, abilities: elenaAbilities };
case 'balard':
return { baseStats: balardBaseStats, abilities: balardAbilities };
case 'almagest':
return { baseStats: almagestBaseStats, abilities: almagestAbilities };
default:
console.error(`[DataUtils] getCharacterData: Unknown character key "${characterKey}"`);
return null;
}
}
/**
* Получает только базовые статы для персонажа по его ключу.
* @param {string} characterKey - Ключ персонажа.
* @returns {object|null} Объект базовых статов или null.
*/
function getCharacterBaseStats(characterKey) {
const charData = getCharacterData(characterKey);
return charData ? charData.baseStats : null;
}
/**
* Получает только список способностей для персонажа по его ключу.
* @param {string} characterKey - Ключ персонажа.
* @returns {Array<object>|null} Массив способностей или null.
*/
function getCharacterAbilities(characterKey) {
const charData = getCharacterData(characterKey);
return charData ? charData.abilities : null;
}
/**
* Получает имя персонажа по его ключу.
* @param {string} characterKey - Ключ персонажа.
* @returns {string|null} Имя персонажа или null.
*/
function getCharacterName(characterKey) {
const baseStats = getCharacterBaseStats(characterKey);
return baseStats ? baseStats.name : null;
}
// Можно добавить другие утилитарные функции по мере необходимости,
// например, для поиска конкретной способности по ID у персонажа,
// или для получения данных для инициализации gameState и т.д.
module.exports = {
getCharacterData,
getCharacterBaseStats,
getCharacterAbilities,
getCharacterName
// ...другие экспортируемые утилиты
};