CI: add rust/ build+test workflow
All checks were successful
build / build-test (push) Successful in 39s

This commit is contained in:
Jan-Peter von Hunnius 2026-09-01 06:25:01 +02:00
parent 1da6aa35a0
commit 9cd8e2f717
27 changed files with 5774 additions and 8 deletions

View file

@ -0,0 +1,297 @@
{
"id": "skara_brae",
"name": "Skara Brae",
"width": 30,
"height": 30,
"type": "overworld",
"description": "The frozen city of Skara Brae, sealed by Mangar's curse. Once a thriving port, now buried under unnatural winter.",
"locations": [
{
"id": "adventurers_guild",
"name": "Adventurer's Guild",
"code": "A",
"x": 10,
"y": 10,
"type": "guild",
"description": "Review Board - level up characters, review party status."
},
{
"id": "roscoes_energy_emporium",
"name": "Roscoe's Energy Emporium",
"code": "R",
"x": 14,
"y": 8,
"type": "spell_shop",
"description": "Buy spell levels for 1000-20000 gold. Required to unlock higher tier spells."
},
{
"id": "garths_equipment_shoppe",
"name": "Garth's Equipment Shoppe",
"code": "G",
"x": 8,
"y": 6,
"type": "equipment_shop",
"description": "Buy and sell weapons, armor, and accessories."
},
{
"id": "scarlet_bard",
"name": "Scarlet Bard",
"code": "I",
"x": 16,
"y": 14,
"type": "tavern",
"description": "A tavern with a hidden wine cellar leading to the dungeons below."
},
{
"id": "kylearans_tower",
"name": "Kylearan's Amber Tower",
"code": "K",
"x": 18,
"y": 18,
"type": "dungeon_entrance",
"description": "Entry to Kylearan's Tower dungeon. Blocked by guardians until late game."
},
{
"id": "harkyn_castle",
"name": "Harkyn's Castle",
"code": "H",
"x": 6,
"y": 18,
"type": "dungeon_entrance",
"description": "Entry to Harkyn's Castle dungeon. A ruined castle on the edge of town."
},
{
"id": "mangars_tower",
"name": "Mangar's Tower",
"code": "M",
"x": 22,
"y": 22,
"type": "dungeon_entrance",
"description": "Entry to Mangar's Tower dungeon. The source of the curse."
},
{
"id": "sewers_entrance",
"name": "Sewers Entrance",
"code": "S",
"x": 14,
"y": 14,
"type": "dungeon_entrance",
"description": "Entry to the Sewers dungeon beneath the city streets."
},
{
"id": "gran_plaza",
"name": "Gran Plaza",
"code": "GP",
"x": 12,
"y": 10,
"type": "plaza",
"description": "Central city plaza. A gathering place amid the desolation."
},
{
"id": "temple_mad_god",
"name": "Temple of Mad God",
"code": "T-M",
"x": 10,
"y": 16,
"type": "temple",
"description": "Entry to the Catacombs dungeon. A dark temple to forgotten powers."
},
{
"id": "temple_great_gods",
"name": "Temple of Great Gods",
"code": "T-1",
"x": 4,
"y": 12,
"type": "temple",
"description": "Temple offering basic healing services."
},
{
"id": "temple_greater_gods",
"name": "Temple of Greater Gods",
"code": "T-2",
"x": 4,
"y": 14,
"type": "temple",
"description": "Temple offering healing services."
},
{
"id": "temple_greatest_gods",
"name": "Temple of Greatest Gods",
"code": "T-3",
"x": 4,
"y": 16,
"type": "temple",
"description": "Temple offering more powerful healing services."
},
{
"id": "temple_kiosk",
"name": "Temple of Kiosk",
"code": "T-4",
"x": 20,
"y": 20,
"type": "temple",
"description": "A small temple offering services."
},
{
"id": "temple_thief",
"name": "Thief Temple",
"code": "T-5",
"x": 20,
"y": 22,
"type": "temple",
"description": "Temple offering rogue services - lock picking training and thief tools."
},
{
"id": "temple_100_blessings",
"name": "Temple of 100 Blessings",
"code": "T-6",
"x": 20,
"y": 24,
"type": "temple",
"description": "Temple offering various blessing services."
},
{
"id": "sinister_inn",
"name": "Sinister Inn",
"code": "I-1",
"x": 2,
"y": 22,
"type": "inn",
"description": "A rundown inn. Save your game and rest here."
},
{
"id": "dragons_breath_inn",
"name": "Dragon's Breath Inn",
"code": "I-2",
"x": 4,
"y": 22,
"type": "inn",
"description": "An inn with a dragon motif. Save and rest."
},
{
"id": "drawn_blade_inn",
"name": "Drawn Blade Inn",
"code": "I-3",
"x": 6,
"y": 22,
"type": "inn",
"description": "An inn favored by warriors. Save and rest."
},
{
"id": "ask_y_mother",
"name": "Ask Y-Mother",
"code": "I-4",
"x": 8,
"y": 22,
"type": "inn",
"description": "A peculiar inn. Save and rest."
},
{
"id": "archmage_inn",
"name": "Archmage Inn",
"code": "I-5",
"x": 10,
"y": 22,
"type": "inn",
"description": "An inn catering to magic users. Save and rest."
},
{
"id": "skull_tavern",
"name": "Skull Tavern",
"code": "I-6",
"x": 12,
"y": 22,
"type": "tavern",
"description": "A tavern and drinking establishment."
},
{
"id": "guardian_samurai",
"name": "Guardian Samurai",
"code": "S1",
"x": 24,
"y": 8,
"type": "guardian",
"description": "A fierce samurai guards this passage. Must be defeated to proceed."
},
{
"id": "guardian_stone_giant",
"name": "Guardian Stone Giant",
"code": "S2",
"x": 24,
"y": 10,
"type": "guardian",
"description": "A massive stone giant blocks the way."
},
{
"id": "guardian_stone_golem",
"name": "Guardian Stone Golem",
"code": "S3",
"x": 24,
"y": 12,
"type": "guardian",
"description": "A stone golem stands motionless until approached."
},
{
"id": "guardian_grey_dragon",
"name": "Guardian Grey Dragon",
"code": "S4",
"x": 24,
"y": 14,
"type": "guardian",
"description": "A grey dragon perches atop a mound of treasure."
},
{
"id": "guardian_ogre_lord",
"name": "Guardian Ogre Lord",
"code": "S5",
"x": 24,
"y": 16,
"type": "guardian",
"description": "An ogre lord commands lesser creatures at this checkpoint."
},
{
"id": "guardian_golem",
"name": "Guardian Golem",
"code": "S6",
"x": 24,
"y": 18,
"type": "guardian",
"description": "A powerful golem guards the final approach to Mangar's domain."
},
{
"id": "credits",
"name": "Credits",
"code": "creds",
"x": 28,
"y": 2,
"type": "easter_egg",
"description": "Fun credits easter egg."
},
{
"id": "city_gate",
"name": "City Gate",
"code": "gate",
"x": 0,
"y": 14,
"type": "exit",
"description": "The main gate to Skara Brae, blocked by Mangar's snow drift."
},
{
"id": "stable",
"name": "Stable",
"code": "stable",
"x": 2,
"y": 14,
"type": "landmark",
"description": "The city stable. The horses were eaten by creatures long ago."
}
],
"connections": [
{ "from": "scarlet_bard", "to": "cellar_1", "type": "stairs_down" },
{ "from": "sewers_entrance", "to": "sewers_1", "type": "stairs_down" },
{ "from": "temple_mad_god", "to": "catacombs_1", "type": "stairs_down" },
{ "from": "harkyn_castle", "to": "harkyn_1", "type": "stairs_down" },
{ "from": "kylearans_tower", "to": "kylearan_1", "type": "stairs_down" },
{ "from": "mangars_tower", "to": "mangar_1", "type": "stairs_down" }
]
}