1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-23 22:37:55 +02:00

Implemented mod-friendly loading of town building icons for campaigns

This commit is contained in:
Ivan Savenko
2025-06-13 21:31:41 +03:00
parent ba0188ca7f
commit 0fa83c0478
28 changed files with 379 additions and 539 deletions

View File

@@ -48,7 +48,6 @@
#include "../../lib/campaign/CampaignState.h" #include "../../lib/campaign/CampaignState.h"
#include "../../lib/entities/artifact/CArtifact.h" #include "../../lib/entities/artifact/CArtifact.h"
#include "../../lib/entities/building/CBuilding.h" #include "../../lib/entities/building/CBuilding.h"
#include "../../lib/entities/building/CBuildingHandler.h"
#include "../../lib/entities/faction/CFaction.h" #include "../../lib/entities/faction/CFaction.h"
#include "../../lib/entities/faction/CTown.h" #include "../../lib/entities/faction/CTown.h"
#include "../../lib/entities/faction/CTownHandler.h" #include "../../lib/entities/faction/CTownHandler.h"
@@ -60,6 +59,7 @@
#include "../../lib/mapping/CMapInfo.h" #include "../../lib/mapping/CMapInfo.h"
#include "../../lib/mapping/CMapService.h" #include "../../lib/mapping/CMapService.h"
#include "../../lib/texts/CGeneralTextHandler.h" #include "../../lib/texts/CGeneralTextHandler.h"
#include "mapping/MapFormatSettings.h"
std::shared_ptr<CampaignState> CBonusSelection::getCampaign() std::shared_ptr<CampaignState> CBonusSelection::getCampaign()
{ {
@@ -219,16 +219,21 @@ void CBonusSelection::createBonusesIcons()
} }
assert(faction.hasValue()); assert(faction.hasValue());
BuildingID buildID; BuildingID buildID = bonusValue.buildingDecoded;
if(getCampaign()->formatVCMI()) if (bonusValue.buildingH3M.hasValue())
buildID = bonusValue.building; {
else auto mapping = LIBRARY->mapFormat->getMapping(getCampaign()->getFormat());
buildID = CBuildingHandler::campToERMU(bonusValue.building, faction, std::set<BuildingID>()); buildID = mapping.remapBuilding(faction, bonusValue.buildingH3M);
picName = graphics->ERMUtoPicture[faction.getNum()][buildID.getNum()]; }
for (const auto & townStructure : faction.toFaction()->town->clientInfo.structures)
if (townStructure->building && townStructure->building->bid == buildID)
picName = townStructure->campaignBonus.getOriginalName();
picNumber = -1; picNumber = -1;
if(vstd::contains((*LIBRARY->townh)[faction]->town->buildings, buildID)) if(vstd::contains(faction.toFaction()->town->buildings, buildID))
desc.appendTextID((*LIBRARY->townh)[faction]->town->buildings.find(buildID)->second->getNameTextID()); desc.appendTextID(faction.toFaction()->town->buildings.find(buildID)->second->getNameTextID());
break; break;
} }
case CampaignBonusType::ARTIFACT: case CampaignBonusType::ARTIFACT:

View File

@@ -118,7 +118,6 @@ Graphics::Graphics()
{ {
loadPaletteAndColors(); loadPaletteAndColors();
initializeBattleGraphics(); initializeBattleGraphics();
loadErmuToPicture();
//(!) do not load any CAnimation here //(!) do not load any CAnimation here
} }
@@ -153,21 +152,3 @@ void Graphics::setPlayerFlagColor(SDL_Palette * targetPalette, PlayerColor playe
SDL_SetPaletteColors(targetPalette, &color, 5, 1); SDL_SetPaletteColors(targetPalette, &color, 5, 1);
} }
} }
void Graphics::loadErmuToPicture()
{
//loading ERMU to picture
const JsonNode config(JsonPath::builtin("config/ERMU_to_picture.json"));
int etp_idx = 0;
for(const JsonNode &etp : config["ERMU_to_picture"].Vector()) {
int idx = 0;
for(const JsonNode &n : etp.Vector()) {
ERMUtoPicture[idx][etp_idx] = n.String();
idx ++;
}
assert (idx == std::size(ERMUtoPicture));
etp_idx ++;
}
assert (etp_idx == 44);
}

View File

