mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-10 23:48:04 +02:00
Extracted common properties of buildings into a shared file
This commit is contained in:
parent
2a54de7569
commit
57430c101f
41
config/buildingsLibrary.json
Normal file
41
config/buildingsLibrary.json
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{
|
||||||
|
"mageGuild1": { "id" : 0 },
|
||||||
|
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
||||||
|
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
||||||
|
"mageGuild4": { "id" : 3, "upgrades" : "mageGuild3" },
|
||||||
|
"mageGuild5": { "id" : 4, "upgrades" : "mageGuild4" },
|
||||||
|
"tavern": { "id" : 5 },
|
||||||
|
"shipyard": { "id" : 6 },
|
||||||
|
"fort": { "id" : 7 },
|
||||||
|
"citadel": { "id" : 8, "upgrades" : "fort" },
|
||||||
|
"castle": { "id" : 9, "upgrades" : "citadel" },
|
||||||
|
|
||||||
|
"villageHall": {
|
||||||
|
"id" : 10,
|
||||||
|
"mode" : "auto",
|
||||||
|
"produce": { "gold": 500 }
|
||||||
|
},
|
||||||
|
|
||||||
|
"townHall": {
|
||||||
|
"id" : 11,
|
||||||
|
"upgrades" : "villageHall",
|
||||||
|
"requires" : [ "tavern" ],
|
||||||
|
"produce": { "gold": 1000 }
|
||||||
|
},
|
||||||
|
"cityHall": {
|
||||||
|
"id" : 12,
|
||||||
|
"upgrades" : "townHall",
|
||||||
|
"requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ],
|
||||||
|
"produce": { "gold": 2000 }
|
||||||
|
},
|
||||||
|
"capitol": {
|
||||||
|
"id" : 13,
|
||||||
|
"upgrades" : "cityHall",
|
||||||
|
"requires" : [ "castle" ],
|
||||||
|
"produce": { "gold": 4000 }
|
||||||
|
},
|
||||||
|
|
||||||
|
"marketplace": { "id" : 14 },
|
||||||
|
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ] },
|
||||||
|
"blacksmith": { "id" : 16 }
|
||||||
|
}
|
@ -153,22 +153,22 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"mageGuild4": { "id" : 3, "upgrades" : "mageGuild3" },
|
"mageGuild4": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"shipyard": { "id" : 6 },
|
"shipyard": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce": { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce": { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce": { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce": { "ore": 1, "wood": 1 } },
|
"resourceSilo": { "produce": { "ore": 1, "wood": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"special1": { "type" : "lighthouse", "requires" : [ "shipyard" ] },
|
"special1": { "type" : "lighthouse", "requires" : [ "shipyard" ] },
|
||||||
"horde1": { "id" : 18, "upgrades" : "dwellingLvl3" },
|
"horde1": { "id" : 18, "upgrades" : "dwellingLvl3" },
|
||||||
|
@ -157,23 +157,23 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"mageGuild4": { "id" : 3, "upgrades" : "mageGuild3" },
|
"mageGuild4": { },
|
||||||
"mageGuild5": { "id" : 4, "upgrades" : "mageGuild4" },
|
"mageGuild5": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"shipyard": { "id" : 6 },
|
"shipyard": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce": { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce": { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce": { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce": { "mercury": 1 } },
|
"resourceSilo": { "produce": { "mercury": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"special1": { "type" : "artifactMerchant", "requires" : [ "marketplace" ] },
|
"special1": { "type" : "artifactMerchant", "requires" : [ "marketplace" ] },
|
||||||
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
|
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
|
||||||
|
@ -154,22 +154,22 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"mageGuild4": { "id" : 3, "upgrades" : "mageGuild3" },
|
"mageGuild4": { },
|
||||||
"mageGuild5": { "id" : 4, "upgrades" : "mageGuild4" },
|
"mageGuild5": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce": { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce": { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce": { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ] },
|
"resourceSilo": { "produce": { "sulfur": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"special1": { "type" : "artifactMerchant", "requires" : [ "marketplace" ] },
|
"special1": { "type" : "artifactMerchant", "requires" : [ "marketplace" ] },
|
||||||
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
|
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
|
||||||
|
@ -153,21 +153,21 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"shipyard": { "id" : 6 },
|
"shipyard": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce": { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce": { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce": { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce": { "wood": 1, "ore": 1 } },
|
"resourceSilo": { "produce": { "wood": 1, "ore": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"special1": {
|
"special1": {
|
||||||
"type" : "configurable",
|
"type" : "configurable",
|
||||||
|
@ -154,22 +154,22 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"mageGuild4": { "id" : 3, "upgrades" : "mageGuild3" },
|
"mageGuild4": { },
|
||||||
"mageGuild5": { "id" : 4, "upgrades" : "mageGuild4" },
|
"mageGuild5": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce": { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce": { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce": { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce": { "mercury": 1 } },
|
"resourceSilo": { "produce": { "mercury": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
|
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
|
||||||
"horde1Upgr": { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
|
"horde1Upgr": { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
|
||||||
|
@ -158,23 +158,23 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"mageGuild4": { "id" : 3, "upgrades" : "mageGuild3" },
|
"mageGuild4": { },
|
||||||
"mageGuild5": { "id" : 4, "upgrades" : "mageGuild4" },
|
"mageGuild5": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"shipyard": { "id" : 6 },
|
"shipyard": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce": { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce": { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce": { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce": { "ore": 1, "wood": 1 } },
|
"resourceSilo": { "produce": { "ore": 1, "wood": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"special1": { "requires" : [ "fort" ], "bonuses": [ { "type": "DARKNESS", "val": 20 } ] },
|
"special1": { "requires" : [ "fort" ], "bonuses": [ { "type": "DARKNESS", "val": 20 } ] },
|
||||||
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1", "requires" : [ "special3" ] },
|
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1", "requires" : [ "special3" ] },
|
||||||
|
@ -157,22 +157,22 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"mageGuild4": { "id" : 3, "upgrades" : "mageGuild3" },
|
"mageGuild4": { },
|
||||||
"mageGuild5": { "id" : 4, "upgrades" : "mageGuild4" },
|
"mageGuild5": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce": { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce": { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce": { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce": { "crystal": 1 } },
|
"resourceSilo": { "produce": { "crystal": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"special1": { "type" : "mysticPond" },
|
"special1": { "type" : "mysticPond" },
|
||||||
"horde1": { "id" : 18, "upgrades" : "dwellingLvl2" },
|
"horde1": { "id" : 18, "upgrades" : "dwellingLvl2" },
|
||||||
|
@ -151,20 +151,20 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce": { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce": { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce": { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce": { "ore": 1, "wood": 1 } },
|
"resourceSilo": { "produce": { "ore": 1, "wood": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"special1": { "type" : "escapeTunnel", "requires" : [ "fort" ] },
|
"special1": { "type" : "escapeTunnel", "requires" : [ "fort" ] },
|
||||||
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
|
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
|
||||||
|
@ -152,22 +152,22 @@
|
|||||||
|
|
||||||
"buildings" :
|
"buildings" :
|
||||||
{
|
{
|
||||||
"mageGuild1": { "id" : 0 },
|
"mageGuild1": { },
|
||||||
"mageGuild2": { "id" : 1, "upgrades" : "mageGuild1" },
|
"mageGuild2": { },
|
||||||
"mageGuild3": { "id" : 2, "upgrades" : "mageGuild2" },
|
"mageGuild3": { },
|
||||||
"mageGuild4": { "id" : 3, "upgrades" : "mageGuild3" },
|
"mageGuild4": { },
|
||||||
"mageGuild5": { "id" : 4, "upgrades" : "mageGuild4" },
|
"mageGuild5": { },
|
||||||
"tavern": { "id" : 5 },
|
"tavern": { },
|
||||||
"fort": { "id" : 7 },
|
"fort": { },
|
||||||
"citadel": { "id" : 8, "upgrades" : "fort" },
|
"citadel": { },
|
||||||
"castle": { "id" : 9, "upgrades" : "citadel" },
|
"castle": { },
|
||||||
"villageHall": { "id" : 10, "mode" : "auto", "produce" : { "gold": 500 } },
|
"villageHall": { },
|
||||||
"townHall": { "id" : 11, "upgrades" : "villageHall", "requires" : [ "tavern" ], "produce" : { "gold": 1000 } },
|
"townHall": { },
|
||||||
"cityHall": { "id" : 12, "upgrades" : "townHall", "requires" : [ "allOf", [ "mageGuild1" ], [ "marketplace" ], [ "blacksmith" ] ], "produce": { "gold": 2000 } },
|
"cityHall": { },
|
||||||
"capitol": { "id" : 13, "upgrades" : "cityHall", "requires" : [ "castle" ], "produce" : { "gold": 4000 } },
|
"capitol": { },
|
||||||
"marketplace": { "id" : 14 },
|
"marketplace": { },
|
||||||
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce" : { "gems": 1 } },
|
"resourceSilo": { "produce" : { "gems": 1 } },
|
||||||
"blacksmith": { "id" : 16 },
|
"blacksmith": { },
|
||||||
|
|
||||||
"special1": { "type" : "artifactMerchant", "requires" : [ "marketplace" ] },
|
"special1": { "type" : "artifactMerchant", "requires" : [ "marketplace" ] },
|
||||||
"horde1": { "id" : 18, "upgrades" : "dwellingLvl2" },
|
"horde1": { "id" : 18, "upgrades" : "dwellingLvl2" },
|
||||||
|
@ -30,14 +30,16 @@
|
|||||||
#include "../../texts/CGeneralTextHandler.h"
|
#include "../../texts/CGeneralTextHandler.h"
|
||||||
#include "../../texts/CLegacyConfigParser.h"
|
#include "../../texts/CLegacyConfigParser.h"
|
||||||
#include "../../json/JsonBonus.h"
|
#include "../../json/JsonBonus.h"
|
||||||
|
#include "../../json/JsonUtils.h"
|
||||||
|
|
||||||
VCMI_LIB_NAMESPACE_BEGIN
|
VCMI_LIB_NAMESPACE_BEGIN
|
||||||
|
|
||||||
const int NAMES_PER_TOWN=16; // number of town names per faction in H3 files. Json can define any number
|
const int NAMES_PER_TOWN=16; // number of town names per faction in H3 files. Json can define any number
|
||||||
|
|
||||||
CTownHandler::CTownHandler():
|
CTownHandler::CTownHandler()
|
||||||
randomTown(new CTown()),
|
: buildingsLibrary(JsonPath::builtin("config/buildingsLibrary"))
|
||||||
randomFaction(new CFaction())
|
, randomTown(new CTown())
|
||||||
|
, randomFaction(new CFaction())
|
||||||
{
|
{
|
||||||
randomFaction->town = randomTown;
|
randomFaction->town = randomTown;
|
||||||
randomTown->faction = randomFaction;
|
randomTown->faction = randomFaction;
|
||||||
@ -895,6 +897,29 @@ void CTownHandler::loadCustom()
|
|||||||
loadRandomFaction();
|
loadRandomFaction();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CTownHandler::beforeValidate(JsonNode & object)
|
||||||
|
{
|
||||||
|
if (object.Struct().count("town") == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
const auto & inheritBuilding = [this](const std::string & name, JsonNode & target)
|
||||||
|
{
|
||||||
|
if (buildingsLibrary.Struct().count(name) == 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
JsonNode baseCopy(buildingsLibrary[name]);
|
||||||
|
baseCopy.setModScope(target.getModScope());
|
||||||
|
JsonUtils::inherit(target, baseCopy);
|
||||||
|
};
|
||||||
|
|
||||||
|
for (auto & building : object["town"]["buildings"].Struct())
|
||||||
|
{
|
||||||
|
inheritBuilding(building.first, building.second);
|
||||||
|
if (building.second.Struct().count("type"))
|
||||||
|
inheritBuilding(building.second["type"].String(), building.second);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void CTownHandler::afterLoadFinalization()
|
void CTownHandler::afterLoadFinalization()
|
||||||
{
|
{
|
||||||
initializeRequirements();
|
initializeRequirements();
|
||||||
|
@ -25,6 +25,8 @@ class CTown;
|
|||||||
|
|
||||||
class DLL_LINKAGE CTownHandler : public CHandlerBase<FactionID, Faction, CFaction, FactionService>
|
class DLL_LINKAGE CTownHandler : public CHandlerBase<FactionID, Faction, CFaction, FactionService>
|
||||||
{
|
{
|
||||||
|
JsonNode buildingsLibrary;
|
||||||
|
|
||||||
struct BuildingRequirementsHelper
|
struct BuildingRequirementsHelper
|
||||||
{
|
{
|
||||||
JsonNode json;
|
JsonNode json;
|
||||||
@ -82,6 +84,7 @@ public:
|
|||||||
|
|
||||||
void loadCustom() override;
|
void loadCustom() override;
|
||||||
void afterLoadFinalization() override;
|
void afterLoadFinalization() override;
|
||||||
|
void beforeValidate(JsonNode & object) override;
|
||||||
|
|
||||||
std::set<FactionID> getDefaultAllowed() const;
|
std::set<FactionID> getDefaultAllowed() const;
|
||||||
std::set<FactionID> getAllowedFactions(bool withTown = true) const;
|
std::set<FactionID> getAllowedFactions(bool withTown = true) const;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user