"""Built-in Fantasy preset (RU + EN).""" from __future__ import annotations FANTASY_PRESET_RU = { "slug": "fantasy-default-ru", "title": "Фэнтези: Меч и Магия", "description": "Классический фэнтези-сеттинг с HP/MP, инвентарём, фракциями и заклинаниями.", "language": "ru", "payload": { "world_seed_prompt": ( "Классическое темное фэнтези в духе позднего средневековья. Королевства людей, эльфийские леса, " "гномьи города под горами, орды орков на восточных рубежах. Магия редкая и опасная, церковь " "борется с ересями. Герой — начинающий авантюрист, ищущий славы и средств к существованию." ), "rules": { "stats": ["health", "mana", "stamina", "gold", "level", "xp"], "combat": "пошаговые броски d20 + модификатор против сложности", "magic": "трата маны на заклинания, восстановление во сне", "death": "при health <= 0 — состояние при смерти, нужно стабилизировать", "inventory": "слоты = 10 + сила модификатор", "time": "внутренний календарь: дни, часы. Сон = 8ч, путешествие между локациями 4-12ч.", }, "world_schema": { "type": "object", "properties": { "player": { "type": "object", "properties": { "name": {"type": "string"}, "race": {"type": "string"}, "class": {"type": "string"}, "level": {"type": "integer", "minimum": 1}, "xp": {"type": "integer", "minimum": 0}, "stats": { "type": "object", "properties": { "health": {"type": "number"}, "health_max": {"type": "number"}, "mana": {"type": "number"}, "mana_max": {"type": "number"}, "stamina": {"type": "number"}, "stamina_max": {"type": "number"}, "strength": {"type": "integer"}, "dexterity": {"type": "integer"}, "constitution": {"type": "integer"}, "intelligence": {"type": "integer"}, "wisdom": {"type": "integer"}, "charisma": {"type": "integer"}, }, "required": ["health", "health_max", "mana", "mana_max"], }, "inventory": { "type": "array", "items": { "type": "object", "properties": { "name": {"type": "string"}, "qty": {"type": "integer", "minimum": 0}, "type": {"type": "string"}, "notes": {"type": "string"}, }, "required": ["name", "qty"], }, }, "effects": {"type": "array", "items": {"type": "object"}}, "gold": {"type": "integer", "minimum": 0}, "location": {"type": "string"}, }, "required": ["name", "stats", "inventory"], }, "npcs": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "name": {"type": "string"}, "description": {"type": "string"}, "relation": {"type": "string"}, "stats": {"type": "object"}, "location": {"type": "string"}, }, "required": ["id", "name"], }, }, "locations": { "type": "array", "items": { "type": "object", "properties": { "id": {"type": "string"}, "name": {"type": "string"}, "description": {"type": "string"}, "type": {"type": "string"}, "danger": {"type": "string"}, }, "required": ["id", "name"], }, }, "world_time": { "type": "object", "properties": { "day": {"type": "integer"}, "hour": {"type": "integer"}, "season": {"type": "string"}, "weather": {"type": "string"}, }, }, "flags": {"type": "object"}, }, "required": ["player"], }, "initial_state": { "player": { "name": "Герой", "race": "Человек", "class": "Авантюрист", "level": 1, "xp": 0, "stats": { "health": 20, "health_max": 20, "mana": 10, "mana_max": 10, "stamina": 15, "stamina_max": 15, "strength": 10, "dexterity": 10, "constitution": 10, "intelligence": 10, "wisdom": 10, "charisma": 10, }, "inventory": [ {"name": "Старый меч", "qty": 1, "type": "weapon", "notes": "1d8 урон"}, {"name": "Кожаная броня", "qty": 1, "type": "armor", "notes": "+1 AC"}, {"name": "Хлеб", "qty": 3, "type": "food", "notes": "восстанавливает 2 стамины"}, {"name": "Факел", "qty": 5, "type": "tool", "notes": "горит 1 час"}, ], "effects": [], "gold": 10, "location": "Деревня Старый Дуб", }, "npcs": [], "locations": [ { "id": "village_old_oak", "name": "Деревня Старый Дуб", "description": "Маленькая деревня на опушке Тёмного Леса.", "type": "settlement", "danger": "safe", } ], "world_time": {"day": 1, "hour": 8, "season": "spring", "weather": "clear"}, "flags": {}, }, "initial_time": "day_1_hour_8", "suggested_system_prompt": ( "Ты — Game Master классического фэнтези. Используй пошаговые правила: броски d20, " "трата маны на заклинания, учёт усталости. Описывай сцены кинематографично, но коротко. " "Соблюдай сеттинг средневекового тёмного фэнтези. Не давай игроку несбыточных обещаний." ), }, } FANTASY_PRESET_EN = { "slug": "fantasy-default-en", "title": "Fantasy: Sword & Sorcery", "description": "Classic fantasy setting with HP/MP, inventory, factions and spells.", "language": "en", "payload": { "world_seed_prompt": ( "Classic dark fantasy in a late-medieval style. Human kingdoms, elven forests, dwarven cities " "under the mountains, orc hordes on the eastern marches. Magic is rare and dangerous, the " "church hunts heretics. The hero is a novice adventurer seeking fame and coin." ), "rules": { "stats": ["health", "mana", "stamina", "gold", "level", "xp"], "combat": "turn-based d20 rolls + modifier vs difficulty", "magic": "mana cost per spell, recovered by sleep", "death": "at health <= 0 — dying state, must be stabilized", "inventory": "slots = 10 + strength modifier", "time": "internal calendar: days, hours. Sleep = 8h, travel between locations 4-12h.", }, "world_schema": FANTASY_PRESET_RU["payload"]["world_schema"], "initial_state": { "player": { "name": "Hero", "race": "Human", "class": "Adventurer", "level": 1, "xp": 0, "stats": { "health": 20, "health_max": 20, "mana": 10, "mana_max": 10, "stamina": 15, "stamina_max": 15, "strength": 10, "dexterity": 10, "constitution": 10, "intelligence": 10, "wisdom": 10, "charisma": 10, }, "inventory": [ {"name": "Old sword", "qty": 1, "type": "weapon", "notes": "1d8 damage"}, {"name": "Leather armor", "qty": 1, "type": "armor", "notes": "+1 AC"}, {"name": "Bread", "qty": 3, "type": "food", "notes": "restores 2 stamina"}, {"name": "Torch", "qty": 5, "type": "tool", "notes": "burns 1 hour"}, ], "effects": [], "gold": 10, "location": "Old Oak Village", }, "npcs": [], "locations": [ { "id": "village_old_oak", "name": "Old Oak Village", "description": "A small village on the edge of the Darkwood.", "type": "settlement", "danger": "safe", } ], "world_time": {"day": 1, "hour": 8, "season": "spring", "weather": "clear"}, "flags": {}, }, "initial_time": "day_1_hour_8", "suggested_system_prompt": ( "You are the Game Master of a classic fantasy. Use turn-based rules: d20 rolls, mana " "costs for spells, track fatigue. Describe scenes cinematically but briefly. Stay in " "the dark-fantasy medieval setting. Don't make the player impossible promises." ), }, }