From 238aa7abdc3a391b00f9944dbf46819fa208dd12 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Thu, 4 Apr 2019 09:00:30 +0400 Subject: [PATCH] * AI: fixed game freezes for cards with different human/computer logic (#5023); --- .../java/mage/player/ai/ComputerPlayer.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java index cbb0be94855..f6934d8ee8b 100644 --- a/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.AI/src/main/java/mage/player/ai/ComputerPlayer.java @@ -95,6 +95,11 @@ public class ComputerPlayer extends PlayerImpl implements Player { protected ComputerPlayer(UUID id) { super(id); + human = false; + userData = UserData.getDefaultUserDataView(); + userData.setAvatarId(64); + userData.setGroupId(UserGroup.COMPUTER.getGroupId()); + userData.setFlagName("computer.png"); pickedCards = new ArrayList<>(); } @@ -2551,4 +2556,21 @@ public class ComputerPlayer extends PlayerImpl implements Player { return this.getId().equals(obj.getId()); } + + @Override + public boolean isHuman() { + if (human) { + log.error("computer must be not human", new Throwable()); + } + return human; + } + + @Override + public void restore(Player player) { + super.restore(player); + + // restore used in AI simulations + // all human players converted to computer and analyse + this.human = false; + } }