diff --git a/Mage/src/main/java/mage/abilities/keyword/ClassLevelAbility.java b/Mage/src/main/java/mage/abilities/keyword/ClassLevelAbility.java index 3061e6d8fd2..b317a9be51a 100644 --- a/Mage/src/main/java/mage/abilities/keyword/ClassLevelAbility.java +++ b/Mage/src/main/java/mage/abilities/keyword/ClassLevelAbility.java @@ -61,6 +61,7 @@ class SetClassLevelEffect extends OneShotEffect { SetClassLevelEffect(int level) { super(Outcome.Benefit); this.level = level; + staticText = "level up to " + level; } private SetClassLevelEffect(final SetClassLevelEffect effect) { @@ -76,9 +77,17 @@ class SetClassLevelEffect extends OneShotEffect { @Override public boolean apply(Game game, Ability source) { Permanent permanent = source.getSourcePermanentIfItStillExists(game); - if (permanent == null || !permanent.setClassLevel(level)) { + if (permanent == null) { return false; } + + int oldLevel = permanent.getClassLevel(); + if (!permanent.setClassLevel(level)) { + return false; + } + + game.informPlayers(permanent.getLogName() + " levelled up from " + oldLevel + " to " + permanent.getClassLevel()); + game.fireEvent(GameEvent.getEvent( GameEvent.EventType.GAINS_CLASS_LEVEL, source.getSourceId(), source, source.getControllerId(), level diff --git a/Mage/src/main/java/mage/game/permanent/Permanent.java b/Mage/src/main/java/mage/game/permanent/Permanent.java index afb3725c4b8..ded11c011ba 100644 --- a/Mage/src/main/java/mage/game/permanent/Permanent.java +++ b/Mage/src/main/java/mage/game/permanent/Permanent.java @@ -75,6 +75,12 @@ public interface Permanent extends Card, Controllable { int getClassLevel(); + /** + * Level up to next level. + * + * @param classLevel + * @return false on wrong settings (e.g. level up to multiple levels) + */ boolean setClassLevel(int classLevel); void setCardNumber(String cid); diff --git a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java index 355c92e4880..b903450cc1a 100644 --- a/Mage/src/main/java/mage/game/permanent/PermanentImpl.java +++ b/Mage/src/main/java/mage/game/permanent/PermanentImpl.java @@ -1528,6 +1528,7 @@ public abstract class PermanentImpl extends CardImpl implements Permanent { @Override public boolean setClassLevel(int classLevel) { + // can level up to next (+1) level only if (this.classLevel == classLevel - 1) { this.classLevel = classLevel; return true;