1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-09-16 09:26:28 +02:00

Replace hardcoded buildings logic that can be represented with

configurable buildings
This commit is contained in:
Ivan Savenko
2024-08-12 14:05:15 +00:00
parent fc7554797c
commit 580855ec2e
6 changed files with 84 additions and 7 deletions

View File

@@ -174,7 +174,18 @@
"horde1": { "id" : 18, "upgrades" : "dwellingLvl3" },
"horde1Upgr": { "id" : 19, "upgrades" : "dwellingUpLvl3", "requires" : [ "horde1" ], "mode" : "auto" },
"ship": { "id" : 20, "upgrades" : "shipyard" },
"special2": { "type" : "stables", "requires" : [ "dwellingLvl4" ] },
"special2": {
"type" : "configurable",
"requires" : [ "dwellingLvl4" ],
"visitMode" : "bonus",
"rewards" : [
{
"message" : 137,
"movePoints" : 400,
"bonuses" : [ { "type" : "MOVEMENT", "subtype" : "heroMovementLand", "val" : 400, "valueType" : "ADDITIVE_VALUE", "duration" : "ONE_WEEK"} ]
}
]
},
"special3": { "type" : "brotherhoodOfSword", "upgrades" : "tavern" },
"grail": { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 }, "bonuses": [ { "type": "MORALE", "val": 2, "propagator": "PLAYER_PROPAGATOR" } ] },

View File

@@ -174,9 +174,35 @@
"special1": { "type" : "artifactMerchant", "requires" : [ "marketplace" ] },
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
"horde1Upgr": { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
"special2": { "type" : "manaVortex", "requires" : [ "mageGuild1" ] },
"special2": {
"type" : "configurable",
"requires" : [ "mageGuild1" ],
"resetParameters" : {
"period" : 7,
"visitors" : true
},
"visitMode" : "hero", // Should be 'once' to match (somewhat buggy) H3 logic
"rewards" : [
{
"limiter" : {
"noneOf" : [ { "manaPercentage" : 200 } ]
},
"message" : "@core.genrltxt.579",
"manaPercentage" : 200
}
]
},
"special3": { "type" : "portalOfSummoning" },
"special4": { "type" : "experienceVisitingBonus" },
"special4": {
"type" : "configurable",
"visitMode" : "hero",
"rewards" : [
{
"message" : "@core.genrltxt.583",
"experience" : 1000
}
]
},
"grail": { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 },
"bonuses": [ { "type": "PRIMARY_SKILL", "subtype": "primarySkill.spellpower", "val": 12 } ] },

View File

@@ -169,7 +169,17 @@
"resourceSilo": { "id" : 15, "requires" : [ "marketplace" ], "produce": { "wood": 1, "ore": 1 } },
"blacksmith": { "id" : 16 },
"special1": { "type" : "defenceVisitingBonus", "requires" : [ "allOf", [ "townHall" ], [ "special2" ] ] },
"special1": {
"type" : "configurable",
"requires" : [ "allOf", [ "townHall" ], [ "special2" ] ]
"visitMode" : "hero",
"rewards" : [
{
"message" : "@core.genrltxt.585",
"primary" : { "defence" : 1 }
}
]
},
"horde1": { "id" : 18, "upgrades" : "dwellingLvl1" },
"horde1Upgr": { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
"ship": { "id" : 20, "upgrades" : "shipyard" },

View File

@@ -175,7 +175,17 @@
"horde1Upgr": { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
"special2": { "type" : "spellPowerGarrisonBonus", "requires" : [ "fort" ] },
"special3": { "type" : "castleGate", "requires" : [ "citadel" ] },
"special4": { "type" : "spellPowerVisitingBonus", "requires" : [ "mageGuild1" ] },
"special4": {
"type" : "configurable",
"requires" : [ "mageGuild1" ],
"visitMode" : "hero",
"rewards" : [
{
"message" : "@core.genrltxt.582",
"primary" : { "spellpower" : 1 }
}
]
},
"horde2": { "id" : 24, "upgrades" : "dwellingLvl3" },
"horde2Upgr": { "id" : 25, "upgrades" : "dwellingUpLvl3", "requires" : [ "horde2" ], "mode" : "auto" },
"grail": { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 }},

View File

@@ -171,7 +171,17 @@
"horde1Upgr": { "id" : 19, "upgrades" : "dwellingUpLvl1", "requires" : [ "horde1" ], "mode" : "auto" },
"special2": { "type" : "freelancersGuild", "requires" : [ "marketplace" ] },
"special3": { "type" : "ballistaYard", "requires" : [ "blacksmith" ] },
"special4": { "type" : "attackVisitingBonus", "requires" : [ "fort" ] },
"special4": {
"type" : "configurable",
"requires" : [ "fort" ]
"visitMode" : "hero",
"rewards" : [
{
"message" : "@core.genrltxt.584",
"primary" : { "attack" : 1 }
}
]
},
"grail": { "id" : 26, "mode" : "grail", "produce": { "gold": 5000 },
"bonuses": [ { "type": "PRIMARY_SKILL", "subtype": "primarySkill.attack", "val": 20 } ] },

View File

@@ -174,7 +174,17 @@
"horde1Upgr": { "id" : 19, "upgrades" : "dwellingUpLvl2", "requires" : [ "horde1" ], "mode" : "auto" },
"special2": { "type" : "lookoutTower", "height" : "high", "requires" : [ "fort" ] },
"special3": { "type" : "library", "requires" : [ "mageGuild1" ] },
"special4": { "type" : "knowledgeVisitingBonus", "requires" : [ "mageGuild1" ] },
"special4": {
"type" : "configurable",
"requires" : [ "mageGuild1" ],
"visitMode" : "hero",
"rewards" : [
{
"message" : "@core.genrltxt.581",
"primary" : { "knowledge" : 1 }
}
]
},
"grail": { "height" : "skyship", "produce" : { "gold": 5000 }, "bonuses": [ { "type": "PRIMARY_SKILL", "subtype": "primarySkill.knowledge", "val": 15 } ] },
"dwellingLvl1": { "id" : 30, "requires" : [ "fort" ] },