mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-06 09:09:40 +02:00
Add new rewards for configurable objects
This commit is contained in:
@@ -1111,9 +1111,9 @@ void CMapLoaderH3M::readBoxContent(CGPandoraBox * object, const int3 & mapPositi
|
||||
reward.heroExperience = reader->readUInt32();
|
||||
reward.manaDiff = reader->readInt32();
|
||||
if(auto val = reader->readInt8Checked(-3, 3))
|
||||
reward.bonuses.emplace_back(BonusDuration::ONE_BATTLE, BonusType::MORALE, BonusSource::OBJECT_INSTANCE, val, BonusSourceID(idToBeGiven));
|
||||
reward.heroBonuses.emplace_back(BonusDuration::ONE_BATTLE, BonusType::MORALE, BonusSource::OBJECT_INSTANCE, val, BonusSourceID(idToBeGiven));
|
||||
if(auto val = reader->readInt8Checked(-3, 3))
|
||||
reward.bonuses.emplace_back(BonusDuration::ONE_BATTLE, BonusType::LUCK, BonusSource::OBJECT_INSTANCE, val, BonusSourceID(idToBeGiven));
|
||||
reward.heroBonuses.emplace_back(BonusDuration::ONE_BATTLE, BonusType::LUCK, BonusSource::OBJECT_INSTANCE, val, BonusSourceID(idToBeGiven));
|
||||
|
||||
reader->readResources(reward.resources);
|
||||
for(int x = 0; x < GameConstants::PRIMARY_SKILLS; ++x)
|
||||
@@ -1130,11 +1130,11 @@ void CMapLoaderH3M::readBoxContent(CGPandoraBox * object, const int3 & mapPositi
|
||||
size_t gart = reader->readUInt8(); //number of gained artifacts
|
||||
for(size_t oo = 0; oo < gart; ++oo)
|
||||
{
|
||||
reward.artifacts.push_back(reader->readArtifact());
|
||||
reward.grantedArtifacts.push_back(reader->readArtifact());
|
||||
if (features.levelHOTA5)
|
||||
{
|
||||
SpellID scrollSpell = reader->readSpell16();
|
||||
if (reward.artifacts.back() == ArtifactID::SPELL_SCROLL)
|
||||
if (reward.grantedArtifacts.back() == ArtifactID::SPELL_SCROLL)
|
||||
logGlobal->warn("Map '%s': Pandora/Event at %s Option to give spell scroll (%s) via event or pandora is not implemented!", mapName, mapPosition.toString(), scrollSpell.toEntity(LIBRARY)->getJsonKey());
|
||||
}
|
||||
}
|
||||
@@ -2300,12 +2300,12 @@ void CMapLoaderH3M::readSeerHutQuest(CGSeerHut * hut, const int3 & position, con
|
||||
}
|
||||
case ESeerHutRewardType::MORALE:
|
||||
{
|
||||
reward.bonuses.emplace_back(BonusDuration::ONE_BATTLE, BonusType::MORALE, BonusSource::OBJECT_INSTANCE, reader->readInt8Checked(-3, 3), BonusSourceID(idToBeGiven));
|
||||
reward.heroBonuses.emplace_back(BonusDuration::ONE_BATTLE, BonusType::MORALE, BonusSource::OBJECT_INSTANCE, reader->readInt8Checked(-3, 3), BonusSourceID(idToBeGiven));
|
||||
break;
|
||||
}
|
||||
case ESeerHutRewardType::LUCK:
|
||||
{
|
||||
reward.bonuses.emplace_back(BonusDuration::ONE_BATTLE, BonusType::LUCK, BonusSource::OBJECT_INSTANCE, reader->readInt8Checked(-3, 3), BonusSourceID(idToBeGiven));
|
||||
reward.heroBonuses.emplace_back(BonusDuration::ONE_BATTLE, BonusType::LUCK, BonusSource::OBJECT_INSTANCE, reader->readInt8Checked(-3, 3), BonusSourceID(idToBeGiven));
|
||||
break;
|
||||
}
|
||||
case ESeerHutRewardType::RESOURCES:
|
||||
@@ -2334,11 +2334,11 @@ void CMapLoaderH3M::readSeerHutQuest(CGSeerHut * hut, const int3 & position, con
|
||||
}
|
||||
case ESeerHutRewardType::ARTIFACT:
|
||||
{
|
||||
reward.artifacts.push_back(reader->readArtifact());
|
||||
reward.grantedArtifacts.push_back(reader->readArtifact());
|
||||
if (features.levelHOTA5)
|
||||
{
|
||||
SpellID scrollSpell = reader->readSpell16();
|
||||
if (reward.artifacts.back() == ArtifactID::SPELL_SCROLL)
|
||||
if (reward.grantedArtifacts.back() == ArtifactID::SPELL_SCROLL)
|
||||
logGlobal->warn("Map '%s': Seer Hut at %s: Option to give spell scroll (%s) as a reward is not implemented!", mapName, position.toString(), scrollSpell.toEntity(LIBRARY)->getJsonKey());
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user