mirror of
https://github.com/correl/mage.git
synced 2024-11-15 19:19:33 +00:00
Added official rule text for keywords. Added some player information.
This commit is contained in:
parent
2ff4dcd283
commit
b8ffb3f7c8
3 changed files with 40 additions and 2 deletions
|
@ -28,6 +28,7 @@
|
||||||
|
|
||||||
package mage.abilities.effects.common;
|
package mage.abilities.effects.common;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
import mage.Constants;
|
import mage.Constants;
|
||||||
import mage.abilities.Ability;
|
import mage.abilities.Ability;
|
||||||
import mage.abilities.Mode;
|
import mage.abilities.Mode;
|
||||||
|
@ -45,6 +46,16 @@ import mage.target.common.TargetCreaturePermanent;
|
||||||
*
|
*
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// 701.26. Detain
|
||||||
|
//
|
||||||
|
// 701.26a Certain spells and abilities can detain a permanent. Until the next
|
||||||
|
// turn of the controller of that spell or ability, that permanent can’t attack
|
||||||
|
// or block and its activated abilities can’t be activated.
|
||||||
|
//
|
||||||
|
|
||||||
public class DetainTargetEffect extends OneShotEffect<DetainTargetEffect> {
|
public class DetainTargetEffect extends OneShotEffect<DetainTargetEffect> {
|
||||||
|
|
||||||
public DetainTargetEffect() {
|
public DetainTargetEffect() {
|
||||||
|
@ -67,6 +78,12 @@ public class DetainTargetEffect extends OneShotEffect<DetainTargetEffect> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean apply(Game game, Ability source) {
|
public boolean apply(Game game, Ability source) {
|
||||||
|
for (UUID target: this.getTargetPointer().getTargets(game, source)) {
|
||||||
|
Permanent permanent = game.getPermanent(target);
|
||||||
|
if (permanent != null) {
|
||||||
|
game.informPlayers("Detained creature: " + permanent.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
game.getContinuousEffects().addEffect(new DetainReplacementEffect(), source);
|
game.getContinuousEffects().addEffect(new DetainReplacementEffect(), source);
|
||||||
game.getContinuousEffects().addEffect(new DetainRestrictionEffect(), source);
|
game.getContinuousEffects().addEffect(new DetainRestrictionEffect(), source);
|
||||||
return true;
|
return true;
|
||||||
|
@ -90,7 +107,7 @@ public class DetainTargetEffect extends OneShotEffect<DetainTargetEffect> {
|
||||||
} else {
|
} else {
|
||||||
sb.append("detain up to ").append(target.getMaxNumberOfTargets()).append(" target ").append(target.getTargetName());
|
sb.append("detain up to ").append(target.getMaxNumberOfTargets()).append(" target ").append(target.getTargetName());
|
||||||
}
|
}
|
||||||
sb.append(". (Until your next turn, ");
|
sb.append(". <i>(Until your next turn, ");
|
||||||
|
|
||||||
|
|
||||||
if (target instanceof TargetCreaturePermanent) {
|
if (target instanceof TargetCreaturePermanent) {
|
||||||
|
@ -101,7 +118,7 @@ public class DetainTargetEffect extends OneShotEffect<DetainTargetEffect> {
|
||||||
}
|
}
|
||||||
sb.append(" can't attack or block and ");
|
sb.append(" can't attack or block and ");
|
||||||
sb.append(target.getMaxNumberOfTargets() == 1 ? "its": "their");
|
sb.append(target.getMaxNumberOfTargets() == 1 ? "its": "their");
|
||||||
sb.append(" activated abilities can't be activated)");
|
sb.append(" activated abilities can't be activated)</i>");
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,6 +47,18 @@ import mage.target.common.TargetCreaturePermanent;
|
||||||
*
|
*
|
||||||
* @author magenoxx_at_gmail.com
|
* @author magenoxx_at_gmail.com
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// 702.95. Scavenge
|
||||||
|
//
|
||||||
|
// 702.95a Scavenge is an activated ability that functions only while the card
|
||||||
|
// with scavenge is in a graveyard. "Scavenge [cost]" means "[Cost], Exile this
|
||||||
|
// card from your graveyard: Put a number of +1/+1 counters equal to this card’s
|
||||||
|
// power on target creature. Activate this ability only any time you could cast
|
||||||
|
// a sorcery."
|
||||||
|
//
|
||||||
|
|
||||||
public class ScavengeAbility extends ActivatedAbilityImpl<ScavengeAbility> {
|
public class ScavengeAbility extends ActivatedAbilityImpl<ScavengeAbility> {
|
||||||
|
|
||||||
public ScavengeAbility(ManaCosts costs) {
|
public ScavengeAbility(ManaCosts costs) {
|
||||||
|
|
|
@ -46,6 +46,15 @@ import mage.players.Player;
|
||||||
* @author LevelX2
|
* @author LevelX2
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// 702.96. Unleash
|
||||||
|
//
|
||||||
|
// 702.96a Unleash is a keyword that represents two static abilities.
|
||||||
|
// "Unleash" means "You may have this permanent enter the battlefield with an additional +1/+1 counter on it"
|
||||||
|
// and "This permanent can’t block as long as it has a +1/+1 counter on it."
|
||||||
|
|
||||||
|
|
||||||
public class UnleashAbility extends SimpleStaticAbility {
|
public class UnleashAbility extends SimpleStaticAbility {
|
||||||
|
|
||||||
public UnleashAbility() {
|
public UnleashAbility() {
|
||||||
|
|
Loading…
Reference in a new issue