Skulk is now singleton

This commit is contained in:
Evan Kranzler 2017-09-13 20:38:29 -04:00
parent 9e228caff3
commit 6ca03a339a
16 changed files with 40 additions and 34 deletions

View file

@ -5,11 +5,12 @@
*/
package mage.abilities.keyword;
import java.io.ObjectStreamException;
import mage.abilities.Ability;
import mage.abilities.StaticAbility;
import mage.abilities.EvasionAbility;
import mage.abilities.MageSingleton;
import mage.abilities.effects.RestrictionEffect;
import mage.constants.Duration;
import mage.constants.Zone;
import mage.game.Game;
import mage.game.permanent.Permanent;
@ -17,26 +18,31 @@ import mage.game.permanent.Permanent;
*
* @author LevelX2
*/
public class SkulkAbility extends StaticAbility {
public class SkulkAbility extends EvasionAbility implements MageSingleton {
public SkulkAbility() {
super(Zone.BATTLEFIELD, new SkulkEffect(Duration.WhileOnBattlefield));
private static final SkulkAbility instance = new SkulkAbility();
private Object readResolve() throws ObjectStreamException {
return instance;
}
public SkulkAbility(final SkulkAbility ability) {
super(ability);
public static SkulkAbility getInstance() {
return instance;
}
private SkulkAbility() {
this.addEffect(new SkulkEffect(Duration.WhileOnBattlefield));
}
@Override
public Ability copy() {
return new SkulkAbility(this);
return instance;
}
@Override
public String getRule() {
return "Skulk <i>(This creature can't be blocked by creatures with greater power.)</i>";
}
}
class SkulkEffect extends RestrictionEffect {