aboutsummaryrefslogtreecommitdiff
path: root/go/game/kraken.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/game/kraken.go')
-rw-r--r--go/game/kraken.go19
1 files changed, 14 insertions, 5 deletions
diff --git a/go/game/kraken.go b/go/game/kraken.go
index 177423ff..6ea22876 100644
--- a/go/game/kraken.go
+++ b/go/game/kraken.go
@@ -1,7 +1,6 @@
package game
import (
- "image/color"
"log"
"strings"
"sync"
@@ -27,10 +26,10 @@ const (
// 2 kraken/tides_change!
// 2 kraken/unholy_cannonball`
-var KrakenDecklist = `2 kraken/frost_pylon`
+var KrakenDecklist = `2 kraken/clownfish`
-func NewKraken(id int, s *State, c color.Color) *Player {
- kraken := NewPlayer(id, KRAKEN_NAME, NewDeck(), s, c)
+func NewKraken(id int, s *State) *Player {
+ kraken := NewPlayer(id, KRAKEN_NAME, NewDeck(), s)
d := NewDeckFromDeckList(KrakenDecklist)
d.Shuffle(s.Rand)
kraken.Deck = d
@@ -49,14 +48,20 @@ func NewKraken(id int, s *State, c color.Color) *Player {
return kraken
}
+func (s *State) AddKraken() {
+ kraken := NewKraken(len(s.Players)+1, s)
+ s.Players = append(s.Players, kraken)
+}
+
type KrakenControl struct {
kraken *Player
actions chan Action
syncGameState *sync.WaitGroup
+ turn int
}
func addKrakenControl(kraken *Player) {
- ctrl := &KrakenControl{kraken, make(chan Action), new(sync.WaitGroup)}
+ ctrl := &KrakenControl{kraken, make(chan Action), new(sync.WaitGroup), 0}
kraken.Ctrl = ctrl
ctrl.syncGameState.Add(1)
@@ -78,6 +83,10 @@ func (ctrl *KrakenControl) krakenTurn() {
kraken := ctrl.kraken
ctrl.awaitGameStateSync()
+ ctrl.turn++
+ if ctrl.turn != kraken.Turn {
+ log.Fatalf("Ai turn out of sync %d != %d", ctrl.turn, kraken.Turn)
+ }
for {
drawn := kraken.Deck.Draw(1)