From 5be6f78d593b533d5a2df6695a50e4fdcb0492b0 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Tue, 12 Jun 2012 10:38:39 +0400 Subject: [PATCH] Adding writting amount of mana payed for {X} cost --- .../mage-deck-constructed.iml | 17 ++++++++ .../Mage.Deck.Limited/mage-deck-limited.iml | 16 ++++++++ .../mage-game-freeforall.iml | 16 ++++++++ .../mage-game-twoplayerduel.iml | 16 ++++++++ .../Mage.Player.AI.MA/mage-player-ai-ma.iml | 18 +++++++++ .../src/mage/player/ai/ComputerPlayer6.java | 1 + .../java/mage/player/ai/ComputerPlayer.java | 3 +- .../mage-player-ai-mcts.iml | 18 +++++++++ .../mage/player/ai/ComputerPlayerMCTS.java | 1 + .../mage-player-aiminimax.iml | 18 +++++++++ .../src/mage/player/ai/ComputerPlayer2.java | 37 +++--------------- .../Mage.Player.Human/mage-player-human.iml | 16 ++++++++ .../src/mage/player/human/HumanPlayer.java | 1 + .../mage-tournament-boosterdraft.iml | 16 ++++++++ .../mage-tournament-sealed.iml | 16 ++++++++ Mage.Server.Plugins/mage-server-plugins.iml | 13 ++++++ Mage.Server/plugins/mage-player-human.jar | Bin 13260 -> 13356 bytes 17 files changed, 190 insertions(+), 33 deletions(-) create mode 100644 Mage.Server.Plugins/Mage.Deck.Constructed/mage-deck-constructed.iml create mode 100644 Mage.Server.Plugins/Mage.Deck.Limited/mage-deck-limited.iml create mode 100644 Mage.Server.Plugins/Mage.Game.FreeForAll/mage-game-freeforall.iml create mode 100644 Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/mage-game-twoplayerduel.iml create mode 100644 Mage.Server.Plugins/Mage.Player.AI.MA/mage-player-ai-ma.iml create mode 100644 Mage.Server.Plugins/Mage.Player.AIMCTS/mage-player-ai-mcts.iml create mode 100644 Mage.Server.Plugins/Mage.Player.AIMinimax/mage-player-aiminimax.iml create mode 100644 Mage.Server.Plugins/Mage.Player.Human/mage-player-human.iml create mode 100644 Mage.Server.Plugins/Mage.Tournament.BoosterDraft/mage-tournament-boosterdraft.iml create mode 100644 Mage.Server.Plugins/Mage.Tournament.Sealed/mage-tournament-sealed.iml create mode 100644 Mage.Server.Plugins/mage-server-plugins.iml diff --git a/Mage.Server.Plugins/Mage.Deck.Constructed/mage-deck-constructed.iml b/Mage.Server.Plugins/Mage.Deck.Constructed/mage-deck-constructed.iml new file mode 100644 index 0000000000..cff97c34c1 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Deck.Constructed/mage-deck-constructed.iml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Deck.Limited/mage-deck-limited.iml b/Mage.Server.Plugins/Mage.Deck.Limited/mage-deck-limited.iml new file mode 100644 index 0000000000..45c9d911b2 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Deck.Limited/mage-deck-limited.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Game.FreeForAll/mage-game-freeforall.iml b/Mage.Server.Plugins/Mage.Game.FreeForAll/mage-game-freeforall.iml new file mode 100644 index 0000000000..45c9d911b2 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Game.FreeForAll/mage-game-freeforall.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/mage-game-twoplayerduel.iml b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/mage-game-twoplayerduel.iml new file mode 100644 index 0000000000..45c9d911b2 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Game.TwoPlayerDuel/mage-game-twoplayerduel.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/mage-player-ai-ma.iml b/Mage.Server.Plugins/Mage.Player.AI.MA/mage-player-ai-ma.iml new file mode 100644 index 0000000000..0552f87adc --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/mage-player-ai-ma.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java index e8ba5fdec4..cddc9d692b 100644 --- a/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java +++ b/Mage.Server.Plugins/Mage.Player.AI.MA/src/mage/player/ai/ComputerPlayer6.java @@ -674,6 +674,7 @@ public class ComputerPlayer6 extends ComputerPlayer implements break; } } + game.informPlayers(getName() + " payed " + cost.getPayment().count() + " for " + cost.getText()); cost.setPaid(); return true; } 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 816c9f3095..9fa0572226 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 @@ -901,7 +901,8 @@ public class ComputerPlayer> extends PlayerImpl i return false; } - cost.setPaid(); + game.informPlayers(getName() + " payed " + cost.getPayment().count() + " for " + cost.getText()); + cost.setPaid(); return true; } diff --git a/Mage.Server.Plugins/Mage.Player.AIMCTS/mage-player-ai-mcts.iml b/Mage.Server.Plugins/Mage.Player.AIMCTS/mage-player-ai-mcts.iml new file mode 100644 index 0000000000..31dc20c6ce --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AIMCTS/mage-player-ai-mcts.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/ComputerPlayerMCTS.java b/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/ComputerPlayerMCTS.java index 5e84a065dd..1da5ffe8ab 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/ComputerPlayerMCTS.java +++ b/Mage.Server.Plugins/Mage.Player.AIMCTS/src/mage/player/ai/ComputerPlayerMCTS.java @@ -193,6 +193,7 @@ public class ComputerPlayerMCTS extends ComputerPlayer imple break; } } + game.informPlayers(getName() + " payed " + cost.getPayment().count() + " for " + cost.getText()); cost.setPaid(); return true; } diff --git a/Mage.Server.Plugins/Mage.Player.AIMinimax/mage-player-aiminimax.iml b/Mage.Server.Plugins/Mage.Player.AIMinimax/mage-player-aiminimax.iml new file mode 100644 index 0000000000..31dc20c6ce --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AIMinimax/mage-player-aiminimax.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer2.java b/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer2.java index ca218d30eb..ca90920deb 100644 --- a/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer2.java +++ b/Mage.Server.Plugins/Mage.Player.AIMinimax/src/mage/player/ai/ComputerPlayer2.java @@ -28,18 +28,6 @@ package mage.player.ai; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; -import java.util.UUID; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.FutureTask; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; import mage.Constants.Outcome; import mage.Constants.PhaseStep; import mage.Constants.RangeOfInfluence; @@ -54,7 +42,6 @@ import mage.abilities.effects.Effect; import mage.abilities.effects.SearchEffect; import mage.cards.Cards; import mage.choices.Choice; -import mage.filter.FilterAbility; import mage.game.Game; import mage.game.combat.Combat; import mage.game.combat.CombatGroup; @@ -62,30 +49,15 @@ import mage.game.events.GameEvent; import mage.game.permanent.Permanent; import mage.game.stack.StackAbility; import mage.game.stack.StackObject; -import mage.game.turn.BeginCombatStep; -import mage.game.turn.BeginningPhase; -import mage.game.turn.CleanupStep; -import mage.game.turn.CombatDamageStep; -import mage.game.turn.CombatPhase; -import mage.game.turn.DeclareAttackersStep; -import mage.game.turn.DeclareBlockersStep; -import mage.game.turn.DrawStep; -import mage.game.turn.EndOfCombatStep; -import mage.game.turn.EndPhase; -import mage.game.turn.EndStep; -import mage.game.turn.FirstCombatDamageStep; -import mage.game.turn.Phase; -import mage.game.turn.PostCombatMainPhase; -import mage.game.turn.PostCombatMainStep; -import mage.game.turn.PreCombatMainPhase; -import mage.game.turn.PreCombatMainStep; -import mage.game.turn.UntapStep; -import mage.game.turn.UpkeepStep; +import mage.game.turn.*; import mage.players.Player; import mage.target.Target; import mage.target.TargetCard; import org.apache.log4j.Logger; +import java.util.*; +import java.util.concurrent.*; + /** * * @author BetaSteward_at_googlemail.com @@ -564,6 +536,7 @@ public class ComputerPlayer2 extends ComputerPlayer implements break; } } + game.informPlayers(getName() + " payed " + cost.getPayment().count() + " for " + cost.getText()); cost.setPaid(); return true; } diff --git a/Mage.Server.Plugins/Mage.Player.Human/mage-player-human.iml b/Mage.Server.Plugins/Mage.Player.Human/mage-player-human.iml new file mode 100644 index 0000000000..45c9d911b2 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.Human/mage-player-human.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java index acf26ea453..022c2aa0d8 100644 --- a/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java +++ b/Mage.Server.Plugins/Mage.Player.Human/src/mage/player/human/HumanPlayer.java @@ -446,6 +446,7 @@ public class HumanPlayer extends PlayerImpl { if (response.getBoolean() != null) { if (!response.getBoolean()) return false; + game.informPlayers(getName() + " payed " + cost.getPayment().count() + " for " + cost.getText()); cost.setPaid(); } else if (response.getUUID() != null) { playManaAbilities(game); diff --git a/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/mage-tournament-boosterdraft.iml b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/mage-tournament-boosterdraft.iml new file mode 100644 index 0000000000..45c9d911b2 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Tournament.BoosterDraft/mage-tournament-boosterdraft.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/Mage.Tournament.Sealed/mage-tournament-sealed.iml b/Mage.Server.Plugins/Mage.Tournament.Sealed/mage-tournament-sealed.iml new file mode 100644 index 0000000000..45c9d911b2 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Tournament.Sealed/mage-tournament-sealed.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/Mage.Server.Plugins/mage-server-plugins.iml b/Mage.Server.Plugins/mage-server-plugins.iml new file mode 100644 index 0000000000..d043fc26f8 --- /dev/null +++ b/Mage.Server.Plugins/mage-server-plugins.iml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Mage.Server/plugins/mage-player-human.jar b/Mage.Server/plugins/mage-player-human.jar index aa18e1d586186ce40bb46380e15d8d83c2f1fdd2..ee13b7c0db2494259bda3ea69018ff34d7493a3a 100644 GIT binary patch delta 11844 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 TPnrJ$S->^ycyQG$|E&BUeokep delta 11767 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