Merge branch 'neo_mindlink' into 'master'

NEO: Mindlink Mech and support

See merge request core-developers/forge!6181
This commit is contained in:
Michael Kamensky
2022-02-07 18:44:45 +00:00
4 changed files with 31 additions and 0 deletions

View File

@@ -207,6 +207,8 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
private boolean foretoldThisTurn = false; private boolean foretoldThisTurn = false;
private boolean foretoldByEffect = false; private boolean foretoldByEffect = false;
private int timesCrewedThisTurn = 0;
private int classLevel = 1; private int classLevel = 1;
private long bestowTimestamp = -1; private long bestowTimestamp = -1;
@@ -5605,6 +5607,18 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
foretoldThisTurn = false; foretoldThisTurn = false;
} }
public int timesCrewedThisTurn() {
return timesCrewedThisTurn;
}
public final void setTimesCrewedThisTurn(final int t) {
this.timesCrewedThisTurn = t;
}
public void resetTimesCrewedThisTurn() {
timesCrewedThisTurn = 0;
}
public final int getClassLevel() { public final int getClassLevel() {
return classLevel; return classLevel;
} }
@@ -6044,6 +6058,7 @@ public class Card extends GameEntity implements Comparable<Card>, IHasSVars {
clearBlockedThisTurn(); clearBlockedThisTurn();
resetMayPlayTurn(); resetMayPlayTurn();
resetExertedThisTurn(); resetExertedThisTurn();
resetTimesCrewedThisTurn();
resetChosenModeTurn(); resetChosenModeTurn();
resetAbilityResolvedThisTurn(); resetAbilityResolvedThisTurn();
} }

View File

@@ -21,6 +21,12 @@ public class TriggerCrewed extends Trigger {
if (!matchesValidParam("ValidCrew", runParams.get(AbilityKey.Crew))) { if (!matchesValidParam("ValidCrew", runParams.get(AbilityKey.Crew))) {
return false; return false;
} }
if (hasParam("FirstTimeCrewed")) {
Card v = (Card) runParams.get(AbilityKey.Vehicle);
if (v.timesCrewedThisTurn() != 1) {
return false;
}
}
return true; return true;
} }

View File

@@ -334,6 +334,7 @@ public class MagicStack /* extends MyObservable */ implements Iterable<SpellAbil
if (sp.hasParam("Crew")) { if (sp.hasParam("Crew")) {
// Trigger crews! // Trigger crews!
sp.getHostCard().setTimesCrewedThisTurn(sp.getHostCard().timesCrewedThisTurn() + 1);
runParams.put(AbilityKey.Vehicle, sp.getHostCard()); runParams.put(AbilityKey.Vehicle, sp.getHostCard());
runParams.put(AbilityKey.Crew, sp.getPaidList("TappedCards")); runParams.put(AbilityKey.Crew, sp.getPaidList("TappedCards"));
game.getTriggerHandler().runTrigger(TriggerType.Crewed, runParams, false); game.getTriggerHandler().runTrigger(TriggerType.Crewed, runParams, false);

View File

@@ -0,0 +1,9 @@
Name:Mindlink Mech
ManaCost:2 U
Types:Artifact Vehicle
PT:4/3
K:Flying
T:Mode$ Crewed | ValidVehicle$ Card.Self | FirstTimeCrewed$ True | Execute$ TrigClone | TriggerDescription$ Whenever CARDNAME becomes crewed for the first time each turn, until end of turn, CARDNAME becomes a copy of target nonlegendary creature that crewed it this turn, except it's 4/3, it's a Vehicle artifact in addition to its other types, and it has flying.
SVar:TrigClone:DB$ Clone | ValidTgts$ Creature.TriggeredCrew+nonLegendary | TgtPrompt$ Select target nonlegendary creature that crewed it this turn | Duration$ UntilEndOfTurn | SetPower$ 4 | SetToughness$ 3 | AddTypes$ Vehicle & Artifact | AddKeywords$ Flying
K:Crew:1
Oracle:Flying\nWhenever Mindlink Mech becomes crewed for the first time each turn, until end of turn, Mindlink Mech becomes a copy of target nonlegendary creature that crewed it this turn, except it's 4/3, it's a Vehicle artifact in addition to its other types, and it has flying.\nCrew 1