From 72f0af4fbd0f63ff103e2a29ff5e6eff7e8e20be Mon Sep 17 00:00:00 2001 From: Steven Ortega Date: Sun, 21 Jun 2026 23:56:12 -0500 Subject: [PATCH] feat(regions): add Vesper vendor shop regions (Trammel + Felucca) Add NoHousingRegion child regions for Vesper vendor shops on both facets, nested under the Vesper TownRegion. Same shop-region pattern as Britain. Refs #1052 Co-Authored-By: Claude Opus 4.8 (1M context) --- Distribution/Data/regions.json | 260 +++++++++++++++++++++++++++++++++ 1 file changed, 260 insertions(+) diff --git a/Distribution/Data/regions.json b/Distribution/Data/regions.json index 6cbc1d34f..3419ddb6c 100644 --- a/Distribution/Data/regions.json +++ b/Distribution/Data/regions.json @@ -677,6 +677,136 @@ "GoLocation": {"x": 2899, "y": 676, "z": 0}, "Music": "Vesper" }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Bakery", + "Priority": 50, + "Area": [{"x1": 2994, "y1": 756, "x2": 3002, "y2": 764}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Butcher", + "Priority": 50, + "Area": [ + {"x1": 3013, "y1": 757, "x2": 3021, "y2": 765}, + {"x1": 2983, "y1": 773, "x2": 2991, "y2": 781}, + {"x1": 3008, "y1": 776, "x2": 3016, "y2": 784} + ] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Blacksmith", + "Priority": 50, + "Area": [ + {"x1": 2831, "y1": 801, "x2": 2839, "y2": 809}, + {"x1": 2861, "y1": 848, "x2": 2869, "y2": 856} + ] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Bowyer", + "Priority": 50, + "Area": [{"x1": 2857, "y1": 808, "x2": 2865, "y2": 816}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Tinker", + "Priority": 50, + "Area": [{"x1": 2895, "y1": 786, "x2": 2903, "y2": 794}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Tailor", + "Priority": 50, + "Area": [ + {"x1": 2957, "y1": 617, "x2": 2965, "y2": 625}, + {"x1": 2836, "y1": 881, "x2": 2844, "y2": 889} + ] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Mage", + "Priority": 50, + "Area": [ + {"x1": 2886, "y1": 648, "x2": 2894, "y2": 655}, + {"x1": 2914, "y1": 668, "x2": 2922, "y2": 676}, + {"x1": 2988, "y1": 840, "x2": 2996, "y2": 848} + ] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Provisioner", + "Priority": 50, + "Area": [{"x1": 2982, "y1": 633, "x2": 2990, "y2": 641}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Jeweler", + "Priority": 50, + "Area": [{"x1": 2878, "y1": 719, "x2": 2886, "y2": 727}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Bank", + "Priority": 50, + "Area": [{"x1": 2877, "y1": 680, "x2": 2885, "y2": 688}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Healer", + "Priority": 50, + "Area": [{"x1": 2916, "y1": 852, "x2": 2924, "y2": 860}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Carpenter", + "Priority": 50, + "Area": [{"x1": 2913, "y1": 794, "x2": 2921, "y2": 802}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Tanner", + "Priority": 50, + "Area": [{"x1": 2856, "y1": 995, "x2": 2864, "y2": 1003}] + }, + { + "$type": "NoHousingRegion", + "Map": "Felucca", + "Parent": { "Name": "Vesper", "Map": "Felucca" }, + "Name": "the Vesper Docks", + "Priority": 50, + "Area": [ + {"x1": 2959, "y1": 809, "x2": 2967, "y2": 817}, + {"x1": 2991, "y1": 811, "x2": 2999, "y2": 819}, + {"x1": 3030, "y1": 823, "x2": 3038, "y2": 831} + ] + }, { "$type": "TownRegion", "NoLogoutDelay": true, @@ -2603,6 +2733,136 @@ "GoLocation": {"x": 2899, "y": 676, "z": 0}, "Music": "Vesper" }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Bakery", + "Priority": 50, + "Area": [{"x1": 2994, "y1": 756, "x2": 3002, "y2": 764}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Butcher", + "Priority": 50, + "Area": [ + {"x1": 3013, "y1": 757, "x2": 3021, "y2": 765}, + {"x1": 2983, "y1": 773, "x2": 2991, "y2": 781}, + {"x1": 3008, "y1": 776, "x2": 3016, "y2": 784} + ] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Blacksmith", + "Priority": 50, + "Area": [ + {"x1": 2831, "y1": 801, "x2": 2839, "y2": 809}, + {"x1": 2861, "y1": 848, "x2": 2869, "y2": 856} + ] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Bowyer", + "Priority": 50, + "Area": [{"x1": 2857, "y1": 808, "x2": 2865, "y2": 816}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Tinker", + "Priority": 50, + "Area": [{"x1": 2895, "y1": 786, "x2": 2903, "y2": 794}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Tailor", + "Priority": 50, + "Area": [ + {"x1": 2957, "y1": 617, "x2": 2965, "y2": 625}, + {"x1": 2836, "y1": 881, "x2": 2844, "y2": 889} + ] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Mage", + "Priority": 50, + "Area": [ + {"x1": 2886, "y1": 648, "x2": 2894, "y2": 655}, + {"x1": 2914, "y1": 668, "x2": 2922, "y2": 676}, + {"x1": 2988, "y1": 840, "x2": 2996, "y2": 848} + ] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Provisioner", + "Priority": 50, + "Area": [{"x1": 2982, "y1": 633, "x2": 2990, "y2": 641}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Jeweler", + "Priority": 50, + "Area": [{"x1": 2878, "y1": 719, "x2": 2886, "y2": 727}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Bank", + "Priority": 50, + "Area": [{"x1": 2877, "y1": 680, "x2": 2885, "y2": 688}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Healer", + "Priority": 50, + "Area": [{"x1": 2916, "y1": 852, "x2": 2924, "y2": 860}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Carpenter", + "Priority": 50, + "Area": [{"x1": 2913, "y1": 794, "x2": 2921, "y2": 802}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Tanner", + "Priority": 50, + "Area": [{"x1": 2856, "y1": 995, "x2": 2864, "y2": 1003}] + }, + { + "$type": "NoHousingRegion", + "Map": "Trammel", + "Parent": { "Name": "Vesper", "Map": "Trammel" }, + "Name": "the Vesper Docks", + "Priority": 50, + "Area": [ + {"x1": 2959, "y1": 809, "x2": 2967, "y2": 817}, + {"x1": 2991, "y1": 811, "x2": 2999, "y2": 819}, + {"x1": 3030, "y1": 823, "x2": 3038, "y2": 831} + ] + }, { "$type": "TownRegion", "NoLogoutDelay": true,