352 lines
20 KiB
JSON
352 lines
20 KiB
JSON
{
|
||
"locations": {
|
||
"village": { "name":"Деревня", "safe":true },
|
||
"tavern": { "name":"Таверна", "safe":true },
|
||
"forest": { "name":"Лес", "safe":false },
|
||
"dungeon": { "name":"Подземелье", "safe":false },
|
||
"cave": { "name":"Пещера", "safe":false },
|
||
"mountain": { "name":"Горы", "safe":false },
|
||
"swamp": { "name":"Болото", "safe":false },
|
||
"ruins": { "name":"Руины", "safe":false },
|
||
"abyss": { "name":"Бездна", "safe":false }
|
||
},
|
||
"spawns": {
|
||
"forest": [
|
||
{"t":"goblin", "lOff":0, "x":3, "y":3 },
|
||
{"t":"wolf", "lOff":0, "x":10, "y":2 },
|
||
{"t":"goblin", "lOff":1, "x":5, "y":9 },
|
||
{"t":"slime", "lOff":0, "x":2, "y":10},
|
||
{"t":"bandit", "lOff":1, "x":11, "y":8 },
|
||
{"t":"wolf", "lOff":1, "x":7, "y":4 },
|
||
{"t":"goblin_king", "lOff":5, "x":8, "y":7 }
|
||
],
|
||
"dungeon": [
|
||
{"t":"skeleton", "lOff":2, "x":2, "y":2 },
|
||
{"t":"skeleton", "lOff":2, "x":11, "y":3 },
|
||
{"t":"zombie", "lOff":2, "x":6, "y":10},
|
||
{"t":"troll", "lOff":4, "x":10, "y":11},
|
||
{"t":"skeleton", "lOff":2, "x":3, "y":8 },
|
||
{"t":"zombie", "lOff":3, "x":8, "y":5 },
|
||
{"t":"corvus", "lOff":6, "x":5, "y":6 }
|
||
],
|
||
"cave": [
|
||
{"t":"bat", "lOff":2, "x":3, "y":3 },
|
||
{"t":"slime", "lOff":1, "x":8, "y":5 },
|
||
{"t":"orc", "lOff":3, "x":10, "y":8 },
|
||
{"t":"dragon", "lOff":7, "x":12, "y":2 },
|
||
{"t":"bat", "lOff":2, "x":5, "y":11},
|
||
{"t":"orc", "lOff":4, "x":11, "y":11},
|
||
{"t":"stone_colossus", "lOff":8, "x":6, "y":7 }
|
||
],
|
||
"mountain":[
|
||
{"t":"yeti", "lOff":3, "x":3, "y":3 },
|
||
{"t":"golem", "lOff":5, "x":11, "y":4 },
|
||
{"t":"yeti", "lOff":4, "x":6, "y":10},
|
||
{"t":"golem", "lOff":6, "x":10, "y":10},
|
||
{"t":"wolf", "lOff":2, "x":4, "y":7 },
|
||
{"t":"frost_giant", "lOff":7, "x":8, "y":7 }
|
||
],
|
||
"swamp": [
|
||
{"t":"spider", "lOff":2, "x":3, "y":4 },
|
||
{"t":"spider", "lOff":2, "x":11, "y":3 },
|
||
{"t":"witch", "lOff":4, "x":7, "y":11},
|
||
{"t":"slime", "lOff":1, "x":2, "y":9 },
|
||
{"t":"zombie", "lOff":3, "x":10, "y":9 },
|
||
{"t":"lich", "lOff":8, "x":12, "y":2 },
|
||
{"t":"hydra", "lOff":7, "x":5, "y":6 }
|
||
],
|
||
"ruins": [
|
||
{"t":"ghost", "lOff":3, "x":3, "y":3 },
|
||
{"t":"ghost", "lOff":3, "x":10, "y":4 },
|
||
{"t":"ghost", "lOff":4, "x":5, "y":10},
|
||
{"t":"wyvern", "lOff":5, "x":11, "y":10},
|
||
{"t":"wyvern", "lOff":6, "x":12, "y":3 },
|
||
{"t":"skeleton", "lOff":2, "x":2, "y":9 },
|
||
{"t":"zombie", "lOff":3, "x":9, "y":11},
|
||
{"t":"shadow_assassin", "lOff":8, "x":7, "y":7 }
|
||
],
|
||
"abyss": [
|
||
{"t":"shadow_assassin", "lOff":7, "x":3, "y":3 },
|
||
{"t":"lich", "lOff":8, "x":11, "y":3 },
|
||
{"t":"ghost", "lOff":6, "x":2, "y":11},
|
||
{"t":"chaos_lord", "lOff":12,"x":7, "y":5 }
|
||
]
|
||
},
|
||
"npcs": {
|
||
"village": [
|
||
{"name":"Торговец", "x":2, "y":5, "color":"#3498db", "type":"shop"},
|
||
{"name":"Стражник", "x":5, "y":1, "color":"#8b0000", "type":"quest"},
|
||
{"name":"Целитель", "x":10, "y":3, "color":"#27ae60", "type":"healer"},
|
||
{"name":"Старик", "x":8, "y":8, "color":"#aaa", "type":"quest"}
|
||
],
|
||
"tavern": [
|
||
{"name":"Трактирщик", "x":7, "y":5, "color":"#c8a060", "type":"branch"}
|
||
],
|
||
"forest": [{"name":"Эльф", "x":10, "y":10, "color":"#2ecc71", "type":"quest"}],
|
||
"dungeon": [{"name":"Призрак", "x":7, "y":7, "color":"#aaffff", "type":"quest"}],
|
||
"swamp": [{"name":"Шаман", "x":3, "y":3, "color":"#8e44ad", "type":"quest"}],
|
||
"mountain": [{"name":"Старик", "x":5, "y":5, "color":"#aaa", "type":"quest"}],
|
||
"ruins": [{"name":"Страж", "x":6, "y":6, "color":"#88aacc", "type":"quest"}]
|
||
},
|
||
"decos": {
|
||
"village": [
|
||
{"x":2, "y":2, "type":"house"},
|
||
{"x":11, "y":2, "type":"house"},
|
||
{"x":2, "y":9, "type":"house"},
|
||
{"x":4, "y":6, "type":"tree"},
|
||
{"x":10, "y":6, "type":"tree"},
|
||
{"x":12, "y":8, "type":"tree"},
|
||
{"x":3, "y":4, "type":"fountain"},
|
||
{"x":8, "y":2, "type":"well"},
|
||
{"x":7, "y":9, "type":"tavern", "name":"Таверна"},
|
||
{"x":7, "y":9, "type":"portal", "destination":"tavern", "name":"🍺 Таверна"},
|
||
{"x":13, "y":7, "type":"portal", "destination":"forest", "name":"Лес"},
|
||
{"x":7, "y":13, "type":"portal", "destination":"dungeon", "name":"Подземелье"},
|
||
{"x":1, "y":7, "type":"portal", "destination":"cave", "name":"Пещера"},
|
||
{"x":13, "y":1, "type":"portal", "destination":"mountain", "name":"Горы"},
|
||
{"x":1, "y":13, "type":"portal", "destination":"swamp", "name":"Болото"},
|
||
{"x":13, "y":13, "type":"portal", "destination":"ruins", "name":"Руины"}
|
||
],
|
||
"tavern": [
|
||
{"x":7, "y":13, "type":"portal", "destination":"village", "name":"🚪 Выход"},
|
||
{"x":3, "y":3, "type":"torch"},
|
||
{"x":11, "y":3, "type":"torch"},
|
||
{"x":3, "y":10, "type":"torch"},
|
||
{"x":11, "y":10, "type":"torch"},
|
||
{"x":4, "y":6, "type":"table"},
|
||
{"x":4, "y":8, "type":"table"},
|
||
{"x":10, "y":6, "type":"table"},
|
||
{"x":10, "y":8, "type":"table"}
|
||
],
|
||
"forest": [
|
||
{"x":2, "y":2, "type":"tree"},
|
||
{"x":4, "y":3, "type":"tree"},
|
||
{"x":6, "y":4, "type":"tree"},
|
||
{"x":8, "y":5, "type":"tree"},
|
||
{"x":10, "y":6, "type":"tree"},
|
||
{"x":12, "y":7, "type":"tree"},
|
||
{"x":4, "y":4, "type":"rock"},
|
||
{"x":10, "y":10, "type":"rock"},
|
||
{"x":7, "y":13, "type":"portal", "destination":"village", "name":"Деревня"}
|
||
],
|
||
"dungeon": [
|
||
{"x":1, "y":1, "type":"pillar"},
|
||
{"x":13, "y":1, "type":"pillar"},
|
||
{"x":1, "y":13, "type":"pillar"},
|
||
{"x":13, "y":13, "type":"pillar"},
|
||
{"x":4, "y":4, "type":"torch"},
|
||
{"x":9, "y":4, "type":"torch"},
|
||
{"x":4, "y":9, "type":"torch"},
|
||
{"x":9, "y":9, "type":"torch"},
|
||
{"x":7, "y":13, "type":"portal", "destination":"village", "name":"Деревня"}
|
||
],
|
||
"cave": [
|
||
{"x":2, "y":2, "type":"crystal"},
|
||
{"x":11, "y":3, "type":"crystal"},
|
||
{"x":8, "y":8, "type":"crystal"},
|
||
{"x":3, "y":11, "type":"crystal"},
|
||
{"x":7, "y":13, "type":"portal", "destination":"village", "name":"Деревня"}
|
||
],
|
||
"mountain": [
|
||
{"x":3, "y":3, "type":"rock"},
|
||
{"x":10, "y":3, "type":"rock"},
|
||
{"x":5, "y":8, "type":"rock"},
|
||
{"x":7, "y":13, "type":"portal", "destination":"village", "name":"Деревня"}
|
||
],
|
||
"swamp": [
|
||
{"x":2, "y":2, "type":"rock"},
|
||
{"x":11, "y":4, "type":"rock"},
|
||
{"x":7, "y":13, "type":"portal", "destination":"village", "name":"Деревня"}
|
||
],
|
||
"ruins": [
|
||
{"x":2, "y":2, "type":"pillar"},
|
||
{"x":11, "y":2, "type":"pillar"},
|
||
{"x":2, "y":11, "type":"pillar"},
|
||
{"x":11, "y":11, "type":"pillar"},
|
||
{"x":5, "y":5, "type":"rock"},
|
||
{"x":8, "y":3, "type":"rock"},
|
||
{"x":3, "y":8, "type":"rock"},
|
||
{"x":10, "y":9, "type":"rock"},
|
||
{"x":4, "y":4, "type":"torch"},
|
||
{"x":9, "y":4, "type":"torch"},
|
||
{"x":4, "y":9, "type":"torch"},
|
||
{"x":7, "y":13, "type":"portal", "destination":"village", "name":"Деревня"},
|
||
{"x":7, "y":1, "type":"portal", "destination":"abyss", "name":"Бездна"}
|
||
],
|
||
"abyss": [
|
||
{"x":2, "y":2, "type":"pillar"},
|
||
{"x":12, "y":2, "type":"pillar"},
|
||
{"x":2, "y":12, "type":"pillar"},
|
||
{"x":12, "y":12, "type":"pillar"},
|
||
{"x":4, "y":4, "type":"torch"},
|
||
{"x":10, "y":4, "type":"torch"},
|
||
{"x":4, "y":10, "type":"torch"},
|
||
{"x":10, "y":10, "type":"torch"},
|
||
{"x":7, "y":13, "type":"portal", "destination":"ruins", "name":"Руины"}
|
||
]
|
||
},
|
||
"weather": {
|
||
"village": ["none","none","rain","sunny"],
|
||
"tavern": ["none"],
|
||
"forest": ["rain","rain","fog","none"],
|
||
"dungeon": ["none","fog"],
|
||
"cave": ["none","fog"],
|
||
"mountain": ["snow","snow","none"],
|
||
"swamp": ["fog","fog","rain"],
|
||
"ruins": ["fog","fog","none"],
|
||
"abyss": ["fog","fog","fog"]
|
||
},
|
||
"dialogs": {
|
||
"Трактирщик": {
|
||
"start": {
|
||
"text": "Добро пожаловать в «Золотой Кубок»! Что желаете?",
|
||
"opts": [
|
||
{ "label": "Отдохнуть (20 🪙)", "next": "rest", "cost": 20 },
|
||
{ "label": "Купить напиток (10 🪙)", "next": "drink", "cost": 10 },
|
||
{ "label": "Послушать слухи", "next": "rumors" },
|
||
{ "label": "До свидания", "next": null }
|
||
]
|
||
},
|
||
"rest": {
|
||
"text": "Хорошо, комната готова. Ложитесь — утром будете как новенький!",
|
||
"opts": [{ "label": "Спасибо!", "next": null, "reward": { "hp": 9999, "mp": 9999 } }]
|
||
},
|
||
"drink": {
|
||
"text": "Вот кружка доброго эля. Придаст сил на бой!",
|
||
"opts": [{ "label": "За удачу!", "next": null, "reward": { "buff": "str" } }]
|
||
},
|
||
"rumors": {
|
||
"text": "Говорят, в Руинах видели странный свет по ночам... А ещё что Бездна всё расширяется. Путники туда заходят — и не возвращаются.",
|
||
"opts": [{ "label": "Занятно...", "next": null }]
|
||
}
|
||
},
|
||
"Стражник": {
|
||
"start": { "text":"Путник! Тут неспокойно. Гоблины снова шалят в лесу. Чем могу помочь?",
|
||
"opts": [
|
||
{ "label":"📍 Расскажи о локациях", "next":"lore" },
|
||
{ "label":"💰 Заплатить за совет (15 💰)", "next":"tip", "cost":15 },
|
||
{ "label":"❌ Ничего, спасибо", "next":null }
|
||
]},
|
||
"lore": { "text":"Лес к северу опасен — там волки и гоблины. В подземелье орудует нежить. В пещере — дракон. На болоте засела Ведьма. Горы охраняет Голем.",
|
||
"opts": [
|
||
{ "label":"Понятно, спасибо", "next":null }
|
||
]},
|
||
"tip": { "text":"Тайный совет: Паук ядовит — возьми антидот. Голем неуязвим к физике, только магия берёт. Ну и не суйся на болото ночью.",
|
||
"opts": [
|
||
{ "label":"Ценная информация!", "next":null, "reward":{ "exp":30 } }
|
||
]}
|
||
},
|
||
"Старик": {
|
||
"start": { "text":"Хм... Давненько не видел таких юных искателей приключений. Что тебя интересует?",
|
||
"opts": [
|
||
{ "label":"📖 История Эйдона", "next":"history" },
|
||
{ "label":"🧙 Тайны магии", "next":"magic" },
|
||
{ "label":"🎁 Благословение (50 💰)", "next":"bless", "cost":50 },
|
||
{ "label":"❌ Ничего", "next":null }
|
||
]},
|
||
"history": { "text":"Эйдон — земля, рождённая из хаоса. Когда-то здесь жили древние маги. Они создали Голема и Лича в качестве стражей. Но амбиции взяли верх, и мир погрузился в войну...",
|
||
"opts": [
|
||
{ "label":"Что случилось дальше?", "next":"history2" },
|
||
{ "label":"Понятно", "next":null }
|
||
]},
|
||
"history2": { "text":"Войну остановил Первый Герой — он запечатал Лича в болоте, а Голем заснул в горах. Но печать слабеет... Лич снова собирает силы.",
|
||
"opts": [
|
||
{ "label":"Мне нужно остановить его", "next":null, "reward":{ "exp":50 } }
|
||
]},
|
||
"magic": { "text":"Магия идёт из земли. Кристаллы пещер — её источники. Но у каждой стихии есть противоположность: огонь слаб против льда, яд — против антидота.",
|
||
"opts": [
|
||
{ "label":"Полезно знать", "next":null, "reward":{ "exp":25 } }
|
||
]},
|
||
"bless": { "text":"Пусть удача сопутствует тебе. Прими моё благословение — пусть следующий бой будет в твою пользу.",
|
||
"opts": [
|
||
{ "label":"Благодарю, мудрец", "next":null, "reward":{ "exp":40, "buff":"def" } }
|
||
]}
|
||
},
|
||
"Эльф": {
|
||
"start": { "text":"О, смертный... Ты пришёл в лес в неспокойное время. Что тебе нужно?",
|
||
"opts": [
|
||
{ "label":"🌿 Собрать травы", "next":"herbs" },
|
||
{ "label":"⚔️ Где самые опасные враги?", "next":"danger" },
|
||
{ "label":"🎁 Дар природы", "next":"gift" },
|
||
{ "label":"❌ Просто проходил мимо", "next":null }
|
||
]},
|
||
"herbs": { "text":"В этом лесу много целебных трав. Возьми — пригодятся для зелий.",
|
||
"opts": [
|
||
{ "label":"Спасибо!", "next":null, "reward":{ "item":"herb", "qty":3 } }
|
||
]},
|
||
"danger": { "text":"Глубже в лес — волки и бандиты. Осторожнее с пауками — их яд силён. А тролль у болота регенерирует — нужен огонь.",
|
||
"opts": [
|
||
{ "label":"Буду осторожен", "next":null }
|
||
]},
|
||
"gift": { "text":"Природа даёт дары тем, кто уважает её. Прими этот амулет леса.",
|
||
"opts": [
|
||
{ "label":"Прекрасно!", "next":null, "reward":{ "exp":60, "item":"slime_gel", "qty":2 } }
|
||
]}
|
||
},
|
||
"Шаман": {
|
||
"start": { "text":"Я чувствую силу в тебе... и тьму вокруг. Болото охраняет тайны. Что ты ищешь?",
|
||
"opts": [
|
||
{ "label":"🧪 Исцели меня", "next":"heal" },
|
||
{ "label":"📜 Секрет болота", "next":"secret" },
|
||
{ "label":"🔮 Предсказание", "next":"predict" },
|
||
{ "label":"❌ Ухожу", "next":null }
|
||
]},
|
||
"heal": { "text":"Болото очищает. Постой на этой земле... готово, яды ушли.",
|
||
"opts": [
|
||
{ "label":"Благодарю шаман", "next":null, "reward":{ "cure":true, "hp":30 } }
|
||
]},
|
||
"secret": { "text":"Ведьма черпает силу из болотных трясин. Вытащи её на твёрдую землю — и она ослабнет. Святой огонь сожжёт её договор с тьмой.",
|
||
"opts": [
|
||
{ "label":"Это важно", "next":null, "reward":{ "exp":45 } }
|
||
]},
|
||
"predict": { "text":"Я вижу... тебя окружают враги. Один из них обманет тебя. Но ты победишь. Цена предсказания — немного твоей силы.",
|
||
"opts": [
|
||
{ "label":"Принять предсказание", "next":null, "reward":{ "exp":35 } }
|
||
]}
|
||
},
|
||
"Призрак": {
|
||
"start": { "text":"...ты слышишь меня? Хорошо. Я был солдатом. Погиб здесь давно. Чего ты хочешь, живой?",
|
||
"opts": [
|
||
{ "label":"Кто ты?", "next":"who" },
|
||
{ "label":"Как победить Лича?", "next":"lich" },
|
||
{ "label":"Покойся с миром", "next":null }
|
||
]},
|
||
"who": { "text":"Рядовой Эрик из армии Короля. Мы пришли зачистить подземелье от нежити. Никто не вернулся. Лич поглотил наши души... кроме моей. Я слишком упрямый.",
|
||
"opts": [
|
||
{ "label":"Мне жаль", "next":"lich" },
|
||
{ "label":"Покойся с миром", "next":null }
|
||
]},
|
||
"lich": { "text":"Лич хранит свою душу в филактерии — магическом сосуде. Пока он цел — Лич не умрёт. Разбей его святым заклинанием... или просто бей достаточно сильно. Удачи тебе, живой.",
|
||
"opts": [
|
||
{ "label":"Я уничтожу Лича", "next":null, "reward":{ "exp":80 } }
|
||
]}
|
||
},
|
||
"Страж": {
|
||
"start": { "text":"Стоп! Ты живой? Странно видеть здесь живых... Руины опасны. Духи воинов и виверны охраняют эти камни. Что тебе нужно?",
|
||
"opts": [
|
||
{ "label":"Расскажи об этом месте", "next":"history" },
|
||
{ "label":"Где найти виверн?", "next":"wyvern" },
|
||
{ "label":"Дай задание", "next":"quest" },
|
||
{ "label":"Ничего, спасибо", "next":null }
|
||
]},
|
||
"history": { "text":"Когда-то здесь стоял великий замок короля Эйдора. Армия тьмы уничтожила его за одну ночь. Я был среди защитников. Теперь мы здесь навсегда — ждём героя, который упокоит проклятие.",
|
||
"opts": [
|
||
{ "label":"Как снять проклятие?", "next":"curse" },
|
||
{ "label":"Я помогу", "next":null, "reward":{ "exp":60 } }
|
||
]},
|
||
"curse": { "text":"Убей Виверну-Матриарха в северо-восточном углу. Она — источник проклятия. Её смерть ослабит духов. Это единственный путь.",
|
||
"opts": [
|
||
{ "label":"Я её найду", "next":null, "reward":{ "exp":90, "item":"ghost_essence" } }
|
||
]},
|
||
"wyvern": { "text":"Виверны гнездятся в разрушенных башнях — смотри на северо-восток. Яд виверны — ценный алхимический компонент. Удача тебе нужна больше, чем смелость.",
|
||
"opts": [
|
||
{ "label":"Спасибо за совет", "next":null, "reward":{ "exp":40 } }
|
||
]},
|
||
"quest": { "text":"Упокой трёх призраков в этих руинах. Они страдают. Их имена я знаю, но произнести не могу. Просто уничтожь их — это лучшее, что ты можешь сделать.",
|
||
"opts": [
|
||
{ "label":"Хорошо, займусь этим", "next":null, "reward":{ "exp":50 } }
|
||
]}
|
||
}
|
||
}
|
||
}
|