mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
refactor: improved usage of getSourceObjectZoneChangeCounter, added docs (part of #13737)
This commit is contained in:
parent
492c7c9db8
commit
e8342e1f11
5 changed files with 10 additions and 7 deletions
|
|
@ -106,7 +106,7 @@ enum HaktosTheUnscarredPredicate implements ObjectSourcePlayerPredicate<Card> {
|
|||
|
||||
@Override
|
||||
public boolean apply(ObjectSourcePlayer<Card> input, Game game) {
|
||||
Object obj = game.getState().getValue(input.getSourceId() + "" + input.getSource().getSourceObjectZoneChangeCounter() + "_haktos_number");
|
||||
Object obj = game.getState().getValue(input.getSourceId() + "" + input.getObject().getZoneChangeCounter(game) + "_haktos_number");
|
||||
if (!(obj instanceof Integer)) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ enum TalionTheKindlyLordPredicate implements ObjectSourcePlayerPredicate<StackOb
|
|||
public boolean apply(ObjectSourcePlayer<StackObject> input, Game game) {
|
||||
Object obj = game.getState().getValue(
|
||||
"chosenNumber_" + input.getSource().getSourceId()
|
||||
+ '_' + input.getSource().getSourceObjectZoneChangeCounter()
|
||||
+ '_' + input.getObject().getZoneChangeCounter(game)
|
||||
);
|
||||
if (obj == null) {
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -516,6 +516,10 @@ public interface Ability extends Controllable, Serializable {
|
|||
*/
|
||||
void initSourceObjectZoneChangeCounter(Game game, boolean force);
|
||||
|
||||
// TODO: it's activating time of ability, not current object's zcc, see #13737,
|
||||
// in most use cases you must use game.getState().getZoneChangeCounter or input.getObject().getZoneChangeCounter(game)
|
||||
// only ability related logic can use it (example: delayed triggers)
|
||||
@Deprecated
|
||||
int getSourceObjectZoneChangeCounter();
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -16,8 +16,7 @@ public enum AnotherPredicate implements ObjectSourcePlayerPredicate<MageObject>
|
|||
if (!input.getObject().getId().equals(input.getSourceId())) {
|
||||
return true;
|
||||
}
|
||||
int zcc = input.getSource().getSourceObjectZoneChangeCounter();
|
||||
return zcc != 0 && zcc != input.getObject().getZoneChangeCounter(game);
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -17,9 +17,9 @@ public enum SaddledSourceThisTurnPredicate implements ObjectSourcePlayerPredicat
|
|||
|
||||
@Override
|
||||
public boolean apply(ObjectSourcePlayer<Permanent> input, Game game) {
|
||||
return SaddledMountWatcher.checkIfSaddledThisTurn(
|
||||
input.getObject(), new MageObjectReference(input.getSourceId(), input.getSource().getSourceObjectZoneChangeCounter(), game), game
|
||||
);
|
||||
// for delayed triggers must use starting zcc (when delayed trigger created)
|
||||
MageObjectReference startingMor = new MageObjectReference(input.getSourceId(), input.getSource().getSourceObjectZoneChangeCounter(), game);
|
||||
return SaddledMountWatcher.checkIfSaddledThisTurn(input.getObject(), startingMor, game);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue