// /server_modules/config.js const GAME_CONFIG = { // --- Баланс Игры --- BLOCK_DAMAGE_REDUCTION: 0.5, // Множитель урона при блоке (0.5 = 50% снижение) DAMAGE_VARIATION_MIN: 0.9, // Минимальный множитель урона (0.9 = 90%) DAMAGE_VARIATION_RANGE: 0.2, // Диапазон вариации урона (0.2 = от 90% до 110%) HEAL_VARIATION_MIN: 0.8, // Минимальный множитель лечения (0.8 = 80%) HEAL_VARIATION_RANGE: 0.4, // Диапазон вариации лечения (0.4 = от 80% до 120%) NATURE_STRENGTH_MANA_REGEN: 10, // Количество маны, восстанавливаемое "Силой природы" (и ее аналогом) // --- Условия ИИ и Игрока --- OPPONENT_HEAL_THRESHOLD_PERCENT: 50, // Процент HP Баларда, НИЖЕ которого он будет пытаться лечиться (для AI) PLAYER_MERCY_TAUNT_THRESHOLD_PERCENT: 60, // Процент HP Баларда, НИЖЕ которого Елена использует "доминирующие" насмешки (для AI/текстов) PLAYER_HP_BLEED_THRESHOLD_PERCENT: 60, // % HP Елены, НИЖЕ которого Балард предпочитает Кровотечение Безмолвию (для AI) BALARD_MANA_DRAIN_HIGH_MANA_THRESHOLD: 60, // % Маны Елены, ВЫШЕ которого Балард может использовать "Похищение Света" (для AI) // --- Способности Баларда (AI) - Конфигурация --- SILENCE_DURATION: 3, // Длительность Безмолвия в ходах Елены (после хода Баларда) SILENCE_SUCCESS_RATE: 0.7, // Шанс успеха наложения Безмолвия (70%) BALARD_SILENCE_ABILITY_COST: 15, // Стоимость "Эха Безмолвия" в Ярости BALARD_SILENCE_INTERNAL_COOLDOWN: 5, // К-во ходов Баларда КД ПОСЛЕ успешного использования Безмолвия // BALARD_BLEED_COST: 15, // Если будете добавлять способность Кровотечение // BALARD_BLEED_POWER: 5, // BALARD_BLEED_DURATION: 2, // BALARD_BLEED_COOLDOWN: 3, // --- Таймер Хода --- TURN_DURATION_SECONDS: 60, // Длительность хода в секундах TURN_DURATION_MS: 60 * 1000, // Длительность хода в миллисекундах TIMER_UPDATE_INTERVAL_MS: 1000, // Интервал обновления таймера на клиенте (в мс) // --- Идентификаторы и Типы --- PLAYER_ID: 'player', // Технический идентификатор для слота 'Игрок 1' OPPONENT_ID: 'opponent', // Технический идентификатор для слота 'Игрок 2' / 'Противник' ACTION_TYPE_HEAL: 'heal', ACTION_TYPE_DAMAGE: 'damage', ACTION_TYPE_BUFF: 'buff', ACTION_TYPE_DISABLE: 'disable', // Тип для контроля (безмолвие, стан и т.п.) ACTION_TYPE_DEBUFF: 'debuff', // Тип для ослаблений, DoT и т.п. ACTION_TYPE_DRAIN: 'drain', // Тип для Похищения Света // --- Строки для UI (могут быть полезны и на сервере для логов) --- STATUS_READY: 'Готов(а)', // Сделал универсальным STATUS_BLOCKING: 'Защищается', // --- Типы Логов (для CSS классов на клиенте, и для структурирования на сервере) --- LOG_TYPE_INFO: 'info', LOG_TYPE_DAMAGE: 'damage', LOG_TYPE_HEAL: 'heal', LOG_TYPE_TURN: 'turn', LOG_TYPE_SYSTEM: 'system', LOG_TYPE_BLOCK: 'block', LOG_TYPE_EFFECT: 'effect', // --- CSS Классы (в основном для клиента, но константы могут быть полезны для согласованности) --- CSS_CLASS_BLOCKING: 'blocking', CSS_CLASS_NOT_ENOUGH_RESOURCE: 'not-enough-resource', CSS_CLASS_BUFF_IS_ACTIVE: 'buff-is-active', CSS_CLASS_ATTACK_BUFFED: 'attack-buffed', CSS_CLASS_SHAKING: 'is-shaking', CSS_CLASS_CASTING_PREFIX: 'is-casting-', // Например: is-casting-fireball CSS_CLASS_HIDDEN: 'hidden', CSS_CLASS_ABILITY_BUTTON: 'ability-button', CSS_CLASS_ABILITY_SILENCED: 'is-silenced', CSS_CLASS_ABILITY_ON_COOLDOWN: 'is-on-cooldown', // Для отображения кулдауна // --- Задержки (в миллисекундах) --- // Эти задержки теперь в основном будут управляться сервером при отправке событий или планировании AI ходов DELAY_OPPONENT_TURN: 1200, // Задержка перед ходом AI DELAY_AFTER_PLAYER_ACTION: 500, // Сервер может использовать это для паузы перед следующим событием // DELAY_AFTER_BLOCK: 500, // Менее релевантно для сервера напрямую DELAY_INIT: 100, // Для клиентской инициализации, если нужна DELAY_BEFORE_VICTORY_MODAL: 1500, // Для клиента, после получения gameOver MODAL_TRANSITION_DELAY: 10, // Для анимации модалки на клиенте // --- Длительности анимаций (в миллисекундах, в основном для клиента, но сервер может знать для таймингов) --- ANIMATION_SHAKE_DURATION: 400, ANIMATION_CAST_DURATION: 600, ANIMATION_DISSOLVE_DURATION: 6000, // var(--dissolve-duration) из CSS // --- Внутренние ID способностей (для удобства в логике, нужны и на сервере, и на клиенте) --- // Игрока (Елена) ABILITY_ID_HEAL: 'heal', // Малое Исцеление ABILITY_ID_FIREBALL: 'fireball', // Огненный Шар ABILITY_ID_NATURE_STRENGTH: 'naturesStrength', // Сила Природы ABILITY_ID_DEFENSE_AURA: 'defenseAura', // Аура Защиты ABILITY_ID_HYPNOTIC_GAZE: 'hypnoticGaze', // Гипнотический взгляд ABILITY_ID_SEAL_OF_WEAKNESS: 'sealOfWeakness', // Печать Слабости // Противника (Балард - AI) ABILITY_ID_BALARD_HEAL: 'darkPatronage', // Покровительство Тьмы ABILITY_ID_BALARD_SILENCE: 'echoesOfSilence', // Эхо Безмолвия ABILITY_ID_BALARD_MANA_DRAIN: 'manaDrainHeal', // Похищение Света // ABILITY_ID_BALARD_BLEED: 'balardBleed', // Если будете добавлять // Противника (Альмагест - PvP - зеркало Елены) ABILITY_ID_ALMAGEST_HEAL: 'darkHeal', // Темное Восстановление (Аналог heal) ABILITY_ID_ALMAGEST_DAMAGE: 'shadowBolt', // Теневой Сгусток (Аналог fireball) ABILITY_ID_ALMAGEST_BUFF_ATTACK: 'shadowEmpowerment', // Усиление Тьмой (Аналог naturesStrength) ABILITY_ID_ALMAGEST_BUFF_DEFENSE: 'voidShield', // Щит Пустоты (Аналог defenseAura) ABILITY_ID_ALMAGEST_DISABLE: 'mindShatter', // Раскол Разума (Аналог hypnoticGaze) ABILITY_ID_ALMAGEST_DEBUFF: 'curseOfDecay', // Проклятие Увядания (Аналог sealOfWeakness) }; // Для использования в Node.js модулях (например, server_modules/gameInstance.js) if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') { module.exports = GAME_CONFIG; } // Для использования в браузере (если этот файл подключается напрямую через