@@ -20,7 +20,6 @@ class Graphics
{ {
void initializeBattleGraphics(); void initializeBattleGraphics();
void loadPaletteAndColors(); void loadPaletteAndColors();
void loadErmuToPicture();
public: public:
using PlayerPalette = std::array<ColorRGBA, 32>; using PlayerPalette = std::array<ColorRGBA, 32>;
@@ -32,8 +31,6 @@ public:
PlayerPalette neutralColorPalette; PlayerPalette neutralColorPalette;
ColorRGBA neutralColor; ColorRGBA neutralColor;
//towns
std::map<int, std::string> ERMUtoPicture[GameConstants::F_NUMBER]; //maps building ID to it's picture's name for each town type
//for battles //for battles
std::map< int, std::vector < std::string > > battleACToDef; //maps AC format to vector of appropriate def names std::map< int, std::vector < std::string > > battleACToDef; //maps AC format to vector of appropriate def names

View File

@@ -269,12 +269,13 @@ void CArtifactsOfHeroBase::setSlotData(ArtPlacePtr artPlace, const ArtifactPosit
artPlace->slot = slot; artPlace->slot = slot;
if(auto slotInfo = curHero->getSlot(slot)) if(auto slotInfo = curHero->getSlot(slot))
{ {
const auto curArt = slotInfo->getArt();
artPlace->lockSlot(slotInfo->locked); artPlace->lockSlot(slotInfo->locked);
artPlace->setArtifact(slotInfo->getArt()->getTypeId(), slotInfo->getArt()->getScrollSpellID()); artPlace->setArtifact(curArt->getTypeId(), curArt->getScrollSpellID());
if(slotInfo->locked) if(slotInfo->locked)
return; return;
const auto curArt = slotInfo->getArt();
// If the artifact has charges, add charges information // If the artifact has charges, add charges information
if(curArt->getType()->isCharged()) if(curArt->getType()->isCharged())
artPlace->addChargedArtInfo(curArt->getCharges()); artPlace->addChargedArtInfo(curArt->getCharges());

View File

@@ -1,48 +0,0 @@
{
"ERMU_to_picture": [
[ "BoCsMag1.pcx", "BoRMag1.pcx", "BoTGld1.pcx", "BoIMag1.pcx", "BoNmage1.pcx", "BoDmage1.pcx", "BoSmage1.pcx", "BoFmage1.pcx", "BoEgld1.pcx" ],
[ "BoCsMag2.pcx", "BoRMag2.pcx", "BoTGld2.pcx", "BoIMag2.pcx", "BoNmage2.pcx", "BoDmage2.pcx", "BoSmage2.pcx", "BoFmage2.pcx", "BoEgld2.pcx" ],
[ "BoCsMag3.pcx", "BoRMag3.pcx", "BoTGld3.pcx", "BoIMag3.pcx", "BoNmage3.pcx", "BoDmage3.pcx", "BoSmage3.pcx", "BoFmage3.pcx", "BoEgld3.pcx" ],
[ "BoCsMag4.pcx", "BoRMag4.pcx", "BoTGld4.pcx", "BoIMag4.pcx", "BoNmage4.pcx", "BoDmage4.pcx", "BoSmage4.pcx", "BoFmage4.pcx", "BoEgld4.pcx" ],
[ "BoCsMag5.pcx", "BoRMag5.pcx", "BoTGld5.pcx", "BoIMag5.pcx", "BoNmage5.pcx", "BoDmage5.pcx", "BoSmage5.pcx", "BoFmage5.pcx", "BoEgld5.pcx" ],
[ "BoCsTav1.pcx", "BoRTav.pcx", "BoTTav.pcx", "BoITav.pcx", "BoNtav.pcx", "BoDtav.pcx", "BoStav1.pcx", "BoFtav.pcx", "BoEtav.pcx" ],
[ "BoCsDock.pcx", "", "", "", "", "", "", "BoFship.pcx", "BoEship.pcx" ],
[ "BoCsCas1.pcx", "BoRCas1.pcx", "BoTCas1.pcx", "BoICas1.pcx", "BoNcast1.pcx", "BoDcas1.pcx", "BoScas1.pcx", "BoFcast1.pcx", "BoEcast1.pcx" ],
[ "BoCsCas2.pcx", "BoRCas2.pcx", "BoTCas2.pcx", "BoICas2.pcx", "BoNcast2.pcx", "BoDcas2.pcx", "BoScas2.pcx", "BoFcast2.pcx", "BoEcast2.pcx" ],
[ "BoCsCas3.pcx", "BoRCas3.pcx", "BoTCas3.pcx", "BoICas3.pcx", "BoNcast3.pcx", "BoDcas3.pcx", "BoScas3.pcx", "BoFcast3.pcx", "BoEcast3.pcx" ],
[ "BoCsHal1.pcx", "BoRHal1.pcx", "BoTHal1.pcx", "BoIHal1.pcx", "BoNhall1.pcx", "BoDhall1.pcx", "BoShall1.pcx", "BoFhall1.pcx", "BoEhall1.pcx" ],
[ "BoCsHal2.pcx", "BoRHal2.pcx", "BoTHal2.pcx", "BoIHal2.pcx", "BoNhall2.pcx", "BoDhall2.pcx", "BoShall2.pcx", "BoFhall2.pcx", "BoEhall2.pcx" ],
[ "BoCsHal3.pcx", "BoRHal3.pcx", "BoTHal3.pcx", "BoIHal3.pcx", "BoNhall3.pcx", "BoDhall3.pcx", "BoShall3.pcx", "BoFhall3.pcx", "BoEhall3.pcx" ],
[ "BoCsHal4.pcx", "BoRHal4.pcx", "BoTHal4.pcx", "BoIHal4.pcx", "BoNhall4.pcx", "BoDhall4.pcx", "BoShall4.pcx", "BoFhall4.pcx", "BoEhall4.pcx" ],
[ "BoCsMrk1.pcx", "BoRMrk1.pcx", "BoTMark.pcx", "BoIMrk1.pcx", "BoNmark1.pcx", "BoDmark1.pcx", "BoSmrk1.pcx", "BoFmark1.pcx", "BoEmark1.pcx" ],
[ "BoCsMrk2.pcx", "BoRMrk2.pcx", "BoTMarkS.pcx", "BoIMrk2.pcx", "BoNmark2.pcx", "BoDmark2.pcx", "BoSmrk2.pcx", "BoFmark2.pcx", "BoEmarkS.pcx" ],
[ "BoCsBlak.pcx", "BoRAid.pcx", "BoTBlack.pcx", "BoIBlak.pcx", "BoNsmith.pcx", "BoDsmith.pcx", "BoSblak1.pcx", "BoFapoth.pcx", "BoEblack.pcx" ],
[ "BoCsLite.pcx", "BoRGar1.pcx", "BoTMarkA.pcx", "", "BoNshrod.pcx", "BoDmarkA.pcx", "BoSescap.pcx", "BoFcage.pcx", "BoEmarkA.pcx" ],
[ "BoCsGr1H.pcx", "BoRDwf1h.pcx", "BoTGa1H.pcx", "BoIImpH.pcx", "BoNskelH.pcx", "BoDtrogH.pcx", "BoSgob1h.pcx", "BoFgno1h.pcx", "BoDhrd1.pcx" ],
[ "BoCsGr2H.pcx", "BoRDwf2h.pcx", "BoTGa2h.pcx", "BoIImp2H.pcx", "", "", "BoSgob2h.pcx", "BoFgno2h.pcx", "BoDhrd2.pcx" ],
[ "", "", "", "", "", "", "", "", "" ],
[ "BoCsCv2S.pcx", "BoRGar2.pcx", "BoTCasW.pcx", "BoICasB.pcx", "BoNnecro.pcx", "BoDvort.pcx", "BoSmrk1c.pcx", "BoFcastD.pcx", "BoEuniv.pcx" ],
[ "BoCsTav2.pcx", "BoRDwf1t.pcx", "BoTGldL.pcx", "BoICasG.pcx", "BoNskelT.pcx", "BoDport.pcx", "BoSblak2.pcx", "BoFcastA.pcx", "" ],
[ "", "", "BoTGldW.pcx", "BoIMagO.pcx", "", "BoDacad.pcx", "BoSvahal.pcx", "", "" ],
[ "", "BoRTre1h.pcx", "", "BoIHndH.pcx", "", "", "", "", "" ],
[ "", "BoRTre2h.pcx", "", "BoIHnd2H.pcx", "", "", "", "", "" ],
[ "BoCsHoly.pcx", "BoRHoly.pcx", "BoTHoly.pcx", "BoIHoly.pcx", "BoNholyG.pcx", "BoDholy.pcx", "BoSholy.pcx", "BoFgrail.pcx", "BoEgrail.pcx" ],
[ "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "" ],
[ "", "", "", "", "", "", "", "", "" ],
[ "BoCsPik1.pcx", "BoRCen1.pcx", "BoTGrem1.pcx", "BoIImp1.pcx", "BoNskel1.pcx", "BoDtrog1.pcx", "BoSgob1.pcx", "BoFgnol1.pcx", "BoEdn_0.pcx" ],
[ "BoCsCrs1.pcx", "BoRDwf1.pcx", "BoTGar1.pcx", "BoIGog1.pcx", "BoNzomb1.pcx", "BoDharp1.pcx", "BoSwolf1.pcx", "BoFlizr1.pcx", "BoEdn_1.pcx" ],
[ "BoCsGr1.pcx", "BoRElf1.pcx", "BoTGolm1.pcx", "BoIHnd1.pcx", "BoNwigh1.pcx", "BoDbeh1.pcx", "BoSorc1.pcx", "BoFfly1.pcx", "BoEdn_2.pcx" ],
[ "BoCsSwd1.pcx", "BoRPeg1.pcx", "BoTMag1.pcx", "BoIDmn1.pcx", "BoNvamp1.pcx", "BoDmedu1.pcx", "BoSogre1.pcx", "BoFbas1.pcx", "BoEdn_3.pcx" ],
[ "BoCsMon1.pcx", "BoRTre1.pcx", "BoTGen1.pcx", "BoIPit1.pcx", "BoNlich1.pcx", "BoDmino1.pcx", "BoSroc1.pcx", "BoFgorg1.pcx", "BoEdn_4.pcx" ],
[ "BoCsCv1.pcx", "BoRUni1.pcx", "BoTNaga1.pcx", "BoIEfr1.pcx", "BoNbkni1.pcx", "BoDmant1.pcx", "BoScyc1.pcx", "BoFwyvr1.pcx", "BoEdn_5.pcx" ],
[ "BoCsAng1.pcx", "BoRDra1.pcx", "BoTTit1.pcx", "BoIDvl1.pcx", "BoNbone1.pcx", "BoDdrag1.pcx", "BoSbeh1.pcx", "BoFhydr1.pcx", "BoEdn_6.pcx" ],
[ "BoCsPik2.pcx", "BoRCen2.pcx", "BoTGrem2.pcx", "BoIImp2.pcx", "BoNskel2.pcx", "BoDtrog2.pcx", "BoSgob2.pcx", "BoFgnol2.pcx", "BoEup_0.pcx" ],
[ "BoCsCrs2.pcx", "BoRDwf2.pcx", "BoTGar2.pcx", "BoIGog2.pcx", "BoNzomb2.pcx", "BoDharp2.pcx", "BoSwolf2.pcx", "BoFlizr2.pcx", "BoEup_1.pcx" ],
[ "BoCsGr2.pcx", "BoRElf2.pcx", "BoTGolm2.pcx", "BoIHnd2.pcx", "BoNwigh2.pcx", "BoDbeh2.pcx", "BoSorc2.pcx", "BoFfly2.pcx", "BoEup_2.pcx" ],
[ "BoCsSwd2.pcx", "BoRPeg2.pcx", "BoTMag2.pcx", "BoIDmn2.pcx", "BoNvamp2.pcx", "BoDmedu2.pcx", "BoSogre2.pcx", "BoFbas2.pcx", "BoEup_3.pcx" ],
[ "BoCsMon2.pcx", "BoRTre2.pcx", "BoTGen2.pcx", "BoIPit2.pcx", "BoNlich2.pcx", "BoDmino2.pcx", "BoSroc2.pcx", "BoFgorg2.pcx", "BoEup_4.pcx" ],
[ "BoCsCv2.pcx", "BoRUni2.pcx", "BoTNaga2.pcx", "BoIEfr2.pcx", "BoNbkni2.pcx", "BoDmant2.pcx", "BoScyc2.pcx", "BoFwyvr2.pcx", "BoEup_5.pcx" ],
[ "BoCsAng2.pcx", "BoRDra2.pcx", "BoTTit2.pcx", "BoIDvl2.pcx", "BoNbone2.pcx", "BoDdrag2.pcx", "BoSbeh2.pcx", "BoFhydr2.pcx", "BoEup_6.pcx" ]
]
}

View File

@@ -80,43 +80,43 @@
"structures" : "structures" :
{ {
"extraAnimation": { "animation" : "TBCSEXT2.def", "x" : 46, "y" : 119 }, "extraAnimation": { "animation" : "TBCSEXT2.def", "x" : 46, "y" : 119 },
"mageGuild1": { "animation" : "TBCSMAGE.def", "x" : 707, "y" : 166, "z" : 1, "border" : "TOCSMAG1.bmp", "area" : "TZCSMAG1.bmp" }, "mageGuild1": { "animation" : "TBCSMAGE.def", "x" : 707, "y" : 166, "z" : 1, "campaignBonus" : "BoCsMag1.pcx", "border" : "TOCSMAG1.bmp", "area" : "TZCSMAG1.bmp" },
"mageGuild2": { "animation" : "TBCSMAG2.def", "x" : 706, "y" : 135, "z" : 1, "border" : "TOCSMAG2.bmp", "area" : "TZCSMAG2.bmp" }, "mageGuild2": { "animation" : "TBCSMAG2.def", "x" : 706, "y" : 135, "z" : 1, "campaignBonus" : "BoCsMag2.pcx", "border" : "TOCSMAG2.bmp", "area" : "TZCSMAG2.bmp" },
"mageGuild3": { "animation" : "TBCSMAG3.def", "x" : 704, "y" : 107, "z" : 1, "border" : "TOCSM301.bmp", "area" : "TZCSM301.bmp" }, "mageGuild3": { "animation" : "TBCSMAG3.def", "x" : 704, "y" : 107, "z" : 1, "campaignBonus" : "BoCsMag3.pcx", "border" : "TOCSM301.bmp", "area" : "TZCSM301.bmp" },
"mageGuild4": { "animation" : "TBCSMAG4.def", "x" : 704, "y" : 76, "z" : 1, "border" : "TOCSM401.bmp", "area" : "TZCSM401.bmp" }, "mageGuild4": { "animation" : "TBCSMAG4.def", "x" : 704, "y" : 76, "z" : 1, "campaignBonus" : "BoCsMag4.pcx", "border" : "TOCSM401.bmp", "area" : "TZCSM401.bmp" },
"tavern": { "animation" : "TBCSTVRN.def", "x" : 0, "y" : 230, "z" : 2, "border" : "TOCSTAV1.bmp", "area" : "TZCSTAV1.bmp" }, "tavern": { "animation" : "TBCSTVRN.def", "x" : 0, "y" : 230, "z" : 2, "campaignBonus" : "BoCsTav1.pcx", "border" : "TOCSTAV1.bmp", "area" : "TZCSTAV1.bmp" },
"shipyard": { "animation" : "TBCSDOCK.def", "x" : 478, "y" : 134, "z" : -3, "border" : "TOCSDKMS.bmp", "area" : "TZCSDKMS.bmp" }, "shipyard": { "animation" : "TBCSDOCK.def", "x" : 478, "y" : 134, "z" : -3, "campaignBonus" : "BoCsDock.pcx", "border" : "TOCSDKMS.bmp", "area" : "TZCSDKMS.bmp" },
"fort": { "animation" : "TBCSCSTL.def", "x" : 595, "y" : 66, "z" : -5, "border" : "TOCSCAS1.bmp", "area" : "TZCSCAS1.bmp" }, "fort": { "animation" : "TBCSCSTL.def", "x" : 595, "y" : 66, "z" : -5, "campaignBonus" : "BoCsCas1.pcx", "border" : "TOCSCAS1.bmp", "area" : "TZCSCAS1.bmp" },
"citadel": { "animation" : "TBCSCAS2.def", "x" : 478, "y" : 66, "z" : -5, "border" : "TOCSCAS2.bmp", "area" : "TZCSCAS2.bmp" }, "citadel": { "animation" : "TBCSCAS2.def", "x" : 478, "y" : 66, "z" : -5, "campaignBonus" : "BoCsCas2.pcx", "border" : "TOCSCAS2.bmp", "area" : "TZCSCAS2.bmp" },
"castle": { "animation" : "TBCSCAS3.def", "x" : 478, "y" : 37, "z" : -5, "border" : "TOCSCAS3.bmp", "area" : "TZCSCAS3.bmp" }, "castle": { "animation" : "TBCSCAS3.def", "x" : 478, "y" : 37, "z" : -5, "campaignBonus" : "BoCsCas3.pcx", "border" : "TOCSCAS3.bmp", "area" : "TZCSCAS3.bmp" },
"villageHall": { "animation" : "TBCSHALL.def", "x" : 0, "y" : 209, "z" : 1, "border" : "TOCSH101.bmp", "area" : "TZCSH101.bmp" }, "villageHall": { "animation" : "TBCSHALL.def", "x" : 0, "y" : 209, "z" : 1, "campaignBonus" : "BoCsHal1.pcx", "border" : "TOCSH101.bmp", "area" : "TZCSH101.bmp" },
"townHall": { "animation" : "TBCSHAL2.def", "x" : 0, "y" : 176, "z" : 1, "border" : "TOCSH201.bmp", "area" : "TZCSH201.bmp" }, "townHall": { "animation" : "TBCSHAL2.def", "x" : 0, "y" : 176, "z" : 1, "campaignBonus" : "BoCsHal2.pcx", "border" : "TOCSH201.bmp", "area" : "TZCSH201.bmp" },
"cityHall": { "animation" : "TBCSHAL3.def", "x" : 0, "y" : 164, "z" : 1, "border" : "TOCSH301.bmp", "area" : "TZCSH301.bmp" }, "cityHall": { "animation" : "TBCSHAL3.def", "x" : 0, "y" : 164, "z" : 1, "campaignBonus" : "BoCsHal3.pcx", "border" : "TOCSH301.bmp", "area" : "TZCSH301.bmp" },
"capitol": { "animation" : "TBCSHAL4.def", "x" : 0, "y" : 154, "z" : 1, "border" : "TOCSH401.bmp", "area" : "TZCSH401.bmp" }, "capitol": { "animation" : "TBCSHAL4.def", "x" : 0, "y" : 154, "z" : 1, "campaignBonus" : "BoCsHal4.pcx", "border" : "TOCSH401.bmp", "area" : "TZCSH401.bmp" },
"marketplace": { "animation" : "TBCSMARK.def", "x" : 413, "y" : 264, "z" : 0, "border" : "TOCSMRK1.bmp", "area" : "TZCSMRK1.bmp" }, "marketplace": { "animation" : "TBCSMARK.def", "x" : 413, "y" : 264, "z" : 0, "campaignBonus" : "BoCsMrk1.pcx", "border" : "TOCSMRK1.bmp", "area" : "TZCSMRK1.bmp" },
"resourceSilo": { "animation" : "TBCSSILO.def", "x" : 488, "y" : 228, "z" : 1, "border" : "TOCSMRK2.bmp", "area" : "TZCSMRK2.bmp" }, "resourceSilo": { "animation" : "TBCSSILO.def", "x" : 488, "y" : 228, "z" : 1, "campaignBonus" : "BoCsMrk2.pcx", "border" : "TOCSMRK2.bmp", "area" : "TZCSMRK2.bmp" },
"blacksmith": { "animation" : "TBCSBLAK.def", "x" : 213, "y" : 251, "z" : 0, "border" : "TOCSBLAK.bmp", "area" : "TZCSBLAK.bmp" }, "blacksmith": { "animation" : "TBCSBLAK.def", "x" : 213, "y" : 251, "z" : 0, "campaignBonus" : "BoCsBlak.pcx", "border" : "TOCSBLAK.bmp", "area" : "TZCSBLAK.bmp" },
"special1": { "animation" : "TBCSSPEC.def", "x" : 533, "y" : 71, "z" : -4, "border" : "TOCSLT01.bmp", "area" : "TZCSLT01.bmp" }, "special1": { "animation" : "TBCSSPEC.def", "x" : 533, "y" : 71, "z" : -4, "campaignBonus" : "BoCsLite.pcx", "border" : "TOCSLT01.bmp", "area" : "TZCSLT01.bmp" },
"horde1": { "animation" : "TBCSHRD1.def", "x" : 76, "y" : 53, "z" : -1, "border" : "TOCSGR1H.bmp", "area" : "TZCSGR1H.bmp", "hidden" : true }, "horde1": { "animation" : "TBCSHRD1.def", "x" : 76, "y" : 53, "z" : -1, "campaignBonus" : "BoCsGr1H.pcx", "border" : "TOCSGR1H.bmp", "area" : "TZCSGR1H.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBCSHRD2.def", "x" : 76, "y" : 35, "z" : -1, "border" : "TOCSGR2H.bmp", "area" : "TZCSGR2H.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBCSHRD2.def", "x" : 76, "y" : 35, "z" : -1, "campaignBonus" : "BoCsGr2H.pcx", "border" : "TOCSGR2H.bmp", "area" : "TZCSGR2H.bmp", "hidden" : true, "builds" : "horde1" },
"ship": { "animation" : "TBCSBOAT.def", "x" : 478, "y" : 134, "z" : -3, "border" : "TOCSDKMN.bmp", "area" : "TZCSDKMN.bmp", "hidden" : true }, "ship": { "animation" : "TBCSBOAT.def", "x" : 478, "y" : 134, "z" : -3, "border" : "TOCSDKMN.bmp", "area" : "TZCSDKMN.bmp", "hidden" : true },
"special2": { "animation" : "TBCSEXT0.def", "x" : 384, "y" : 193, "z" : -2, "border" : "TOCSCAVM.bmp", "area" : "TZCSCAVM.bmp" }, "special2": { "animation" : "TBCSEXT0.def", "x" : 384, "y" : 193, "z" : -2, "campaignBonus" : "BoCsCv2S.pcx", "border" : "TOCSCAVM.bmp", "area" : "TZCSCAVM.bmp" },
"special3": { "animation" : "TBCSEXT1.def", "x" : 0, "y" : 198, "z" : 2, "border" : "TOCSTAV2.bmp", "area" : "TZCSTAV2.bmp" }, "special3": { "animation" : "TBCSEXT1.def", "x" : 0, "y" : 198, "z" : 2, "campaignBonus" : "BoCsTav2.pcx", "border" : "TOCSTAV2.bmp", "area" : "TZCSTAV2.bmp" },
"grail": { "animation" : "TBCSHOLY.def", "x" : 456, "y" : 109, "z" : -6, "border" : "TOCSHOLY.bmp", "area" : "TZCSHOLY.bmp" }, "grail": { "animation" : "TBCSHOLY.def", "x" : 456, "y" : 109, "z" : -6, "campaignBonus" : "BoCsHoly.pcx", "border" : "TOCSHOLY.bmp", "area" : "TZCSHOLY.bmp" },
"dwellingLvl1": { "animation" : "TBCSDW_0.def", "x" : 304, "y" : 92, "z" : -1, "border" : "TOCSPIK1.bmp", "area" : "TZCSPIK1.bmp" }, "dwellingLvl1": { "animation" : "TBCSDW_0.def", "x" : 304, "y" : 92, "z" : -1, "campaignBonus" : "BoCsPik1.pcx", "border" : "TOCSPIK1.bmp", "area" : "TZCSPIK1.bmp" },
"dwellingLvl2": { "animation" : "TBCSDW_1.def", "x" : 360, "y" : 130, "z" : 0, "border" : "TOCSCRS1.bmp", "area" : "TZCSCRS1.bmp" }, "dwellingLvl2": { "animation" : "TBCSDW_1.def", "x" : 360, "y" : 130, "z" : 0, "campaignBonus" : "BoCsCrs1.pcx", "border" : "TOCSCRS1.bmp", "area" : "TZCSCRS1.bmp" },
"dwellingLvl3": { "animation" : "TBCSDW_2.def", "x" : 76, "y" : 57, "z" : -1, "border" : "TOCSGR1N.bmp", "area" : "TZCSGR1N.bmp" }, "dwellingLvl3": { "animation" : "TBCSDW_2.def", "x" : 76, "y" : 57, "z" : -1, "campaignBonus" : "BoCsGr1.pcx", "border" : "TOCSGR1N.bmp", "area" : "TZCSGR1N.bmp" },
"dwellingLvl4": { "animation" : "TBCSDW_3.def", "x" : 176, "y" : 101, "z" : 0, "border" : "TOCSSWD1.bmp", "area" : "TZCSSWD1.bmp" }, "dwellingLvl4": { "animation" : "TBCSDW_3.def", "x" : 176, "y" : 101, "z" : 0, "campaignBonus" : "BoCsSwd1.pcx", "border" : "TOCSSWD1.bmp", "area" : "TZCSSWD1.bmp" },
"dwellingLvl5": { "animation" : "TBCSDW_4.def", "x" : 563, "y" : 211, "z" : 1, "border" : "TOCSMON1.bmp", "area" : "TZCSMON1.bmp" }, "dwellingLvl5": { "animation" : "TBCSDW_4.def", "x" : 563, "y" : 211, "z" : 1, "campaignBonus" : "BoCsMon1.pcx", "border" : "TOCSMON1.bmp", "area" : "TZCSMON1.bmp" },
"dwellingLvl6": { "animation" : "TBCSDW_5.def", "x" : 174, "y" : 190, "z" : -1, "border" : "TOCSC101.bmp", "area" : "TZCSCAV1.bmp" }, "dwellingLvl6": { "animation" : "TBCSDW_5.def", "x" : 174, "y" : 190, "z" : -1, "campaignBonus" : "BoCsCv1.pcx", "border" : "TOCSC101.bmp", "area" : "TZCSCAV1.bmp" },
"dwellingLvl7": { "animation" : "TBCSDW_6.def", "x" : 303, "y" : 0, "z" : -2, "border" : "TOCSANG1.bmp", "area" : "TZCSANG1.bmp" }, "dwellingLvl7": { "animation" : "TBCSDW_6.def", "x" : 303, "y" : 0, "z" : -2, "campaignBonus" : "BoCsAng1.pcx", "border" : "TOCSANG1.bmp", "area" : "TZCSANG1.bmp" },
"dwellingUpLvl1": { "animation" : "TBCSUP_0.def", "x" : 304, "y" : 65, "z" : -1, "border" : "TOCSPIK2.bmp", "area" : "TZCSPIK2.bmp" }, "dwellingUpLvl1": { "animation" : "TBCSUP_0.def", "x" : 304, "y" : 65, "z" : -1, "campaignBonus" : "BoCsPik2.pcx", "border" : "TOCSPIK2.bmp", "area" : "TZCSPIK2.bmp" },
"dwellingUpLvl2": { "animation" : "TBCSUP_1.def", "x" : 360, "y" : 115, "z" : 0, "border" : "TOCSCRS2.bmp", "area" : "TZCSCRS2.bmp" }, "dwellingUpLvl2": { "animation" : "TBCSUP_1.def", "x" : 360, "y" : 115, "z" : 0, "campaignBonus" : "BoCsCrs2.pcx", "border" : "TOCSCRS2.bmp", "area" : "TZCSCRS2.bmp" },
"dwellingUpLvl3": { "animation" : "TBCSUP_2.def", "x" : 76, "y" : 35, "z" : -1, "border" : "TOCSGR2N.bmp", "area" : "TZCSGR2N.bmp" }, "dwellingUpLvl3": { "animation" : "TBCSUP_2.def", "x" : 76, "y" : 35, "z" : -1, "campaignBonus" : "BoCsGr2.pcx", "border" : "TOCSGR2N.bmp", "area" : "TZCSGR2N.bmp" },
"dwellingUpLvl4": { "animation" : "TBCSUP_3.def", "x" : 176, "y" : 85, "z" : 0, "border" : "TOCSSWD2.bmp", "area" : "TZCSSWD2.bmp" }, "dwellingUpLvl4": { "animation" : "TBCSUP_3.def", "x" : 176, "y" : 85, "z" : 0, "campaignBonus" : "BoCsSwd2.pcx", "border" : "TOCSSWD2.bmp", "area" : "TZCSSWD2.bmp" },
"dwellingUpLvl5": { "animation" : "TBCSUP_4.def", "x" : 563, "y" : 173, "z" : 1, "border" : "TOCSMON2.bmp", "area" : "TZCSMON2.bmp" }, "dwellingUpLvl5": { "animation" : "TBCSUP_4.def", "x" : 563, "y" : 173, "z" : 1, "campaignBonus" : "BoCsMon2.pcx", "border" : "TOCSMON2.bmp", "area" : "TZCSMON2.bmp" },
"dwellingUpLvl6": { "animation" : "TBCSUP_5.def", "x" : 160, "y" : 190, "z" : -1, "border" : "TOCSCAV2.bmp", "area" : "TZCSCAV2.bmp" }, "dwellingUpLvl6": { "animation" : "TBCSUP_5.def", "x" : 160, "y" : 190, "z" : -1, "campaignBonus" : "BoCsCv2.pcx", "border" : "TOCSCAV2.bmp", "area" : "TZCSCAV2.bmp" },
"dwellingUpLvl7": { "animation" : "TBCSUP_6.def", "x" : 303, "y" : 0, "z" : -2, "border" : "TOCSANG2.bmp", "area" : "TZCSANG2.bmp" } "dwellingUpLvl7": { "animation" : "TBCSUP_6.def", "x" : 303, "y" : 0, "z" : -2, "campaignBonus" : "BoCsAng2.pcx", "border" : "TOCSANG2.bmp", "area" : "TZCSANG2.bmp" }
}, },
"musicTheme" : [ "music/CstleTown" ], "musicTheme" : [ "music/CstleTown" ],

View File

@@ -81,46 +81,46 @@
{ {
"extraAnimation2":{ "animation" : "TBELEXT5.def", "x" : 682, "y" : 183, "z" : 2 }, "extraAnimation2":{ "animation" : "TBELEXT5.def", "x" : 682, "y" : 183, "z" : 2 },
"extraAnimation": { "animation" : "TBELEXT1.def", "x" : 23, "y" : 218, "z" : 3 }, "extraAnimation": { "animation" : "TBELEXT1.def", "x" : 23, "y" : 218, "z" : 3 },
"mageGuild1": { "animation" : "TBELMAGE.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAGE.bmp", "area" : "TZELMAGE.bmp" }, "mageGuild1": { "animation" : "TBELMAGE.def", "x" : 206, "y" : 58, "z" : 7, "campaignBonus" : "BoEgld1.pcx", "border" : "TOELMAGE.bmp", "area" : "TZELMAGE.bmp" },
"mageGuild2": { "animation" : "TBELMAG2.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAG2.bmp", "area" : "TZELMAG2.bmp" }, "mageGuild2": { "animation" : "TBELMAG2.def", "x" : 206, "y" : 58, "z" : 7, "campaignBonus" : "BoEgld2.pcx", "border" : "TOELMAG2.bmp", "area" : "TZELMAG2.bmp" },
"mageGuild3": { "animation" : "TBELMAG3.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAG3.bmp", "area" : "TZELMAG3.bmp" }, "mageGuild3": { "animation" : "TBELMAG3.def", "x" : 206, "y" : 58, "z" : 7, "campaignBonus" : "BoEgld3.pcx", "border" : "TOELMAG3.bmp", "area" : "TZELMAG3.bmp" },
"mageGuild4": { "animation" : "TBELMAG4.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAG4.bmp", "area" : "TZELMAG4.bmp" }, "mageGuild4": { "animation" : "TBELMAG4.def", "x" : 206, "y" : 58, "z" : 7, "campaignBonus" : "BoEgld4.pcx", "border" : "TOELMAG4.bmp", "area" : "TZELMAG4.bmp" },
"mageGuild5": { "animation" : "TBELMAG5.def", "x" : 206, "y" : 58, "z" : 7, "border" : "TOELMAG5.bmp", "area" : "TZELMAG5.bmp" }, "mageGuild5": { "animation" : "TBELMAG5.def", "x" : 206, "y" : 58, "z" : 7, "campaignBonus" : "BoEgld5.pcx", "border" : "TOELMAG5.bmp", "area" : "TZELMAG5.bmp" },
"tavern": { "animation" : "TBELTVRN.def", "x" : 553, "y" : 203, "z" : 7, "border" : "TOELTVRN.bmp", "area" : "TZELTVRN.bmp" }, "tavern": { "animation" : "TBELTVRN.def", "x" : 553, "y" : 203, "z" : 7, "campaignBonus" : "BoEtav.pcx", "border" : "TOELTVRN.bmp", "area" : "TZELTVRN.bmp" },
"shipyard": { "animation" : "TBELDOCK.def", "x" : 239, "y" : 215, "z" : 5, "border" : "TOELDOCK.bmp", "area" : "TZELDOCK.bmp" }, "shipyard": { "animation" : "TBELDOCK.def", "x" : 239, "y" : 215, "z" : 5, "campaignBonus" : "BoEship.pcx", "border" : "TOELDOCK.bmp", "area" : "TZELDOCK.bmp" },
"fort": { "animation" : "TBELCSTL.def", "x" : 349, "y" : 101, "z" : 1, "border" : "TOELCSTL.bmp", "area" : "TZELCSTL.bmp" }, "fort": { "animation" : "TBELCSTL.def", "x" : 349, "y" : 101, "z" : 1, "campaignBonus" : "BoEcast1.pcx", "border" : "TOELCSTL.bmp", "area" : "TZELCSTL.bmp" },
"citadel": { "animation" : "TBELCAS2.def", "x" : 349, "y" : 101, "z" : 1, "border" : "TOELCAS2.bmp", "area" : "TZELCAS2.bmp" }, "citadel": { "animation" : "TBELCAS2.def", "x" : 349, "y" : 101, "z" : 1, "campaignBonus" : "BoEcast2.pcx", "border" : "TOELCAS2.bmp", "area" : "TZELCAS2.bmp" },
"castle": { "animation" : "TBELCAS3.def", "x" : 349, "y" : 101, "z" : 1, "border" : "TOELCAS3.bmp", "area" : "TZELCAS3.bmp" }, "castle": { "animation" : "TBELCAS3.def", "x" : 349, "y" : 101, "z" : 1, "campaignBonus" : "BoEcast3.pcx", "border" : "TOELCAS3.bmp", "area" : "TZELCAS3.bmp" },
"villageHall": { "animation" : "TBELHALL.def", "x" : -1, "y" : 164, "z" : 8, "border" : "TOELHALL.bmp", "area" : "TZELHALL.bmp" }, "villageHall": { "animation" : "TBELHALL.def", "x" : -1, "y" : 164, "z" : 8, "campaignBonus" : "BoEhall1.pcx", "border" : "TOELHALL.bmp", "area" : "TZELHALL.bmp" },
"townHall": { "animation" : "TBELHAL2.def", "x" : 0, "y" : 165, "z" : 8, "border" : "TOELHAL2.bmp", "area" : "TZELHAL2.bmp" }, "townHall": { "animation" : "TBELHAL2.def", "x" : 0, "y" : 165, "z" : 8, "campaignBonus" : "BoEhall2.pcx", "border" : "TOELHAL2.bmp", "area" : "TZELHAL2.bmp" },
"cityHall": { "animation" : "TBELHAL3.def", "x" : 0, "y" : 165, "z" : 8, "border" : "TOELHAL3.bmp", "area" : "TZELHAL3.bmp" }, "cityHall": { "animation" : "TBELHAL3.def", "x" : 0, "y" : 165, "z" : 8, "campaignBonus" : "BoEhall3.pcx", "border" : "TOELHAL3.bmp", "area" : "TZELHAL3.bmp" },
"capitol": { "animation" : "TBELHAL4.def", "x" : 0, "y" : 164, "z" : 8, "border" : "TOELHAL4.bmp", "area" : "TZELHAL4.bmp" }, "capitol": { "animation" : "TBELHAL4.def", "x" : 0, "y" : 164, "z" : 8, "campaignBonus" : "BoEhall4.pcx", "border" : "TOELHAL4.bmp", "area" : "TZELHAL4.bmp" },
"marketplace": { "animation" : "TBELMARK.def", "x" : 347, "y" : 216, "z" : 8, "border" : "TOELMARK.bmp", "area" : "TZELMARK.bmp" }, "marketplace": { "animation" : "TBELMARK.def", "x" : 347, "y" : 216, "z" : 8, "campaignBonus" : "BoEMark.pcx", "border" : "TOELMARK.bmp", "area" : "TZELMARK.bmp" },
"resourceSilo": { "animation" : "TBELSILO.def", "x" : 372, "y" : 171, "z" : 7, "border" : "TOELSILO.bmp", "area" : "TZELSILO.bmp" }, "resourceSilo": { "animation" : "TBELSILO.def", "x" : 372, "y" : 171, "z" : 7, "campaignBonus" : "BoEMarkS.pcx", "border" : "TOELSILO.bmp", "area" : "TZELSILO.bmp" },
"blacksmith": { "animation" : "TBELBLAK.def", "x" : 449, "y" : 151, "z" : 5, "border" : "TOELBLAK.bmp", "area" : "TZELBLAK.bmp" }, "blacksmith": { "animation" : "TBELBLAK.def", "x" : 449, "y" : 151, "z" : 5, "campaignBonus" : "BoEblack.pcx", "border" : "TOELBLAK.bmp", "area" : "TZELBLAK.bmp" },
"special1": { "animation" : "TBELSPEC.def", "x" : 284, "y" : 246, "z" : 9, "border" : "TOELSPEC.bmp", "area" : "TZELSPEC.bmp" }, "special1": { "animation" : "TBELSPEC.def", "x" : 284, "y" : 246, "z" : 9, "campaignBonus" : "BoEMarkA.pcx", "border" : "TOELSPEC.bmp", "area" : "TZELSPEC.bmp" },
"horde1": { "animation" : "TBELHRD1.def", "x" : 689, "y" : 250, "z" : 9, "border" : "TOELHRD1.bmp", "area" : "TZELHRD1.bmp", "hidden" : true }, "horde1": { "animation" : "TBELHRD1.def", "x" : 689, "y" : 250, "z" : 9, "campaignBonus" : "BoEHrd1.pcx", "border" : "TOELHRD1.bmp", "area" : "TZELHRD1.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBELHRD2.def", "x" : 689, "y" : 250, "z" : 9, "border" : "TOELHRD2.bmp", "area" : "TZELHRD2.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBELHRD2.def", "x" : 689, "y" : 250, "z" : 9, "campaignBonus" : "BoEHrd2.pcx", "border" : "TOELHRD2.bmp", "area" : "TZELHRD2.bmp", "hidden" : true, "builds" : "horde1" },
"ship": { "animation" : "TBELBOAT.def", "x" : 239, "y" : 215, "z" : 5, "border" : "TOELBOAT.bmp", "area" : "TZELBOAT.bmp", "hidden" : true }, "ship": { "animation" : "TBELBOAT.def", "x" : 239, "y" : 215, "z" : 5, "border" : "TOELBOAT.bmp", "area" : "TZELBOAT.bmp", "hidden" : true },
"special2": { "animation" : "TBELEXT6.def", "x" : 104, "y" : 170, "z" : 6, "border" : "TOELEXT6.bmp", "area" : "TZELEXT6.bmp" }, "special2": { "animation" : "TBELEXT6.def", "x" : 104, "y" : 170, "z" : 6, "campaignBonus" : "BoEuniv.pcx", "border" : "TOELEXT6.bmp", "area" : "TZELEXT6.bmp" },
"grail": { "animation" : "TBELHOLY.def", "x" : 307, "y" : 2, "z" : 0, "border" : "TOELHOLY.bmp", "area" : "TZELHOLY.bmp" }, "grail": { "animation" : "TBELHOLY.def", "x" : 307, "y" : 2, "z" : 0, "campaignBonus" : "BoEgrail.pcx", "border" : "TOELHOLY.bmp", "area" : "TZELHOLY.bmp" },
"extraTownHall": { "animation" : "TBELEXT2.def", "x" : 232, "y" : 205, "z" : 4 }, "extraTownHall": { "animation" : "TBELEXT2.def", "x" : 232, "y" : 205, "z" : 4 },
"extraCityHall": { "animation" : "TBELEXT3.def", "x" : 516, "y" : 223, "z" : 6 }, "extraCityHall": { "animation" : "TBELEXT3.def", "x" : 516, "y" : 223, "z" : 6 },
"extraCapitol": { "animation" : "TBELEXT4.def", "x" : 0, "y" : 252, "z" : 9 }, "extraCapitol": { "animation" : "TBELEXT4.def", "x" : 0, "y" : 252, "z" : 9 },
"dwellingLvl1": { "animation" : "TBELDW_0.def", "x" : 689, "y" : 250, "z" : 9, "border" : "TOELDW_0.bmp", "area" : "TZELDW_0.bmp" }, "dwellingLvl1": { "animation" : "TBELDW_0.def", "x" : 689, "y" : 250, "z" : 9, "campaignBonus" : "BoEdn_0.pcx", "border" : "TOELDW_0.bmp", "area" : "TZELDW_0.bmp" },
"dwellingLvl2": { "animation" : "TBELDW_1.def", "x" : 630, "y" : 50, "z" : 0, "border" : "TOELDW_1.bmp", "area" : "TZELDW_1.bmp" }, "dwellingLvl2": { "animation" : "TBELDW_1.def", "x" : 630, "y" : 50, "z" : 0, "campaignBonus" : "BoEdn_1.pcx", "border" : "TOELDW_1.bmp", "area" : "TZELDW_1.bmp" },
"dwellingLvl3": { "animation" : "TBELDW_2.def", "x" : 709, "y" : 210, "z" : 5, "border" : "TOELDW_2.bmp", "area" : "TZELDW_2.bmp" }, "dwellingLvl3": { "animation" : "TBELDW_2.def", "x" : 709, "y" : 210, "z" : 5, "campaignBonus" : "BoEdn_2.pcx", "border" : "TOELDW_2.bmp", "area" : "TZELDW_2.bmp" },
"dwellingLvl4": { "animation" : "TBELDW_3.def", "x" : 108, "y" : 131, "z" : 1, "border" : "TOELDW_3.bmp", "area" : "TZELDW_3.bmp" }, "dwellingLvl4": { "animation" : "TBELDW_3.def", "x" : 108, "y" : 131, "z" : 1, "campaignBonus" : "BoEdn_3.pcx", "border" : "TOELDW_3.bmp", "area" : "TZELDW_3.bmp" },
"dwellingLvl5": { "animation" : "TBELDW_4.def", "x" : 264, "y" : 168, "z" : 0, "border" : "TOELDW_4.bmp", "area" : "TZELDW_4.bmp" }, "dwellingLvl5": { "animation" : "TBELDW_4.def", "x" : 264, "y" : 168, "z" : 0, "campaignBonus" : "BoEdn_4.pcx", "border" : "TOELDW_4.bmp", "area" : "TZELDW_4.bmp" },
"dwellingLvl6": { "animation" : "TBELDW_5.def", "x" : 394, "y" : 283, "z" : 9, "border" : "TOELDW_5.bmp", "area" : "TZELDW_5.bmp" }, "dwellingLvl6": { "animation" : "TBELDW_5.def", "x" : 394, "y" : 283, "z" : 9, "campaignBonus" : "BoEdn_5.pcx", "border" : "TOELDW_5.bmp", "area" : "TZELDW_5.bmp" },
"dwellingLvl7": { "animation" : "TBELDW_6.def", "x" : 34, "y" : 16, "z" : 0, "border" : "TOELDW_6.bmp", "area" : "TZELDW_6.bmp" }, "dwellingLvl7": { "animation" : "TBELDW_6.def", "x" : 34, "y" : 16, "z" : 0, "campaignBonus" : "BoEdn_6.pcx", "border" : "TOELDW_6.bmp", "area" : "TZELDW_6.bmp" },
"dwellingUpLvl1": { "animation" : "TBELUP_0.def", "x" : 689, "y" : 250, "z" : 9, "border" : "TOELUP_0.bmp", "area" : "TZELUP_0.bmp" }, "dwellingUpLvl1": { "animation" : "TBELUP_0.def", "x" : 689, "y" : 250, "z" : 9, "campaignBonus" : "BoEup_0.pcx", "border" : "TOELUP_0.bmp", "area" : "TZELUP_0.bmp" },
"dwellingUpLvl2": { "animation" : "TBELUP_1.def", "x" : 630, "y" : 50, "z" : 0, "border" : "TOELUP_1.bmp", "area" : "TZELUP_1.bmp" }, "dwellingUpLvl2": { "animation" : "TBELUP_1.def", "x" : 630, "y" : 50, "z" : 0, "campaignBonus" : "BoEup_1.pcx", "border" : "TOELUP_1.bmp", "area" : "TZELUP_1.bmp" },
"dwellingUpLvl3": { "animation" : "TBELUP_2.def", "x" : 709, "y" : 210, "z" : 5, "border" : "TOELUP_2.bmp", "area" : "TZELUP_2.bmp" }, "dwellingUpLvl3": { "animation" : "TBELUP_2.def", "x" : 709, "y" : 210, "z" : 5, "campaignBonus" : "BoEup_2.pcx", "border" : "TOELUP_2.bmp", "area" : "TZELUP_2.bmp" },
"dwellingUpLvl4": { "animation" : "TBELUP_3.def", "x" : 108, "y" : 131, "z" : 1, "border" : "TOELUP_3.bmp", "area" : "TZELUP_3.bmp" }, "dwellingUpLvl4": { "animation" : "TBELUP_3.def", "x" : 108, "y" : 131, "z" : 1, "campaignBonus" : "BoEup_3.pcx", "border" : "TOELUP_3.bmp", "area" : "TZELUP_3.bmp" },
"dwellingUpLvl5": { "animation" : "TBELUP_4.def", "x" : 264, "y" : 168, "z" : 0, "border" : "TOELUP_4.bmp", "area" : "TZELUP_4.bmp" }, "dwellingUpLvl5": { "animation" : "TBELUP_4.def", "x" : 264, "y" : 168, "z" : 0, "campaignBonus" : "BoEup_4.pcx", "border" : "TOELUP_4.bmp", "area" : "TZELUP_4.bmp" },
"dwellingUpLvl6": { "animation" : "TBELUP_5.def", "x" : 394, "y" : 283, "z" : 9, "border" : "TOELUP_5.bmp", "area" : "TZELUP_5.bmp" }, "dwellingUpLvl6": { "animation" : "TBELUP_5.def", "x" : 394, "y" : 283, "z" : 9, "campaignBonus" : "BoEup_5.pcx", "border" : "TOELUP_5.bmp", "area" : "TZELUP_5.bmp" },
"dwellingUpLvl7": { "animation" : "TBELUP_6.def", "x" : 34, "y" : 0, "z" : 0, "border" : "TOELUP_6.bmp", "area" : "TZELUP_6.bmp" } "dwellingUpLvl7": { "animation" : "TBELUP_6.def", "x" : 34, "y" : 0, "z" : 0, "campaignBonus" : "BoEup_6.pcx", "border" : "TOELUP_6.bmp", "area" : "TZELUP_6.bmp" }
}, },
"musicTheme" : [ "music/ElemTown" ], "musicTheme" : [ "music/ElemTown" ],

View File

@@ -80,43 +80,43 @@
}, },
"structures" : "structures" :
{ {
"mageGuild1": { "animation" : "TBDNMAGE.def", "x" : 164, "y" : 119, "z" : -1, "border" : "TODMAG1.bmp", "area" : "TZDMAG1.bmp" }, "mageGuild1": { "animation" : "TBDNMAGE.def", "x" : 164, "y" : 119, "z" : -1, "campaignBonus" : "BoDmage1.pcx", "border" : "TODMAG1.bmp", "area" : "TZDMAG1.bmp" },
"mageGuild2": { "animation" : "TBDNMAG2.def", "x" : 164, "y" : 97, "z" : -1, "border" : "TODMAG2.bmp", "area" : "TZDMAG2.bmp" }, "mageGuild2": { "animation" : "TBDNMAG2.def", "x" : 164, "y" : 97, "z" : -1, "campaignBonus" : "BoDmage2.pcx", "border" : "TODMAG2.bmp", "area" : "TZDMAG2.bmp" },
"mageGuild3": { "animation" : "TBDNMAG3.def", "x" : 164, "y" : 77, "z" : -1, "border" : "TODMAG3.bmp", "area" : "TZDMAG3.bmp" }, "mageGuild3": { "animation" : "TBDNMAG3.def", "x" : 164, "y" : 77, "z" : -1, "campaignBonus" : "BoDmage3.pcx", "border" : "TODMAG3.bmp", "area" : "TZDMAG3.bmp" },
"mageGuild4": { "animation" : "TBDNMAG4.def", "x" : 164, "y" : 61, "z" : -1, "border" : "TODMAG4.bmp", "area" : "TZDMAG4.bmp" }, "mageGuild4": { "animation" : "TBDNMAG4.def", "x" : 164, "y" : 61, "z" : -1, "campaignBonus" : "BoDmage4.pcx", "border" : "TODMAG4.bmp", "area" : "TZDMAG4.bmp" },
"mageGuild5": { "animation" : "TBDNMAG5.def", "x" : 164, "y" : 15, "z" : -1, "border" : "TODMAG5.bmp", "area" : "TZDMAG5.bmp" }, "mageGuild5": { "animation" : "TBDNMAG5.def", "x" : 164, "y" : 15, "z" : -1, "campaignBonus" : "BoDmage5.pcx", "border" : "TODMAG5.bmp", "area" : "TZDMAG5.bmp" },
"tavern": { "animation" : "TBDNTVRN.def", "x" : 211, "y" : 297, "border" : "TODTAV.bmp", "area" : "TZDTAV.bmp" }, "tavern": { "animation" : "TBDNTVRN.def", "x" : 211, "y" : 297, "campaignBonus" : "BoDtav.pcx", "border" : "TODTAV.bmp", "area" : "TZDTAV.bmp" },
"fort": { "animation" : "TBDNCSTL.def", "x" : 363, "y" : 87, "z" : 2, "border" : "TODCAS1.bmp", "area" : "TZDCAS1.bmp" }, "fort": { "animation" : "TBDNCSTL.def", "x" : 363, "y" : 87, "z" : 2, "campaignBonus" : "BoDcas1.pcx", "border" : "TODCAS1.bmp", "area" : "TZDCAS1.bmp" },
"citadel": { "animation" : "TBDNCAS2.def", "x" : 363, "y" : 87, "z" : 2, "border" : "TODCAS2.bmp", "area" : "TZDCAS2.bmp" }, "citadel": { "animation" : "TBDNCAS2.def", "x" : 363, "y" : 87, "z" : 2, "campaignBonus" : "BoDcas2.pcx", "border" : "TODCAS2.bmp", "area" : "TZDCAS2.bmp" },
"castle": { "animation" : "TBDNCAS3.def", "x" : 363, "y" : 87, "z" : 2, "border" : "TODCAS3.bmp", "area" : "TZDCAS3.bmp" }, "castle": { "animation" : "TBDNCAS3.def", "x" : 363, "y" : 87, "z" : 2, "campaignBonus" : "BoDcas3.pcx", "border" : "TODCAS3.bmp", "area" : "TZDCAS3.bmp" },
"villageHall": { "animation" : "TBDNHALL.def", "x" : 0, "y" : 234, "border" : "TODHALL1.bmp", "area" : "TZDHALL1.bmp" }, "villageHall": { "animation" : "TBDNHALL.def", "x" : 0, "y" : 234, "campaignBonus" : "BoDhall1.pcx", "border" : "TODHALL1.bmp", "area" : "TZDHALL1.bmp" },
"townHall": { "animation" : "TBDNHAL2.def", "x" : 0, "y" : 223, "border" : "TODHALL2.bmp", "area" : "TZDHALL2.bmp" }, "townHall": { "animation" : "TBDNHAL2.def", "x" : 0, "y" : 223, "campaignBonus" : "BoDhall2.pcx", "border" : "TODHALL2.bmp", "area" : "TZDHALL2.bmp" },
"cityHall": { "animation" : "TBDNHAL3.def", "x" : 0, "y" : 223, "border" : "TODHALL3.bmp", "area" : "TZDHALL3.bmp" }, "cityHall": { "animation" : "TBDNHAL3.def", "x" : 0, "y" : 223, "campaignBonus" : "BoDhall3.pcx", "border" : "TODHALL3.bmp", "area" : "TZDHALL3.bmp" },
"capitol": { "animation" : "TBDNHAL4.def", "x" : 0, "y" : 203, "border" : "TODHALL4.bmp", "area" : "TZDHALL4.bmp" }, "capitol": { "animation" : "TBDNHAL4.def", "x" : 0, "y" : 203, "campaignBonus" : "BoDhall4.pcx", "border" : "TODHALL4.bmp", "area" : "TZDHALL4.bmp" },
"marketplace": { "animation" : "TBDNMARK.def", "x" : 590, "y" : 318, "z" : -2, "border" : "TODMARK.bmp", "area" : "TZDMARK.bmp" }, "marketplace": { "animation" : "TBDNMARK.def", "x" : 590, "y" : 318, "z" : -2, "campaignBonus" : "BoDmark1.pcx", "border" : "TODMARK.bmp", "area" : "TZDMARK.bmp" },
"resourceSilo": { "animation" : "TBDNSILO.def", "x" : 624, "y" : 335, "z" : 1, "border" : "TODSILO.bmp", "area" : "TZDSILO.bmp" }, "resourceSilo": { "animation" : "TBDNSILO.def", "x" : 624, "y" : 335, "z" : 1, "campaignBonus" : "BoDmark2.pcx", "border" : "TODSILO.bmp", "area" : "TZDSILO.bmp" },
"blacksmith": { "animation" : "TBDNBLAK.def", "x" : 544, "y" : 248, "z" : -3, "border" : "TODSMITH.bmp", "area" : "TZDSMITH.bmp" }, "blacksmith": { "animation" : "TBDNBLAK.def", "x" : 544, "y" : 248, "z" : -3, "campaignBonus" : "BoDsmith.pcx", "border" : "TODSMITH.bmp", "area" : "TZDSMITH.bmp" },
"special1": { "animation" : "TBDNSPEC.def", "x" : 746, "y" : 294, "z" : 1, "border" : "TODART.bmp", "area" : "TZDART.bmp" }, "special1": { "animation" : "TBDNSPEC.def", "x" : 746, "y" : 294, "z" : 1, "campaignBonus" : "BoDmarkA.pcx", "border" : "TODART.bmp", "area" : "TZDART.bmp" },
"horde1": { "animation" : "TBDNHRD1.def", "x" : 0, "y" : 326, "z" : 2, "border" : "TODTR1HA.bmp", "area" : "TZDTR1HA.bmp", "hidden" : true }, "horde1": { "animation" : "TBDNHRD1.def", "x" : 0, "y" : 326, "z" : 2, "campaignBonus" : "BoDtrogH.pcx", "border" : "TODTR1HA.bmp", "area" : "TZDTR1HA.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBDNHRD2.def", "x" : 0, "y" : 300, "z" : 2, "border" : "TODTR2HA.bmp", "area" : "TZDTR2HA.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBDNHRD2.def", "x" : 0, "y" : 300, "z" : 2, "campaignBonus" : "BoDtrogH.pcx", "border" : "TODTR2HA.bmp", "area" : "TZDTR2HA.bmp", "hidden" : true, "builds" : "horde1" },
"special2": { "animation" : "TBDNEXT0.def", "x" : 131, "y" : 26 , "border" : "TODVOR1A.bmp", "area" : "TZDVOR1A.bmp" }, "special2": { "animation" : "TBDNEXT0.def", "x" : 131, "y" : 26 , "campaignBonus" : "BoDvort.pcx", "border" : "TODVOR1A.bmp", "area" : "TZDVOR1A.bmp" },
"special3": { "animation" : "TBDNEXT1.def", "x" : 687, "y" : 177, "border" : "TODPORTA.bmp", "area" : "TZDPORTA.bmp" }, "special3": { "animation" : "TBDNEXT1.def", "x" : 687, "y" : 177, "campaignBonus" : "BoDport.pcx", "border" : "TODPORTA.bmp", "area" : "TZDPORTA.bmp" },
"special4": { "animation" : "TBDNEXT2.def", "x" : 313, "y" : 298, "border" : "TODACAD.bmp", "area" : "TZDACAD.bmp" }, "special4": { "animation" : "TBDNEXT2.def", "x" : 313, "y" : 298, "campaignBonus" : "BoDacad.pcx", "border" : "TODACAD.bmp", "area" : "TZDACAD.bmp" },
"grail": { "animation" : "TBDNHOLY.def", "x" : 562, "y" : 24, "z" : 1, "border" : "TODHOLY.bmp", "area" : "TZDHOLY.bmp" }, "grail": { "animation" : "TBDNHOLY.def", "x" : 562, "y" : 24, "z" : 1, "campaignBonus" : "BoDholy.pcx", "border" : "TODHOLY.bmp", "area" : "TZDHOLY.bmp" },
"dwellingLvl1": { "animation" : "TBDNDW_0.def", "x" : 0, "y" : 326, "z" : 2, "border" : "TODTRG1A.bmp", "area" : "TZDTRG1A.bmp" }, "dwellingLvl1": { "animation" : "TBDNDW_0.def", "x" : 0, "y" : 326, "z" : 2, "campaignBonus" : "BoDtrog1.pcx", "border" : "TODTRG1A.bmp", "area" : "TZDTRG1A.bmp" },
"dwellingLvl2": { "animation" : "TBDNDW_1.def", "x" : 0, "y" : 26, "border" : "TODHAR1.bmp", "area" : "TZDHAR1.bmp" }, "dwellingLvl2": { "animation" : "TBDNDW_1.def", "x" : 0, "y" : 26, "campaignBonus" : "BoDharp1.pcx", "border" : "TODHAR1.bmp", "area" : "TZDHAR1.bmp" },
"dwellingLvl3": { "animation" : "TBDNDW_2.def", "x" : 118, "y" : 308, "z" : 1, "border" : "TODBEH1A.bmp", "area" : "TZDBEH1A.bmp" }, "dwellingLvl3": { "animation" : "TBDNDW_2.def", "x" : 118, "y" : 308, "z" : 1, "campaignBonus" : "BoDbeh1.pcx", "border" : "TODBEH1A.bmp", "area" : "TZDBEH1A.bmp" },
"dwellingLvl4": { "animation" : "TBDNDW_3.def", "x" : 300, "y" : 29, "z" : -1, "border" : "TODMED1.bmp", "area" : "TZDMED1.bmp" }, "dwellingLvl4": { "animation" : "TBDNDW_3.def", "x" : 300, "y" : 29, "z" : -1, "campaignBonus" : "BoDmedu1.pcx", "border" : "TODMED1.bmp", "area" : "TZDMED1.bmp" },
"dwellingLvl5": { "animation" : "TBDNDW_4.def", "x" : 551, "y" : 186, "z" : 1, "border" : "TODMIN1.bmp", "area" : "TZDMIN1.bmp" }, "dwellingLvl5": { "animation" : "TBDNDW_4.def", "x" : 551, "y" : 186, "z" : 1, "campaignBonus" : "BoDmino1.pcx", "border" : "TODMIN1.bmp", "area" : "TZDMIN1.bmp" },
"dwellingLvl6": { "animation" : "TBDNDW_5.def", "x" : 270, "y" : 253, "z" : -1, "border" : "TODMAN1.bmp", "area" : "TZDMAN1.bmp" }, "dwellingLvl6": { "animation" : "TBDNDW_5.def", "x" : 270, "y" : 253, "z" : -1, "campaignBonus" : "BoDmant1.pcx", "border" : "TODMAN1.bmp", "area" : "TZDMAN1.bmp" },
"dwellingLvl7": { "animation" : "TBDNDW_6.def", "x" : 550, "y" : 0, "z" : -1, "border" : "TODDRA1A.bmp", "area" : "TZDDRA1A.bmp" }, "dwellingLvl7": { "animation" : "TBDNDW_6.def", "x" : 550, "y" : 0, "z" : -1, "campaignBonus" : "BoDdrag1.pcx", "border" : "TODDRA1A.bmp", "area" : "TZDDRA1A.bmp" },
"dwellingUpLvl1": { "animation" : "TBDNUP_0.def", "x" : 0, "y" : 300, "z" : 2, "border" : "TODTRG2A.bmp", "area" : "TZDTRG2A.bmp" }, "dwellingUpLvl1": { "animation" : "TBDNUP_0.def", "x" : 0, "y" : 300, "z" : 2, "campaignBonus" : "BoDtrog2.pcx", "border" : "TODTRG2A.bmp", "area" : "TZDTRG2A.bmp" },
"dwellingUpLvl2": { "animation" : "TBDNUP_1.def", "x" : 0, "y" : 26, "border" : "TODHAR2.bmp", "area" : "TZDHAR2.bmp" }, "dwellingUpLvl2": { "animation" : "TBDNUP_1.def", "x" : 0, "y" : 26, "campaignBonus" : "BoDharp2.pcx", "border" : "TODHAR2.bmp", "area" : "TZDHAR2.bmp" },
"dwellingUpLvl3": { "animation" : "TBDNUP_2.def", "x" : 118, "y" : 256, "z" : 1, "border" : "TODBEH2A.bmp", "area" : "TZDBEH2A.bmp" }, "dwellingUpLvl3": { "animation" : "TBDNUP_2.def", "x" : 118, "y" : 256, "z" : 1, "campaignBonus" : "BoDbeh2.pcx", "border" : "TODBEH2A.bmp", "area" : "TZDBEH2A.bmp" },
"dwellingUpLvl4": { "animation" : "TBDNUP_3.def", "x" : 300, "y" : 29, "z" : -1, "border" : "TODMED2.bmp", "area" : "TZDMED2.bmp" }, "dwellingUpLvl4": { "animation" : "TBDNUP_3.def", "x" : 300, "y" : 29, "z" : -1, "campaignBonus" : "BoDmedu2.pcx", "border" : "TODMED2.bmp", "area" : "TZDMED2.bmp" },
"dwellingUpLvl5": { "animation" : "TBDNUP_4.def", "x" : 519, "y" : 172, "z" : 1, "border" : "TODMIN2.bmp", "area" : "TZDMIN2.bmp" }, "dwellingUpLvl5": { "animation" : "TBDNUP_4.def", "x" : 519, "y" : 172, "z" : 1, "campaignBonus" : "BoDmino2.pcx", "border" : "TODMIN2.bmp", "area" : "TZDMIN2.bmp" },
"dwellingUpLvl6": { "animation" : "TBDNUP_5.def", "x" : 270, "y" : 253, "z" : -1, "border" : "TODMAN2.bmp", "area" : "TZDMAN2.bmp" }, "dwellingUpLvl6": { "animation" : "TBDNUP_5.def", "x" : 270, "y" : 253, "z" : -1, "campaignBonus" : "BoDmant2.pcx", "border" : "TODMAN2.bmp", "area" : "TZDMAN2.bmp" },
"dwellingUpLvl7": { "animation" : "TBDNUP_6.def", "x" : 550, "y" : 0, "z" : -1, "border" : "TODDRA2A.bmp", "area" : "TZDDRA2A.bmp" } "dwellingUpLvl7": { "animation" : "TBDNUP_6.def", "x" : 550, "y" : 0, "z" : -1, "campaignBonus" : "BoDdrag2.pcx", "border" : "TODDRA2A.bmp", "area" : "TZDDRA2A.bmp" }
}, },
"musicTheme" : [ "music/Dungeon" ], "musicTheme" : [ "music/Dungeon" ],

View File

@@ -80,43 +80,43 @@
"structures" : "structures" :
{ {
"extraAnimation": { "animation" : "TBFREXT2.def", "x" : 372, "y" : 227, "z" : -1 }, "extraAnimation": { "animation" : "TBFREXT2.def", "x" : 372, "y" : 227, "z" : -1 },
"mageGuild1": { "animation" : "TBFRMAGE.def", "x" : 0, "y" : 200, "z" : -1, "border" : "TOFMAG1A.bmp", "area" : "TZFMAG1A.bmp" }, "mageGuild1": { "animation" : "TBFRMAGE.def", "x" : 0, "y" : 200, "z" : -1, "campaignBonus" : "BoFmage1.pcx", "border" : "TOFMAG1A.bmp", "area" : "TZFMAG1A.bmp" },
"mageGuild2": { "animation" : "TBFRMAG2.def", "x" : 0, "y" : 177, "z" : -1, "border" : "TOFMAG2A.bmp", "area" : "TZFMAG2A.bmp" }, "mageGuild2": { "animation" : "TBFRMAG2.def", "x" : 0, "y" : 177, "z" : -1, "campaignBonus" : "BoFmage2.pcx", "border" : "TOFMAG2A.bmp", "area" : "TZFMAG2A.bmp" },
"mageGuild3": { "animation" : "TBFRMAG3.def", "x" : 0, "y" : 135, "z" : -1, "border" : "TOFMAG3A.bmp", "area" : "TZFMAG3A.bmp" }, "mageGuild3": { "animation" : "TBFRMAG3.def", "x" : 0, "y" : 135, "z" : -1, "campaignBonus" : "BoFmage3.pcx", "border" : "TOFMAG3A.bmp", "area" : "TZFMAG3A.bmp" },
"tavern": { "animation" : "TBFRTVRN.def", "x" : 634, "y" : 219, "z" : 3, "border" : "TOFTAVA.bmp", "area" : "TZFTAVA.bmp" }, "tavern": { "animation" : "TBFRTVRN.def", "x" : 634, "y" : 219, "z" : 3, "campaignBonus" : "BoFtav.pcx", "border" : "TOFTAVA.bmp", "area" : "TZFTAVA.bmp" },
"shipyard": { "animation" : "TBFRDOCK.def", "x" : 197, "y" : 294, "z" : 1, "border" : "TOFDCK2.bmp", "area" : "TZFDCK2.bmp" }, "shipyard": { "animation" : "TBFRDOCK.def", "x" : 197, "y" : 294, "z" : 1, "campaignBonus" : "BoFship.pcx", "border" : "TOFDCK2.bmp", "area" : "TZFDCK2.bmp" },
"fort": { "animation" : "TBFRCSTL.def", "x" : 368, "y" : 118, "z" : -2, "border" : "TOFCAS1.bmp", "area" : "TZFCAS1.bmp" }, "fort": { "animation" : "TBFRCSTL.def", "x" : 368, "y" : 118, "z" : -2, "campaignBonus" : "BoFcast1.pcx", "border" : "TOFCAS1.bmp", "area" : "TZFCAS1.bmp" },
"citadel": { "animation" : "TBFRCAS2.def", "x" : 368, "y" : 98, "z" : -2, "border" : "TOFCAS2.bmp", "area" : "TZFCAS2.bmp" }, "citadel": { "animation" : "TBFRCAS2.def", "x" : 368, "y" : 98, "z" : -2, "campaignBonus" : "BoFcast2.pcx", "border" : "TOFCAS2.bmp", "area" : "TZFCAS2.bmp" },
"castle": { "animation" : "TBFRCAS3.def", "x" : 368, "y" : 55, "z" : -2, "border" : "TOFCAS3.bmp", "area" : "TZFCAS3.bmp" }, "castle": { "animation" : "TBFRCAS3.def", "x" : 368, "y" : 55, "z" : -2, "campaignBonus" : "BoFcast3.pcx", "border" : "TOFCAS3.bmp", "area" : "TZFCAS3.bmp" },
"villageHall": { "animation" : "TBFRHALL.def", "x" : 166, "y" : 128, "z" : 3, "border" : "TOFHAL1.bmp", "area" : "TZFHAL1.bmp" }, "villageHall": { "animation" : "TBFRHALL.def", "x" : 166, "y" : 128, "z" : 3, "campaignBonus" : "BoFhall1.pcx", "border" : "TOFHAL1.bmp", "area" : "TZFHAL1.bmp" },
"townHall": { "animation" : "TBFRHAL2.def", "x" : 166, "y" : 97, "z" : 3, "border" : "TOFHAL2.bmp", "area" : "TZFHAL2.bmp" }, "townHall": { "animation" : "TBFRHAL2.def", "x" : 166, "y" : 97, "z" : 3, "campaignBonus" : "BoFhall2.pcx", "border" : "TOFHAL2.bmp", "area" : "TZFHAL2.bmp" },
"cityHall": { "animation" : "TBFRHAL3.def", "x" : 166, "y" : 51, "z" : 3, "border" : "TOFHAL3.bmp", "area" : "TZFHAL3.bmp" }, "cityHall": { "animation" : "TBFRHAL3.def", "x" : 166, "y" : 51, "z" : 3, "campaignBonus" : "BoFhall3.pcx", "border" : "TOFHAL3.bmp", "area" : "TZFHAL3.bmp" },
"capitol": { "animation" : "TBFRHAL4.def", "x" : 166, "y" : 2, "z" : 3, "border" : "TOFHAL4.bmp", "area" : "TZFHAL4.bmp" }, "capitol": { "animation" : "TBFRHAL4.def", "x" : 166, "y" : 2, "z" : 3, "campaignBonus" : "BoFhall4.pcx", "border" : "TOFHAL4.bmp", "area" : "TZFHAL4.bmp" },
"marketplace": { "animation" : "TBFRMARK.def", "x" : 382, "y" : 219, "z" : 4, "border" : "TOFMRKAA.bmp", "area" : "TZFMRKAA.bmp" }, "marketplace": { "animation" : "TBFRMARK.def", "x" : 382, "y" : 219, "z" : 4, "campaignBonus" : "BoFmark1.pcx", "border" : "TOFMRKAA.bmp", "area" : "TZFMRKAA.bmp" },
"resourceSilo": { "animation" : "TBFRSILO.def", "x" : 448, "y" : 210, "z" : 2, "border" : "TOFMRK2A.bmp", "area" : "TZFMRK2A.bmp" }, "resourceSilo": { "animation" : "TBFRSILO.def", "x" : 448, "y" : 210, "z" : 2, "campaignBonus" : "BoFmark2.pcx", "border" : "TOFMRK2A.bmp", "area" : "TZFMRK2A.bmp" },
"blacksmith": { "animation" : "TBFRBLAK.def", "x" : 360, "y" : 160, "z" : 1, "border" : "TOFAIDA.bmp", "area" : "TZFAIDA.bmp" }, "blacksmith": { "animation" : "TBFRBLAK.def", "x" : 360, "y" : 160, "z" : 1, "campaignBonus" : "BoFapoth.pcx", "border" : "TOFAIDA.bmp", "area" : "TZFAIDA.bmp" },
"special1": { "animation" : "TBFRSPEC.def", "x" : 703, "y" : 36, "border" : "TOFCAGE.bmp", "area" : "TZFCAGE.bmp" }, "special1": { "animation" : "TBFRSPEC.def", "x" : 703, "y" : 36, "campaignBonus" : "BoFcage.pcx", "border" : "TOFCAGE.bmp", "area" : "TZFCAGE.bmp" },
"horde1": { "animation" : "TBFRHRD1.def", "x" : 641, "y" : 121, "z" : 1, "border" : "TOFGNL1H.bmp", "area" : "TZFGNL1H.bmp", "hidden" : true }, "horde1": { "animation" : "TBFRHRD1.def", "x" : 641, "y" : 121, "z" : 1, "campaignBonus" : "BoFgno1h.pcx", "border" : "TOFGNL1H.bmp", "area" : "TZFGNL1H.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBFRHRD2.def", "x" : 641, "y" : 68, "z" : 1, "border" : "TOFGNL2H.bmp", "area" : "TZFGNL2H.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBFRHRD2.def", "x" : 641, "y" : 68, "z" : 1, "campaignBonus" : "BoFgno2h.pcx", "border" : "TOFGNL2H.bmp", "area" : "TZFGNL2H.bmp", "hidden" : true, "builds" : "horde1" },
"ship": { "animation" : "TBFRBOAT.def", "x" : 197, "y" : 294, "z" : 1, "border" : "TOFDCK1.bmp", "area" : "TZFDCK1.bmp", "hidden" : true }, "ship": { "animation" : "TBFRBOAT.def", "x" : 197, "y" : 294, "z" : 1, "border" : "TOFDCK1.bmp", "area" : "TZFDCK1.bmp", "hidden" : true },
"special2": { "animation" : "TBFREXT0.def", "x" : 341, "y" : 174, "z" : 0, "border" : "TOFCASD.bmp", "area" : "TZFCASD.bmp" }, "special2": { "animation" : "TBFREXT0.def", "x" : 341, "y" : 174, "z" : 0, "campaignBonus" : "BoFcastD.pcx", "border" : "TOFCASD.bmp", "area" : "TZFCASD.bmp" },
"special3": { "animation" : "TBFREXT1.def", "x" : 349, "y" : 79, "z" : -3, "border" : "TOFCASA.bmp", "area" : "TZFCASA.bmp" }, "special3": { "animation" : "TBFREXT1.def", "x" : 349, "y" : 79, "z" : -3, "campaignBonus" : "BoFcastA.pcx", "border" : "TOFCASA.bmp", "area" : "TZFCASA.bmp" },
"grail": { "animation" : "TBFRHOLY.def", "x" : 468, "y" : 260, "z" : 5, "border" : "TOFHLYAA.bmp", "area" : "TZFHLYAA.bmp" }, "grail": { "animation" : "TBFRHOLY.def", "x" : 468, "y" : 260, "z" : 5, "campaignBonus" : "BoFgrail.pcx", "border" : "TOFHLYAA.bmp", "area" : "TZFHLYAA.bmp" },
"extraCapitol": { "animation" : "TBFRWTRW.def", "x" : 320, "y" : 141, "z" : 2 }, "extraCapitol": { "animation" : "TBFRWTRW.def", "x" : 320, "y" : 141, "z" : 2 },
"dwellingLvl1": { "animation" : "TBFRDW_0.def", "x" : 641, "y" : 168, "z" : 1, "border" : "TOFGNL1.bmp", "area" : "TZFGNL1.bmp" }, "dwellingLvl1": { "animation" : "TBFRDW_0.def", "x" : 641, "y" : 168, "z" : 1, "campaignBonus" : "BoFgnol1.pcx", "border" : "TOFGNL1.bmp", "area" : "TZFGNL1.bmp" },
"dwellingLvl2": { "animation" : "TBFRDW_1.def", "x" : 141, "y" : 178, "border" : "TOFLIZ1.bmp", "area" : "TZFLIZ1.bmp" }, "dwellingLvl2": { "animation" : "TBFRDW_1.def", "x" : 141, "y" : 178, "campaignBonus" : "BoFlizr1.pcx", "border" : "TOFLIZ1.bmp", "area" : "TZFLIZ1.bmp" },
"dwellingLvl3": { "animation" : "TBFRDW_3.def", "x" : 192, "y" : 85, "border" : "TOFFLY1A.bmp", "area" : "TZFFLY1A.bmp" }, "dwellingLvl3": { "animation" : "TBFRDW_3.def", "x" : 192, "y" : 85, "campaignBonus" : "BoFfly1.pcx", "border" : "TOFFLY1A.bmp", "area" : "TZFFLY1A.bmp" },
"dwellingLvl4": { "animation" : "TBFRDW_4.def", "x" : 0, "y" : 292, "z" : 1, "border" : "TOFBAS1.bmp", "area" : "TZFBAS1.bmp" }, "dwellingLvl4": { "animation" : "TBFRDW_4.def", "x" : 0, "y" : 292, "z" : 1, "campaignBonus" : "BoFbas1.pcx", "border" : "TOFBAS1.bmp", "area" : "TZFBAS1.bmp" },
"dwellingLvl5": { "animation" : "TBFRDW_2.def", "x" : 15, "y" : 127, "z" : -2, "border" : "TOFGOR1.bmp", "area" : "TZFGOR1.bmp" }, "dwellingLvl5": { "animation" : "TBFRDW_2.def", "x" : 15, "y" : 127, "z" : -2, "campaignBonus" : "BoFgorg1.pcx", "border" : "TOFGOR1.bmp", "area" : "TZFGOR1.bmp" },
"dwellingLvl6": { "animation" : "TBFRDW_5.def", "x" : 0, "y" : 4, "border" : "TOFWYV1.bmp", "area" : "TZFWYV1.bmp" }, "dwellingLvl6": { "animation" : "TBFRDW_5.def", "x" : 0, "y" : 4, "campaignBonus" : "BoFwyvr1.pcx", "border" : "TOFWYV1.bmp", "area" : "TZFWYV1.bmp" },
"dwellingLvl7": { "animation" : "TBFRDW_6.def", "x" : 612, "y" : 291, "z" : 5, "border" : "TOFHYD1A.bmp", "area" : "TZFHYD1A.bmp" }, "dwellingLvl7": { "animation" : "TBFRDW_6.def", "x" : 612, "y" : 291, "z" : 5, "campaignBonus" : "BoFhydr1.pcx", "border" : "TOFHYD1A.bmp", "area" : "TZFHYD1A.bmp" },
"dwellingUpLvl1": { "animation" : "TBFRUP_0.def", "x" : 641, "y" : 107, "z" : 1, "border" : "TOFGNL2.bmp", "area" : "TZFGNL2.bmp" }, "dwellingUpLvl1": { "animation" : "TBFRUP_0.def", "x" : 641, "y" : 107, "z" : 1, "campaignBonus" : "BoFgnol2.pcx", "border" : "TOFGNL2.bmp", "area" : "TZFGNL2.bmp" },
"dwellingUpLvl2": { "animation" : "TBFRUP_1.def", "x" : 125, "y" : 163, "border" : "TOFLIZ2.bmp", "area" : "TZFLIZ2.bmp" }, "dwellingUpLvl2": { "animation" : "TBFRUP_1.def", "x" : 125, "y" : 163, "campaignBonus" : "BoFlizr2.pcx", "border" : "TOFLIZ2.bmp", "area" : "TZFLIZ2.bmp" },
"dwellingUpLvl3": { "animation" : "TBFRUP_3.def", "x" : 159, "y" : 19, "border" : "TOFFLY2A.bmp", "area" : "TZFFLY2A.bmp" }, "dwellingUpLvl3": { "animation" : "TBFRUP_3.def", "x" : 159, "y" : 19, "campaignBonus" : "BoFfly2.pcx", "border" : "TOFFLY2A.bmp", "area" : "TZFFLY2A.bmp" },
"dwellingUpLvl4": { "animation" : "TBFRUP_4.def", "x" : 0, "y" : 257, "z" : 1, "border" : "TOFBAS2.bmp", "area" : "TZFBAS2.bmp" }, "dwellingUpLvl4": { "animation" : "TBFRUP_4.def", "x" : 0, "y" : 257, "z" : 1, "campaignBonus" : "BoFbas2.pcx", "border" : "TOFBAS2.bmp", "area" : "TZFBAS2.bmp" },
"dwellingUpLvl5": { "animation" : "TBFRUP_2.def", "x" : 15, "y" : 69, "z" : -2, "border" : "TOFGOR2.bmp", "area" : "TZFGOR2.bmp" }, "dwellingUpLvl5": { "animation" : "TBFRUP_2.def", "x" : 15, "y" : 69, "z" : -2, "campaignBonus" : "BoFgorg2.pcx", "border" : "TOFGOR2.bmp", "area" : "TZFGOR2.bmp" },
"dwellingUpLvl6": { "animation" : "TBFRUP_5.def", "x" : 0, "y" : 4, "border" : "TOFWYV2.bmp", "area" : "TZFWYV2.bmp" }, "dwellingUpLvl6": { "animation" : "TBFRUP_5.def", "x" : 0, "y" : 4, "campaignBonus" : "BoFwyvr2.pcx", "border" : "TOFWYV2.bmp", "area" : "TZFWYV2.bmp" },
"dwellingUpLvl7": { "animation" : "TBFRUP_6.def", "x" : 587, "y" : 263, "z" : 5, "border" : "TOFHYD2A.bmp", "area" : "TZFHYD2A.bmp" } "dwellingUpLvl7": { "animation" : "TBFRUP_6.def", "x" : 587, "y" : 263, "z" : 5, "campaignBonus" : "BoFhydr2.pcx", "border" : "TOFHYD2A.bmp", "area" : "TZFHYD2A.bmp" }
}, },
"musicTheme" : [ "music/FortressTown" ], "musicTheme" : [ "music/FortressTown" ],

View File

@@ -80,44 +80,44 @@
}, },
"structures" : "structures" :
{ {
"mageGuild1": { "animation" : "TBINMAGE.def", "x" : 667, "y" : 127, "border" : "TOIMAG1A.bmp", "area" : "TZIMAG1A.bmp" }, "mageGuild1": { "animation" : "TBINMAGE.def", "x" : 667, "y" : 127, "campaignBonus" : "BoIMag1.pcx", "border" : "TOIMAG1A.bmp", "area" : "TZIMAG1A.bmp" },
"mageGuild2": { "animation" : "TBINMAG2.def", "x" : 667, "y" : 101, "border" : "TOIMAG2A.bmp", "area" : "TZIMAG2A.bmp" }, "mageGuild2": { "animation" : "TBINMAG2.def", "x" : 667, "y" : 101, "campaignBonus" : "BoIMag2.pcx", "border" : "TOIMAG2A.bmp", "area" : "TZIMAG2A.bmp" },
"mageGuild3": { "animation" : "TBINMAG3.def", "x" : 667, "y" : 83, "border" : "TOIMAG3A.bmp", "area" : "TZIMAG3A.bmp" }, "mageGuild3": { "animation" : "TBINMAG3.def", "x" : 667, "y" : 83, "campaignBonus" : "BoIMag3.pcx", "border" : "TOIMAG3A.bmp", "area" : "TZIMAG3A.bmp" },
"mageGuild4": { "animation" : "TBINMAG4.def", "x" : 667, "y" : 56, "border" : "TOIMAG4A.bmp", "area" : "TZIMAG4A.bmp" }, "mageGuild4": { "animation" : "TBINMAG4.def", "x" : 667, "y" : 56, "campaignBonus" : "BoIMag4.pcx", "border" : "TOIMAG4A.bmp", "area" : "TZIMAG4A.bmp" },
"mageGuild5": { "animation" : "TBINMAG5.def", "x" : 667, "y" : 35, "border" : "TOIMAG5A.bmp", "area" : "TZIMAG5A.bmp" }, "mageGuild5": { "animation" : "TBINMAG5.def", "x" : 667, "y" : 35, "campaignBonus" : "BoIMag5.pcx", "border" : "TOIMAG5A.bmp", "area" : "TZIMAG5A.bmp" },
"tavern": { "animation" : "TBINTVRN.def", "x" : 105, "y" : 219, "z" : 1, "border" : "TOITAV.bmp", "area" : "TZITAV.bmp" }, "tavern": { "animation" : "TBINTVRN.def", "x" : 105, "y" : 219, "z" : 1, "campaignBonus" : "BoITav.pcx", "border" : "TOITAV.bmp", "area" : "TZITAV.bmp" },
"fort": { "animation" : "TBINCSTL.def", "x" : 222, "y" : 44, "z" : -2, "border" : "TOICAS2A.bmp", "area" : "TZICAS2A.bmp" }, "fort": { "animation" : "TBINCSTL.def", "x" : 222, "y" : 44, "z" : -2, "campaignBonus" : "BoICas1.pcx", "border" : "TOICAS2A.bmp", "area" : "TZICAS2A.bmp" },
"citadel": { "animation" : "TBINCAS2.def", "x" : 222, "y" : 44, "z" : -2, "border" : "TOICAS1A.bmp", "area" : "TZICAS1A.bmp" }, "citadel": { "animation" : "TBINCAS2.def", "x" : 222, "y" : 44, "z" : -2, "campaignBonus" : "BoICas2.pcx", "border" : "TOICAS1A.bmp", "area" : "TZICAS1A.bmp" },
"castle": { "animation" : "TBINCAS3.def", "x" : 222, "y" : 18, "z" : -2, "border" : "TOICAS3A.bmp", "area" : "TZICAS3A.bmp" }, "castle": { "animation" : "TBINCAS3.def", "x" : 222, "y" : 18, "z" : -2, "campaignBonus" : "BoICas3.pcx", "border" : "TOICAS3A.bmp", "area" : "TZICAS3A.bmp" },
"villageHall": { "animation" : "TBINHALL.def", "x" : 0, "y" : 174, "border" : "TOIHAL1.bmp", "area" : "TZIHAL1.bmp" }, "villageHall": { "animation" : "TBINHALL.def", "x" : 0, "y" : 174, "campaignBonus" : "BoIHal1.pcx", "border" : "TOIHAL1.bmp", "area" : "TZIHAL1.bmp" },
"townHall": { "animation" : "TBINHAL2.def", "x" : 0, "y" : 174, "border" : "TOIHAL2.bmp", "area" : "TZIHAL2.bmp" }, "townHall": { "animation" : "TBINHAL2.def", "x" : 0, "y" : 174, "campaignBonus" : "BoIHal2.pcx", "border" : "TOIHAL2.bmp", "area" : "TZIHAL2.bmp" },
"cityHall": { "animation" : "TBINHAL3.def", "x" : 0, "y" : 174, "border" : "TOIHAL3.bmp", "area" : "TZIHAL3.bmp" }, "cityHall": { "animation" : "TBINHAL3.def", "x" : 0, "y" : 174, "campaignBonus" : "BoIHal3.pcx", "border" : "TOIHAL3.bmp", "area" : "TZIHAL3.bmp" },
"capitol": { "animation" : "TBINHAL4.def", "x" : 0, "y" : 131, "border" : "TOIHAL4.bmp", "area" : "TZIHAL4.bmp" }, "capitol": { "animation" : "TBINHAL4.def", "x" : 0, "y" : 131, "campaignBonus" : "BoIHal4.pcx", "border" : "TOIHAL4.bmp", "area" : "TZIHAL4.bmp" },
"marketplace": { "animation" : "TBINMARK.def", "x" : 511, "y" : 301, "z" : 4, "border" : "TOIMAR1.bmp", "area" : "TZIMAR1.bmp" }, "marketplace": { "animation" : "TBINMARK.def", "x" : 511, "y" : 301, "z" : 4, "campaignBonus" : "BoIMrk1.pcx", "border" : "TOIMAR1.bmp", "area" : "TZIMAR1.bmp" },
"resourceSilo": { "animation" : "TBINSILO.def", "x" : 497, "y" : 337, "z" : 5, "border" : "TOIMAR2.bmp", "area" : "TZIMAR2.bmp" }, "resourceSilo": { "animation" : "TBINSILO.def", "x" : 497, "y" : 337, "z" : 5, "campaignBonus" : "BoIMrk2.pcx", "border" : "TOIMAR2.bmp", "area" : "TZIMAR2.bmp" },
"blacksmith": { "animation" : "TBINBLAK.def", "x" : 684, "y" : 253, "z" : 1, "border" : "TOIBLKA.bmp", "area" : "TZIBLKA.bmp" }, "blacksmith": { "animation" : "TBINBLAK.def", "x" : 684, "y" : 253, "z" : 1, "campaignBonus" : "BoIBlak.pcx", "border" : "TOIBLKA.bmp", "area" : "TZIBLKA.bmp" },
"horde1": { "animation" : "TBINHRD1.def", "x" : 614, "y" : 256, "border" : "TOIMP1HA.bmp", "area" : "TZIMP1HA.bmp", "hidden" : true }, "horde1": { "animation" : "TBINHRD1.def", "x" : 614, "y" : 256, "campaignBonus" : "BoIImpH.pcx", "border" : "TOIMP1HA.bmp", "area" : "TZIMP1HA.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBINHRD2.def", "x" : 614, "y" : 221, "border" : "TOIMP2HA.bmp", "area" : "TZIMP2HA.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBINHRD2.def", "x" : 614, "y" : 221, "campaignBonus" : "BoIImp2H.pcx", "border" : "TOIMP2HA.bmp", "area" : "TZIMP2HA.bmp", "hidden" : true, "builds" : "horde1" },
"special2": { "animation" : "TBINEXT0.def", "x" : 297, "y" : 0, "z" : -4, "border" : "TOICAB1A.bmp", "area" : "TZICAB1A.bmp" }, "special2": { "animation" : "TBINEXT0.def", "x" : 297, "y" : 0, "z" : -4, "campaignBonus" : "BoICasB.pcx", "border" : "TOICAB1A.bmp", "area" : "TZICAB1A.bmp" },
"special3": { "animation" : "TBINEXT1.def", "x" : 227, "y" : 174, "z" : -1, "border" : "TOICASGA.bmp", "area" : "TZICASGA.bmp" }, "special3": { "animation" : "TBINEXT1.def", "x" : 227, "y" : 174, "z" : -1, "campaignBonus" : "BoICasG.pcx", "border" : "TOICASGA.bmp", "area" : "TZICASGA.bmp" },
"special4": { "animation" : "TBINEXT2.def", "x" : 593, "y" : 104, "z" : -1, "border" : "TOIPAIN.bmp", "area" : "TZIPAIN.bmp" }, "special4": { "animation" : "TBINEXT2.def", "x" : 593, "y" : 104, "z" : -1, "campaignBonus" : "BoIMagO.pcx", "border" : "TOIPAIN.bmp", "area" : "TZIPAIN.bmp" },
"horde2": { "animation" : "TBINHRD3.def", "x" : 10, "y" : 301, "border" : "TOIHND1H.bmp", "area" : "TZIHND1H.bmp", "hidden" : true }, "horde2": { "animation" : "TBINHRD3.def", "x" : 10, "y" : 301, "campaignBonus" : "BoIHndH.pcx", "border" : "TOIHND1H.bmp", "area" : "TZIHND1H.bmp", "hidden" : true },
"horde2Upgr": { "animation" : "TBINHRD4.def", "x" : 9, "y" : 273, "border" : "TOIHND2H.bmp", "area" : "TZIHND2H.bmp", "hidden" : true, "builds" : "horde2" }, "horde2Upgr": { "animation" : "TBINHRD4.def", "x" : 9, "y" : 273, "campaignBonus" : "BoIHnd2H.pcx", "border" : "TOIHND2H.bmp", "area" : "TZIHND2H.bmp", "hidden" : true, "builds" : "horde2" },
"grail": { "animation" : "TBINHOLY.def", "x" : 24, "y" : 10, "z" : -1, "border" : "TOIHOLY.bmp", "area" : "TZIHOLY.bmp" }, "grail": { "animation" : "TBINHOLY.def", "x" : 24, "y" : 10, "z" : -1, "campaignBonus" : "BoIHoly.pcx", "border" : "TOIHOLY.bmp", "area" : "TZIHOLY.bmp" },
"dwellingLvl1": { "animation" : "TBINDW_0.def", "x" : 614, "y" : 256, "border" : "TOIMP1A.bmp", "area" : "TZIMP1A.bmp" }, "dwellingLvl1": { "animation" : "TBINDW_0.def", "x" : 614, "y" : 256, "campaignBonus" : "BoIImp1.pcx", "border" : "TOIMP1A.bmp", "area" : "TZIMP1A.bmp" },
"dwellingLvl2": { "animation" : "TBINDW_1.def", "x" : 187, "y" : 248, "z" : 4, "border" : "TOIGOG1A.bmp", "area" : "TZIGOG1A.bmp" }, "dwellingLvl2": { "animation" : "TBINDW_1.def", "x" : 187, "y" : 248, "z" : 4, "campaignBonus" : "BoIGog1.pcx", "border" : "TOIGOG1A.bmp", "area" : "TZIGOG1A.bmp" },
"dwellingLvl3": { "animation" : "TBINDW_2.def", "x" : 9, "y" : 325, "border" : "TOIHND1.bmp", "area" : "TZIHND1.bmp" }, "dwellingLvl3": { "animation" : "TBINDW_2.def", "x" : 9, "y" : 325, "campaignBonus" : "BoIHnd1.pcx", "border" : "TOIHND1.bmp", "area" : "TZIHND1.bmp" },
"dwellingLvl4": { "animation" : "TBINDW_3.def", "x" : 414, "y" : 204, "z" : 2, "border" : "TOIDMN1.bmp", "area" : "TZIDMN1.bmp" }, "dwellingLvl4": { "animation" : "TBINDW_3.def", "x" : 414, "y" : 204, "z" : 2, "campaignBonus" : "BoIDmn1.pcx", "border" : "TOIDMN1.bmp", "area" : "TZIDMN1.bmp" },
"dwellingLvl5": { "animation" : "TBINDW_4.def", "x" : 359, "y" : 296, "z" : 3, "border" : "TOIPIT1.bmp", "area" : "TZIPIT1.bmp" }, "dwellingLvl5": { "animation" : "TBINDW_4.def", "x" : 359, "y" : 296, "z" : 3, "campaignBonus" : "BoIPit1.pcx", "border" : "TOIPIT1.bmp", "area" : "TZIPIT1.bmp" },
"dwellingLvl6": { "animation" : "TBINDW_5.def", "x" : 220, "y" : 350, "z" : 5, "border" : "TOIEFR1.bmp", "area" : "TZIEFR1.bmp" }, "dwellingLvl6": { "animation" : "TBINDW_5.def", "x" : 220, "y" : 350, "z" : 5, "campaignBonus" : "BoIEfr1.pcx", "border" : "TOIEFR1.bmp", "area" : "TZIEFR1.bmp" },
"dwellingLvl7": { "animation" : "TBINDW_6.def", "x" : 420, "y" : 153, "z" : -3, "border" : "TOIDVL1.bmp", "area" : "TZIDVL1.bmp" }, "dwellingLvl7": { "animation" : "TBINDW_6.def", "x" : 420, "y" : 153, "z" : -3, "campaignBonus" : "BoIDvl1.pcx", "border" : "TOIDVL1.bmp", "area" : "TZIDVL1.bmp" },
"dwellingUpLvl1": { "animation" : "TBINUP_0.def", "x" : 614, "y" : 221, "border" : "TOIMP2A.bmp", "area" : "TZIMP2A.bmp" }, "dwellingUpLvl1": { "animation" : "TBINUP_0.def", "x" : 614, "y" : 221, "campaignBonus" : "BoIImp2.pcx", "border" : "TOIMP2A.bmp", "area" : "TZIMP2A.bmp" },
"dwellingUpLvl2": { "animation" : "TBINUP_1.def", "x" : 187, "y" : 212, "z" : 4, "border" : "TOIGOG2A.bmp", "area" : "TZIGOG2A.bmp" }, "dwellingUpLvl2": { "animation" : "TBINUP_1.def", "x" : 187, "y" : 212, "z" : 4, "campaignBonus" : "BoIGog2.pcx", "border" : "TOIGOG2A.bmp", "area" : "TZIGOG2A.bmp" },
"dwellingUpLvl3": { "animation" : "TBINUP_2.def", "x" : 9, "y" : 273, "border" : "TOIHND2.bmp", "area" : "TZIHND2.bmp" }, "dwellingUpLvl3": { "animation" : "TBINUP_2.def", "x" : 9, "y" : 273, "campaignBonus" : "BoIHnd2.pcx", "border" : "TOIHND2.bmp", "area" : "TZIHND2.bmp" },
"dwellingUpLvl4": { "animation" : "TBINUP_3.def", "x" : 412, "y" : 197, "z" : 2, "border" : "TOIDMN2.bmp", "area" : "TZIDMN2.bmp" }, "dwellingUpLvl4": { "animation" : "TBINUP_3.def", "x" : 412, "y" : 197, "z" : 2, "campaignBonus" : "BoIDmn2.pcx", "border" : "TOIDMN2.bmp", "area" : "TZIDMN2.bmp" },
"dwellingUpLvl5": { "animation" : "TBINUP_4.def", "x" : 359, "y" : 244, "z" : 3, "border" : "TOIPIT2.bmp", "area" : "TZIPIT2.bmp" }, "dwellingUpLvl5": { "animation" : "TBINUP_4.def", "x" : 359, "y" : 244, "z" : 3, "campaignBonus" : "BoIPit2.pcx", "border" : "TOIPIT2.bmp", "area" : "TZIPIT2.bmp" },
"dwellingUpLvl6": { "animation" : "TBINUP_5.def", "x" : 220, "y" : 282, "z" : 5, "border" : "TOIEFR2.bmp", "area" : "TZIEFR2.bmp" }, "dwellingUpLvl6": { "animation" : "TBINUP_5.def", "x" : 220, "y" : 282, "z" : 5, "campaignBonus" : "BoIEfr2.pcx", "border" : "TOIEFR2.bmp", "area" : "TZIEFR2.bmp" },
"dwellingUpLvl7": { "animation" : "TBINUP_6.def", "x" : 420, "y" : 105, "z" : -3, "border" : "TOIDVL2.bmp", "area" : "TZIDVL2.bmp" } "dwellingUpLvl7": { "animation" : "TBINUP_6.def", "x" : 420, "y" : 105, "z" : -3, "campaignBonus" : "BoIDvl2.pcx", "border" : "TOIDVL2.bmp", "area" : "TZIDVL2.bmp" }
}, },
"musicTheme" : [ "music/InfernoTown" ], "musicTheme" : [ "music/InfernoTown" ],

View File

@@ -81,47 +81,47 @@
"structures" : "structures" :
{ {
"extraAnimation": { "animation" : "TBNCEXT2.def", "x" : 25, "y" : 279, "z" : 9 }, "extraAnimation": { "animation" : "TBNCEXT2.def", "x" : 25, "y" : 279, "z" : 9 },
"mageGuild1": { "animation" : "TBNCMAGE.def", "x" : 341, "y" : 116, "z" : -1, "border" : "TONMAG1.bmp", "area" : "TZNMAG1.bmp" }, "mageGuild1": { "animation" : "TBNCMAGE.def", "x" : 341, "y" : 116, "z" : -1, "campaignBonus" : "BoNmage1.pcx", "border" : "TONMAG1.bmp", "area" : "TZNMAG1.bmp" },
"mageGuild2": { "animation" : "TBNCMAG2.def", "x" : 341, "y" : 97, "z" : -1, "border" : "TONMAG2.bmp", "area" : "TZNMAG2.bmp" }, "mageGuild2": { "animation" : "TBNCMAG2.def", "x" : 341, "y" : 97, "z" : -1, "campaignBonus" : "BoNmage2.pcx", "border" : "TONMAG2.bmp", "area" : "TZNMAG2.bmp" },
"mageGuild3": { "animation" : "TBNCMAG3.def", "x" : 341, "y" : 78, "z" : -1, "border" : "TONMAG3.bmp", "area" : "TZNMAG3.bmp" }, "mageGuild3": { "animation" : "TBNCMAG3.def", "x" : 341, "y" : 78, "z" : -1, "campaignBonus" : "BoNmage3.pcx", "border" : "TONMAG3.bmp", "area" : "TZNMAG3.bmp" },
"mageGuild4": { "animation" : "TBNCMAG4.def", "x" : 340, "y" : 62, "z" : -1, "border" : "TONMAG4.bmp", "area" : "TZNMAG4.bmp" }, "mageGuild4": { "animation" : "TBNCMAG4.def", "x" : 340, "y" : 62, "z" : -1, "campaignBonus" : "BoNmage4.pcx", "border" : "TONMAG4.bmp", "area" : "TZNMAG4.bmp" },
"mageGuild5": { "animation" : "TBNCMAG5.def", "x" : 343, "y" : 35, "z" : -1, "border" : "TONMAG5.bmp", "area" : "TZNMAG5.bmp" }, "mageGuild5": { "animation" : "TBNCMAG5.def", "x" : 343, "y" : 35, "z" : -1, "campaignBonus" : "BoNmage5.pcx", "border" : "TONMAG5.bmp", "area" : "TZNMAG5.bmp" },
"tavern": { "animation" : "TBNCTVRN.def", "x" : 508, "y" : 189, "border" : "TONTAV.bmp", "area" : "TZNTAV.bmp" }, "tavern": { "animation" : "TBNCTVRN.def", "x" : 508, "y" : 189, "campaignBonus" : "BoNtav.pcx", "border" : "TONTAV.bmp", "area" : "TZNTAV.bmp" },
"shipyard": { "animation" : "TBNCDOCK.def", "x" : 617, "y" : 265, "z" : -2, "border" : "TONSHPBA.bmp", "area" : "TZNSHPBA.bmp" }, "shipyard": { "animation" : "TBNCDOCK.def", "x" : 617, "y" : 265, "z" : -2, "campaignBonus" : "BoNship.pcx", "border" : "TONSHPBA.bmp", "area" : "TZNSHPBA.bmp" },
"fort": { "animation" : "TBNCCSTL.def", "x" : 138, "y" : 66, "border" : "TONCAS1.bmp", "area" : "TZNCAS1.bmp" }, "fort": { "animation" : "TBNCCSTL.def", "x" : 138, "y" : 66, "campaignBonus" : "BoNcast1.pcx", "border" : "TONCAS1.bmp", "area" : "TZNCAS1.bmp" },
"citadel": { "animation" : "TBNCCAS2.def", "x" : 139, "y" : 66, "border" : "TONCAS2.bmp", "area" : "TZNCAS2.bmp" }, "citadel": { "animation" : "TBNCCAS2.def", "x" : 139, "y" : 66, "campaignBonus" : "BoNcast2.pcx", "border" : "TONCAS2.bmp", "area" : "TZNCAS2.bmp" },
"castle": { "animation" : "TBNCCAS3.def", "x" : 34, "y" : 18, "border" : "TONCAS3.bmp", "area" : "TZNCAS3.bmp" }, "castle": { "animation" : "TBNCCAS3.def", "x" : 34, "y" : 18, "campaignBonus" : "BoNcast3.pcx", "border" : "TONCAS3.bmp", "area" : "TZNCAS3.bmp" },
"villageHall": { "animation" : "TBNCHALL.def", "x" : 468, "y" : 76, "z" : -2, "border" : "TONHAL1.bmp", "area" : "TZNHAL1.bmp" }, "villageHall": { "animation" : "TBNCHALL.def", "x" : 468, "y" : 76, "z" : -2, "campaignBonus" : "BoNhall1.pcx", "border" : "TONHAL1.bmp", "area" : "TZNHAL1.bmp" },
"townHall": { "animation" : "TBNCHAL2.def", "x" : 482, "y" : 56, "z" : -2, "border" : "TONHAL2.bmp", "area" : "TZNHAL2.bmp" }, "townHall": { "animation" : "TBNCHAL2.def", "x" : 482, "y" : 56, "z" : -2, "campaignBonus" : "BoNhall2.pcx", "border" : "TONHAL2.bmp", "area" : "TZNHAL2.bmp" },
"cityHall": { "animation" : "TBNCHAL3.def", "x" : 478, "y" : 26, "z" : -2, "border" : "TONHAL3.bmp", "area" : "TZNHAL3.bmp" }, "cityHall": { "animation" : "TBNCHAL3.def", "x" : 478, "y" : 26, "z" : -2, "campaignBonus" : "BoNhall3.pcx", "border" : "TONHAL3.bmp", "area" : "TZNHAL3.bmp" },
"capitol": { "animation" : "TBNCHAL4.def", "x" : 481, "y" : 26, "z" : -2, "border" : "TONHAL4.bmp", "area" : "TZNHAL4.bmp" }, "capitol": { "animation" : "TBNCHAL4.def", "x" : 481, "y" : 26, "z" : -2, "campaignBonus" : "BoNhall4.pcx", "border" : "TONHAL4.bmp", "area" : "TZNHAL4.bmp" },
"marketplace": { "animation" : "TBNCMARK.def", "x" : 347, "y" : 215, "z" : 2, "border" : "TONMRK1.bmp", "area" : "TZNMRK1.bmp" }, "marketplace": { "animation" : "TBNCMARK.def", "x" : 347, "y" : 215, "z" : 2, "campaignBonus" : "BoNmark1.pcx", "border" : "TONMRK1.bmp", "area" : "TZNMRK1.bmp" },
"resourceSilo": { "animation" : "TBNCSILO.def", "x" : 276, "y" : 185, "z" : 1, "border" : "TONMRK2.bmp", "area" : "TZNMRK2.bmp" }, "resourceSilo": { "animation" : "TBNCSILO.def", "x" : 276, "y" : 185, "z" : 1, "campaignBonus" : "BoNmark2.pcx", "border" : "TONMRK2.bmp", "area" : "TZNMRK2.bmp" },
"blacksmith": { "animation" : "TBNCBLAK.def", "x" : 382, "y" : 252, "z" : 7, "border" : "TONSMITA.bmp", "area" : "TZNSMITA.bmp" }, "blacksmith": { "animation" : "TBNCBLAK.def", "x" : 382, "y" : 252, "z" : 7, "campaignBonus" : "BoNsmith.pcx", "border" : "TONSMITA.bmp", "area" : "TZNSMITA.bmp" },
"special1": { "animation" : "TBNCSPEC.def", "x" : 18, "y" : 0, "z" : -1, "border" : "TONSHRDA.bmp", "area" : "TZNSHRDA.bmp" }, "special1": { "animation" : "TBNCSPEC.def", "x" : 18, "y" : 0, "z" : -1, "campaignBonus" : "BoNshrod.pcx", "border" : "TONSHRDA.bmp", "area" : "TZNSHRDA.bmp" },
"horde1": { "animation" : "TBNCHRD1.def", "x" : 80, "y" : 222, "z" : 5, "border" : "TONSKE1H.bmp", "area" : "TZNSKE1H.bmp", "hidden" : true }, "horde1": { "animation" : "TBNCHRD1.def", "x" : 80, "y" : 222, "z" : 5, "campaignBonus" : "BoNskelH.pcx", "border" : "TONSKE1H.bmp", "area" : "TZNSKE1H.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBNCHRD2.def", "x" : 64, "y" : 222, "z" : 5, "border" : "TONSKE2H.bmp", "area" : "TZNSKE2H.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBNCHRD2.def", "x" : 64, "y" : 222, "z" : 5, "campaignBonus" : "BoNnecro.pcx", "border" : "TONSKE2H.bmp", "area" : "TZNSKE2H.bmp", "hidden" : true, "builds" : "horde1" },
"ship": { "animation" : "TBNCBOAT.def", "x" : 617, "y" : 265, "z" : -2, "border" : "TONSHPNA.bmp", "area" : "TZNSHPNA.bmp", "hidden" : true }, "ship": { "animation" : "TBNCBOAT.def", "x" : 617, "y" : 265, "z" : -2, "border" : "TONSHPNA.bmp", "area" : "TZNSHPNA.bmp", "hidden" : true },
"special2": { "animation" : "TBNCEXT0.def", "x" : 307, "y" : 61, "z" : -2, "border" : "TONNECRA.bmp", "area" : "TZNNECRA.bmp" }, "special2": { "animation" : "TBNCEXT0.def", "x" : 307, "y" : 61, "z" : -2, "campaignBonus" : "BoNnecro.pcx", "border" : "TONNECRA.bmp", "area" : "TZNNECRA.bmp" },
"special3": { "animation" : "TBNCEXT1.def", "x" : 247, "y" : 275, "z" : 4, "border" : "TONSKELT.bmp", "area" : "TZNSKELT.bmp" }, "special3": { "animation" : "TBNCEXT1.def", "x" : 247, "y" : 275, "z" : 4, "campaignBonus" : "BoNskelT.pcx", "border" : "TONSKELT.bmp", "area" : "TZNSKELT.bmp" },
"grail": { "animation" : "TBNCHOLY.def", "x" : 410, "y" : 88, "border" : "TONHOLYA.bmp", "area" : "TZNHOLYA.bmp" }, "grail": { "animation" : "TBNCHOLY.def", "x" : 410, "y" : 88, "campaignBonus" : "BoNholyG.pcx", "border" : "TONHOLYA.bmp", "area" : "TZNHOLYA.bmp" },
"extraTownHall": { "animation" : "TBNCEXT3.def", "x" : 0, "y" : 241, "z" : 6 }, "extraTownHall": { "animation" : "TBNCEXT3.def", "x" : 0, "y" : 241, "z" : 6 },
"extraCityHall": { "animation" : "TBNCEXT4.def", "x" : 321, "y" : 255, "z" : 6 }, "extraCityHall": { "animation" : "TBNCEXT4.def", "x" : 321, "y" : 255, "z" : 6 },
"extraCapitol": { "animation" : "TBNCEXT5.def", "x" : 475, "y" : 257, "z" : 6 }, "extraCapitol": { "animation" : "TBNCEXT5.def", "x" : 475, "y" : 257, "z" : 6 },
"dwellingLvl1": { "animation" : "TBNCDW_0.def", "x" : 80, "y" : 222, "z" : 5, "border" : "TONSKEL1.bmp", "area" : "TZNSKEL1.bmp" }, "dwellingLvl1": { "animation" : "TBNCDW_0.def", "x" : 80, "y" : 222, "z" : 5, "campaignBonus" : "BoNskel1.pcx", "border" : "TONSKEL1.bmp", "area" : "TZNSKEL1.bmp" },
"dwellingLvl2": { "animation" : "TBNCDW_1.def", "x" : 502, "y" : 223, "z" : 1, "border" : "TONZOMB1.bmp", "area" : "TZNZOMB1.bmp" }, "dwellingLvl2": { "animation" : "TBNCDW_1.def", "x" : 502, "y" : 223, "z" : 1, "campaignBonus" : "BoNzomb1.pcx", "border" : "TONZOMB1.bmp", "area" : "TZNZOMB1.bmp" },
"dwellingLvl3": { "animation" : "TBNCDW_2.def", "x" : 0, "y" : 187, "z" : 8, "border" : "TONWIGH1.bmp", "area" : "TZNWIGH1.bmp" }, "dwellingLvl3": { "animation" : "TBNCDW_2.def", "x" : 0, "y" : 187, "z" : 8, "campaignBonus" : "BoNwigh1.pcx", "border" : "TONWIGH1.bmp", "area" : "TZNWIGH1.bmp" },
"dwellingLvl4": { "animation" : "TBNCDW_3.def", "x" : 607, "y" : 212, "z" : 2, "border" : "TONVAM1.bmp", "area" : "TZNVAM1.bmp" }, "dwellingLvl4": { "animation" : "TBNCDW_3.def", "x" : 607, "y" : 212, "z" : 2, "campaignBonus" : "BoNvamp1.pcx", "border" : "TONVAM1.bmp", "area" : "TZNVAM1.bmp" },
"dwellingLvl5": { "animation" : "TBNCDW_4.def", "x" : 206, "y" : 207, "z" : 3, "border" : "TONLICH1.bmp", "area" : "TZNLICH1.bmp" }, "dwellingLvl5": { "animation" : "TBNCDW_4.def", "x" : 206, "y" : 207, "z" : 3, "campaignBonus" : "BoNlich1.pcx", "border" : "TONLICH1.bmp", "area" : "TZNLICH1.bmp" },
"dwellingLvl6": { "animation" : "TBNCDW_5.def", "x" : 0, "y" : 31, "z" : -2, "border" : "TONBKN1.bmp", "area" : "TZNBKN1.bmp" }, "dwellingLvl6": { "animation" : "TBNCDW_5.def", "x" : 0, "y" : 31, "z" : -2, "campaignBonus" : "BoNbkni1.pcx", "border" : "TONBKN1.bmp", "area" : "TZNBKN1.bmp" },
"dwellingLvl7": { "animation" : "TBNCDW_6.def", "x" : 663, "y" : 25, "border" : "TONBON1.bmp", "area" : "TZNBON1.bmp" }, "dwellingLvl7": { "animation" : "TBNCDW_6.def", "x" : 663, "y" : 25, "campaignBonus" : "BoNbone1.pcx", "border" : "TONBON1.bmp", "area" : "TZNBON1.bmp" },
"dwellingUpLvl1": { "animation" : "TBNCUP_0.def", "x" : 64, "y" : 222, "z" : 5, "border" : "TONSKEL2.bmp", "area" : "TZNSKEL2.bmp" }, "dwellingUpLvl1": { "animation" : "TBNCUP_0.def", "x" : 64, "y" : 222, "z" : 5, "campaignBonus" : "BoNskel2.pcx", "border" : "TONSKEL2.bmp", "area" : "TZNSKEL2.bmp" },
"dwellingUpLvl2": { "animation" : "TBNCUP_1.def", "x" : 498, "y" : 224, "z" : 1, "border" : "TONZOMB2.bmp", "area" : "TZNZOMB2.bmp" }, "dwellingUpLvl2": { "animation" : "TBNCUP_1.def", "x" : 498, "y" : 224, "z" : 1, "campaignBonus" : "BoNzomb2.pcx", "border" : "TONZOMB2.bmp", "area" : "TZNZOMB2.bmp" },
"dwellingUpLvl3": { "animation" : "TBNCUP_2.def", "x" : 0, "y" : 179, "z" : 8, "border" : "TONWIGH2.bmp", "area" : "TZNWIGH2.bmp" }, "dwellingUpLvl3": { "animation" : "TBNCUP_2.def", "x" : 0, "y" : 179, "z" : 8, "campaignBonus" : "BoNwigh2.pcx", "border" : "TONWIGH2.bmp", "area" : "TZNWIGH2.bmp" },
"dwellingUpLvl4": { "animation" : "TBNCUP_3.def", "x" : 615, "y" : 193, "z" : 2, "border" : "TONVAM2.bmp", "area" : "TZNVAM2.bmp" }, "dwellingUpLvl4": { "animation" : "TBNCUP_3.def", "x" : 615, "y" : 193, "z" : 2, "campaignBonus" : "BoNvamp2.pcx", "border" : "TONVAM2.bmp", "area" : "TZNVAM2.bmp" },
"dwellingUpLvl5": { "animation" : "TBNCUP_4.def", "x" : 222, "y" : 171, "z" : 3, "border" : "TONLICH2.bmp", "area" : "TZNLICH2.bmp" }, "dwellingUpLvl5": { "animation" : "TBNCUP_4.def", "x" : 222, "y" : 171, "z" : 3, "campaignBonus" : "BoNlich2.pcx", "border" : "TONLICH2.bmp", "area" : "TZNLICH2.bmp" },
"dwellingUpLvl6": { "animation" : "TBNCUP_5.def", "x" : 0, "y" : 30, "z" : -2, "border" : "TONBKN2.bmp", "area" : "TZNBKN2.bmp" }, "dwellingUpLvl6": { "animation" : "TBNCUP_5.def", "x" : 0, "y" : 30, "z" : -2, "campaignBonus" : "BoNbkni2.pcx", "border" : "TONBKN2.bmp", "area" : "TZNBKN2.bmp" },
"dwellingUpLvl7": { "animation" : "TBNCUP_6.def", "x" : 662, "y" : 23, "border" : "TONBON2.bmp", "area" : "TZNBON2.bmp" } "dwellingUpLvl7": { "animation" : "TBNCUP_6.def", "x" : 662, "y" : 23, "campaignBonus" : "BoNbone2.pcx", "border" : "TONBON2.bmp", "area" : "TZNBON2.bmp" }
}, },
"musicTheme" : [ "music/NecroTown" ], "musicTheme" : [ "music/NecroTown" ],

View File

@@ -80,47 +80,47 @@
"structures" : "structures" :
{ {
"extraAnimation": { "animation" : "TBRMEXT2.def", "x" : 327, "y" : 236, "z" : 1 }, "extraAnimation": { "animation" : "TBRMEXT2.def", "x" : 327, "y" : 236, "z" : 1 },
"mageGuild1": { "animation" : "TBRMMAGE.def", "x" : 454, "y" : 200, "z" : -1, "border" : "TORMAG1.bmp", "area" : "TZRMAG1.bmp" }, "mageGuild1": { "animation" : "TBRMMAGE.def", "x" : 454, "y" : 200, "z" : -1, "campaignBonus" : "BoRMag1.pcx", "border" : "TORMAG1.bmp", "area" : "TZRMAG1.bmp" },
"mageGuild2": { "animation" : "TBRMMAG2.def", "x" : 438, "y" : 178, "z" : -1, "border" : "TORMAG2.bmp", "area" : "TZRMAG2.bmp" }, "mageGuild2": { "animation" : "TBRMMAG2.def", "x" : 438, "y" : 178, "z" : -1, "campaignBonus" : "BoRMag2.pcx", "border" : "TORMAG2.bmp", "area" : "TZRMAG2.bmp" },
"mageGuild3": { "animation" : "TBRMMAG3.def", "x" : 418, "y" : 153, "z" : -1, "border" : "TORMAG3.bmp", "area" : "TZRMAG3.bmp" }, "mageGuild3": { "animation" : "TBRMMAG3.def", "x" : 418, "y" : 153, "z" : -1, "campaignBonus" : "BoRMag3.pcx", "border" : "TORMAG3.bmp", "area" : "TZRMAG3.bmp" },
"mageGuild4": { "animation" : "TBRMMAG4.def", "x" : 406, "y" : 129, "z" : -1, "border" : "TORMAG4.bmp", "area" : "TZRMAG4.bmp" }, "mageGuild4": { "animation" : "TBRMMAG4.def", "x" : 406, "y" : 129, "z" : -1, "campaignBonus" : "BoRMag4.pcx", "border" : "TORMAG4.bmp", "area" : "TZRMAG4.bmp" },
"mageGuild5": { "animation" : "TBRMMAG5.def", "x" : 384, "y" : 104, "z" : -1, "border" : "TORMAG5.bmp", "area" : "TZRMAG5.bmp" }, "mageGuild5": { "animation" : "TBRMMAG5.def", "x" : 384, "y" : 104, "z" : -1, "campaignBonus" : "BoRMag5.pcx", "border" : "TORMAG5.bmp", "area" : "TZRMAG5.bmp" },
"tavern": { "animation" : "TBRMTVRN.def", "x" : 181, "y" : 229, "z" : 1, "border" : "TORTAV.bmp", "area" : "TZRTAV.bmp" }, "tavern": { "animation" : "TBRMTVRN.def", "x" : 181, "y" : 229, "z" : 1, "campaignBonus" : "BoRTav.pcx", "border" : "TORTAV.bmp", "area" : "TZRTAV.bmp" },
"fort": { "animation" : "TBRMCSTL.def", "x" : 63, "y" : 25, "z" : -4, "border" : "TORCAS1.bmp", "area" : "TZRCAS1.bmp" }, "fort": { "animation" : "TBRMCSTL.def", "x" : 63, "y" : 25, "z" : -4, "campaignBonus" : "BoRCas1.pcx", "border" : "TORCAS1.bmp", "area" : "TZRCAS1.bmp" },
"citadel": { "animation" : "TBRMCAS2.def", "x" : 79, "y" : 18, "z" : -4, "border" : "TORCAS3.bmp", "area" : "TZRCAS3.bmp" }, "citadel": { "animation" : "TBRMCAS2.def", "x" : 79, "y" : 18, "z" : -4, "campaignBonus" : "BoRCas2.pcx", "border" : "TORCAS3.bmp", "area" : "TZRCAS3.bmp" },
"castle": { "animation" : "TBRMCAS3.def", "x" : 79, "y" : 18, "z" : -4, "border" : "TORCAS2.bmp", "area" : "TZRCAS2.bmp" }, "castle": { "animation" : "TBRMCAS3.def", "x" : 79, "y" : 18, "z" : -4, "campaignBonus" : "BoRCas3.pcx", "border" : "TORCAS2.bmp", "area" : "TZRCAS2.bmp" },
"villageHall": { "animation" : "TBRMHALL.def", "x" : 565, "y" : 216, "border" : "TORHAL1.bmp", "area" : "TZRHAL1.bmp" }, "villageHall": { "animation" : "TBRMHALL.def", "x" : 565, "y" : 216, "campaignBonus" : "BoRHal1.pcx", "border" : "TORHAL1.bmp", "area" : "TZRHAL1.bmp" },
"townHall": { "animation" : "TBRMHAL2.def", "x" : 538, "y" : 187, "border" : "TORHAL2.bmp", "area" : "TZRHAL2.bmp" }, "townHall": { "animation" : "TBRMHAL2.def", "x" : 538, "y" : 187, "campaignBonus" : "BoRHal2.pcx", "border" : "TORHAL2.bmp", "area" : "TZRHAL2.bmp" },
"cityHall": { "animation" : "TBRMHAL3.def", "x" : 538, "y" : 187, "border" : "TORHAL3.bmp", "area" : "TZRHAL3.bmp" }, "cityHall": { "animation" : "TBRMHAL3.def", "x" : 538, "y" : 187, "campaignBonus" : "BoRHal3.pcx", "border" : "TORHAL3.bmp", "area" : "TZRHAL3.bmp" },
"capitol": { "animation" : "TBRMHAL4.def", "x" : 534, "y" : 187, "border" : "TORHAL4.bmp", "area" : "TZRHAL4.bmp" }, "capitol": { "animation" : "TBRMHAL4.def", "x" : 534, "y" : 187, "campaignBonus" : "BoRHal4.pcx", "border" : "TORHAL4.bmp", "area" : "TZRHAL4.bmp" },
"marketplace": { "animation" : "TBRMMARK.def", "x" : 129, "y" : 301, "z" : 3, "border" : "TORMRK1.bmp", "area" : "TZRMRK1.bmp" }, "marketplace": { "animation" : "TBRMMARK.def", "x" : 129, "y" : 301, "z" : 3, "campaignBonus" : "BoRMrk1.pcx", "border" : "TORMRK1.bmp", "area" : "TZRMRK1.bmp" },
"resourceSilo": { "animation" : "TBRMSILO.def", "x" : 245, "y" : 324, "z" : 4, "border" : "TORMRK2.bmp", "area" : "TZRMRK2.bmp" }, "resourceSilo": { "animation" : "TBRMSILO.def", "x" : 245, "y" : 324, "z" : 4, "campaignBonus" : "BoRMrk2.pcx", "border" : "TORMRK2.bmp", "area" : "TZRMRK2.bmp" },
"blacksmith": { "animation" : "TBRMBLAK.def", "x" : 558, "y" : 105, "z" : -3, "border" : "TORAID.bmp", "area" : "TZRAID.bmp" }, "blacksmith": { "animation" : "TBRMBLAK.def", "x" : 558, "y" : 105, "z" : -3, "campaignBonus" : "BoRAid.pcx", "border" : "TORAID.bmp", "area" : "TZRAID.bmp" },
"special1": { "animation" : "TBRMSPEC.def", "x" : 555, "y" : 297, "z" : 2, "border" : "TORGAR1A.bmp", "area" : "TZRGAR1A.bmp" }, "special1": { "animation" : "TBRMSPEC.def", "x" : 555, "y" : 297, "z" : 2, "campaignBonus" : "BoRGar1.pcx", "border" : "TORGAR1A.bmp", "area" : "TZRGAR1A.bmp" },
"horde1": { "animation" : "TBRMHRD1.def", "x" : 0, "y" : 154, "z" : -2, "border" : "TORDWF1H.bmp", "area" : "TZRDWF1H.bmp", "hidden" : true }, "horde1": { "animation" : "TBRMHRD1.def", "x" : 0, "y" : 154, "z" : -2, "campaignBonus" : "BoRDwf1h.pcx", "border" : "TORDWF1H.bmp", "area" : "TZRDWF1H.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBRMHRD2.def", "x" : 0, "y" : 143, "z" : -2, "border" : "TORDWF2H.bmp", "area" : "TZRDWF2H.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBRMHRD2.def", "x" : 0, "y" : 143, "z" : -2, "campaignBonus" : "BoRDwf2h.pcx", "border" : "TORDWF2H.bmp", "area" : "TZRDWF2H.bmp", "hidden" : true, "builds" : "horde1" },
"special2": { "animation" : "TBRMEXT0.def", "x" : 555, "y" : 297, "z" : 2, "border" : "TORGAR2A.bmp", "area" : "TZRGAR2A.bmp" }, "special2": { "animation" : "TBRMEXT0.def", "x" : 555, "y" : 297, "z" : 2, "campaignBonus" : "BoRGar2.pcx", "border" : "TORGAR2A.bmp", "area" : "TZRGAR2A.bmp" },
"special3": { "animation" : "TBRMEXT1.def", "x" : 0, "y" : 181, "z" : 1, "border" : "TORDWFT.bmp", "area" : "TZRDWFT.bmp" }, "special3": { "animation" : "TBRMEXT1.def", "x" : 0, "y" : 181, "z" : 1, "campaignBonus" : "BoRDwf1t.pcx", "border" : "TORDWFT.bmp", "area" : "TZRDWFT.bmp" },
"horde2": { "animation" : "TBRMHRD3.def", "x" : 47, "y" : 142, "z" : -1, "border" : "TORTRE1H.bmp", "area" : "TZRTRE1H.bmp", "hidden" : true }, "horde2": { "animation" : "TBRMHRD3.def", "x" : 47, "y" : 142, "z" : -1, "campaignBonus" : "BoRTre1h.pcx", "border" : "TORTRE1H.bmp", "area" : "TZRTRE1H.bmp", "hidden" : true },
"horde2Upgr": { "animation" : "TBRMHRD4.def", "x" : 47, "y" : 142, "z" : -1, "border" : "TORTRE2H.bmp", "area" : "TZRTRE2H.bmp", "hidden" : true, "builds" : "horde2" }, "horde2Upgr": { "animation" : "TBRMHRD4.def", "x" : 47, "y" : 142, "z" : -1, "campaignBonus" : "BoRTre2h.pcx", "border" : "TORTRE2H.bmp", "area" : "TZRTRE2H.bmp", "hidden" : true, "builds" : "horde2" },
"grail": { "animation" : "TBRMHOLY.def", "x" : 0, "y" : 54, "z" : -3, "border" : "TORHOLY.bmp", "area" : "TZRHOLY.bmp" }, "grail": { "animation" : "TBRMHOLY.def", "x" : 0, "y" : 54, "z" : -3, "campaignBonus" : "BoRHoly.pcx", "border" : "TORHOLY.bmp", "area" : "TZRHOLY.bmp" },
"extraTownHall": { "animation" : "TBRMEXT3.def", "x" : 293, "y" : 235, "z" : 2 }, "extraTownHall": { "animation" : "TBRMEXT3.def", "x" : 293, "y" : 235, "z" : 2 },
"extraCityHall": { "animation" : "TBRMEXT4.def", "x" : 295, "y" : 191, "z" : 0 }, "extraCityHall": { "animation" : "TBRMEXT4.def", "x" : 295, "y" : 191, "z" : 0 },
"extraCapitol": { "animation" : "TBRMEXT5.def", "x" : 260, "y" : 171, "z" : 3 }, "extraCapitol": { "animation" : "TBRMEXT5.def", "x" : 260, "y" : 171, "z" : 3 },
"dwellingLvl1": { "animation" : "TBRMDW_0.def", "x" : 0, "y" : 236, "z" : 2, "border" : "TORCEN1A.bmp", "area" : "TZRCEN1A.bmp" }, "dwellingLvl1": { "animation" : "TBRMDW_0.def", "x" : 0, "y" : 236, "z" : 2, "campaignBonus" : "BoRCen1.pcx", "border" : "TORCEN1A.bmp", "area" : "TZRCEN1A.bmp" },
"dwellingLvl2": { "animation" : "TBRMDW_1.def", "x" : 0, "y" : 154, "z" : -2, "border" : "TORDWF1.bmp", "area" : "TZRDWF1.bmp" }, "dwellingLvl2": { "animation" : "TBRMDW_1.def", "x" : 0, "y" : 154, "z" : -2, "campaignBonus" : "BoRDwf1.pcx", "border" : "TORDWF1.bmp", "area" : "TZRDWF1.bmp" },
"dwellingLvl3": { "animation" : "TBRMDW_2.def", "x" : 668, "y" : 101, "z" : -1, "border" : "TORELF1.bmp", "area" : "TZRELF1.bmp" }, "dwellingLvl3": { "animation" : "TBRMDW_2.def", "x" : 668, "y" : 101, "z" : -1, "campaignBonus" : "BoRElf1.pcx", "border" : "TORELF1.bmp", "area" : "TZRELF1.bmp" },
"dwellingLvl4": { "animation" : "TBRMDW_3.def", "x" : 287, "y" : 73, "z" : -1, "border" : "TORPEG1A.bmp", "area" : "TZRPEG1A.bmp" }, "dwellingLvl4": { "animation" : "TBRMDW_3.def", "x" : 287, "y" : 73, "z" : -1, "campaignBonus" : "BoRPeg1.pcx", "border" : "TORPEG1A.bmp", "area" : "TZRPEG1A.bmp" },
"dwellingLvl5": { "animation" : "TBRMDW_4.def", "x" : 68, "y" : 146, "z" : -1, "border" : "TORTRE1.bmp", "area" : "TZRTRE1.bmp" }, "dwellingLvl5": { "animation" : "TBRMDW_4.def", "x" : 68, "y" : 146, "z" : -1, "campaignBonus" : "BoRTre1.pcx", "border" : "TORTRE1.bmp", "area" : "TZRTRE1.bmp" },
"dwellingLvl6": { "animation" : "TBRMDW_5.def", "x" : 362, "y" : 90, "z" : -2, "border" : "TORUNI1.bmp", "area" : "TZRUNI1.bmp" }, "dwellingLvl6": { "animation" : "TBRMDW_5.def", "x" : 362, "y" : 90, "z" : -2, "campaignBonus" : "BoRUni1.pcx", "border" : "TORUNI1.bmp", "area" : "TZRUNI1.bmp" },
"dwellingLvl7": { "animation" : "TBRMDW_6.def", "x" : 502, "y" : 27, "z" : -5, "border" : "TORDR1AA.bmp", "area" : "TZRDR1AA.bmp" }, "dwellingLvl7": { "animation" : "TBRMDW_6.def", "x" : 502, "y" : 27, "z" : -5, "campaignBonus" : "BoRDra1.pcx", "border" : "TORDR1AA.bmp", "area" : "TZRDR1AA.bmp" },
"dwellingUpLvl1": { "animation" : "TBRMUP_0.def", "x" : 0, "y" : 236, "z" : 2, "border" : "TORCEN2A.bmp", "area" : "TZRCEN2A.bmp" }, "dwellingUpLvl1": { "animation" : "TBRMUP_0.def", "x" : 0, "y" : 236, "z" : 2, "campaignBonus" : "BoRCen2.pcx", "border" : "TORCEN2A.bmp", "area" : "TZRCEN2A.bmp" },
"dwellingUpLvl2": { "animation" : "TBRMUP_1.def", "x" : 0, "y" : 143, "z" : -2, "border" : "TORDWF2.bmp", "area" : "TZRDWF2.bmp" }, "dwellingUpLvl2": { "animation" : "TBRMUP_1.def", "x" : 0, "y" : 143, "z" : -2, "campaignBonus" : "BoRDwf2.pcx", "border" : "TORDWF2.bmp", "area" : "TZRDWF2.bmp" },
"dwellingUpLvl3": { "animation" : "TBRMUP_2.def", "x" : 665, "y" : 101, "z" : -1, "border" : "TORELF2.bmp", "area" : "TZRELF2.bmp" }, "dwellingUpLvl3": { "animation" : "TBRMUP_2.def", "x" : 665, "y" : 101, "z" : -1, "campaignBonus" : "BoRElf2.pcx", "border" : "TORELF2.bmp", "area" : "TZRELF2.bmp" },
"dwellingUpLvl4": { "animation" : "TBRMUP_3.def", "x" : 287, "y" : 28, "z" : -1, "border" : "TORPEG2A.bmp", "area" : "TZRPEG2A.bmp" }, "dwellingUpLvl4": { "animation" : "TBRMUP_3.def", "x" : 287, "y" : 28, "z" : -1, "campaignBonus" : "BoRPeg2.pcx", "border" : "TORPEG2A.bmp", "area" : "TZRPEG2A.bmp" },
"dwellingUpLvl5": { "animation" : "TBRMUP_4.def", "x" : 63, "y" : 146, "z" : -1, "border" : "TORTRE2.bmp", "area" : "TZRTRE2.bmp" }, "dwellingUpLvl5": { "animation" : "TBRMUP_4.def", "x" : 63, "y" : 146, "z" : -1, "campaignBonus" : "BoRTre2.pcx", "border" : "TORTRE2.bmp", "area" : "TZRTRE2.bmp" },
"dwellingUpLvl6": { "animation" : "TBRMUP_5.def", "x" : 362, "y" : 90, "z" : -2, "border" : "TORUNI2.bmp", "area" : "TZRUNI2.bmp" }, "dwellingUpLvl6": { "animation" : "TBRMUP_5.def", "x" : 362, "y" : 90, "z" : -2, "campaignBonus" : "BoRUni2.pcx", "border" : "TORUNI2.bmp", "area" : "TZRUNI2.bmp" },
"dwellingUpLvl7": { "animation" : "TBRMUP_6.def", "x" : 502, "y" : 5, "z" : -5, "border" : "TORDR2AA.bmp", "area" : "TZRDR2AA.bmp" } "dwellingUpLvl7": { "animation" : "TBRMUP_6.def", "x" : 502, "y" : 5, "z" : -5, "campaignBonus" : "BoRDra2.pcx", "border" : "TORDR2AA.bmp", "area" : "TZRDR2AA.bmp" }
}, },
"musicTheme" : [ "music/Rampart" ], "musicTheme" : [ "music/Rampart" ],

View File

@@ -80,41 +80,41 @@
"structures" : "structures" :
{ {
"extraAnimation": { "animation" : "TBSTEXT3.def", "x" : 23, "y" : 20 }, "extraAnimation": { "animation" : "TBSTEXT3.def", "x" : 23, "y" : 20 },
"mageGuild1": { "animation" : "TBSTMAGE.def", "x" : 473, "y" : 67, "z" : -2, "border" : "TOSMAG1.bmp", "area" : "TZSMAG1.bmp" }, "mageGuild1": { "animation" : "TBSTMAGE.def", "x" : 473, "y" : 67, "z" : -2, "campaignBonus" : "BoSmage1.pcx", "border" : "TOSMAG1.bmp", "area" : "TZSMAG1.bmp" },
"mageGuild2": { "animation" : "TBSTMAG2.def", "x" : 473, "y" : 37, "z" : -2, "border" : "TOSMAG2.bmp", "area" : "TZSMAG2.bmp" }, "mageGuild2": { "animation" : "TBSTMAG2.def", "x" : 473, "y" : 37, "z" : -2, "campaignBonus" : "BoSmage2.pcx", "border" : "TOSMAG2.bmp", "area" : "TZSMAG2.bmp" },
"mageGuild3": { "animation" : "TBSTMAG3.def", "x" : 473, "y" : 1, "z" : -2, "border" : "TOSMAG3.bmp", "area" : "TZSMAG3.bmp" }, "mageGuild3": { "animation" : "TBSTMAG3.def", "x" : 473, "y" : 1, "z" : -2, "campaignBonus" : "BoSmage3.pcx", "border" : "TOSMAG3.bmp", "area" : "TZSMAG3.bmp" },
"tavern": { "animation" : "TBSTTVRN.def", "x" : 170, "y" : 280, "z" : 2, "border" : "TOSTAV.bmp", "area" : "TZSTAV.bmp" }, "tavern": { "animation" : "TBSTTVRN.def", "x" : 170, "y" : 280, "z" : 2, "campaignBonus" : "BoStav1.pcx", "border" : "TOSTAV.bmp", "area" : "TZSTAV.bmp" },
"fort": { "animation" : "TBSTCSTL.def", "x" : 402, "y" : 148, "z" : -1, "border" : "TOSCA1.bmp", "area" : "TZSCA1.bmp" }, "fort": { "animation" : "TBSTCSTL.def", "x" : 402, "y" : 148, "z" : -1, "campaignBonus" : "BoScas1.pcx", "border" : "TOSCA1.bmp", "area" : "TZSCA1.bmp" },
"citadel": { "animation" : "TBSTCAS2.def", "x" : 402, "y" : 114, "z" : -1, "border" : "TOSCA2.bmp", "area" : "TZSCA2.bmp" }, "citadel": { "animation" : "TBSTCAS2.def", "x" : 402, "y" : 114, "z" : -1, "campaignBonus" : "BoScas2.pcx", "border" : "TOSCA2.bmp", "area" : "TZSCA2.bmp" },
"castle": { "animation" : "TBSTCAS3.def", "x" : 402, "y" : 114, "z" : -1, "border" : "TOSCA3.bmp", "area" : "TZSCA3.bmp" }, "castle": { "animation" : "TBSTCAS3.def", "x" : 402, "y" : 114, "z" : -1, "campaignBonus" : "BoScas3.pcx", "border" : "TOSCA3.bmp", "area" : "TZSCA3.bmp" },
"villageHall": { "animation" : "TBSTHALL.def", "x" : 0, "y" : 259, "border" : "TOSHAL1A.bmp", "area" : "TZSHAL1A.bmp" }, "villageHall": { "animation" : "TBSTHALL.def", "x" : 0, "y" : 259, "campaignBonus" : "BoShall1.pcx", "border" : "TOSHAL1A.bmp", "area" : "TZSHAL1A.bmp" },
"townHall": { "animation" : "TBSTHAL2.def", "x" : 0, "y" : 225, "border" : "TOSHAL2A.bmp", "area" : "TZSHAL2A.bmp" }, "townHall": { "animation" : "TBSTHAL2.def", "x" : 0, "y" : 225, "campaignBonus" : "BoShall2.pcx", "border" : "TOSHAL2A.bmp", "area" : "TZSHAL2A.bmp" },
"cityHall": { "animation" : "TBSTHAL3.def", "x" : 0, "y" : 201, "border" : "TOSHAL3A.bmp", "area" : "TZSHAL3A.bmp" }, "cityHall": { "animation" : "TBSTHAL3.def", "x" : 0, "y" : 201, "campaignBonus" : "BoShall3.pcx", "border" : "TOSHAL3A.bmp", "area" : "TZSHAL3A.bmp" },
"capitol": { "animation" : "TBSTHAL4.def", "x" : 0, "y" : 148, "border" : "TOSHAL4A.bmp", "area" : "TZSHAL4A.bmp" }, "capitol": { "animation" : "TBSTHAL4.def", "x" : 0, "y" : 148, "campaignBonus" : "BoShall4.pcx", "border" : "TOSHAL4A.bmp", "area" : "TZSHAL4A.bmp" },
"marketplace": { "animation" : "TBSTMARK.def", "x" : 397, "y" : 308, "z" : 1, "border" : "TOSMRK1.bmp", "area" : "TZSMRK1.bmp" }, "marketplace": { "animation" : "TBSTMARK.def", "x" : 397, "y" : 308, "z" : 1, "campaignBonus" : "BoSmrk1.pcx", "border" : "TOSMRK1.bmp", "area" : "TZSMRK1.bmp" },
"resourceSilo": { "animation" : "TBSTSILO.def", "x" : 458, "y" : 248, "z" : 2, "border" : "TOSMRK2.bmp", "area" : "TZSMRK2.bmp" }, "resourceSilo": { "animation" : "TBSTSILO.def", "x" : 458, "y" : 248, "z" : 2, "campaignBonus" : "BoSmrk2.pcx", "border" : "TOSMRK2.bmp", "area" : "TZSMRK2.bmp" },
"blacksmith": { "animation" : "TBSTBLAK.def", "x" : 660, "y" : 286, "border" : "TOSBLK1.bmp", "area" : "TZSBLK1.bmp" }, "blacksmith": { "animation" : "TBSTBLAK.def", "x" : 660, "y" : 286, "campaignBonus" : "BoSblak1.pcx", "border" : "TOSBLK1.bmp", "area" : "TZSBLK1.bmp" },
"special1": { "animation" : "TBSTSPEC.def", "x" : 550, "y" : 229, "border" : "TOSCA1EA.bmp", "area" : "TZSCA1EA.bmp" }, "special1": { "animation" : "TBSTSPEC.def", "x" : 550, "y" : 229, "campaignBonus" : "BoSescap.pcx", "border" : "TOSCA1EA.bmp", "area" : "TZSCA1EA.bmp" },
"horde1": { "animation" : "TBSTHRD1.def", "x" : 373, "y" : 239, "border" : "TOSGOB1H.bmp", "area" : "TZSGOB1H.bmp", "hidden" : true }, "horde1": { "animation" : "TBSTHRD1.def", "x" : 373, "y" : 239, "campaignBonus" : "BoSgob1h.pcx", "border" : "TOSGOB1H.bmp", "area" : "TZSGOB1H.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBSTHRD2.def", "x" : 373, "y" : 220, "border" : "TOSGOB2H.bmp", "area" : "TZSGOB2H.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBSTHRD2.def", "x" : 373, "y" : 220, "campaignBonus" : "BoSgob2h.pcx", "border" : "TOSGOB2H.bmp", "area" : "TZSGOB2H.bmp", "hidden" : true, "builds" : "horde1" },
"special2": { "animation" : "TBSTEXT0.def", "x" : 473, "y" : 282, "z" : 3, "border" : "TOSMRK1C.bmp", "area" : "TZSMRK1C.bmp" }, "special2": { "animation" : "TBSTEXT0.def", "x" : 473, "y" : 282, "z" : 3, "campaignBonus" : "BoSmrk1c.pcx", "border" : "TOSMRK1C.bmp", "area" : "TZSMRK1C.bmp" },
"special3": { "animation" : "TBSTEXT1.def", "x" : 617, "y" : 286, "z" : 1, "border" : "TOSBLK2.bmp", "area" : "TZSBLK2.bmp" }, "special3": { "animation" : "TBSTEXT1.def", "x" : 617, "y" : 286, "z" : 1, "campaignBonus" : "BoSblak2.pcx", "border" : "TOSBLK2.bmp", "area" : "TZSBLK2.bmp" },
"special4": { "animation" : "TBSTEXT2.def", "x" : 313, "y" : 13, "z" : -1, "border" : "TOSVAH.bmp", "area" : "TZSVAH.bmp" }, "special4": { "animation" : "TBSTEXT2.def", "x" : 313, "y" : 13, "z" : -1, "campaignBonus" : "BoSvahal.pcx", "border" : "TOSVAH.bmp", "area" : "TZSVAH.bmp" },
"grail": { "animation" : "TBSTHOLY.def", "x" : 321, "y" : 105, "z" : 3, "border" : "TOSHOLYA.bmp", "area" : "TZSHOLYA.bmp" }, "grail": { "animation" : "TBSTHOLY.def", "x" : 321, "y" : 105, "z" : 3, "campaignBonus" : "BoSholy.pcx", "border" : "TOSHOLYA.bmp", "area" : "TZSHOLYA.bmp" },
"dwellingLvl1": { "animation" : "TBSTDW_0.def", "x" : 373, "y" : 239, "border" : "TOSGOB1.bmp", "area" : "TZSGOB1.bmp" }, "dwellingLvl1": { "animation" : "TBSTDW_0.def", "x" : 373, "y" : 239, "campaignBonus" : "BoSgob1.pcx", "border" : "TOSGOB1.bmp", "area" : "TZSGOB1.bmp" },
"dwellingLvl2": { "animation" : "TBSTDW_1.def", "x" : 266, "y" : 246, "z" : 1, "border" : "TOSWOL1.bmp", "area" : "TZSWOL1.bmp" }, "dwellingLvl2": { "animation" : "TBSTDW_1.def", "x" : 266, "y" : 246, "z" : 1, "campaignBonus" : "BoSwolf1.pcx", "border" : "TOSWOL1.bmp", "area" : "TZSWOL1.bmp" },
"dwellingLvl3": { "animation" : "TBSTDW_2.def", "x" : 566, "y" : 232, "z" : 2, "border" : "TOSORC1.bmp", "area" : "TZSORC1.bmp" }, "dwellingLvl3": { "animation" : "TBSTDW_2.def", "x" : 566, "y" : 232, "z" : 2, "campaignBonus" : "BoSorc1.pcx", "border" : "TOSORC1.bmp", "area" : "TZSORC1.bmp" },
"dwellingLvl4": { "animation" : "TBSTDW_3.def", "x" : 197, "y" : 204, "border" : "TOSOGR1.bmp", "area" : "TZSOGR1.bmp" }, "dwellingLvl4": { "animation" : "TBSTDW_3.def", "x" : 197, "y" : 204, "campaignBonus" : "BoSogre1.pcx", "border" : "TOSOGR1.bmp", "area" : "TZSOGR1.bmp" },
"dwellingLvl5": { "animation" : "TBSTDW_4.def", "x" : 137, "y" : 30, "z" : -1, "border" : "TOSROC1.bmp", "area" : "TZSROC1.bmp" }, "dwellingLvl5": { "animation" : "TBSTDW_4.def", "x" : 137, "y" : 30, "z" : -1, "campaignBonus" : "BoSroc1.pcx", "border" : "TOSROC1.bmp", "area" : "TZSROC1.bmp" },
"dwellingLvl6": { "animation" : "TBSTDW_5.def", "x" : 622, "y" : 160, "z" : -2, "border" : "TOSCYC1.bmp", "area" : "TZSCYC1.bmp" }, "dwellingLvl6": { "animation" : "TBSTDW_5.def", "x" : 622, "y" : 160, "z" : -2, "campaignBonus" : "BoScyc1.pcx", "border" : "TOSCYC1.bmp", "area" : "TZSCYC1.bmp" },
"dwellingLvl7": { "animation" : "TBSTDW_6.def", "x" : 604, "y" : 0, "border" : "TOSBEH1A.bmp", "area" : "TZSBEH1A.bmp" }, "dwellingLvl7": { "animation" : "TBSTDW_6.def", "x" : 604, "y" : 0, "campaignBonus" : "BoSbeh1.pcx", "border" : "TOSBEH1A.bmp", "area" : "TZSBEH1A.bmp" },
"dwellingUpLvl1": { "animation" : "TBSTUP_0.def", "x" : 373, "y" : 220, "border" : "TOSGOB2.bmp", "area" : "TZSGOB2.bmp" }, "dwellingUpLvl1": { "animation" : "TBSTUP_0.def", "x" : 373, "y" : 220, "campaignBonus" : "BoSgob2.pcx", "border" : "TOSGOB2.bmp", "area" : "TZSGOB2.bmp" },
"dwellingUpLvl2": { "animation" : "TBSTUP_1.def", "x" : 266, "y" : 225, "z" : 1, "border" : "TOSWOL2.bmp", "area" : "TZSWOL2.bmp" }, "dwellingUpLvl2": { "animation" : "TBSTUP_1.def", "x" : 266, "y" : 225, "z" : 1, "campaignBonus" : "BoSwolf2.pcx", "border" : "TOSWOL2.bmp", "area" : "TZSWOL2.bmp" },
"dwellingUpLvl3": { "animation" : "TBSTUP_2.def", "x" : 566, "y" : 158, "z" : 2, "border" : "TOSORC2.bmp", "area" : "TZSORC2.bmp" }, "dwellingUpLvl3": { "animation" : "TBSTUP_2.def", "x" : 566, "y" : 158, "z" : 2, "campaignBonus" : "BoSorc2.pcx", "border" : "TOSORC2.bmp", "area" : "TZSORC2.bmp" },
"dwellingUpLvl4": { "animation" : "TBSTUP_3.def", "x" : 197, "y" : 137, "border" : "TOSOGR2.bmp", "area" : "TZSOGR2.bmp" }, "dwellingUpLvl4": { "animation" : "TBSTUP_3.def", "x" : 197, "y" : 137, "campaignBonus" : "BoSogre2.pcx", "border" : "TOSOGR2.bmp", "area" : "TZSOGR2.bmp" },
"dwellingUpLvl5": { "animation" : "TBSTUP_4.def", "x" : 129, "y" : 15, "z" : -1, "border" : "TOSROC2.bmp", "area" : "TZSROC2.bmp" }, "dwellingUpLvl5": { "animation" : "TBSTUP_4.def", "x" : 129, "y" : 15, "z" : -1, "campaignBonus" : "BoSroc2.pcx", "border" : "TOSROC2.bmp", "area" : "TZSROC2.bmp" },
"dwellingUpLvl6": { "animation" : "TBSTUP_5.def", "x" : 616, "y" : 93, "z" : -2, "border" : "TOSCYC2A.bmp", "area" : "TZSCYC2A.bmp" }, "dwellingUpLvl6": { "animation" : "TBSTUP_5.def", "x" : 616, "y" : 93, "z" : -2, "campaignBonus" : "BoScyc2.pcx", "border" : "TOSCYC2A.bmp", "area" : "TZSCYC2A.bmp" },
"dwellingUpLvl7": { "animation" : "TBSTUP_6.def", "x" : 604, "y" : 0, "border" : "TOSBEH2A.bmp", "area" : "TZSBEH2A.bmp" } "dwellingUpLvl7": { "animation" : "TBSTUP_6.def", "x" : 604, "y" : 0, "campaignBonus" : "BoSbeh2.pcx", "border" : "TOSBEH2A.bmp", "area" : "TZSBEH2A.bmp" }
}, },
"musicTheme" : [ "music/Stronghold" ], "musicTheme" : [ "music/Stronghold" ],

View File

@@ -79,43 +79,43 @@
}, },
"structures" : "structures" :
{ {
"mageGuild1": { "animation" : "TBTWMAGE.def", "x" : 597, "y" : 82, "z" : -1, "border" : "TOTGLD1.bmp", "area" : "TZTGLD1.bmp" }, "mageGuild1": { "animation" : "TBTWMAGE.def", "x" : 597, "y" : 82, "z" : -1, "campaignBonus" : "BoTGld1.pcx", "border" : "TOTGLD1.bmp", "area" : "TZTGLD1.bmp" },
"mageGuild2": { "animation" : "TBTWMAG2.def", "x" : 593, "y" : 65, "z" : -1, "border" : "TOTGLD2.bmp", "area" : "TZTGLD2.bmp" }, "mageGuild2": { "animation" : "TBTWMAG2.def", "x" : 593, "y" : 65, "z" : -1, "campaignBonus" : "BoTGld2.pcx", "border" : "TOTGLD2.bmp", "area" : "TZTGLD2.bmp" },
"mageGuild3": { "animation" : "TBTWMAG3.def", "x" : 593, "y" : 48, "z" : -1, "border" : "TOTGLD3.bmp", "area" : "TZTGLD3.bmp" }, "mageGuild3": { "animation" : "TBTWMAG3.def", "x" : 593, "y" : 48, "z" : -1, "campaignBonus" : "BoTGld3.pcx", "border" : "TOTGLD3.bmp", "area" : "TZTGLD3.bmp" },
"mageGuild4": { "animation" : "TBTWMAG4.def", "x" : 593, "y" : 31, "z" : -1, "border" : "TOTGLD4.bmp", "area" : "TZTGLD4.bmp" }, "mageGuild4": { "animation" : "TBTWMAG4.def", "x" : 593, "y" : 31, "z" : -1, "campaignBonus" : "BoTGld4.pcx", "border" : "TOTGLD4.bmp", "area" : "TZTGLD4.bmp" },
"mageGuild5": { "animation" : "TBTWMAG5.def", "x" : 593, "y" : 14, "z" : -1, "border" : "TOTGLD5.bmp", "area" : "TZTGLD5.bmp" }, "mageGuild5": { "animation" : "TBTWMAG5.def", "x" : 593, "y" : 14, "z" : -1, "campaignBonus" : "BoTGld5.pcx", "border" : "TOTGLD5.bmp", "area" : "TZTGLD5.bmp" },
"tavern": { "animation" : "TBTWTVRN.def", "x" : 375, "y" : 278, "z" : 1, "border" : "TOTTAV.bmp", "area" : "TZTTAV.bmp" }, "tavern": { "animation" : "TBTWTVRN.def", "x" : 375, "y" : 278, "z" : 1, "campaignBonus" : "BoTTav.pcx", "border" : "TOTTAV.bmp", "area" : "TZTTAV.bmp" },
"fort": { "animation" : "TBTWCSTL.def", "x" : 304, "y" : 0, "z" : -1, "border" : "TOTCAS1.bmp", "area" : "TZTCAS1.bmp" }, "fort": { "animation" : "TBTWCSTL.def", "x" : 304, "y" : 0, "z" : -1, "campaignBonus" : "BoTCast1.pcx", "border" : "TOTCAS1.bmp", "area" : "TZTCAS1.bmp" },
"citadel": { "animation" : "TBTWCAS2.def", "x" : 301, "y" : 0, "z" : -1, "border" : "TOTCAS2.bmp", "area" : "TZTCAS2.bmp" }, "citadel": { "animation" : "TBTWCAS2.def", "x" : 301, "y" : 0, "z" : -1, "campaignBonus" : "BoTCast2.pcx", "border" : "TOTCAS2.bmp", "area" : "TZTCAS2.bmp" },
"castle": { "animation" : "TBTWCAS3.def", "x" : 301, "y" : 0, "z" : -1, "border" : "TOTCAS3.bmp", "area" : "TZTCAS3.bmp" }, "castle": { "animation" : "TBTWCAS3.def", "x" : 301, "y" : 0, "z" : -1, "campaignBonus" : "BoTCast3.pcx", "border" : "TOTCAS3.bmp", "area" : "TZTCAS3.bmp" },
"villageHall": { "animation" : "TBTWHALL.def", "x" : 0, "y" : 259, "z" : 2, "border" : "TOTHAL1.bmp", "area" : "TZTHAL1.bmp" }, "villageHall": { "animation" : "TBTWHALL.def", "x" : 0, "y" : 259, "z" : 2, "campaignBonus" : "BoTHall1.pcx", "border" : "TOTHAL1.bmp", "area" : "TZTHAL1.bmp" },
"townHall": { "animation" : "TBTWHAL2.def", "x" : 0, "y" : 220, "z" : 2, "border" : "TOTHAL2.bmp", "area" : "TZTHAL2.bmp" }, "townHall": { "animation" : "TBTWHAL2.def", "x" : 0, "y" : 220, "z" : 2, "campaignBonus" : "BoTHall2.pcx", "border" : "TOTHAL2.bmp", "area" : "TZTHAL2.bmp" },
"cityHall": { "animation" : "TBTWHAL3.def", "x" : 0, "y" : 82, "z" : 2, "border" : "TOTHAL3.bmp", "area" : "TZTHAL3.bmp" }, "cityHall": { "animation" : "TBTWHAL3.def", "x" : 0, "y" : 82, "z" : 2, "campaignBonus" : "BoTHall3.pcx", "border" : "TOTHAL3.bmp", "area" : "TZTHAL3.bmp" },
"capitol": { "animation" : "TBTWHAL4.def", "x" : 0, "y" : 82, "z" : 2, "border" : "TOTHAL4.bmp", "area" : "TZTHAL4.bmp" }, "capitol": { "animation" : "TBTWHAL4.def", "x" : 0, "y" : 82, "z" : 2, "campaignBonus" : "BoTHall4.pcx", "border" : "TOTHAL4.bmp", "area" : "TZTHAL4.bmp" },
"marketplace": { "animation" : "TBTWMARK.def", "x" : 614, "y" : 292, "border" : "TOTMRK.bmp", "area" : "TZTMRK.bmp" }, "marketplace": { "animation" : "TBTWMARK.def", "x" : 614, "y" : 292, "campaignBonus" : "BoTMark.pcx", "border" : "TOTMRK.bmp", "area" : "TZTMRK.bmp" },
"resourceSilo": { "animation" : "TBTWSILO.def", "x" : 763, "y" : 214, "z" : 3, "border" : "TOTMRKS.bmp", "area" : "TZTMRKS.bmp" }, "resourceSilo": { "animation" : "TBTWSILO.def", "x" : 763, "y" : 214, "z" : 3, "campaignBonus" : "BoTMarkS.pcx", "border" : "TOTMRKS.bmp", "area" : "TZTMRKS.bmp" },
"blacksmith": { "animation" : "TBTWBLAK.def", "x" : 478, "y" : 211, "border" : "TOTBLKA.bmp", "area" : "TZTBLKA.bmp" }, "blacksmith": { "animation" : "TBTWBLAK.def", "x" : 478, "y" : 211, "campaignBonus" : "BoTBlack.pcx", "border" : "TOTBLKA.bmp", "area" : "TZTBLKA.bmp" },
"special1": { "animation" : "TBTWSPEC.def", "x" : 674, "y" : 276, "z" : 2, "border" : "TOTMRKA.bmp", "area" : "TZTMRKA.bmp" }, "special1": { "animation" : "TBTWSPEC.def", "x" : 674, "y" : 276, "z" : 2, "campaignBonus" : "BoTMarkA.pcx", "border" : "TOTMRKA.bmp", "area" : "TZTMRKA.bmp" },
"horde1": { "animation" : "TBTWHRD1.def", "x" : 0, "y" : 47, "border" : "TOTGAR1H.bmp", "area" : "TZTGAR1H.bmp", "hidden" : true }, "horde1": { "animation" : "TBTWHRD1.def", "x" : 0, "y" : 47, "campaignBonus" : "BoTGa1H.pcx", "border" : "TOTGAR1H.bmp", "area" : "TZTGAR1H.bmp", "hidden" : true },
"horde1Upgr": { "animation" : "TBTWHRD2.def", "x" : 0, "y" : 28, "border" : "TOTGAR2H.bmp", "area" : "TZTGAR2H.bmp", "hidden" : true, "builds" : "horde1" }, "horde1Upgr": { "animation" : "TBTWHRD2.def", "x" : 0, "y" : 28, "campaignBonus" : "BoTGa2h.pcx", "border" : "TOTGAR2H.bmp", "area" : "TZTGAR2H.bmp", "hidden" : true, "builds" : "horde1" },
"special2": { "animation" : "TBTWEXT0.def", "x" : 409, "y" : 82, "border" : "TOTCASW.bmp", "area" : "TZTCASW.bmp" }, "special2": { "animation" : "TBTWEXT0.def", "x" : 409, "y" : 82, "campaignBonus" : "BoTCastW.pcx", "border" : "TOTCASW.bmp", "area" : "TZTCASW.bmp" },
"special3": { "animation" : "TBTWEXT1.def", "x" : 702, "y" : 115, "border" : "TOTGLDL.bmp", "area" : "TZTGLDL.bmp" }, "special3": { "animation" : "TBTWEXT1.def", "x" : 702, "y" : 115, "campaignBonus" : "BoTGldL.pcx", "border" : "TOTGLDL.bmp", "area" : "TZTGLDL.bmp" },
"special4": { "animation" : "TBTWEXT2.def", "x" : 592, "y" : 189, "z" : 1, "border" : "TOTGLDW.bmp", "area" : "TZTGLDW.bmp" }, "special4": { "animation" : "TBTWEXT2.def", "x" : 592, "y" : 189, "z" : 1, "campaignBonus" : "BoTGldW.pcx", "border" : "TOTGLDW.bmp", "area" : "TZTGLDW.bmp" },
"grail": { "animation" : "TBTWHOLY.def", "x" : 237, "y" : 14, "z" : -2, "border" : "TOTHOLYA.bmp", "area" : "TZTHOLYA.bmp" }, "grail": { "animation" : "TBTWHOLY.def", "x" : 237, "y" : 14, "z" : -2, "campaignBonus" : "BoTGrail.pcx", "border" : "TOTHOLYA.bmp", "area" : "TZTHOLYA.bmp" },
"dwellingLvl1": { "animation" : "TBTWDW_0.def", "x" : 453, "y" : 221, "z" : 1, "border" : "TOTGRM1A.bmp", "area" : "TZTGRM1A.bmp" }, "dwellingLvl1": { "animation" : "TBTWDW_0.def", "x" : 453, "y" : 221, "z" : 1, "campaignBonus" : "BoTGrem1.pcx", "border" : "TOTGRM1A.bmp", "area" : "TZTGRM1A.bmp" },
"dwellingLvl2": { "animation" : "TBTWDW_1.def", "x" : 4, "y" : 46, "border" : "TOTGAR1.bmp", "area" : "TZTGAR1.bmp" }, "dwellingLvl2": { "animation" : "TBTWDW_1.def", "x" : 4, "y" : 46, "campaignBonus" : "BoTGar1.pcx", "border" : "TOTGAR1.bmp", "area" : "TZTGAR1.bmp" },
"dwellingLvl3": { "animation" : "TBTWDW_2.def", "x" : 209, "y" : 177, "z" : 1, "border" : "TOTGOL1A.bmp", "area" : "TZTGOL1A.bmp" }, "dwellingLvl3": { "animation" : "TBTWDW_2.def", "x" : 209, "y" : 177, "z" : 1, "campaignBonus" : "BoTGolm1.pcx", "border" : "TOTGOL1A.bmp", "area" : "TZTGOL1A.bmp" },
"dwellingLvl4": { "animation" : "TBTWDW_3.def", "x" : 613, "y" : 95, "border" : "TOTMAG1.bmp", "area" : "TZTMAG1.bmp" }, "dwellingLvl4": { "animation" : "TBTWDW_3.def", "x" : 613, "y" : 95, "campaignBonus" : "BoTMag1.pcx", "border" : "TOTMAG1.bmp", "area" : "TZTMAG1.bmp" },
"dwellingLvl5": { "animation" : "TBTWDW_4.def", "x" : 511, "y" : 75, "border" : "TOTGEN1.bmp", "area" : "TZTGEN1.bmp" }, "dwellingLvl5": { "animation" : "TBTWDW_4.def", "x" : 511, "y" : 75, "campaignBonus" : "BoTGen1.pcx", "border" : "TOTGEN1.bmp", "area" : "TZTGEN1.bmp" },
"dwellingLvl6": { "animation" : "TBTWDW_5.def", "x" : 681, "y" : 208, "z" : 2, "border" : "TOTNAG1.bmp", "area" : "TZTNAG1.bmp" }, "dwellingLvl6": { "animation" : "TBTWDW_5.def", "x" : 681, "y" : 208, "z" : 2, "campaignBonus" : "BoTNaga1.pcx", "border" : "TOTNAG1.bmp", "area" : "TZTNAG1.bmp" },
"dwellingLvl7": { "animation" : "TBTWDW_6.def", "x" : 75, "y" : 144, "z" : -1, "border" : "TOTTIT1.bmp", "area" : "TZTTIT1.bmp" }, "dwellingLvl7": { "animation" : "TBTWDW_6.def", "x" : 75, "y" : 144, "z" : -1, "campaignBonus" : "BoTTit1.pcx", "border" : "TOTTIT1.bmp", "area" : "TZTTIT1.bmp" },
"dwellingUpLvl1": { "animation" : "TBTWUP_0.def", "x" : 446, "y" : 221, "z" : 1, "border" : "TOTGRM2A.bmp", "area" : "TZTGRM2A.bmp" }, "dwellingUpLvl1": { "animation" : "TBTWUP_0.def", "x" : 446, "y" : 221, "z" : 1, "campaignBonus" : "BoTGrem2.pcx", "border" : "TOTGRM2A.bmp", "area" : "TZTGRM2A.bmp" },
"dwellingUpLvl2": { "animation" : "TBTWUP_1.def", "x" : 4, "y" : 28, "border" : "TOTGAR2.bmp", "area" : "TZTGAR2.bmp" }, "dwellingUpLvl2": { "animation" : "TBTWUP_1.def", "x" : 4, "y" : 28, "campaignBonus" : "BoTGar2.pcx", "border" : "TOTGAR2.bmp", "area" : "TZTGAR2.bmp" },
"dwellingUpLvl3": { "animation" : "TBTWUP_2.def", "x" : 209, "y" : 177, "z" : 1, "border" : "TOTGOL2A.bmp", "area" : "TZTGOL2A.bmp" }, "dwellingUpLvl3": { "animation" : "TBTWUP_2.def", "x" : 209, "y" : 177, "z" : 1, "campaignBonus" : "BoTGolm2.pcx", "border" : "TOTGOL2A.bmp", "area" : "TZTGOL2A.bmp" },
"dwellingUpLvl4": { "animation" : "TBTWUP_3.def", "x" : 613, "y" : 74, "border" : "TOTMAG2.bmp", "area" : "TZTMAG2.bmp" }, "dwellingUpLvl4": { "animation" : "TBTWUP_3.def", "x" : 613, "y" : 74, "campaignBonus" : "BoTMag2.pcx", "border" : "TOTMAG2.bmp", "area" : "TZTMAG2.bmp" },
"dwellingUpLvl5": { "animation" : "TBTWUP_4.def", "x" : 511, "y" : 8, "border" : "TOTGEN2.bmp", "area" : "TZTGEN2.bmp" }, "dwellingUpLvl5": { "animation" : "TBTWUP_4.def", "x" : 511, "y" : 8, "campaignBonus" : "BoTGen2.pcx", "border" : "TOTGEN2.bmp", "area" : "TZTGEN2.bmp" },
"dwellingUpLvl6": { "animation" : "TBTWUP_5.def", "x" : 681, "y" : 157, "z" : 2, "border" : "TOTNAG2.bmp", "area" : "TZTNAG2.bmp" }, "dwellingUpLvl6": { "animation" : "TBTWUP_5.def", "x" : 681, "y" : 157, "z" : 2, "campaignBonus" : "BoTNaga2.pcx", "border" : "TOTNAG2.bmp", "area" : "TZTNAG2.bmp" },
"dwellingUpLvl7": { "animation" : "TBTWUP_6.def", "x" : 75, "y" : 91, "z" : -1, "border" : "TOTTIT2.bmp", "area" : "TZTTIT2.bmp" } "dwellingUpLvl7": { "animation" : "TBTWUP_6.def", "x" : 75, "y" : 91, "z" : -1, "campaignBonus" : "BoTTit2.pcx", "border" : "TOTTIT2.bmp", "area" : "TZTTIT2.bmp" }
}, },
"musicTheme" : [ "music/TowerTown" ], "musicTheme" : [ "music/TowerTown" ],

