// /server/core/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 модулях
if (typeof module !== 'undefined' && typeof module.exports !== 'undefined') {
    module.exports = GAME_CONFIG;
}

// console.log("config.js loaded from server/core/ and GAME_CONFIG object created/exported.");