Ctrl K
ComunidadGuías…

src/commands/tag_handlers.py

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
"""GM 状态标签的分域入口与协议分类。"""

from __future__ import annotations

from src.commands.adventure_tag_handlers import parse_adventure_tag
from src.commands.player_tag_handlers import parse_player_tag
from src.commands.world_tag_handlers import parse_action_tag, parse_loot_tag, parse_world_tag
from src.llm.protocol import KNOWN_PROTOCOL_TAGS

KNOWN_TAGS = KNOWN_PROTOCOL_TAGS

LIMITS_BY_COMBAT_MODEL = {
    "lethal_narrative": {"hp_max": 20, "hp_heal": 10, "gold_max": 200, "gold_loss": 50, "weapon": 12},
    "narrative": {"hp_max": 30, "hp_heal": 15, "gold_max": 300, "gold_loss": 80, "weapon": 15},
    "hp_based": {"hp_max": 50, "hp_heal": 20, "gold_max": 500, "gold_loss": 100, "weapon": 15},
}

PLAYER_TAGS = frozenset({
    "HP", "REWARD", "GOLD", "USE", "EQUIP", "WEAPON", "WEAPON_GAIN", "EQUIP_ITEM", "UNEQUIP_ITEM",
    "XP", "MILESTONE", "SAN", "SAN_CHECK", "LUCK", "SKILL_GROWTH", "PUSH", "MANA",
    "REVIVE", "STAT",
})
WORLD_TAGS = frozenset({
    "CONFIRMED", "MEMORY", "SCENE", "SCENE_IMAGE", "SCENE_PANEL", "NPC", "DECISION", "QUEST", "PRIVATE",
    "AFFECTION",
})
LOOT_TAGS = frozenset({"LOOT", "KEY_ITEM", "FREE_GRANT"})
ACTION_TAGS = frozenset({"PUZZLE", "SPELL", "QUICK_ACTIONS", "COMBAT"})
ADVENTURE_TAGS = frozenset({"ADVENTURE_COMPLETE"})

__all__ = [
    "ACTION_TAGS",
    "ADVENTURE_TAGS",
    "KNOWN_TAGS",
    "LIMITS_BY_COMBAT_MODEL",
    "LOOT_TAGS",
    "PLAYER_TAGS",
    "WORLD_TAGS",
    "parse_action_tag",
    "parse_adventure_tag",
    "parse_loot_tag",
    "parse_player_tag",
    "parse_world_tag",
]