// /server/game/logic/index.js

// Импортируем функции из всех специализированных логических модулей

const {
    performAttack,
    applyAbilityEffect,
    checkAbilityValidity
} = require('./combatLogic');

const {
    processPlayerAbilityCooldowns,
    processDisabledAbilities,
    setAbilityCooldown,
    processBalardSpecialCooldowns
} = require('./cooldownLogic');

const {
    processEffects,
    updateBlockingStatus,
    isCharacterFullySilenced
} = require('./effectsLogic');

const {
    decideAiAction
} = require('./aiLogic');

const {
    getRandomTaunt
} = require('./tauntLogic'); // Предполагаем, что getRandomTaunt вынесен в tauntLogic.js

const {
    checkGameOverInternal, // Внутренняя проверка на HP
    getGameOverResult    // Определяет победителя и причину для checkGameOver в GameInstance
} = require('./gameStateLogic'); // Предполагаем, что логика завершения игры вынесена


// Экспортируем все импортированные функции, чтобы они были доступны
// через единый объект 'gameLogic' в GameInstance.js
module.exports = {
    // Combat Logic
    performAttack,
    applyAbilityEffect,
    checkAbilityValidity,

    // Cooldown Logic
    processPlayerAbilityCooldowns,
    processDisabledAbilities,
    setAbilityCooldown,
    processBalardSpecialCooldowns,

    // Effects Logic
    processEffects,
    updateBlockingStatus,
    isCharacterFullySilenced,

    // AI Logic
    decideAiAction,

    // Taunt Logic
    getRandomTaunt,

    // Game State Logic (например, для условий завершения)
    checkGameOverInternal,
    getGameOverResult
};