1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-11-06 09:09:40 +02:00

HAS_CHARGES_LIMITER

This commit is contained in:
SoundSSGood
2025-05-20 16:29:14 +02:00
parent b6f1eac19b
commit 6752ab3a75
20 changed files with 136 additions and 78 deletions

View File

@@ -21,6 +21,7 @@
#include "../RoadHandler.h"
#include "../TerrainHandler.h"
#include "../bonuses/Limiters.h"
#include "../callback/IGameInfoCallback.h"
#include "../entities/artifact/CArtHandler.h"
#include "../entities/hero/CHeroHandler.h"
@@ -863,13 +864,19 @@ CArtifactInstance * CMap::createArtifact(const ArtifactID & artID, const SpellID
{
auto bonus = std::make_shared<Bonus>();
bonus->type = BonusType::ARTIFACT_CHARGE;
bonus->sid = artInst->getId();
bonus->val = 0;
artInst->addNewBonus(bonus);
artInst->addCharges(art->getDefaultStartCharges());
}
for (const auto & bonus : art->instanceBonuses)
artInst->addNewBonus(std::make_shared<Bonus>(*bonus));
{
auto instBonus = std::make_shared<Bonus>(*bonus);
if(const auto srcLimiter = std::static_pointer_cast<const HasChargesLimiter>(bonus->limiter))
instBonus->limiter = std::make_shared<HasChargesLimiter>(*srcLimiter, artInst->getId());
artInst->addNewBonus(instBonus);
}
return artInst;
}