fn setup(data) { print("Setting up UNO for " + data.players + " players"); // print(data.piles.deck); data.piles.deck = shuffle(data.piles.deck); // print(data.piles.deck); // print(data.player_piles); for i in range(0, 2) { // print(i); for player_idx in range(0, data.player_piles.len) { // print("Deck" + player); let drawed_card = data.piles.deck.cards.pop(); // print(player.deck.cards); data.player_piles[player_idx].deck.cards.push(drawed_card); // print(player.deck.cards); } } // print(data.player_piles); // print(data.piles.deck); data.fw = true; return data; } fn turn_end(data, player) { print("Turn for " + player + " ending"); if data.fw { player.add(1); }else{ player.sub(1); } return [data, player]; } fn turn_start(data, player) { print("Turn for " + player + " starting"); return data; } fn on_click(data, card, action_author, current_player) { if action_author == current_player { if card.pile_kind == "common" { if card.pile_name == "deck" { // Get a card from the deck let c = data.pop_card(card); data.player_piles[current_player.val].deck.cards.push(c); } }else{ if card.pile_name == "deck" { let c = data.pop_card(card); print(c[0]); data.piles.placed.cards.push(c); } } return [data, true]; } return [data, false]; }