'use strict'; var player,opponent; function setup () { player = game.hostPlayer; opponent = game.guestPlayer; player.shuffle(); opponent.shuffle(); player.setupLrigAsyn().callback(function () { return opponent.setupLrigAsyn(); }).callback(function () { return game.decideFirstPlayerAsyn(); }).callback(function () { player.setupHands(); opponent.setupHands(); return player.redrawAsyn(); }).callback(function () { return opponent.redrawAsyn(); }).callback(function () { player.setupLifeCloth(); opponent.setupLifeCloth(); player.open(); opponent.open(); upPhase(); }); game.sendMsgQueue(); } function upPhase () { player.up(); drawPhase(); } function drawPhase () { player.draw(2); enerPhase(); } function enerPhase () { player.chargeAsyn().callback(growPhase); player.endEnerPhaseAsyn().callback(growPhase); } function growPhase () { player.growAsyn().callback(mainPhase); player.endGrowPhaseAsyn().callback(mainPhase); } function mainPhase () { function loop () { player.summonSigniAsyn().callback(loop); player.trashSigniAsyn().callback(loop); player.useSpellAsyn().callback(loop); player.useMainPhaseArtsAsyn().callback(loop); player.useActionEffectAsyn().callback(loop); player.endMainPhaseAsyn().callback(attackPhase); } loop(); } function attackPhase () { artsStep(); } function artsStep () { function playerLoop () { player.useAttackPhaseArtsAsyn().callback(playerLoop); player.endArtsStepAsyn().callback(opponentLoop); } function opponentLoop () { opponent.useAttackPhaseArtsAsyn().callback(opponentLoop); opponent.endArtsStepAsyn().callback(signiAttackStep); } playerLoop(); } function signiAttackStep () { function loop () { player.signiAttackAsyn().callback(loop); player.endSigniAttackStepAsyn().callback(lrigAttackStep); } loop(); } function lrigAttackStep () { function loop () { player.lrigAttackAsyn().callback(loop); player.endLrigAttackStepAsyn().callback(endPhase); } loop(); } function endPhase () { var n = player.hands.length - 7; if (n > 0) { player.discardAsyn(n).callback(wixoss); } else { wixoss(); } } function wixoss () { var tmp = player; player = opponent; opponent = tmp; upPhase(); }