7 changed files with 92 additions and 0 deletions
@ -0,0 +1 @@ |
|||||
|
.cache |
||||
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 63 KiB |
|
After Width: | Height: | Size: 93 KiB |
|
After Width: | Height: | Size: 49 KiB |
@ -0,0 +1,29 @@ |
|||||
|
{ |
||||
|
"name": "LibreUNO", |
||||
|
"version": "0.1.0", |
||||
|
"authors": ["ThePerkinrex"], |
||||
|
"script": "game.rhai", |
||||
|
"default_back": "cards/back.png", |
||||
|
"available_cards": { |
||||
|
"B0": { |
||||
|
"image": "cards/b0.png" |
||||
|
}, |
||||
|
"R0": { |
||||
|
"image": "cards/r0.png" |
||||
|
}, |
||||
|
"+4": { |
||||
|
"image": "cards/+4.png" |
||||
|
} |
||||
|
}, |
||||
|
"piles": { |
||||
|
"deck": { |
||||
|
"cards": [ |
||||
|
"B0", "R0", "+4" |
||||
|
] |
||||
|
}, |
||||
|
"placed": {} |
||||
|
}, |
||||
|
"player_piles": { |
||||
|
"deck": {} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,62 @@ |
|||||
|
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[player.val].deck.cards.push(c); |
||||
|
|
||||
|
} |
||||
|
}else{ |
||||
|
if card.pile_name == "deck" { |
||||
|
let c = data.pop_card(card); |
||||
|
data.piles.placed.cards.push(c); |
||||
|
} |
||||
|
} |
||||
|
return [data, true]; |
||||
|
} |
||||
|
return [data, false]; |
||||
|
} |
||||
Loading…
Reference in new issue