mirror of
https://github.com/vcmi/vcmi.git
synced 2024-12-24 22:14:36 +02:00
- Implemented object per zone limit
- Various tweaks for Travis & repo
This commit is contained in:
parent
090abf41e8
commit
0763b9a758
@ -1,817 +0,0 @@
|
||||
{
|
||||
"core:creatureBank" : {
|
||||
"types" : {
|
||||
"huntingLodge" : {
|
||||
"name" : "Hunting Lodge",
|
||||
"index" : 11,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 3, "type" : "dendroidGuard" },
|
||||
{ "amount": 4, "type" : "woodElf" },
|
||||
{ "amount": 3, "type" : "dendroidGuard" },
|
||||
{ "amount": 4, "type" : "woodElf" }
|
||||
],
|
||||
"combat_value": 100,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"wood" : 15,
|
||||
"gold" : 500
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 4, "type" : "dendroidGuard" },
|
||||
{ "amount": 6, "type" : "woodElf" },
|
||||
{ "amount": 4, "type" : "dendroidGuard" },
|
||||
{ "amount": 6, "type" : "woodElf" }
|
||||
],
|
||||
"combat_value": 150,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"wood" : 20,
|
||||
"gold" : 500
|
||||
},
|
||||
"value": 3000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 5, "type" : "dendroidGuard" },
|
||||
{ "amount": 8, "type" : "woodElf" },
|
||||
{ "amount": 5, "type" : "dendroidGuard" },
|
||||
{ "amount": 8, "type" : "woodElf" }
|
||||
],
|
||||
"combat_value": 200,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"wood" : 25,
|
||||
"gold" : 500
|
||||
},
|
||||
"value": 4000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 6, "type" : "dendroidGuard" },
|
||||
{ "amount": 10, "type" : "woodElf" },
|
||||
{ "amount": 6, "type" : "dendroidGuard" },
|
||||
{ "amount": 10, "type" : "woodElf" }
|
||||
],
|
||||
"combat_value": 300,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"wood" : 40,
|
||||
"gold" : 1000
|
||||
},
|
||||
"value": 6000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"snowGrotto" :
|
||||
{
|
||||
"name" : "Snow-covered Grotto",
|
||||
"index" : 12,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 5, "type" : "ironGolem" },
|
||||
{ "amount": 20, "type" : "masterGremlin" },
|
||||
{ "amount": 5, "type" : "ironGolem" },
|
||||
{ "amount": 20, "type" : "masterGremlin" }
|
||||
],
|
||||
"combat_value": 100,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"ore" : 15,
|
||||
"gold" : 500
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 6, "type" : "ironGolem" },
|
||||
{ "amount": 30, "type" : "masterGremlin" },
|
||||
{ "amount": 6, "type" : "ironGolem" },
|
||||
{ "amount": 30, "type" : "masterGremlin" }
|
||||
],
|
||||
"combat_value": 150,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"ore" : 20,
|
||||
"gold" : 500
|
||||
},
|
||||
"value": 3000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 7, "type" : "ironGolem" },
|
||||
{ "amount": 40, "type" : "masterGremlin" },
|
||||
{ "amount": 7, "type" : "ironGolem" },
|
||||
{ "amount": 40, "type" : "masterGremlin" }
|
||||
],
|
||||
"combat_value": 200,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"ore" : 30,
|
||||
"gold" : 500
|
||||
},
|
||||
"value": 4000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 8, "type" : "ironGolem" },
|
||||
{ "amount": 50, "type" : "masterGremlin" },
|
||||
{ "amount": 8, "type" : "ironGolem" },
|
||||
{ "amount": 50, "type" : "masterGremlin" }
|
||||
],
|
||||
"combat_value": 300,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"ore" : 40,
|
||||
"gold" : 1000
|
||||
},
|
||||
"value": 6000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"martialSpiritPalace" :
|
||||
{
|
||||
"name" : "Palace of Martial Spirit",
|
||||
"index" : 13,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 10, "type" : "godWar" },
|
||||
{ "amount": 10, "type" : "godWar" },
|
||||
{ "amount": 10, "type" : "godWar" },
|
||||
{ "amount": 10, "type" : "godWar" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godWar" }
|
||||
],
|
||||
"value": 38000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 15, "type" : "godWar" },
|
||||
{ "amount": 15, "type" : "godWar" },
|
||||
{ "amount": 15, "type" : "godWar" },
|
||||
{ "amount": 15, "type" : "godWar" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godWar" }
|
||||
],
|
||||
"value": 57000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 20, "type" : "godWar" },
|
||||
{ "amount": 20, "type" : "godWar" },
|
||||
{ "amount": 20, "type" : "godWar" },
|
||||
{ "amount": 20, "type" : "godWar" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godWar" }
|
||||
],
|
||||
"value": 75000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 30, "type" : "godWar" },
|
||||
{ "amount": 30, "type" : "godWar" },
|
||||
{ "amount": 30, "type" : "godWar" },
|
||||
{ "amount": 30, "type" : "godWar" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godWar" }
|
||||
],
|
||||
"value": 90000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"pacificationCitadel" :
|
||||
{
|
||||
"name" : "Citadel of Pacification",
|
||||
"index" : 14,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 10, "type" : "godPeace" },
|
||||
{ "amount": 10, "type" : "godPeace" },
|
||||
{ "amount": 10, "type" : "godPeace" },
|
||||
{ "amount": 10, "type" : "godPeace" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godPeace" }
|
||||
],
|
||||
"value": 38000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 15, "type" : "godPeace" },
|
||||
{ "amount": 15, "type" : "godPeace" },
|
||||
{ "amount": 15, "type" : "godPeace" },
|
||||
{ "amount": 15, "type" : "godPeace" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godPeace" }
|
||||
],
|
||||
"value": 57000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 20, "type" : "godPeace" },
|
||||
{ "amount": 20, "type" : "godPeace" },
|
||||
{ "amount": 20, "type" : "godPeace" },
|
||||
{ "amount": 20, "type" : "godPeace" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godPeace" }
|
||||
],
|
||||
"value": 75000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 30, "type" : "godPeace" },
|
||||
{ "amount": 30, "type" : "godPeace" },
|
||||
{ "amount": 30, "type" : "godPeace" },
|
||||
{ "amount": 30, "type" : "godPeace" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godPeace" }
|
||||
],
|
||||
"value": 90000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"magiciansMonastery" :
|
||||
{
|
||||
"name" : "Monastery of Magicians",
|
||||
"index" : 15,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 10, "type" : "godMana" },
|
||||
{ "amount": 10, "type" : "godMana" },
|
||||
{ "amount": 10, "type" : "godMana" },
|
||||
{ "amount": 10, "type" : "godMana" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godMana" }
|
||||
],
|
||||
"value": 38000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 15, "type" : "godMana" },
|
||||
{ "amount": 15, "type" : "godMana" },
|
||||
{ "amount": 15, "type" : "godMana" },
|
||||
{ "amount": 15, "type" : "godMana" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godMana" }
|
||||
],
|
||||
"value": 57000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 20, "type" : "godMana" },
|
||||
{ "amount": 20, "type" : "godMana" },
|
||||
{ "amount": 20, "type" : "godMana" },
|
||||
{ "amount": 20, "type" : "godMana" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godMana" }
|
||||
],
|
||||
"value": 75000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 30, "type" : "godMana" },
|
||||
{ "amount": 30, "type" : "godMana" },
|
||||
{ "amount": 30, "type" : "godMana" },
|
||||
{ "amount": 30, "type" : "godMana" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godMana" }
|
||||
],
|
||||
"value": 90000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"legendsLibrary" :
|
||||
{
|
||||
"name" : "Library of Legends",
|
||||
"index" : 16,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 10, "type" : "godLore" },
|
||||
{ "amount": 10, "type" : "godLore" },
|
||||
{ "amount": 10, "type" : "godLore" },
|
||||
{ "amount": 10, "type" : "godLore" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godLore" }
|
||||
],
|
||||
"value": 38000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 15, "type" : "godLore" },
|
||||
{ "amount": 15, "type" : "godLore" },
|
||||
{ "amount": 15, "type" : "godLore" },
|
||||
{ "amount": 15, "type" : "godLore" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godLore" }
|
||||
],
|
||||
"value": 57000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 20, "type" : "godLore" },
|
||||
{ "amount": 20, "type" : "godLore" },
|
||||
{ "amount": 20, "type" : "godLore" },
|
||||
{ "amount": 20, "type" : "godLore" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godLore" }
|
||||
],
|
||||
"value": 75000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 30, "type" : "godLore" },
|
||||
{ "amount": 30, "type" : "godLore" },
|
||||
{ "amount": 30, "type" : "godLore" },
|
||||
{ "amount": 30, "type" : "godLore" }
|
||||
],
|
||||
"combat_value": 2000,
|
||||
"reward" : {
|
||||
"creatures": [
|
||||
{ "amount": 1, "type" : "godLore" }
|
||||
],
|
||||
"value": 90000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"transylvanianTavern" :
|
||||
{
|
||||
"name" : "Transylvanian Tavern",
|
||||
"index" : 17,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 2, "type" : "vampire" },
|
||||
{ "amount": 2, "type" : "vampire" },
|
||||
{ "amount": 2, "type" : "vampire" },
|
||||
{ "amount": 2, "type" : "vampire" },
|
||||
{ "amount": 2, "type" : "vampire" }
|
||||
],
|
||||
"combat_value": 100,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"gold" : 1500
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 3, "type" : "vampireLord" }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 3, "type" : "vampire" },
|
||||
{ "amount": 3, "type" : "vampire" },
|
||||
{ "amount": 3, "type" : "vampire" },
|
||||
{ "amount": 3, "type" : "vampire" },
|
||||
{ "amount": 3, "type" : "vampire" }
|
||||
],
|
||||
"combat_value": 150,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"gold" : 2500
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 5, "type" : "vampireLord" }
|
||||
],
|
||||
"value": 3000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 4, "type" : "vampire" },
|
||||
{ "amount": 4, "type" : "vampire" },
|
||||
{ "amount": 4, "type" : "vampire" },
|
||||
{ "amount": 4, "type" : "vampire" },
|
||||
{ "amount": 4, "type" : "vampire" }
|
||||
],
|
||||
"combat_value": 200,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"gold" : 3500
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 7, "type" : "vampireLord" }
|
||||
],
|
||||
"value": 4000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 6, "type" : "vampire" },
|
||||
{ "amount": 6, "type" : "vampire" },
|
||||
{ "amount": 6, "type" : "vampire" },
|
||||
{ "amount": 6, "type" : "vampire" },
|
||||
{ "amount": 6, "type" : "vampire" }
|
||||
],
|
||||
"combat_value": 250,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"gold" : 5000
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 9, "type" : "vampireLord" }
|
||||
],
|
||||
"value": 5000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"homeofthebat" :
|
||||
{
|
||||
"name" : "Home of the Bat",
|
||||
"index" : 18,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 2, "type" : "vampire" },
|
||||
{ "amount": 2, "type" : "vampire" },
|
||||
{ "amount": 2, "type" : "vampire", "upgrade_chance": 50 },
|
||||
{ "amount": 2, "type" : "vampire" },
|
||||
{ "amount": 2, "type" : "vampire" }
|
||||
],
|
||||
"combat_value": 100,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"mercury" : 2,
|
||||
"sulfur" : 2,
|
||||
"crystal" : 2,
|
||||
"gems" : 2
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 3, "type" : "vampireLord" }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 3, "type" : "vampire" },
|
||||
{ "amount": 3, "type" : "vampire" },
|
||||
{ "amount": 3, "type" : "vampire", "upgrade_chance": 70 },
|
||||
{ "amount": 3, "type" : "vampire" },
|
||||
{ "amount": 3, "type" : "vampire" }
|
||||
],
|
||||
"combat_value": 150,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"mercury" : 3,
|
||||
"sulfur" : 3,
|
||||
"crystal" : 3,
|
||||
"gems" : 3
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 5, "type" : "vampireLord" }
|
||||
],
|
||||
"value": 3000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 4, "type" : "vampire" },
|
||||
{ "amount": 4, "type" : "vampire" },
|
||||
{ "amount": 4, "type" : "vampire", "upgrade_chance": 80 },
|
||||
{ "amount": 4, "type" : "vampire" },
|
||||
{ "amount": 4, "type" : "vampire" }
|
||||
],
|
||||
"combat_value": 200,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"mercury" : 4,
|
||||
"sulfur" : 4,
|
||||
"crystal" : 4,
|
||||
"gems" : 4
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 7, "type" : "vampireLord" }
|
||||
],
|
||||
"value": 4000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 6, "type" : "vampire" },
|
||||
{ "amount": 6, "type" : "vampire" },
|
||||
{ "amount": 6, "type" : "vampire", "upgrade_chance": 50 },
|
||||
{ "amount": 6, "type" : "vampire" },
|
||||
{ "amount": 6, "type" : "vampire" }
|
||||
],
|
||||
"combat_value": 250,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"mercury" : 5,
|
||||
"sulfur" : 5,
|
||||
"crystal" : 5,
|
||||
"gems" : 5
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 9, "type" : "vampireLord" }
|
||||
],
|
||||
"value": 5000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"lostBottle" :
|
||||
{
|
||||
"name" : "Lost Bottle",
|
||||
"index" : 19,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 2, "type" : "genie" },
|
||||
{ "amount": 2, "type" : "genie" },
|
||||
{ "amount": 2, "type" : "genie", "upgrade_chance": 50 },
|
||||
{ "amount": 2, "type" : "genie" },
|
||||
{ "amount": 2, "type" : "genie" }
|
||||
],
|
||||
"combat_value": 100,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"mercury" : 2,
|
||||
"sulfur" : 2,
|
||||
"crystal" : 2,
|
||||
"gems" : 2
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 3, "type" : "genie" }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 3, "type" : "genie" },
|
||||
{ "amount": 3, "type" : "genie" },
|
||||
{ "amount": 3, "type" : "genie", "upgrade_chance": 70 },
|
||||
{ "amount": 3, "type" : "genie" },
|
||||
{ "amount": 3, "type" : "genie" }
|
||||
],
|
||||
"combat_value": 150,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"mercury" : 3,
|
||||
"sulfur" : 3,
|
||||
"crystal" : 3,
|
||||
"gems" : 3
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 5, "type" : "genie" }
|
||||
],
|
||||
"value": 3000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 4, "type" : "genie" },
|
||||
{ "amount": 4, "type" : "genie" },
|
||||
{ "amount": 4, "type" : "genie", "upgrade_chance": 80 },
|
||||
{ "amount": 4, "type" : "genie" },
|
||||
{ "amount": 4, "type" : "genie" }
|
||||
],
|
||||
"combat_value": 200,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"mercury" : 4,
|
||||
"sulfur" : 4,
|
||||
"crystal" : 4,
|
||||
"gems" : 4
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 7, "type" : "genie" }
|
||||
],
|
||||
"value": 4000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 6, "type" : "genie" },
|
||||
{ "amount": 6, "type" : "genie" },
|
||||
{ "amount": 6, "type" : "genie", "upgrade_chance": 90 },
|
||||
{ "amount": 6, "type" : "genie" },
|
||||
{ "amount": 6, "type" : "genie" }
|
||||
],
|
||||
"combat_value": 250,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"mercury" : 5,
|
||||
"sulfur" : 5,
|
||||
"crystal" : 5,
|
||||
"gems" : 5
|
||||
},
|
||||
"creatures": [
|
||||
{ "amount": 9, "type" : "genie" }
|
||||
],
|
||||
"value": 5000
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"grotto" :
|
||||
{
|
||||
"name" : "Grotto",
|
||||
"index" : 20,
|
||||
"levels": [
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 3, "type" : "harpy" },
|
||||
{ "amount": 3, "type" : "beholder" },
|
||||
{ "amount": 3, "type" : "harpy" },
|
||||
{ "amount": 3, "type" : "beholder" }
|
||||
],
|
||||
"combat_value": 200,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"ore" : 20,
|
||||
"gold" : 1000
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 4, "type" : "harpy" },
|
||||
{ "amount": 4, "type" : "beholder" },
|
||||
{ "amount": 4, "type" : "harpy" },
|
||||
{ "amount": 4, "type" : "beholder" }
|
||||
],
|
||||
"combat_value": 300,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"ore" : 25,
|
||||
"gold" : 1000
|
||||
},
|
||||
"value": 3000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 30,
|
||||
"guards": [
|
||||
{ "amount": 5, "type" : "harpy" },
|
||||
{ "amount": 5, "type" : "beholder" },
|
||||
{ "amount": 5, "type" : "harpy" },
|
||||
{ "amount": 5, "type" : "beholder" }
|
||||
],
|
||||
"combat_value": 400,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"ore" : 30,
|
||||
"gold" : 1500
|
||||
},
|
||||
"value": 4000
|
||||
}
|
||||
},
|
||||
{
|
||||
"chance": 10,
|
||||
"guards": [
|
||||
{ "amount": 6, "type" : "harpy" },
|
||||
{ "amount": 6, "type" : "beholder" },
|
||||
{ "amount": 6, "type" : "harpy" },
|
||||
{ "amount": 6, "type" : "beholder" }
|
||||
],
|
||||
"combat_value": 500,
|
||||
"reward" : {
|
||||
"resources":
|
||||
{
|
||||
"ore" : 35,
|
||||
"gold" : 2000
|
||||
},
|
||||
"value": 5000
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
{
|
||||
"core:creatureGeneratorCommon" : {
|
||||
"types" : {
|
||||
"supremeArchangel" : { "index" : 80, "creatures" : [[ "supremeArchangel" ]] },
|
||||
"diamondDragon" : { "index" : 81, "creatures" : [[ "diamondDragon" ]] },
|
||||
"lordofThunder" : { "index" : 82, "creatures" : [[ "lordofThunder" ]] },
|
||||
"hellBaron" : { "index" : 83, "creatures" : [[ "hellBaron" ]] },
|
||||
"bloodDragon" : { "index" : 84, "creatures" : [[ "bloodDragon" ]] },
|
||||
|
||||
"darknessDragon" : { "index" : 85, "creatures" : [[ "darknessDragon" ]] },
|
||||
"ghostBehemoth" : { "index" : 86, "creatures" : [[ "ghostBehemoth" ]] },
|
||||
"hellHydra" : { "index" : 87, "creatures" : [[ "hellHydra" ]] },
|
||||
"sacredPhoenix" : { "index" : 88, "creatures" : [[ "sacredPhoenix" ]] },
|
||||
"lavaSharpshooter" : { "index" : 89, "creatures" : [[ "lavaSharpshooter" ]] },
|
||||
|
||||
"arcticSharpshooter" : { "index" : 90, "creatures" : [[ "arcticSharpshooter" ]] },
|
||||
"gorynych" : { "index" : 91, "creatures" : [[ "gorynych" ]] },
|
||||
"nightmare" : { "index" : 92, "creatures" : [[ "nightmare" ]] },
|
||||
"minotaurKing2" : { "index" : 93, "creatures" : [[ "minotaurKing2" ]] },
|
||||
"warZealot" : { "index" : 94, "creatures" : [[ "warZealot" ]] },
|
||||
|
||||
"santaGremlin" : { "index" : 95, "creatures" : [[ "santaGremlin" ]] },
|
||||
"sylvanCentaur" : { "index" : 96, "creatures" : [[ "sylvanCentaur" ]] },
|
||||
"sorceress" : { "index" : 97, "creatures" : [[ "sorceress" ]] },
|
||||
"werewolf" : { "index" : 98, "creatures" : [[ "werewolf" ]] },
|
||||
"hellSteed" : { "index" : 99, "creatures" : [[ "hellSteed" ]] },
|
||||
|
||||
"dracolich" : { "index" :100, "creatures" : [[ "dracolich" ]] }
|
||||
}
|
||||
}
|
||||
}
|
@ -1,72 +0,0 @@
|
||||
{
|
||||
"name" : "In The Wake of Gods",
|
||||
"description" : "Unnofficial addon for Heroes of Might and Magic III",
|
||||
|
||||
"version" : "0.0.0",
|
||||
"author" : "WoG Team",
|
||||
"contact" : "http://forum.vcmi.eu/index.php",
|
||||
"modType" : "Expansion",
|
||||
|
||||
"artifacts" :
|
||||
[
|
||||
"config/wog/artifacts.json"
|
||||
],
|
||||
|
||||
"creatures" :
|
||||
[
|
||||
"config/wog/creatures.json"
|
||||
],
|
||||
|
||||
"heroClasses" :
|
||||
[
|
||||
"config/wog/heroClasses.json"
|
||||
],
|
||||
|
||||
"objects" :
|
||||
[
|
||||
"config/wog/dwellings.json",
|
||||
"config/wog/creatureBanks.json"
|
||||
],
|
||||
|
||||
"filesystem":
|
||||
{
|
||||
"" :
|
||||
[
|
||||
{ "type" : "map", "path" : "/Config/wogFileOverrides.json"}
|
||||
],
|
||||
"CONFIG/" :
|
||||
[
|
||||
{ "type" : "dir", "path" : "/Config"}
|
||||
],
|
||||
"DATA/" :
|
||||
[
|
||||
{"type" : "lod", "path" : "/Data/hmm35wog.pac"},
|
||||
{"type" : "dir", "path" : "/Data"}
|
||||
],
|
||||
"SPRITES/":
|
||||
[
|
||||
{"type" : "lod", "path" : "/Data/hmm35wog.pac"},
|
||||
{"type" : "lod", "path" : "/Data/wog - animated objects.pac"},
|
||||
{"type" : "lod", "path" : "/Data/wog - animated trees.pac"},
|
||||
{"type" : "lod", "path" : "/Data/wog - battle decorations.pac"}
|
||||
],
|
||||
"SOUNDS/":
|
||||
[
|
||||
{"type" : "snd", "path" : "/Data/wog - sounds.snd"},
|
||||
{"type" : "snd", "path" : "/Data/wog.snd"}
|
||||
],
|
||||
"MUSIC/":
|
||||
[
|
||||
{"type" : "dir", "path" : "/Mp3"}
|
||||
],
|
||||
"VIDEO/":
|
||||
[
|
||||
{"type" : "vid", "path" : "/Data/wog - video.vid"},
|
||||
{"type" : "vid", "path" : "/Data/wog.vid"}
|
||||
],
|
||||
"MAPS/":
|
||||
[
|
||||
{"type" : "dir", "path" : "/Maps"}
|
||||
]
|
||||
}
|
||||
}
|
@ -75,6 +75,8 @@ public:
|
||||
void readMap(CBinaryReader & reader);
|
||||
void readJson(const JsonNode & node);
|
||||
|
||||
bool operator==(const ObjectTemplate& ot) const { return (id == ot.id && subid == ot.subid); }
|
||||
|
||||
template <typename Handler> void serialize(Handler &h, const int version)
|
||||
{
|
||||
h & usedTiles & allowedTerrains & animationFile & stringID;
|
||||
|
@ -700,6 +700,12 @@ bool CRmgTemplateZone::createTreasurePile (CMapGenerator* gen, int3 &pos)
|
||||
}
|
||||
else
|
||||
{
|
||||
//remove from possible objects
|
||||
auto oiptr = std::find(possibleObjects.begin(), possibleObjects.end(), oi);
|
||||
assert (oiptr != possibleObjects.end());
|
||||
oiptr->maxPerZone--;
|
||||
//TODO
|
||||
|
||||
//update treasure pile area
|
||||
int3 visitablePos = info.nextTreasurePos;
|
||||
|
||||
@ -1230,7 +1236,7 @@ bool CRmgTemplateZone::canObstacleBePlacedHere(CMapGenerator* gen, ObjectTemplat
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CRmgTemplateZone::isAccessibleFromAnywhere (CMapGenerator* gen, ObjectTemplate &appearance, int3 &tile, std::set<int3> &tilesBlockedByObject) const
|
||||
bool CRmgTemplateZone::isAccessibleFromAnywhere (CMapGenerator* gen, ObjectTemplate &appearance, int3 &tile, const std::set<int3> &tilesBlockedByObject) const
|
||||
{
|
||||
bool accessible = false;
|
||||
for (int x = -1; x < 2; x++)
|
||||
@ -1453,7 +1459,7 @@ ObjectInfo CRmgTemplateZone::getRandomObject (CMapGenerator* gen, CTreasurePileI
|
||||
//roulette wheel
|
||||
for (auto oi : possibleObjects)
|
||||
{
|
||||
if (oi.value >= minValue && oi.value <= value)
|
||||
if (oi.value >= minValue && oi.value <= value && oi.maxPerZone > 0)
|
||||
{
|
||||
int3 newVisitableOffset = oi.templ.getVisitableOffset(); //visitablePos assumes object will be shifter by visitableOffset
|
||||
int3 newVisitablePos = info.nextTreasurePos;
|
||||
@ -1592,6 +1598,7 @@ ObjectInfo CRmgTemplateZone::getRandomObject (CMapGenerator* gen, CTreasurePileI
|
||||
void CRmgTemplateZone::addAllPossibleObjects (CMapGenerator* gen)
|
||||
{
|
||||
ObjectInfo oi;
|
||||
oi.maxPerMap = std::numeric_limits<ui32>().max();
|
||||
|
||||
for (auto primaryID : VLC->objtypeh->knownObjects())
|
||||
{
|
||||
@ -1611,6 +1618,7 @@ void CRmgTemplateZone::addAllPossibleObjects (CMapGenerator* gen)
|
||||
oi.value = handler->getRMGInfo().value;
|
||||
oi.probability = handler->getRMGInfo().rarity;
|
||||
oi.templ = temp;
|
||||
oi.maxPerZone = handler->getRMGInfo().zoneLimit;
|
||||
possibleObjects.push_back (oi);
|
||||
}
|
||||
}
|
||||
@ -1618,6 +1626,9 @@ void CRmgTemplateZone::addAllPossibleObjects (CMapGenerator* gen)
|
||||
}
|
||||
}
|
||||
|
||||
//all following objects are unlimited
|
||||
oi.maxPerZone = std::numeric_limits<ui32>().max();
|
||||
|
||||
//dwellings
|
||||
|
||||
auto subObjects = VLC->objtypeh->knownSubObjects(Obj::CREATURE_GENERATOR1);
|
||||
|
@ -71,9 +71,13 @@ struct DLL_LINKAGE ObjectInfo
|
||||
ObjectTemplate templ;
|
||||
ui32 value;
|
||||
ui16 probability;
|
||||
ui32 maxPerZone;
|
||||
ui32 maxPerMap;
|
||||
std::function<CGObjectInstance *()> generateObject;
|
||||
|
||||
void setTemplate (si32 type, si32 subtype, ETerrainType terrain);
|
||||
|
||||
bool operator==(const ObjectInfo& oi) const { return (templ == oi.templ); }
|
||||
};
|
||||
|
||||
struct DLL_LINKAGE CTreasurePileInfo
|
||||
@ -207,7 +211,7 @@ private:
|
||||
|
||||
bool pointIsIn(int x, int y);
|
||||
void addAllPossibleObjects (CMapGenerator* gen); //add objects, including zone-specific, to possibleObjects
|
||||
bool isAccessibleFromAnywhere (CMapGenerator* gen, ObjectTemplate &appearance, int3 &tile, std::set<int3> &tilesBlockedByObject) const;
|
||||
bool isAccessibleFromAnywhere (CMapGenerator* gen, ObjectTemplate &appearance, int3 &tile, const std::set<int3> &tilesBlockedByObject) const;
|
||||
bool findPlaceForObject(CMapGenerator* gen, CGObjectInstance* obj, si32 min_dist, int3 &pos);
|
||||
bool findPlaceForTreasurePile(CMapGenerator* gen, si32 min_dist, int3 &pos);
|
||||
bool canObstacleBePlacedHere(CMapGenerator* gen, ObjectTemplate &temp, int3 &pos);
|
||||
|
Loading…
Reference in New Issue
Block a user