Skip to content

Implement [ICE],[ME2] Goblin Ski Patrol #13285

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
Feb 13, 2025

Conversation

tiera3
Copy link
Contributor

@tiera3 tiera3 commented Feb 2, 2025

part of #5382

Original comment - no longer applies The one (edit - now two) things that aren't quite right is:
  • Its controller sacrifices it at the beginning of the next end step.

I used code from Pyric Salamander which states

  • Sacrifice Pyric Salamander at the beginning of the next end step.

So I believe that if Goblin Ski Patrol somehow changes controller before the next end step, the new controller wont have to sacrifice it - which they still should.

Edit - now two things. Because ActivateOncePerGameActivatedAbility didn't have the option to apply a condition, I needed to use LimitedTimesPerTurnActivatedAbility instead. This means if Goblin Ski Patrol somehow avoids getting sacrificed at the end of turn, then its ability can be reused in a later turn. (This shouldn't be the case.)

@github-actions github-actions bot added the cards label Feb 2, 2025
@JayDi85
Copy link
Member

JayDi85 commented Feb 7, 2025

[[Goblin Ski Patrol]]

Copy link

github-actions bot commented Feb 7, 2025

Goblin Ski Patrol - (Gatherer) (Scryfall) (EDHREC)

{1}{R}
Creature — Goblin
1/1
{1}{R}: Goblin Ski Patrol gets +2/+0 and gains flying. Its controller sacrifices it at the beginning of the next end step. Activate only once and only if you control a snow Mountain.

@JayDi85
Copy link
Member

JayDi85 commented Feb 7, 2025

So I believe that if Goblin Ski Patrol somehow changes controller before the next end step, the new controller wont have to sacrifice it - which they still should.

Nope, new controller must sacrifice it. There are oracle text:

Goblin Ski Patrol’s ability may be activated only once in the entire game. If its ability is activated and then it changes controllers, its ability may not be activated again, and its new controller will still have to sacrifice it at the beginning of the End step.
(2008-10-01)

Effect effect = new BoostSourceEffect(2, 0, Duration.EndOfTurn);
effect.setText("{this} gets +2/+0");
// This should be ActivateOncePerGameActivatedAbility but I couldn't work out how to apply a condition, so used LimitedTimesPerTurnActivatedAbility instead. This will only be an issue if Goblin Ski Patrol somehow avoids being sacrificed.
Ability ability = new LimitedTimesPerTurnActivatedAbility(Zone.BATTLEFIELD, effect, new ManaCostsImpl<>("{1}{R}"), 1, condition);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Must modify ActivateOncePerGameActivatedAbility to support required conditional

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like its require small changes in constructor and text generation, activated ability already support condition:

IMG_1111

@tiera3
Copy link
Contributor Author

tiera3 commented Feb 11, 2025

Found ThoughtShucker uses mage.abilities.decorator.ConditionalActivatedAbility and applies maxActivationsPerGame = 1 so used that method.

Also discovered by reading ArmorOfThorns that a parameter can be passed to SacrificeSourceEffect to require its controller to sacrifice it, so did that also.

fingers crossed This should be right, once I solve the compilation error.

@tiera3
Copy link
Contributor Author

tiera3 commented Feb 11, 2025

I wasn't able to get the mage.abilities.decorator.ConditionalActivatedAbility version from ThoughtShucker working, so reverted to original implementation.

@tiera3 tiera3 requested a review from JayDi85 February 12, 2025 10:19
Copy link
Member

@JayDi85 JayDi85 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All must be fine except controlled filter.

import mage.abilities.condition.common.PermanentsOnTheBattlefieldCondition;
import mage.abilities.hint.ConditionHint;
import mage.abilities.hint.Hint;
import mage.filter.FilterPermanent;
Copy link
Member

@JayDi85 JayDi85 Feb 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Must use FilterControlledPermanent as a filter

@JayDi85 JayDi85 merged commit e57098b into magefree:master Feb 13, 2025
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants