UNPKG

binmat

Version:
139 lines (138 loc) 7.25 kB
function generateArgs(state, defender, attacker, binlog) { return state.turn % 2 ? generateArgsForAttacker(state, defender, attacker, binlog) : generateArgsForDefender(state, defender, attacker, binlog) } function generateArgsForDefender(state, defender, attacker, binlog) { const args = { plr: "d0", s: { turns: state.turn, ord: 0 }, plrs: [ ["d0", defender], ["a0", attacker] ], ops: binlog } return ( state.laneDecks[0].length && (args.s.l0 = { c: state.laneDecks[0].length, t: "X" }), state.laneDecks[1].length && (args.s.l1 = { c: state.laneDecks[1].length, t: "X" }), state.laneDecks[2].length && (args.s.l2 = { c: state.laneDecks[2].length, t: "X" }), state.laneDecks[3].length && (args.s.l3 = { c: state.laneDecks[3].length, t: state.laneDecks[3].at(-1) }), state.laneDecks[4].length && (args.s.l4 = { c: state.laneDecks[4].length, t: state.laneDecks[4].at(-1) }), state.laneDecks[5].length && (args.s.l5 = { c: state.laneDecks[5].length, t: state.laneDecks[5].at(-1) }), state.laneDiscardPiles[0].length && (args.s.x0 = state.laneDiscardPiles[0].map(card => `${card}u`)), state.laneDiscardPiles[1].length && (args.s.x1 = state.laneDiscardPiles[1].map(card => `${card}u`)), state.laneDiscardPiles[2].length && (args.s.x2 = state.laneDiscardPiles[2].map(card => `${card}u`)), state.laneDiscardPiles[3].length && (args.s.x3 = state.laneDiscardPiles[3].map(card => `${card}u`)), state.laneDiscardPiles[4].length && (args.s.x4 = state.laneDiscardPiles[4].map(card => `${card}u`)), state.laneDiscardPiles[5].length && (args.s.x5 = state.laneDiscardPiles[5].map(card => `${card}u`)), state.attackerDiscardPile.length && (args.s.xa = [...state.attackerDiscardPile]), state.attackerDeck.length && (args.s.a = { c: state.attackerDeck.length, t: "X" }), state.attackerStacks[0].length && (args.s.a0 = state.attackerStacks[0].map(() => "X")), state.attackerStacks[1].length && (args.s.a1 = state.attackerStacks[1].map(() => "X")), state.attackerStacks[2].length && (args.s.a2 = state.attackerStacks[2].map(() => "X")), state.attackerStacks[3].length && (args.s.a3 = state.attackerStacks[3].map(() => "X")), state.attackerStacks[4].length && (args.s.a4 = state.attackerStacks[4].map(() => "X")), state.attackerStacks[5].length && (args.s.a5 = state.attackerStacks[5].map(() => "X")), state.defenderStacks[0].cards.length && (args.s.d0 = state.defenderStacks[0].isFaceUp ? state.defenderStacks[0].cards.map(card => `${card}u`) : [...state.defenderStacks[0].cards]), state.defenderStacks[1].cards.length && (args.s.d1 = state.defenderStacks[1].isFaceUp ? state.defenderStacks[1].cards.map(card => `${card}u`) : [...state.defenderStacks[1].cards]), state.defenderStacks[2].cards.length && (args.s.d2 = state.defenderStacks[2].isFaceUp ? state.defenderStacks[2].cards.map(card => `${card}u`) : [...state.defenderStacks[2].cards]), state.defenderStacks[3].cards.length && (args.s.d3 = state.defenderStacks[3].isFaceUp ? state.defenderStacks[3].cards.map(card => `${card}u`) : [...state.defenderStacks[3].cards]), state.defenderStacks[4].cards.length && (args.s.d4 = state.defenderStacks[4].isFaceUp ? state.defenderStacks[4].cards.map(card => `${card}u`) : [...state.defenderStacks[4].cards]), state.defenderStacks[5].cards.length && (args.s.d5 = state.defenderStacks[5].isFaceUp ? state.defenderStacks[5].cards.map(card => `${card}u`) : [...state.defenderStacks[5].cards]), state.attackerHand.length && (args.s.ha0 = state.attackerHand.length), state.defenderHand.length && (args.s.hd0 = [...state.defenderHand]), args ) } function generateArgsForAttacker(state, defender, attacker, binlog) { const args = { plr: "a0", s: { turns: state.turn, ord: 0 }, plrs: [ ["d0", defender], ["a0", attacker] ], ops: binlog } return ( state.laneDecks[0].length && (args.s.l0 = { c: state.laneDecks[0].length, t: "X" }), state.laneDecks[1].length && (args.s.l1 = { c: state.laneDecks[1].length, t: "X" }), state.laneDecks[2].length && (args.s.l2 = { c: state.laneDecks[2].length, t: "X" }), state.laneDecks[3].length && (args.s.l3 = { c: state.laneDecks[3].length, t: state.laneDecks[3].at(-1) }), state.laneDecks[4].length && (args.s.l4 = { c: state.laneDecks[4].length, t: state.laneDecks[4].at(-1) }), state.laneDecks[5].length && (args.s.l5 = { c: state.laneDecks[5].length, t: state.laneDecks[5].at(-1) }), state.laneDiscardPiles[0].length && (args.s.x0 = state.laneDiscardPiles[0].map(card => `${card}u`)), state.laneDiscardPiles[1].length && (args.s.x1 = state.laneDiscardPiles[1].map(card => `${card}u`)), state.laneDiscardPiles[2].length && (args.s.x2 = state.laneDiscardPiles[2].map(card => `${card}u`)), state.laneDiscardPiles[3].length && (args.s.x3 = state.laneDiscardPiles[3].map(card => `${card}u`)), state.laneDiscardPiles[4].length && (args.s.x4 = state.laneDiscardPiles[4].map(card => `${card}u`)), state.laneDiscardPiles[5].length && (args.s.x5 = state.laneDiscardPiles[5].map(card => `${card}u`)), state.attackerDiscardPile.length && (args.s.xa = [...state.attackerDiscardPile]), state.attackerDeck.length && (args.s.a = { c: state.attackerDeck.length, t: "X" }), state.attackerStacks[0].length && (args.s.a0 = [...state.attackerStacks[0]]), state.attackerStacks[1].length && (args.s.a1 = [...state.attackerStacks[1]]), state.attackerStacks[2].length && (args.s.a2 = [...state.attackerStacks[2]]), state.attackerStacks[3].length && (args.s.a3 = [...state.attackerStacks[3]]), state.attackerStacks[4].length && (args.s.a4 = [...state.attackerStacks[4]]), state.attackerStacks[5].length && (args.s.a5 = [...state.attackerStacks[5]]), state.defenderStacks[0].cards.length && (args.s.d0 = state.defenderStacks[0].isFaceUp ? state.defenderStacks[0].cards.map(card => `${card}u`) : state.defenderStacks[0].cards.map(() => "X")), state.defenderStacks[1].cards.length && (args.s.d1 = state.defenderStacks[1].isFaceUp ? state.defenderStacks[1].cards.map(card => `${card}u`) : state.defenderStacks[1].cards.map(() => "X")), state.defenderStacks[2].cards.length && (args.s.d2 = state.defenderStacks[2].isFaceUp ? state.defenderStacks[2].cards.map(card => `${card}u`) : state.defenderStacks[2].cards.map(() => "X")), state.defenderStacks[3].cards.length && (args.s.d3 = state.defenderStacks[3].isFaceUp ? state.defenderStacks[3].cards.map(card => `${card}u`) : state.defenderStacks[3].cards.map(() => "X")), state.defenderStacks[4].cards.length && (args.s.d4 = state.defenderStacks[4].isFaceUp ? state.defenderStacks[4].cards.map(card => `${card}u`) : state.defenderStacks[4].cards.map(() => "X")), state.defenderStacks[5].cards.length && (args.s.d5 = state.defenderStacks[5].isFaceUp ? state.defenderStacks[5].cards.map(card => `${card}u`) : state.defenderStacks[5].cards.map(() => "X")), state.attackerHand.length && (args.s.ha0 = [...state.attackerHand]), state.defenderHand.length && (args.s.hd0 = state.defenderHand.length), args ) } export { generateArgs, generateArgsForAttacker, generateArgsForDefender }