{"id": "Burial Grounds - lv 2",
"area": "Northern Route",
"desc": "Inner area of the overgown burial site, where barely any sunlight reach through the trees and where the dark presense feel the strongest.",
"unlocked": false,
"travel_time": 1,
"mobs": {"Dark Mage": [5, [1, 0.2, 2],[1, 1, 1]], "Phantasm": [10, [1, 0.2, 2],[1, 2, 2]], "Skeleton Warrior": [50, [1, 0.3, 4],[2, 3, 3]], "Skeleton": [20, [1, 0.2, 3], [3, 3, 3]]},
"hazard": {"health": 0, "mp": 5, "vitality": 0},
"unlocks": {},
"cash_limit": 120,
"items_limit": 0,
"items": {"Woodcutting Axe": 0.05,"Short Bow": 0.05,"Leather Cape": 0.05,"Dagger": 0.05, "Huntsman Hat": 0.02,"Scarf": 0.02, "Short Sword": 0.22,"Leather Armor": 0.22,"Silver Necklace": 0.2,"Leather Boots": 0.22,"Leather Gloves": 0.22,"Linen Cape": 0.22,"Tanned Leather Boots": 0.26,"Tanned Leather Gloves": 0.26,"Obsidian Choker": 0.22,"Rogue Cape": 0.08,"Running Boots": 0.06,"Bullwhip": 0.1,"Ornate Gladius": 0.1,"Claws": 0.2,"Spiked Collar": 0.22,"Long Sword": 0.24,"Minor Reflector": 0.07,"Slave Shackles": 0.08, "Bone Knife": 0.2,"Darksome Trophy": 0.2},
"img": "content/gfx/bg/locations/fg_areas_burial_2.jpg"
},
{
"id": "Northern Route",
"main": true,
"unlocked": true,
"img": "content/gfx/bg/locations/fg_areas_northern.jpg"
}
Alright, about json structure for SE...
1) Mobs field should be changed. First of all, there is a chance to encounter a mob party, with random amount of mobs inside. Then, inside the party, there is a chance to encounter specific mob - using weighted choice. So it should be something like"fight_chance": 25,
"mobs": {"Dark Mage": 5, "Phantasm": 10, "Skeleton Warrior": 50, "Skeleton": 80},
Then we need base level for all mobs in the location. While all mobs should have different levels to make rare ones stronger, we need base level to judge location difficulty. Maybe we will even show it in SE gui to make sure player understands how difficult locations are.
"base_mob_level": 30,
And then we need differences in mobs level based on base level. So mobs field becomes like
"mobs": {"Dark Mage": (5, 10), "Phantasm": (10, 5), "Skeleton Warrior": (50, 5), "Skeleton": (80, 0)},[/code]Where the second number is bonus to base level. So Dark Mage max level is 30 + 10 = 40.
Now, we don't have to make every Dark Mage lvl 40, in fact it might be too predictable. Instead it can be randint, so the level will be from 30 to 40. And in case of Skeleton it's always lvl 30.
If there will be bosses with high, fixed levels, we will introduce a special field for them, since they shouldn't be encountered all the time anyway, while mobs field assumes that encounters are unlimited.
The remaining numbers in the mob field used to show how thing escalate when exploration takes enough time, making mobs stronger over time. They are not needed. We still can make mobs stronger over time, but they all will use the same logic, there is no need to make it unique for every single mob.
2) "hazard": {"health": 0, "mp": 5, "vitality": 0},
Hazards can also support penalties to AP. Since AP is widely used in SE, hazard": ("AP": -1) may reduce it by one every turn, so it would take much more time to explore the location.
3) Different locations have different sizes, ie require different time to be explored. By default it could be 100, but also can be changed manually by
"location_size": 50,
4) "cash_limit": 120,
"items_limit": 0,
Since explorations are limited by time (max 2 weeks or something), there is no need to limit stuff like this. It would make sense if we limit inventory inside SE, but we don't.
5) Events, items and gold.
As I imagine it, there should be events inside SE, and items and gold should be obtained mostly, if not only, via events.
For example, party found a chest with randint(A, B) gold inside which requires X agility to be obtained.
So I create somewhere an event called chest_1 with all required logic and lines which we need to show in the log.
Then in location json I write
"events": {"chest_1": [A, B, X] }
Maybe I also write the chance to find this event, maybe it will be checked right inside the event.
Then I create an event where party finds a healing shrine or something, and everyone restore A health.
So then we get
"events": {"chest_1": [A, B, X], "healing_shrine": [A] }
And so on. Unless you have a better idea how to handle it.
6) Unlocking.
"unlocks": {"area_1": 0.4, "area_2": 0.9, "area_3": 1},
The numbers represent how much the area should be explored to unlock these areas.
If we want some kind of secret areas, then it probably should be done via events.