View File

@@ -29,6 +29,11 @@
"description" : "Golden border around building, displayed when building is selected", "description" : "Golden border around building, displayed when building is selected",
"format" : "imageFile" "format" : "imageFile"
}, },
"campaignBonus" : {
"type" : "string",
"description" : "Town building icon for campaigns",
"format" : "imageFile"
},
"x" : { "x" : {
"type" : "number", "type" : "number",
"description" : "Position on screen" "description" : "Position on screen"

View File

@@ -102,7 +102,6 @@ set(lib_MAIN_SRCS
entities/artifact/CArtifactInstance.cpp entities/artifact/CArtifactInstance.cpp
entities/artifact/CArtifactSet.cpp entities/artifact/CArtifactSet.cpp
entities/building/CBuilding.cpp entities/building/CBuilding.cpp
entities/building/CBuildingHandler.cpp
entities/faction/CFaction.cpp entities/faction/CFaction.cpp
entities/faction/CTown.cpp entities/faction/CTown.cpp
entities/faction/CTownHandler.cpp entities/faction/CTownHandler.cpp
@@ -509,7 +508,6 @@ set(lib_MAIN_HEADERS
entities/artifact/CArtifactSet.h entities/artifact/CArtifactSet.h
entities/artifact/EArtifactClass.h entities/artifact/EArtifactClass.h
entities/building/CBuilding.h entities/building/CBuilding.h
entities/building/CBuildingHandler.h
entities/building/TownFortifications.h entities/building/TownFortifications.h
entities/faction/CFaction.h entities/faction/CFaction.h
entities/faction/CTown.h entities/faction/CTown.h

View File

@@ -80,7 +80,7 @@ CampaignBonus::CampaignBonus(CBinaryReader & reader, const MapIdentifiersH3M & r
case CampaignBonusType::BUILDING: case CampaignBonusType::BUILDING:
{ {
BuildingID building(reader.readUInt8()); BuildingID building(reader.readUInt8());
data = CampaignBonusBuilding{remapper.remapBuilding(std::nullopt, building)}; data = CampaignBonusBuilding{building, remapper.remapBuilding(std::nullopt, building)};
break; break;
} }
case CampaignBonusType::ARTIFACT: case CampaignBonusType::ARTIFACT:
@@ -197,7 +197,7 @@ CampaignBonus::CampaignBonus(const JsonNode & bjson, CampaignStartOptions mode)
case CampaignBonusType::BUILDING: case CampaignBonusType::BUILDING:
{ {
BuildingID building(vstd::find_pos(EBuildingType::names, bjson["buildingType"].String())); BuildingID building(vstd::find_pos(EBuildingType::names, bjson["buildingType"].String()));
data = CampaignBonusBuilding{building}; data = CampaignBonusBuilding{building, building};
break; break;
} }
case CampaignBonusType::ARTIFACT: case CampaignBonusType::ARTIFACT:
@@ -292,7 +292,7 @@ JsonNode CampaignBonus::toJson() const
case CampaignBonusType::BUILDING: case CampaignBonusType::BUILDING:
{ {
const auto & bonusValue = getValue<CampaignBonusBuilding>(); const auto & bonusValue = getValue<CampaignBonusBuilding>();
bnode["buildingType"].String() = EBuildingType::names[bonusValue.building.getNum()]; bnode["buildingType"].String() = EBuildingType::names[bonusValue.buildingDecoded.getNum()];
break; break;
} }
case CampaignBonusType::ARTIFACT: case CampaignBonusType::ARTIFACT:

View File

@@ -46,11 +46,13 @@ struct CampaignBonusCreatures
struct CampaignBonusBuilding struct CampaignBonusBuilding
{ {
BuildingID building; BuildingID buildingH3M;
BuildingID buildingDecoded;
template <typename Handler> void serialize(Handler &h) template <typename Handler> void serialize(Handler &h)
{ {
h & building; h & buildingH3M;
h & buildingDecoded;
} }
}; };
@@ -143,9 +145,9 @@ struct CampaignBonusStartingHero
class CampaignBonus class CampaignBonus
{ {
using Variant = std::variant< using Variant = std::variant<
CampaignBonusSpell, CampaignBonusSpell, // UNTESTED
CampaignBonusCreatures, CampaignBonusCreatures,
CampaignBonusBuilding, CampaignBonusBuilding, // UNTESTED - broken, Long Live the King, Liberation last
CampaignBonusArtifact, CampaignBonusArtifact,
CampaignBonusSpellScroll, CampaignBonusSpellScroll,
CampaignBonusPrimarySkill, CampaignBonusPrimarySkill,

View File

@@ -39,9 +39,9 @@ bool CampaignHeader::playerSelectedDifficulty() const
return difficultyChosenByPlayer; return difficultyChosenByPlayer;
} }
bool CampaignHeader::formatVCMI() const CampaignVersion CampaignHeader::getFormat() const
{ {
return version == CampaignVersion::VCMI; return version;
} }
std::string CampaignHeader::getDescriptionTranslated() const std::string CampaignHeader::getDescriptionTranslated() const

View File

@@ -67,7 +67,7 @@ class DLL_LINKAGE CampaignHeader : public boost::noncopyable
TextContainerRegistrable textContainer; TextContainerRegistrable textContainer;
public: public:
bool playerSelectedDifficulty() const; bool playerSelectedDifficulty() const;
bool formatVCMI() const; CampaignVersion getFormat() const;
std::string getDescriptionTranslated() const; std::string getDescriptionTranslated() const;
std::string getNameTranslated() const; std::string getNameTranslated() const;

View File

@@ -131,6 +131,9 @@ void CChargedArtifactInstance::onChargesChanged()
auto artInst = static_cast<CArtifactInstance*>(this); auto artInst = static_cast<CArtifactInstance*>(this);
const auto artType = artInst->getType(); const auto artType = artInst->getType();
if(!artType->isCharged())
return;
const auto bonusSelector = artType->getDischargeCondition() == DischargeArtifactCondition::SPELLCAST ? const auto bonusSelector = artType->getDischargeCondition() == DischargeArtifactCondition::SPELLCAST ?
Selector::type()(BonusType::SPELL) : Selector::all; Selector::type()(BonusType::SPELL) : Selector::all;

View File

@@ -1,87 +0,0 @@
/*
* CBuildingHandler.cpp, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#include "StdInc.h"
#include "CBuildingHandler.h"
#include "GameLibrary.h"
#include "../faction/CTown.h"
#include "../faction/CTownHandler.h"
VCMI_LIB_NAMESPACE_BEGIN
BuildingID CBuildingHandler::campToERMU(int camp, FactionID townType, const std::set<BuildingID> & builtBuildings)
{
static const std::vector<BuildingID> campToERMU =
{
BuildingID::TOWN_HALL, BuildingID::CITY_HALL,
BuildingID::CAPITOL, BuildingID::FORT, BuildingID::CITADEL, BuildingID::CASTLE, BuildingID::TAVERN,
BuildingID::BLACKSMITH, BuildingID::MARKETPLACE, BuildingID::RESOURCE_SILO, BuildingID::NONE,
BuildingID::MAGES_GUILD_1, BuildingID::MAGES_GUILD_2, BuildingID::MAGES_GUILD_3, BuildingID::MAGES_GUILD_4,
BuildingID::MAGES_GUILD_5,
BuildingID::SHIPYARD, BuildingID::GRAIL,
BuildingID::SPECIAL_1, BuildingID::SPECIAL_2, BuildingID::SPECIAL_3, BuildingID::SPECIAL_4
}; //creature generators with banks - handled separately
if (camp < campToERMU.size())
{
return campToERMU[camp];
}
static const std::vector<int> hordeLvlsPerTType[GameConstants::F_NUMBER] =
{
{2}, {1}, {1,4}, {0,2}, {0}, {0}, {0}, {0}, {0}
};
int curPos = static_cast<int>(campToERMU.size());
for (int i=0; i<(*LIBRARY->townh)[townType]->town->creatures.size(); ++i)
{
if(camp == curPos) //non-upgraded
return BuildingID(30 + i);
curPos++;
if(camp == curPos) //upgraded
return BuildingID(37 + i);
curPos++;
if (i < 5) // last two levels don't have reserved horde ID. Yet another H3C weirdeness
{
if (vstd::contains(hordeLvlsPerTType[townType.getNum()], i))
{
if (camp == curPos)
{
if (hordeLvlsPerTType[townType.getNum()][0] == i)
{
BuildingID dwellingID(BuildingID::getDwellingFromLevel(hordeLvlsPerTType[townType.getNum()][0], 1));
if(vstd::contains(builtBuildings, dwellingID)) //if upgraded dwelling is built
return BuildingID::HORDE_1_UPGR;
else //upgraded dwelling not presents
return BuildingID::HORDE_1;
}
else
{
if(hordeLvlsPerTType[townType.getNum()].size() > 1)
{
BuildingID dwellingID(BuildingID::getDwellingFromLevel(hordeLvlsPerTType[townType.getNum()][1], 1));
if(vstd::contains(builtBuildings, dwellingID)) //if upgraded dwelling is built
return BuildingID::HORDE_2_UPGR;
else //upgraded dwelling not presents
return BuildingID::HORDE_2;
}
}
}
}
curPos++;
}
}
assert(0);
return BuildingID::NONE; //not found
}
VCMI_LIB_NAMESPACE_END

View File

@@ -1,22 +0,0 @@
/*
* CBuildingHandler.h, part of VCMI engine
*
* Authors: listed in file AUTHORS in main folder
*
* License: GNU General Public License v2.0 or later
* Full text of license available in license.txt file, in main folder
*
*/
#pragma once
#include "../../constants/EntityIdentifiers.h"
VCMI_LIB_NAMESPACE_BEGIN
class DLL_LINKAGE CBuildingHandler
{
public:
static BuildingID campToERMU(int camp, FactionID townType, const std::set<BuildingID> & builtBuildings);
};
VCMI_LIB_NAMESPACE_END

View File

@@ -31,6 +31,7 @@ struct DLL_LINKAGE CStructure
int3 pos; int3 pos;
AnimationPath defName; AnimationPath defName;
ImagePath borderName; ImagePath borderName;
ImagePath campaignBonus;
ImagePath areaName; ImagePath areaName;
std::string identifier; std::string identifier;

View File

@@ -450,6 +450,7 @@ void CTownHandler::loadStructure(CTown &town, const std::string & stringID, cons
ret->hiddenUpgrade = source["hidden"].Bool(); ret->hiddenUpgrade = source["hidden"].Bool();
ret->defName = AnimationPath::fromJson(source["animation"]); ret->defName = AnimationPath::fromJson(source["animation"]);
ret->borderName = ImagePath::fromJson(source["border"]); ret->borderName = ImagePath::fromJson(source["border"]);
ret->campaignBonus = ImagePath::fromJson(source["campaignBonus"]);
ret->areaName = ImagePath::fromJson(source["area"]); ret->areaName = ImagePath::fromJson(source["area"]);
town.clientInfo.structures.emplace_back(ret); town.clientInfo.structures.emplace_back(ret);

View File

@@ -17,7 +17,6 @@
#include "../entities/artifact/ArtifactUtils.h" #include "../entities/artifact/ArtifactUtils.h"
#include "../entities/artifact/CArtifact.h" #include "../entities/artifact/CArtifact.h"
#include "../entities/building/CBuilding.h" #include "../entities/building/CBuilding.h"
#include "../entities/building/CBuildingHandler.h"
#include "../entities/hero/CHeroClass.h" #include "../entities/hero/CHeroClass.h"
#include "../entities/hero/CHero.h" #include "../entities/hero/CHero.h"
#include "../mapping/CMapEditManager.h" #include "../mapping/CMapEditManager.h"
@@ -29,6 +28,7 @@
#include "../StartInfo.h" #include "../StartInfo.h"
#include "../mapping/CMap.h" #include "../mapping/CMap.h"
#include "../CPlayerState.h" #include "../CPlayerState.h"
#include "mapping/MapFormatSettings.h"
#include <vstd/RNG.h> #include <vstd/RNG.h>
#include <vcmi/HeroTypeService.h> #include <vcmi/HeroTypeService.h>
@@ -661,11 +661,13 @@ void CGameStateCampaign::initTowns()
if (town->anchorPos() != pi.posOfMainTown) if (town->anchorPos() != pi.posOfMainTown)
continue; continue;
BuildingID newBuilding; BuildingID newBuilding = bonusValue.buildingDecoded;
if(gameState->scenarioOps->campState->formatVCMI())
newBuilding = bonusValue.building; if (bonusValue.buildingH3M.hasValue())
else {
newBuilding = CBuildingHandler::campToERMU(bonusValue.building, town->getFactionID(), town->getBuildings()); auto mapping = LIBRARY->mapFormat->getMapping(gameState->scenarioOps->campState->getFormat());
newBuilding = mapping.remapBuilding(town->getFactionID(), bonusValue.buildingH3M);
}
// Build granted building & all prerequisites - e.g. Mages Guild Lvl 3 should also give Mages Guild Lvl 1 & 2 // Build granted building & all prerequisites - e.g. Mages Guild Lvl 3 should also give Mages Guild Lvl 1 & 2
while(true) while(true)

View File

@@ -31,7 +31,7 @@ struct ObjectTypeIdentifier
} }
}; };
class MapIdentifiersH3M class DLL_LINKAGE MapIdentifiersH3M
{ {
std::map<BuildingID, BuildingID> mappingBuilding; std::map<BuildingID, BuildingID> mappingBuilding;
std::map<FactionID, std::map<BuildingID, BuildingID>> mappingFactionBuilding; std::map<FactionID, std::map<BuildingID, BuildingID>> mappingFactionBuilding;

View File

@@ -165,7 +165,7 @@ void StartingBonus::loadBonus()
const auto & bonusValue = bonus.getValue<CampaignBonusBuilding>(); const auto & bonusValue = bonus.getValue<CampaignBonusBuilding>();
ui->radioButtonBuilding->setChecked(true); ui->radioButtonBuilding->setChecked(true);
on_radioButtonBuilding_toggled(); on_radioButtonBuilding_toggled();
setComboBoxValue(ui->comboBoxBuildingBuilding, bonusValue.building.getNum()); setComboBoxValue(ui->comboBoxBuildingBuilding, bonusValue.buildingDecoded.getNum());
break; break;
} }
case CampaignBonusType::ARTIFACT: case CampaignBonusType::ARTIFACT:
@@ -238,6 +238,7 @@ void StartingBonus::saveBonus()
}; };
else if(ui->radioButtonBuilding->isChecked()) else if(ui->radioButtonBuilding->isChecked())
bonus = CampaignBonusBuilding{ bonus = CampaignBonusBuilding{
BuildingID{},
BuildingID(ui->comboBoxBuildingBuilding->currentData().toInt()) BuildingID(ui->comboBoxBuildingBuilding->currentData().toInt())
}; };
else if(ui->radioButtonArtifact->isChecked()) else if(ui->radioButtonArtifact->isChecked())