|
@@ -38,6 +38,7 @@ public:
|
|
|
virtual EDecision limit(const BonusLimitationContext &context) const; //0 - accept bonus; 1 - drop bonus; 2 - delay (drops eventually)
|
|
|
virtual std::string toString() const;
|
|
|
virtual JsonNode toJsonNode() const;
|
|
|
+ virtual void acceptUpdater(IUpdater & visitor);
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -47,12 +48,13 @@ public:
|
|
|
class DLL_LINKAGE AggregateLimiter : public ILimiter
|
|
|
{
|
|
|
protected:
|
|
|
- std::vector<TLimiterPtr> limiters;
|
|
|
virtual const std::string & getAggregator() const = 0;
|
|
|
AggregateLimiter(std::vector<TLimiterPtr> limiters = {});
|
|
|
public:
|
|
|
+ std::vector<TLimiterPtr> limiters;
|
|
|
void add(const TLimiterPtr & limiter);
|
|
|
JsonNode toJsonNode() const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler & h)
|
|
|
{
|
|
@@ -104,6 +106,7 @@ public:
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
std::string toString() const override;
|
|
|
JsonNode toJsonNode() const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -132,6 +135,7 @@ public:
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
std::string toString() const override;
|
|
|
JsonNode toJsonNode() const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -156,6 +160,7 @@ public:
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
std::string toString() const override;
|
|
|
JsonNode toJsonNode() const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -175,6 +180,7 @@ public:
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
std::string toString() const override;
|
|
|
JsonNode toJsonNode() const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -193,6 +199,7 @@ public:
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
std::string toString() const override;
|
|
|
JsonNode toJsonNode() const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -210,6 +217,7 @@ public:
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
std::string toString() const override;
|
|
|
JsonNode toJsonNode() const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -225,6 +233,7 @@ public:
|
|
|
OppositeSideLimiter(PlayerColor Owner = PlayerColor::CANNOT_DETERMINE);
|
|
|
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -242,6 +251,7 @@ public:
|
|
|
RankRangeLimiter();
|
|
|
RankRangeLimiter(ui8 Min, ui8 Max = 255);
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
+ void acceptUpdater(IUpdater & visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|
|
@@ -259,6 +269,7 @@ public:
|
|
|
UnitOnHexLimiter(const BattleHexArray & applicableHexes = {});
|
|
|
EDecision limit(const BonusLimitationContext &context) const override;
|
|
|
JsonNode toJsonNode() const override;
|
|
|
+ void acceptUpdater(IUpdater& visitor) override;
|
|
|
|
|
|
template <typename Handler> void serialize(Handler &h)
|
|
|
{
|