mirror of
https://github.com/vcmi/vcmi.git
synced 2025-02-03 13:01:33 +02:00
Removed incomplete functionality from rewardable object
This commit is contained in:
parent
c9dcb921ab
commit
ca521fb129
@ -1178,7 +1178,7 @@ namespace ObjProperty
|
||||
BANK_DAYCOUNTER, BANK_RESET, BANK_CLEAR,
|
||||
|
||||
//object with reward
|
||||
REWARD_RANDOMIZE, REWARDS_CLEAR_GRANTS, REWARD_SELECT
|
||||
REWARD_RANDOMIZE, REWARD_SELECT
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -134,7 +134,6 @@ void CRandomRewardObjectInfo::configureResetInfo(CRewardableObject * object, CRa
|
||||
{
|
||||
resetParameters.period = static_cast<ui32>(source["period"].Float());
|
||||
resetParameters.visitors = source["visitors"].Bool();
|
||||
resetParameters.grants = source["grants"].Bool();
|
||||
resetParameters.rewards = source["rewards"].Bool();
|
||||
}
|
||||
|
||||
@ -172,9 +171,7 @@ void CRandomRewardObjectInfo::configureObject(CRewardableObject * object, CRando
|
||||
configureLimiter(object, rng, info.limiter, reward["limiter"]);
|
||||
configureReward(object, rng, info.reward, reward);
|
||||
|
||||
info.numOfGrantsAllowed = JsonRandom::loadValue(reward["numOfGrants"], rng);
|
||||
info.message = loadMessage(reward["message"]);
|
||||
info.selectChance = JsonRandom::loadValue(reward["selectChance"], rng);
|
||||
|
||||
for (const auto & artifact : info.reward.artifacts )
|
||||
info.message.addReplacement(MetaString::ART_NAMES, artifact.getNum());
|
||||
|
@ -104,8 +104,7 @@ std::vector<ui32> CRewardableObject::getAvailableRewards(const CGHeroInstance *
|
||||
{
|
||||
const CRewardVisitInfo & visit = info[i];
|
||||
|
||||
if((visit.numOfGrantsAllowed == 0 || visit.numOfGrantsPerformed < visit.numOfGrantsAllowed) // reward has unlimited uses or some are still available
|
||||
&& visit.limiter.heroAllowed(hero))
|
||||
if(visit.limiter.heroAllowed(hero))
|
||||
{
|
||||
logGlobal->trace("Reward %d is allowed", i);
|
||||
ret.push_back(static_cast<ui32>(i));
|
||||
@ -188,9 +187,6 @@ void CRewardableObject::onHeroVisit(const CGHeroInstance *h) const
|
||||
case SELECT_FIRST: // give first available
|
||||
grantRewardWithMessage(rewards[0]);
|
||||
break;
|
||||
case SELECT_RANDOM: // select one randomly //TODO: use weights
|
||||
grantRewardWithMessage(rewards[CRandomGenerator::getDefault().nextInt((int)rewards.size()-1)]);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -489,13 +485,8 @@ void CRewardableObject::setPropertyDer(ui8 what, ui32 val)
|
||||
case ObjProperty::REWARD_RANDOMIZE:
|
||||
initObj(cb->gameState()->getRandomGenerator());
|
||||
break;
|
||||
case ObjProperty::REWARDS_CLEAR_GRANTS:
|
||||
for (auto & visit : info)
|
||||
visit.numOfGrantsPerformed = 0;
|
||||
break;
|
||||
case ObjProperty::REWARD_SELECT:
|
||||
selectedReward = val;
|
||||
info[val].numOfGrantsPerformed++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -506,10 +497,6 @@ void CRewardableObject::triggerReset() const
|
||||
{
|
||||
cb->setObjProperty(id, ObjProperty::REWARD_RANDOMIZE, 0);
|
||||
}
|
||||
if (resetParameters.grants)
|
||||
{
|
||||
cb->setObjProperty(id, ObjProperty::REWARDS_CLEAR_GRANTS, 0);
|
||||
}
|
||||
if (resetParameters.visitors)
|
||||
{
|
||||
ChangeObjectVisitors cov(ChangeObjectVisitors::VISITOR_CLEAR, id);
|
||||
|
@ -94,7 +94,6 @@ public:
|
||||
CRewardResetInfo()
|
||||
: period(0)
|
||||
, visitors(false)
|
||||
, grants(false)
|
||||
, rewards(false)
|
||||
{}
|
||||
|
||||
@ -104,8 +103,6 @@ public:
|
||||
/// if true - reset list of visitors (heroes & players) on reset
|
||||
bool visitors;
|
||||
|
||||
/// if true - reset number of grants of rewards on reset
|
||||
bool grants;
|
||||
|
||||
/// if true - re-randomize rewards on a new week
|
||||
bool rewards;
|
||||
@ -114,7 +111,6 @@ public:
|
||||
{
|
||||
h & period;
|
||||
h & visitors;
|
||||
h & grants;
|
||||
h & rewards;
|
||||
}
|
||||
};
|
||||
@ -214,35 +210,19 @@ public:
|
||||
/// Message that will be displayed on granting of this reward, if not empty
|
||||
MetaString message;
|
||||
|
||||
/// Chance for this reward to be selected in case of random choice
|
||||
si32 selectChance;
|
||||
|
||||
/// How many times this reward can be granted between two resets
|
||||
si32 numOfGrantsAllowed;
|
||||
|
||||
/// How many times this reward has been granted since last reset
|
||||
si32 numOfGrantsPerformed;
|
||||
|
||||
CRewardVisitInfo():
|
||||
selectChance(0),
|
||||
numOfGrantsAllowed(0),
|
||||
numOfGrantsPerformed(0)
|
||||
{}
|
||||
CRewardVisitInfo() = default;
|
||||
|
||||
template <typename Handler> void serialize(Handler &h, const int version)
|
||||
{
|
||||
h & limiter;
|
||||
h & reward;
|
||||
h & message;
|
||||
h & selectChance;
|
||||
h & numOfGrantsAllowed;
|
||||
h & numOfGrantsPerformed;
|
||||
}
|
||||
};
|
||||
|
||||
namespace Rewardable
|
||||
{
|
||||
const std::array<std::string, 3> SelectModeString{"selectFirst", "selectPlayer", "selectRandom"};
|
||||
const std::array<std::string, 3> SelectModeString{"selectFirst", "selectPlayer"};
|
||||
const std::array<std::string, 5> VisitModeString{"unlimited", "once", "hero", "bonus", "player"};
|
||||
}
|
||||
|
||||
@ -272,7 +252,6 @@ protected:
|
||||
{
|
||||
SELECT_FIRST, // first reward that matches limiters
|
||||
SELECT_PLAYER, // player can select from all allowed rewards
|
||||
SELECT_RANDOM // reward will be selected from allowed randomly
|
||||
};
|
||||
|
||||
/// filters list of visit info and returns rewards that can be granted to current hero
|
||||
|
Loading…
x
Reference in New Issue
Block a user