mirror of
https://github.com/magefree/mage.git
synced 2025-12-29 06:52:02 -08:00
[M12, ZEN] Sorin Markov
This commit is contained in:
parent
0624383888
commit
2b722ad1f7
3 changed files with 182 additions and 3 deletions
|
|
@ -94,6 +94,8 @@ public abstract class PlayerImpl<T extends PlayerImpl<T>> implements Player, Ser
|
|||
protected Set<UUID> inRange = new HashSet<UUID>();
|
||||
protected boolean isTestMode = false;
|
||||
protected boolean lifeTotalCanChange = true;
|
||||
protected boolean canGainLife = true;
|
||||
protected boolean canLoseLife = true;
|
||||
protected boolean isGameUnderControl = true;
|
||||
protected UUID turnController;
|
||||
protected Set<UUID> playersUnderYourControl = new HashSet<UUID>();
|
||||
|
|
@ -663,7 +665,12 @@ public abstract class PlayerImpl<T extends PlayerImpl<T>> implements Player, Ser
|
|||
|
||||
@Override
|
||||
public void setLife(int life, Game game) {
|
||||
if (this.lifeTotalCanChange) this.life = life;
|
||||
// rule 118.5
|
||||
if (life > this.life) {
|
||||
gainLife(life - this.life, game);
|
||||
} else if (life < this.life) {
|
||||
loseLife(this.life - life, game);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -681,7 +688,7 @@ public abstract class PlayerImpl<T extends PlayerImpl<T>> implements Player, Ser
|
|||
if (!lifeTotalCanChange) return 0;
|
||||
GameEvent event = new GameEvent(GameEvent.EventType.LOSE_LIFE, playerId, playerId, playerId, amount, false);
|
||||
if (!game.replaceEvent(event)) {
|
||||
setLife(this.life - amount, game);
|
||||
this.life -= amount;
|
||||
game.fireEvent(GameEvent.getEvent(GameEvent.EventType.LOST_LIFE, playerId, playerId, playerId, amount));
|
||||
return amount;
|
||||
}
|
||||
|
|
@ -693,7 +700,7 @@ public abstract class PlayerImpl<T extends PlayerImpl<T>> implements Player, Ser
|
|||
if (!lifeTotalCanChange) return;
|
||||
GameEvent event = new GameEvent(GameEvent.EventType.GAIN_LIFE, playerId, playerId, playerId, amount, false);
|
||||
if (!game.replaceEvent(event)) {
|
||||
setLife(this.life + amount, game);
|
||||
this.life += amount;
|
||||
game.fireEvent(GameEvent.getEvent(GameEvent.EventType.GAINED_LIFE, playerId, playerId, playerId, amount));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue