mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-27 22:49:25 +02:00
Seer Huts with exp / gold rewards.
This commit is contained in:
@@ -389,10 +389,10 @@ void CQuest::getCompletionText (MetaString &iwText, std::vector<Component> &comp
|
||||
|
||||
CGSeerHut::CGSeerHut() : IQuestObject()
|
||||
{
|
||||
obj->quest->lastDay = -1;
|
||||
obj->quest->isCustomFirst = false;
|
||||
obj->quest->isCustomNext = false;
|
||||
obj->quest->isCustomComplete = false;
|
||||
quest->lastDay = -1;
|
||||
quest->isCustomFirst = false;
|
||||
quest->isCustomNext = false;
|
||||
quest->isCustomComplete = false;
|
||||
}
|
||||
|
||||
void CGSeerHut::setObjToKill()
|
||||
|
||||
@@ -2283,11 +2283,10 @@ void CRmgTemplateZone::addAllPossibleObjects(CMapGenerator* gen)
|
||||
{
|
||||
seerHutsPerType = 1;
|
||||
}
|
||||
oi.maxPerZone = seerHutsPerType;
|
||||
|
||||
RandomGeneratorUtil::randomShuffle(creatures, gen->rand);
|
||||
|
||||
for (int loops = 0; loops < seerHutsPerType; loops++) //in case there are many arties available
|
||||
{
|
||||
for (int i = 0; i < std::min<int>(creatures.size(), questArtsRemaining - genericSeerHuts); i++)
|
||||
{
|
||||
auto creature = creatures[i];
|
||||
@@ -2321,6 +2320,59 @@ void CRmgTemplateZone::addAllPossibleObjects(CMapGenerator* gen)
|
||||
oi.probability = 3;
|
||||
possibleObjects.push_back(oi);
|
||||
}
|
||||
|
||||
static int seerExpGold[] = { 5000, 10000, 15000, 20000 };
|
||||
static int seerValues[] = { 2000, 5333, 8666, 12000};
|
||||
|
||||
for (int i = 0; i < 4; i++) //seems that code for exp and gold reward is similiar
|
||||
{
|
||||
int randomAppearance = *RandomGeneratorUtil::nextItem(VLC->objtypeh->knownSubObjects(Obj::SEER_HUT), gen->rand);
|
||||
|
||||
oi.setTemplate(Obj::SEER_HUT, randomAppearance, terrainType);
|
||||
oi.value = seerValues[i];
|
||||
oi.probability = 10;
|
||||
|
||||
oi.generateObject = [i, randomAppearance, gen]() -> CGObjectInstance *
|
||||
{
|
||||
auto obj = new CGSeerHut();
|
||||
obj->ID = Obj::SEER_HUT;
|
||||
obj->subID = randomAppearance;
|
||||
obj->rewardType = CGSeerHut::EXPERIENCE;
|
||||
obj->rID = 0; //unitialized?
|
||||
obj->rVal = seerExpGold[i];
|
||||
|
||||
obj->quest->missionType = CQuest::MISSION_ART;
|
||||
ArtifactID artid = *RandomGeneratorUtil::nextItem(gen->getQuestArtsRemaning(), gen->rand);
|
||||
obj->quest->m5arts.push_back(artid);
|
||||
gen->banQuestArt(artid);
|
||||
gen->map->addQuest(obj);
|
||||
|
||||
return obj;
|
||||
//TODO: place required artifact in next zone
|
||||
};
|
||||
|
||||
possibleObjects.push_back(oi);
|
||||
|
||||
oi.generateObject = [i, randomAppearance, gen]() -> CGObjectInstance *
|
||||
{
|
||||
auto obj = new CGSeerHut();
|
||||
obj->ID = Obj::SEER_HUT;
|
||||
obj->subID = randomAppearance;
|
||||
obj->rewardType = CGSeerHut::RESOURCES;
|
||||
obj->rID = Res::GOLD;
|
||||
obj->rVal = seerExpGold[i];
|
||||
|
||||
obj->quest->missionType = CQuest::MISSION_ART;
|
||||
ArtifactID artid = *RandomGeneratorUtil::nextItem(gen->getQuestArtsRemaning(), gen->rand);
|
||||
obj->quest->m5arts.push_back(artid);
|
||||
gen->banQuestArt(artid);
|
||||
gen->map->addQuest(obj);
|
||||
|
||||
return obj;
|
||||
//TODO: place required artifact in next zone
|
||||
};
|
||||
|
||||
possibleObjects.push_back(oi);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user