|
|
@@ -8,6 +8,7 @@ import (
|
|
|
"battlecamp-go-server/stomp"
|
|
|
"battlecamp-go-server/flag"
|
|
|
"battlecamp-go-server/events"
|
|
|
+ "battlecamp-go-server/player"
|
|
|
)
|
|
|
|
|
|
var Server *string
|
|
|
@@ -17,7 +18,11 @@ func main() {
|
|
|
log.Println("Game bot version 0.1")
|
|
|
|
|
|
flag.ParseFlags()
|
|
|
-
|
|
|
+ go subscribeToGame()
|
|
|
+ subscribeToUpdate()
|
|
|
+}
|
|
|
+
|
|
|
+func subscribeToGame() {
|
|
|
sub := stomp.Subscribe("game")
|
|
|
|
|
|
for {
|
|
|
@@ -25,7 +30,57 @@ func main() {
|
|
|
gs := new(events.GameStart)
|
|
|
json.Unmarshal(announcement.Body, &gs)
|
|
|
log.Printf("announcement type: %v ", gs.Type)
|
|
|
+ gameEndChan := make(chan bool)
|
|
|
+ if("GAME_START" == gs.Type) {
|
|
|
+ go joinGame(gs.GameId, gameEndChan)
|
|
|
+ } else {
|
|
|
+ gameEndChan <- true
|
|
|
+ }
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+func subscribeToUpdate() {
|
|
|
+ sub := stomp.Subscribe("update")
|
|
|
+
|
|
|
+ for {
|
|
|
+ announcement := <- sub
|
|
|
+ if("vnd.battlecamp.player" == announcement.ContentType) {
|
|
|
+ p := new(player.Player)
|
|
|
+ json.Unmarshal(announcement.Body, &p)
|
|
|
+ playerJoin(p)
|
|
|
+ } else {
|
|
|
+ pu := new(events.PlayerUpdate)
|
|
|
+ json.Unmarshal(announcement.Body, &pu)
|
|
|
+ playerUpdate(pu)
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func joinGame(gameId int64, gameEndChan chan bool) {
|
|
|
+ //join game
|
|
|
+
|
|
|
+ //retrieve board
|
|
|
+
|
|
|
+ for {
|
|
|
+ select {
|
|
|
+ case <-gameEndChan:
|
|
|
+ return
|
|
|
+ default:
|
|
|
+ move()
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func move() {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func playerJoin(p *player.Player) {
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+func playerUpdate(pu *events.PlayerUpdate) {
|
|
|
|
|
|
}
|
|
|
|
|
|
@@ -38,4 +93,4 @@ func initLogging() {
|
|
|
log.Println("ERROR: Cannot open log file, using console.")
|
|
|
log.Printf("%v=n", err)
|
|
|
}
|
|
|
-}
|
|
|
+}
|