jleclanche/fireplace

kettle.py throws exception when connected using Joust

YuntianZhang opened this issue · 1 comments

From the log it seems Joust only sent one package and kettle.py sent none out.

[fireplace.init]: Initializing card database
INFO:fireplace:Initializing card database
[fireplace.init]: Merged 2528 cards
INFO:fireplace:Merged 2528 cards
INFO:kettle:Listening on 127.0.0.1:9111...
DEBUG:kettle:Got data b'[{"Type":"CreateGame","CreateGame":{"Players":[{"Name":"Player 1","Hero":"HERO_08","Cards":["GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003"]},{"Name":"Player 2","Hero":"HERO_08","Cards":["GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003","GVG_003"]}]}}]'
DEBUG:kettle:Got payload {'Players': [{'Hero': 'HERO_08', 'Cards': ['GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003'], 'Name': 'Player 1'}, {'Hero': 'HERO_08', 'Cards': ['GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003', 'GVG_003'], 'Name': 'Player 2'}]}
INFO:kettle:Initializing a Kettle game with players=[Player(name='Player 1', hero=None), Player(name='Player 2', hero=None)]
[fireplace.entity]: Setting up game BaseGame(players=[Player(name='Player 1', hero=None), Player(name='Player 2', hero=None)])
INFO:fireplace:Setting up game BaseGame(players=[Player(name='Player 1', hero=None), Player(name='Player 2', hero=None)])
DEBUG:kettle:Beginning new action <BlockType.TRIGGER: 5> (Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), -1, None)
[fireplace.actions]: Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Summon(<Summon.CARD>=<HeroPower ('Fireblast')>)> targeting [Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>)]
INFO:fireplace:Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Summon(<Summon.CARD>=<HeroPower ('Fireblast')>)> targeting [Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>)]
[fireplace.actions]: Player 1 summons [<HeroPower ('Fireblast')>]
INFO:fireplace:Player 1 summons [<HeroPower ('Fireblast')>]
DEBUG:kettle:Ending action <BlockType.TRIGGER: 5>
[fireplace.entity]: Empty stack, refreshing auras and processing deaths
INFO:fireplace:Empty stack, refreshing auras and processing deaths
DEBUG:kettle:Beginning new action <BlockType.TRIGGER: 5> (Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), -1, None)
[fireplace.actions]: Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Summon(<Summon.CARD>=<Hero ('Jaina Proudmoore')>)> targeting [Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>)]
INFO:fireplace:Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Summon(<Summon.CARD>=<Hero ('Jaina Proudmoore')>)> targeting [Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>)]
[fireplace.actions]: Player 1 summons [<Hero ('Jaina Proudmoore')>]
INFO:fireplace:Player 1 summons [<Hero ('Jaina Proudmoore')>]
DEBUG:kettle:Ending action <BlockType.TRIGGER: 5>
[fireplace.entity]: Empty stack, refreshing auras and processing deaths
INFO:fireplace:Empty stack, refreshing auras and processing deaths
[fireplace.entity]: Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>) shuffles their deck
INFO:fireplace:Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>) shuffles their deck
[fireplace.card]: <Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:fireplace:<Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
[fireplace.card]: <Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:fireplace:<Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
[fireplace.card]: <Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:fireplace:<Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:kettle:Beginning new action <BlockType.TRIGGER: 5> (Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>), -1, None)
[fireplace.actions]: Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Summon(<Summon.CARD>=<HeroPower ('Fireblast')>)> targeting [Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]
INFO:fireplace:Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Summon(<Summon.CARD>=<HeroPower ('Fireblast')>)> targeting [Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]
[fireplace.actions]: Player 2 summons [<HeroPower ('Fireblast')>]
INFO:fireplace:Player 2 summons [<HeroPower ('Fireblast')>]
DEBUG:kettle:Ending action <BlockType.TRIGGER: 5>
[fireplace.entity]: Empty stack, refreshing auras and processing deaths
INFO:fireplace:Empty stack, refreshing auras and processing deaths
DEBUG:kettle:Beginning new action <BlockType.TRIGGER: 5> (Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>), -1, None)
[fireplace.actions]: Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Summon(<Summon.CARD>=<Hero ('Jaina Proudmoore')>)> targeting [Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]
INFO:fireplace:Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Summon(<Summon.CARD>=<Hero ('Jaina Proudmoore')>)> targeting [Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]
[fireplace.actions]: Player 2 summons [<Hero ('Jaina Proudmoore')>]
INFO:fireplace:Player 2 summons [<Hero ('Jaina Proudmoore')>]
DEBUG:kettle:Ending action <BlockType.TRIGGER: 5>
[fireplace.entity]: Empty stack, refreshing auras and processing deaths
INFO:fireplace:Empty stack, refreshing auras and processing deaths
[fireplace.entity]: Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>) shuffles their deck
INFO:fireplace:Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>) shuffles their deck
[fireplace.card]: <Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:fireplace:<Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
[fireplace.card]: <Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:fireplace:<Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
[fireplace.card]: <Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:fireplace:<Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
[fireplace.card]: <Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:fireplace:<Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:kettle:Game.STEP changes to <Step.BEGIN_SHUFFLE: 2> (next step is <Step.MAIN_READY: 6>)
[fireplace.entity]: Player 1 begins turn 1
INFO:fireplace:Player 1 begins turn 1
DEBUG:kettle:Game.STEP changes to <Step.MAIN_READY: 6> (next step is <Step.MAIN_START_TRIGGERS: 17>)
DEBUG:kettle:Game.STEP changes to <Step.MAIN_START_TRIGGERS: 17> (next step is <Step.MAIN_START_TRIGGERS: 17>)
DEBUG:kettle:Queueing a tag change for entity BaseGame(players=[Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]): <GameTag.STEP: 19> -> 6
DEBUG:kettle:Queueing a tag change for entity BaseGame(players=[Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]): <GameTag.TURN: 20> -> 1
DEBUG:kettle:Queueing a tag change for entity BaseGame(players=[Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]): <GameTag.NEXT_STEP: 198> -> 17
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>): <GameTag.PLAYSTATE: 17> -> 1
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>): <GameTag.FIRST_PLAYER: 24> -> 1
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>): <GameTag.HERO_ENTITY: 27> -> 5
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>): <GameTag.STARTHANDSIZE: 29> -> 3
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>): <GameTag.PLAYSTATE: 17> -> 1
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>): <GameTag.HERO_ENTITY: 27> -> 38
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>): <GameTag.STARTHANDSIZE: 29> -> 4
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE_POSITION: 263> -> 1
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE: 49> -> 3
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE_POSITION: 263> -> 2
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE: 49> -> 3
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE_POSITION: 263> -> 3
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE: 49> -> 3
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE_POSITION: 263> -> 1
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE: 49> -> 3
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE_POSITION: 263> -> 2
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE: 49> -> 3
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE_POSITION: 263> -> 3
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE: 49> -> 3
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE_POSITION: 263> -> 4
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE: 49> -> 3
DEBUG:kettle:Game.STEP changes to <Step.MAIN_START_TRIGGERS: 17> (next step is <Step.MAIN_START: 9>)
DEBUG:kettle:Queueing a tag change for entity BaseGame(players=[Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]): <GameTag.STEP: 19> -> 17
DEBUG:kettle:Game.STEP changes to <Step.MAIN_START: 9> (next step is <Step.MAIN_ACTION: 10>)
DEBUG:kettle:Queueing a tag change for entity BaseGame(players=[Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]): <GameTag.NEXT_STEP: 198> -> 9
[fireplace.entity]: Player 1 is now at 1 mana crystals
INFO:fireplace:Player 1 is now at 1 mana crystals
DEBUG:kettle:Beginning new action <BlockType.TRIGGER: 5> (Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), -1, None)
DEBUG:kettle:Queueing a tag change for entity BaseGame(players=[Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]): <GameTag.STEP: 19> -> 9
DEBUG:kettle:Queueing a tag change for entity BaseGame(players=[Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>), Player(name='Player 2', hero=<Hero ('Jaina Proudmoore')>)]): <GameTag.NEXT_STEP: 198> -> 10
DEBUG:kettle:Queueing a tag change for entity <Hero ('Jaina Proudmoore')>: <GameTag.NUM_TURNS_IN_PLAY: 271> -> 1
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>): <GameTag.TURN_START: 8> -> 1478215827
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>): <GameTag.RESOURCES: 26> -> 1
DEBUG:kettle:Queueing a tag change for entity <Hero ('Jaina Proudmoore')>: <GameTag.NUM_TURNS_IN_PLAY: 271> -> 1
[fireplace.actions]: Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Draw()> targeting [Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>)]
INFO:fireplace:Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>) triggering <TargetedAction: Draw()> targeting [Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>)]
[fireplace.entity]: Player 1 draws <Spell ('Unstable Portal')>
INFO:fireplace:Player 1 draws <Spell ('Unstable Portal')>
[fireplace.card]: <Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:fireplace:<Spell ('Unstable Portal')> moves from <Zone.DECK: 2> to <Zone.HAND: 3>
DEBUG:kettle:Beginning new action <BlockType.TRIGGER: 5> (<Spell ('Unstable Portal')>, -1, None)
DEBUG:kettle:Queueing a tag change for entity Player(name='Player 1', hero=<Hero ('Jaina Proudmoore')>): <GameTag.NUM_CARDS_DRAWN_THIS_TURN: 399> -> 1
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE_POSITION: 263> -> 4
DEBUG:kettle:Queueing a tag change for entity <Spell ('Unstable Portal')>: <GameTag.ZONE: 49> -> 3
DEBUG:kettle:Ending action <BlockType.TRIGGER: 5>
DEBUG:kettle:Ending action <BlockType.TRIGGER: 5>
[fireplace.entity]: Empty stack, refreshing auras and processing deaths
INFO:fireplace:Empty stack, refreshing auras and processing deaths
DEBUG:kettle:Game.STEP changes to <Step.MAIN_ACTION: 10> (next step is <Step.MAIN_END: 12>)
Traceback (most recent call last):
File "C:\Users<user>\AppData\Local\Programs\Python\Python35-32\lib\socketserver.py", line 628, in process_request_thread
self.finish_request(request, client_address)
File "C:\Users<user>\AppData\Local\Programs\Python\Python35-32\lib\socketserver.py", line 357, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Users<user>\AppData\Local\Programs\Python\Python35-32\lib\socketserver.py", line 684, in init
self.handle()
File "kettle.py", line 285, in handle
manager = self.create_game(payload)
File "kettle.py", line 350, in create_game
game.start()
File "C:\Users<user>\AppData\Local\Programs\Python\Python35-32\lib\site-packages\fireplace-0.1-py3.5.egg\fireplace\game.py", line 278, in start
self.begin_turn(self.player1)
File "C:\Users<user>\AppData\Local\Programs\Python\Python35-32\lib\site-packages\fireplace-0.1-py3.5.egg\fireplace\game.py", line 302, in begin_turn
self.manager.turn(player)
File "C:\Users<user>\AppData\Local\Programs\Python\Python35-32\lib\site-packages\fireplace-0.1-py3.5.egg\fireplace\managers.py", line 85, in turn
observer.turn(player)
AttributeError: 'KettleManager' object has no attribute 'turn'

Exception happened during processing of request from ('127.0.0.1', 12209)

Kettle is deprecated and no longer maintained