danielyule / hearthbreaker Goto Github PK
View Code? Open in Web Editor NEWA Hearthstone: Heroes of WarCraft Simulator for the purposes of Machine Learning and Data Mining
License: MIT License
A Hearthstone: Heroes of WarCraft Simulator for the purposes of Machine Learning and Data Mining
License: MIT License
The first scenario:
On my board: Starving Buzzard and Timber Wolf.
I will play Ironbeak Owl, targeting the Buzzard, this is how it LOOKS like for me (I do not know how it looks like for opponent).
This suggest the following: Auras --> Effects --> Battlecries
However...
The second scenario:
On my board: Knife Juggler
I will play Ironbeak Owl, targeting the Juggler, this is how it LOOKS like for me (I do not know how it looks like for opponent).
So this suggests the following: Battlecries --> Effects
So what's the order? Does effects and battlecries have certain hidden priorities on themselves?
In the code, we are adding minions to board at index 0, which I assume is leftmost side on the board. But I believe in most cases in-game so are minions added to the rightmost side on the board by spells/secrets.
Is index 0 leftmost side on the board?
This includes Wrath, Moonfire, Starfall, Starfire, Arcane Missiles and Avenging Wrather
The game just hangs under some (unknown) condition, when using the decklist from issue #62.
With the release of Nerub'ar Weblord, it has become possible to see whether combo effects count as battlecry. They do not, as per https://twitter.com/demeteloaf/status/491626041484804096. Also, choose effects (druid mechanic) are not a battlecry either. The system current implements them as such, so the implementation must be changed.
If you have a Dire Wolf next to Lightspawn so is the Lightspawn correctly still a 5/5 minion. However, if you silence the Lightspawn so does it turn into a 0/5, when it should be 1/5 because of the Dire Wolf next to it.
Allow for a card to lock mana for next turn
The only card like this that we've done so far is Mirror Entity. However, any events that are bound in the create_minion aren't being copied over, nor should they be, as they might affect a different player if the ownership is different.
I'd like to suggest that we add some sort of framework for copying minions directly. Like we add an event called "copy" with the source minion and the new minion as parameters. This would involve going back over all the minions, and adding this in for any minions that might need it.
Does this make sense?
Both Repentance and Snipe affect Jaraxxus when played. Currently, they will not have an effect,
game_objects.py makes it look like it does not do that yet
I even believe it can target enemy hero or an enemy minion (in case you want to get rid of an enraged enemy). It can also target a minion with already full health, but this is of course a wasteful move (I can't think of any benefit from doing that anyway).
A comment with some good information: http://www.hearthhead.com/card=773/healing-touch#comments:id=1957299
Hello, firstly big thanks for your great project!
I'm interested in the ability to replay a game. So I follow your documentation and use this code:
deck1 = load_deck("example.hsdeck")
deck2 = load_deck("example.hsdeck")
game = Game([deck1, deck2], [RandomAgent(), RandomAgent()])
replay = record(game)
game.start()
replay.write("output.hsreplay")
If I put cards that are all the same for example "30 Ragnaros the Firelord" I don't have any problem but if I put "28 Ragnaros the Firelord" and "2 Goldshire Footman" I got this error:
Traceback (most recent call last):
File "test.py", line 48, in
replay.write("output.hsreplay")
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/replay.py", line 175, in write
writer.write(",".join([card.name for card in self.__shorten_deck(deck.cards)]))
TypeError: 'NoneType' object is not iterable
If I replace the line by this one: writer.write(",".join([card.name for card in deck.cards])) it works.
Another problem is this one:
File "test.py", line 48, in
replay.write("output.hsreplay")
File "/Users/ro0t/hearthstone/hearthbreaker/hearthbreaker/replay.py", line 206, in write
file.close()
AttributeError: 'str' object has no attribute 'close'
But I don't resolve this one at this time.
If somebody is willing to write an API, I'm willing to take a crack at a web interface, likely in Ember.JS
Deck 1: Frostwolf Grunt, Sacrificial Pact, Gelbin Mekkatorque, Corruption, Sacrificial Pact, Corruption, Mortal Coil, Frostwolf Grunt, Wolfrider, Soulfire, Succubus, Soulfire, Goldshire Footman, Mortal Coil, Dragonling Mechanic, Succubus, Dread Infernal, Razorfen Hunter, Voidwalker, Razorfen Hunter, Voidwalker, Elven Archer, Zombie Chow, Kobold Geomancer, Hellfire, Dread Infernal, Demolisher, Baron Rivendare, Booty Bay Bodyguard, Stormwind Knight
Deck 2: Fen Creeper, Shiv, Ancient Watcher, Novice Engineer, Elite Tauren Chieftain, Core Hound, Earthen Ring Farseer, Vanish, Oasis Snapjaw, Jungle Panther, Abomination, River Crocolisk, Nozdormu, Undertaker, Echoing Ooze, Echoing Ooze, Undertaker, Old Murk-Eye, Priestess of Elune, Haunted Creeper, Priestess of Elune, Haunted Creeper, Sludge Belcher, Sludge Belcher, Azure Drake, Azure Drake, Defender of Argus, Lorewalker Cho, Harvest Golem, Ogre Magi
Traceback (most recent call last):
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 141, in DoMove
self.game.play_card(self.game.current_player.hand[move[3]])
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1990, in play_card
card.use(self.current_player, self)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\cards\spells\rogue.py", line 236, in use
minion.bounce()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1256, in bounce
self.remove_from_board()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1111, in remove_from_board
self.player.minions.remove(self)
ValueError: list.remove(x): x not in list
Got the title message for the first time.
Deck 1: Holy Smite, Cult Master, Holy Smite, Murloc Tidehunter, Voodoo Doctor, Nerub'ar Weblord, Wolfrider, Silverback Patriarch, Undertaker, Mind Control, Circle of Healing, Spiteful Smith, Silvermoon Guardian, Stormpike Commando, Kobold Geomancer, Argent Squire, Dragonling Mechanic, Shattered Sun Cleric, Goldshire Footman, Ironforge Rifleman, Nightblade, Ironforge Rifleman, Elven Archer, Core Hound, Archmage, Knife Juggler, Gelbin Mekkatorque, Grimscale Oracle, Cult Master, Knife Juggler
Deck 2: Mana Addict, Mana Addict, Harvest Golem, Harvest Golem, Hungry Crab, Wolfrider, Lord of the Arena, Nerub'ar Weblord, Secretkeeper, Loot Hoarder, Tinkmaster Overspark, Magma Rager, Mind Control Tech, Youthful Brewmaster, Cobalt Guardian, Maexxna, Silvermoon Guardian, Arcane Nullifier X-21, Ironfur Grizzly, Stonetusk Boar, Raid Leader, Cobalt Guardian, Spiteful Smith, Leeroy Jenkins, Blessing of Wisdom, Fen Creeper, Core Hound, Secretkeeper, Goldshire Footman, Elven Archer
(1) (1) Whelp at index 0(1) (1) Whelp at index 2
Traceback (most recent call last):
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 146, in DoMove
self.game.play_card(self.game.current_player.hand[move[3]])
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1991, in play_card
card.use(self.current_player, self)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 904, in use
minion.battlecry(minion)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\cards\minions\neutral.py", line 1522, in transform_random
target.replace(minion)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1139, in replace
raise ValueError("What is even happening?")
ValueError: What is even happening?
Hearthstone calls it spell_damage, but we're calling it spell_power. This is because currently spell_damage is a method of Character which means "damage this character with a spell" I think we can eliminate the various x_damage methods and replace them with an if statement in the damage method which calls different triggers depending on the attacker. Then, we can rename spell_power to spell_damage to avoid confusion.
Secrets are a type of spell which persist
Soul of the forest is not implemented with the deathrattle property. It's still bound to "death"
As the title says, if the opponent have Explosive Trap and you attack with your hero so will Hearthbreaker crash because the hero object doesn't have the game attribute.
Deck 1: Wild Growth, Silverback Patriarch, Ironbark Protector, Mark of the Wild, Silverback Patriarch, Wild Growth, Mark of the Wild, Ogre Magi, Innervate, Innervate, Moonfire, Grimscale Oracle, Stormpike Commando, Ironforge Rifleman, Silvermoon Guardian, Sen'jin Shieldmasta, Ironfur Grizzly, Archmage, Stranglethorn Tiger, Lord of the Arena, Novice Engineer, Acidic Swamp Ooze, Stranglethorn Tiger, Ironfur Grizzly, War Golem, Cult Master, Poison Seeds, Stoneskin Gargoyle, Ironforge Rifleman, Cult Master
Deck 2: Cairne Bloodhoof, Bestial Wrath, Bomb Lobber, War Golem, Frostwolf Warlord, River Crocolisk, Deathwing, Stormpike Commando, Leper Gnome, Kobold Geomancer, The Beast, Flare, Explosive Trap, Silver Hand Knight, Shade of Naxxramas, Webspinner, Argent Commander, Misdirection, Demolisher, Ancient Brewmaster, Emperor Cobra, Elite Tauren Chieftain, Gelbin Mekkatorque, Ysera, Silverback Patriarch, Wailing Soul, Nerubian Egg, Houndmaster, Savannah Highmane, Novice Engineer
Traceback (most recent call last):
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 157, in DoMove
self.game.current_player.hero.attack()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1566, in attack
super().attack()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 382, in attack
self.player.trigger("attack", self, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 174, in trigger
handler.function(*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\cards\spells\hunter.py", line 91, in _reveal
enemies = copy.copy(minion.game.current_player.minions)
AttributeError: 'Hero' object has no attribute 'game'
Hi Daniel!
I recently went public with Fireplace and by the same occasion saw you mentioned me in your README :) Fireplace is much more than a CardXML processor though, it is a full-blown simulator with a very similar scope as yours.
I noticed Hearthbreaker six months ago or so before I started. I'm looking at it again today and I have to say you have made some incredible progress! I'm very impressed by the CLI, too.
I started an IRC channel on freenode.net a while back: #hearthsim. I used a more generic name as I'd like to welcome any discussion on Hearthstone internals, theorycrafting, simulation and such. I'm going to be back on tomorrow, so feel free to join. I saw you have quite an incredible community around HB :)
I'd really like to see if we can help eachother out with our projects, be it ideas, tests or actual code (I'd love to be compatible with your CLI for example). I'm currently browsing through your docs and code; if you want, feel free to do the same:
https://github.com/jleclanche/fireplace/tree/master/fireplace/cards/classic
https://github.com/jleclanche/fireplace/wiki/Home
https://github.com/jleclanche/fireplace/wiki/Events
https://github.com/jleclanche/fireplace/wiki/Card-Definitions
Let me know what you think.
Even if you run out of cards and are unable to draw 3, it will not deal fatigue damage.
Add a counter each turn for how many cards have been played.
Deck 1: Novice Engineer, Jungle Panther, Dragonling Mechanic, River Crocolisk, Frostwolf Warlord, Deathlord, Frostwolf Warlord, Azure Drake, Argent Squire, Chillwind Yeti, Razorfen Hunter, Elven Archer, Dalaran Mage, Nightblade, Dalaran Mage, Dread Infernal, Core Hound, Archmage, Knife Juggler, Gelbin Mekkatorque, Goldshire Footman, Cult Master, Knife Juggler, Wailing Soul, Fen Creeper, Zombie Chow, Imp Master, Unstable Ghoul, Southsea Deckhand, Spiteful Smith
Deck 2: Dread Corsair, Faceless Manipulator, Knife Juggler, Venture Co. Mercenary, Captain Greenskin, Tinkmaster Overspark, Spiteful Smith, Wisp, Nerub'ar Weblord, Illidan Stormrage, Doomsayer, Haunted Creeper, Ravenholdt Assassin, Ancient Watcher, Goldshire Footman, Deathwing, Spectral Knight, Alarm-o-Bot, Southsea Captain, Conceal, Mana Wraith, Acolyte of Pain, Frostwolf Grunt, Kel'Thuzad, Maexxna, Old Murk-Eye, Silver Hand Knight, Raging Worgen, Master of Disguise, Big Game Hunter
Traceback (most recent call last):
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 112, in DoMove
self.game._start_turn()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1927, in _start_turn
self.current_player.trigger("turn_started")
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 179, in trigger
handler.function(*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 337, in act
actor.bounce()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1275, in bounce
self.remove_from_board()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1130, in remove_from_board
self.player.minions.remove(self)
ValueError: list.remove(x): x not in list
Come back :-) (thanks for your previous fix)
I try to produce all the time the problem but I don't success. Moreover when a launch 1000 games I got at least this traceback:
Traceback (most recent call last):
File "run_games.py", line 67, in do_stuff
game.start()
File "/Users/ro0t/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 1890, in start
self.play_single_turn()
File "/Users/ro0t/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 1894, in play_single_turn
self.current_player.agent.do_turn(self.current_player)
File "/Users/ro0t/hearthstone/hearthbreaker/hearthbreaker/agents/basic_agents.py", line 109, in do_turn
player.game.play_card(playable_cards[action - len(attack_minions)])
File "/Users/ro0t/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 1994, in play_card
card.use(self.current_player, self)
File "/Users/ro0t/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 924, in use
minion.battlecry(minion)
TypeError: 'int' object is not callable
Is that due to the new battecry system?
To reproduce the bug you can use these 2 decks:
First one)
15 Bloodfen Raptor
15 Freezing Trap
Second one)
30 Webspinner
Thanks
AoE spells affect minions in a particular order, as detailed in http://www.liquidhearth.com/forum/hearthstone/456767-myth-busted-redemption-revive-minion-randomly
We should update all AoE spells to pull their targets from a function which provides them in the given order.
As pointed out by @randomflyingtaco, innervate allows a player to have more than 10 mana. The card should check to make sure that the amount of mana does not go over 10.
I was playing around with secret to try and get coverage on the last line of Misdirection when I kept running into errors. These turned out to be the result of Freezing Trap triggering and then remaining in play. Below is a case with the same Freezing Trap triggering 2 turns in a row and preventing us from playing a 2nd Freezing Trap.
def test_FreezingTrap(self):
game = generate_game_for(FreezingTrap, BluegillWarrior, SpellTestingAgent, PredictableAgentWithoutHeroPower)
for turn in range(0, 4):
game.play_single_turn()
self.assertEqual(0, len(game.players[1].minions))
self.assertEqual(4, len(game.players[0].hand))
self.assertEqual(6, len(game.players[1].hand))
self.assertEqual(4, game.players[1].hand[5].mana_cost(game.players[1]))
self.assertEqual(1, len(game.players[0].secrets))
self.assertEqual(30, game.players[0].hero.health)
game.play_single_turn()
self.assertEqual(5, len(game.players[0].hand))
game.play_single_turn()
self.assertEqual(0, len(game.current_player.minions))
self.assertEqual(30, game.players[0].hero.health)
self.assertEqual(7, len(game.players[1].hand))
self.assertEqual(4, game.players[1].hand[4].mana_cost(game.players[1]))
self.assertEqual(4, game.players[1].hand[6].mana_cost(game.players[1]))
Right now its impossible to do damage to many minons at a time. Instead th spells affect each minion one at a time, which will cause cards such as the frothing berserker to function incorrectly. Instead there should be a delay on trigger so that it stores events until activated.
The CARD_STATUS constant is a mix of CARD_SET (BASIC, EXPERT...) and CARD_QUALITY (COMMON, RARE, EPIC...). This is confusing.
I did a quick 1 second test with my MCTS deckbuilding AI and got this.
Deck 1: Zombie Chow, Zombie Chow, Haunted Creeper, Haunted Creeper, Mad Scientist, Mad Scientist, Nerub'ar Weblord, Nerubian Egg, Nerubian Egg, Unstable Ghoul, Unstable Ghoul, Undertaker, Silverback Patriarch, Shattered Sun Cleric, Voidcaller, Hellfire, War Golem, Fen Creeper, Defender of Argus, Nightblade, Frostwolf Grunt, Murloc Raider, Defender of Argus, River Crocolisk, Boulderfist Ogre, Demolisher, Azure Drake, Undertaker, Novice Engineer, Master Swordsmith
Deck 2: Arcane Golem, Arcane Golem, Young Priestess, Young Priestess, Cairne Bloodhoof, Booty Bay Bodyguard, Booty Bay Bodyguard, Windspeaker, Windspeaker, Worgen Infiltrator, Worgen Infiltrator, Undertaker, Tinkmaster Overspark, Southsea Deckhand, Stoneskin Gargoyle, Core Hound, Totemic Might, Acolyte of Pain, Ancient Mage, Far Sight, Defender of Argus, Wolfrider, Lorewalker Cho, Faceless Manipulator, Baron Geddon, Earth Shock, Coldlight Oracle, Darkscale Healer, Secretkeeper, Earth Elemental
Traceback (most recent call last):
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 150, in DoMove
self.game.current_player.minions[move[3]].attack()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1158, in attack
super().attack()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 375, in attack
self.damage(target_attack, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1166, in damage
super().damage(amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 216, in act
target.draw()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1697, in draw
self.hero.damage(self.fatigue, None)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1559, in damage
super().damage(new_amount, attacker)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 461, in damage
self.player.trigger("character_damaged", self, attacker, amount)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 171, in trigger
handler[0](*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 359, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 215, in act
for draw in range(0, self.amount):
RuntimeError: maximum recursion depth exceeded in comparison
Players should only be able to activate the hero power once per turn
Copying a game results in a giant memory leak, and it is not entirely clear where the leak is coming from. Some part of the copied game still references the source game.
Hello back,
When I play as hunter class with the "Mad Scientist" + secrets, I get this error:
Traceback (most recent call last):
File "run_games_XXX.py", line 67, in do_stuff
game.start()
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 1766, in start
self.play_single_turn()
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 1770, in play_single_turn
self.current_player.agent.do_turn(self.current_player)
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/agents/basic_agents.py", line 109, in do_turn
player.game.play_card(playable_cards[action - len(attack_minions)])
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 1864, in play_card
card.use(self.current_player, self)
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 833, in use
player.trigger("minion_played", minion)
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 183, in trigger
handler.function(*args)
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/cards/spells/hunter.py", line 156, in _reveal
super().reveal()
File "/Users/XXX/hearthstone/hearthbreaker/hearthbreaker/game_objects.py", line 912, in reveal
self.player.trigger("secret_revealed", self)
AttributeError: 'NoneType' object has no attribute 'trigger'
Thanks
Example of deck used (you can use the deck vs the same deck to get the error):
1 Hunter's Mark
1 Flare
2 Tracking
2 Webspinner
2 Freezing Trap
1 Snipe
2 Eaglehorn Bow
2 Animal Companion
2 Kill Command
2 Houndmaster
2 Savannah Highmane
2 Leper Gnome
2 Undertaker
2 Haunted Creeper
2 Loot Hoarder
2 Mad Scientist
1 The Black Knight
Got this error when playing around with my MCTS AI fork. It needs further investigation if it really is a problem or if it's just my own fault somewhere.
EDIT:
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1848, in _start_turn
self.current_player.trigger("turn_started")
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 183, in trigger
handler.function(*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 351, in _find_target
self.action.act(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 640, in act
actor.bounce()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1218, in bounce
self.remove_from_board()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1081, in remove_from_board
self.game.remove_minion(self, self.player)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1931, in remove_minion
player.minions.remove(minion)
ValueError: list.remove(x): x not in list
Deck 1: Arcane Intellect, Arcane Missiles, Bluegill Warrior, Murloc Tidehunter, Elven Archer, Elven Archer, Mirror Image, Arcane Missiles, Mirror Image, Bluegill Warrior, Arcane Explosion, Arcane Explosion, Frostbolt, Polymorph, Frostbolt, Kobold Geomancer, Arcane Intellect, Sen'jin Shieldmasta, Ogre Magi, Deathlord, Stonetusk Boar, Argent Squire, Haunted Creeper, Frost Elemental, Stormwind Champion, Ironfur Grizzly, Kobold Geomancer, Gelbin Mekkatorque, Silverback Patriarch, Sorcerer's Apprentice
Deck 2: Starfire, Kobold Geomancer, Blingtron 3000, Windfury Harpy, Blood Knight, Spectral Knight, Claw, Baron Rivendare, Stranglethorn Tiger, Razorfen Hunter, Mark of Nature, Echoing Ooze, Ironbeak Owl, Frostwolf Warlord, Frostwolf Warlord, Dark Iron Dwarf, Dark Iron Dwarf, Mind Control Tech, Piloted Shredder, Archmage, Spectral Knight, Loatheb, Mind Control Tech, Deathlord, Ancient of War, Magma Rager, Elite Tauren Chieftain, Stormwind Champion, Young Priestess, Ancient Brewmaster
Traceback (most recent call last):
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 165, in DoMove
self.game.play_card(self.game.current_player.hand[move[3]])
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 2009, in play_card
card.use(self.current_player, self)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\cards\spells\mage.py", line 280, in use
self.target.replace(minion)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1165, in replace
self.player.minions[self.index] = new_minion
IndexError: list assignment index out of range
I'm poking around in my MCTS fork and tried to add minion summoning index so it doesn't always pick index 0. After that so did I get the error you will see below. Of course, it could be that I did something wrong in my implementation of selecting index, but I don't think so.
Deck 1: Silverback Patriarch, Shattered Sun Cleric, Gelbin Mekkatorque, Water Elemental, War Golem, Azure Drake, Cult Master, Nightblade, Frostwolf Grunt, Ethereal Arcanist, Chillwind Yeti, Razorfen Hunter, Elven Archer, Dalaran Mage, Gurubashi Berserker, Dalaran Mage, Flamestrike, Reckless Rocketeer, Stormpike Commando, Faerie Dragon, Stranglethorn Tiger, Goldshire Footman, Questing Adventurer, Faerie Dragon, Sludge Belcher, Silvermoon Guardian, Duplicate, Demolisher, Dancing Swords, Wisp
Deck 2: Malygos, Questing Adventurer, Acidic Swamp Ooze, Temple Enforcer, Harvest Golem, Dark Iron Dwarf, Pint-Sized Summoner, Southsea Deckhand, Mindgames, Sen'jin Shieldmasta, Ancient Watcher, Holy Fire, Harvest Golem, Shadow Word: Death, Power Word: Shield, Ironfur Grizzly, Sea Giant, Silvermoon Guardian, Leper Gnome, Booty Bay Bodyguard, Mass Dispel, Alarm-o-Bot, Harrison Jones, Pint-Sized Summoner, Sunwalker, Shadow Word: Death, Shadow Madness, Baron Rivendare, Gnomish Inventor, Emperor Cobra
Traceback (most recent call last):
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 148, in DoMove
self.game.current_player.minions[move[3]].attack()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1176, in attack
super().attack()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 392, in attack
self.player.game.check_delayed()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1864, in check_delayed
minion.activate_delayed()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 446, in activate_delayed
self.trigger(delayed['event'], *delayed['args'])
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 174, in trigger
handler.function(*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1202, in delayed_death
self.silence()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1211, in silence
super().silence()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 632, in silence
aura.unapply()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 71, in unapply
super().unapply()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\base.py", line 42, in unapply
self.action.unact(self.target, target)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\tags\action.py", line 779, in unact
target.remove_from_board()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1141, in remove_from_board
self.game.remove_minion(self, self.player)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 2015, in remove_minion
player.minions.remove(minion)
ValueError: list.remove(x): x not in list
Fairly mundane stuff, just imitating other minions to apply the existing mechanics to more cards. Did not write tests because there were no new mechanics implemented. Is this useful at all or should I not bother with more? Changes are on my fork, I don't know that much about GitHub and I don't see any way to message you guys other than creating an issue.
My MCTS AI fork continues to find errors, here's the latest one between a mage and a paladin. I don't know the specific decks they were using (I randomize the decks). I need to find a way to print out the card for better error logs, or save a replay if it crash.
Traceback (most recent call last):
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 415, in <module>
UCTPlayGame()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 402, in UCTPlayGame
m = UCT(rootstate = state, seconds = 320, verbose = False)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 377, in UCT
state.DoMove(random.choice(state.GetMoves()))
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\uct.py", line 122, in DoMove
self.game.current_player.minions[move[3]].attack()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1170, in attack
super().attack()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 387, in attack
self.player.game.check_delayed()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1851, in check_delayed
minion.activate_delayed()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 440, in activate_delayed
self.trigger(delayed['event'], *delayed['args'])
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 174, in trigger
handler.function(*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1197, in delayed_death
self.player.trigger("minion_died", self, by)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 174, in trigger
handler.function(*args)
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\cards\spells\paladin.py", line 269, in _reveal
super().reveal()
File "C:\Users\Ragowit\Documents\GitHub\mcts\hearthbreaker\hearthbreaker\game_objects.py", line 1008, in reveal
self.player.secrets.remove(self)
ValueError: list.remove(x): x not in list
Weapons are not spells, and not minions, but they can have battlecries. Implement a property for weapons in the player object
As pointed out by @Ragowit
Currently, battlecries (and other effects/auras) are limited to only minions. They should be expanded to weapons.
I think there are only user-playable cards and heroes currently.
What about implementing cards and heroes for naxxramas bosses?
Seems like something pretty obvious but I don't see The Coin anywhere in our simulator.
Where would it go? Just in game_objects under the initialization for class Game?
Right now it is happening in WeaponCard.play(), but that makes it tricky for spells or minions whose effect is to equip a weapon,
If there's no minion in opponent's deck and Deathlord's deathrattle is triggered so will the application error out.
Traceback (most recent call last):
File "hearthstone-simulator\tests\card_tests\neutral_tests.py", line 2540, in test_Deathlord
game.check_delayed()
File "hearthstone-simulator\hearthbreaker\game_objects.py", line 1721, in check_delayed
minion.activate_delayed()
File "hearthstone-simulator\hearthbreaker\game_objects.py", line 374, in activate_delayed
self.trigger(delayed['event'], *delayed['args'])
File "hearthstone-simulator\hearthbreaker\game_objects.py", line 176, in trigger
handler.function(*args)
File "hearthstone-simulator\hearthbreaker\game_objects.py", line 1091, in delayed_death
rattle.deathrattle(self)
File "hearthstone-simulator\hearthbreaker\tags\base.py", line 354, in deathrattle
self.action.act(target, t)
File "hearthstone-simulator\hearthbreaker\tags\action.py", line 222, in act
card.summon(target, target.game, index)
AttributeError: 'NoneType' object has no attribute 'summon'
Currently, characters which freeze themselves on a turn will be unfrozen the next turn. Add a flag: frozen_this_turn
I suspect this is related to polymorph or some such, but more investigation is required. The index of a minion is off when an ooze is attemped to be duplicated at the end of the turn.
Traceback (most recent call last):
File "C:/Users/Daniel/PycharmProjects/hssim/run_games.py", line 56, in
do_stuff()
File "C:/Users/Daniel/PycharmProjects/hssim/run_games.py", line 53, in do_stuff
print(timeit.timeit(play_game, 'gc.enable()', number=1000))
File "C:\Python33\lib\timeit.py", line 225, in timeit
return Timer(stmt, setup, timer).timeit(number)
File "C:\Python33\lib\timeit.py", line 190, in timeit
timing = self.inner(it, self.timer)
File "C:\Python33\lib\timeit.py", line 95, in inner
_func()
File "C:/Users/Daniel/PycharmProjects/hssim/run_games.py", line 42, in play_game
raise e
File "C:/Users/Daniel/PycharmProjects/hssim/run_games.py", line 39, in play_game
new_game.start()
File "C:\Users\Daniel\PycharmProjects\hssim\hearthbreaker\game_objects.py", line 1888, in start
self.play_single_turn()
File "C:\Users\Daniel\PycharmProjects\hssim\hearthbreaker\game_objects.py", line 1893, in play_single_turn
self._end_turn()
File "C:\Users\Daniel\PycharmProjects\hssim\hearthbreaker\game_objects.py", line 1925, in _end_turn
self.current_player.trigger("turn_ended")
File "C:\Users\Daniel\PycharmProjects\hssim\hearthbreaker\game_objects.py", line 179, in trigger
handler.function(*args)
File "C:\Users\Daniel\PycharmProjects\hssim\hearthbreaker\tags\base.py", line 363, in _find_target
self.action.act(self.target, target)
File "C:\Users\Daniel\PycharmProjects\hssim\hearthbreaker\tags\action.py", line 432, in act
minion = self.minion.resolve(target.game)
File "C:\Users\Daniel\PycharmProjects\hssim\hearthbreaker\proxies.py", line 34, in resolve
char = game.players[0].minions[self.minion_ref]
IndexError: list index out of range
If the opponent have a weapon equipped, and you attack the opponent hero with a minion so will the minion take damage. This should not occur.
This is not a real issue, apologies for polluting the project issues. Please let me know if there is a better place for this.
Let me be clear that my underlying assumption is that I just don't understand the code well enough yet, not that there's a problem with the code.
I'm curious why Agent#choose_target has the method signature it does. I would imagine it should take an attacker parameter, in addition to a list of targets.
I assume it was written this way because it was easiest
When envisioning writing actual AI agents, having the attacker in the method signature would make things much easier, at least as far as I can see. I'm picturing calculating all the attacks (and the order) at once, then calling attack on each in turn. I could certainly write an agent that did this with the current method signature, but adding the attacker seems cleaner.
I'm happy to make a PR with this change if you approve.
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.