Initial pass at Golden Pack.
This commit is contained in:
@@ -147,12 +147,18 @@ func applyBotAction(g *game.Game, playerID string, a *ai.Action) error {
|
||||
switch a.Type {
|
||||
case "buy":
|
||||
return g.Buy(playerID, a.Row)
|
||||
case "buyAvocado":
|
||||
return g.BuyAvocado(playerID, a.Row)
|
||||
case "sell":
|
||||
return g.Sell(playerID, a.Cards)
|
||||
case "trade":
|
||||
return g.TradeStart(playerID, a.Cards)
|
||||
case "tradeChoose":
|
||||
return g.TradeChoose(playerID, a.Pick)
|
||||
case "revealChoose":
|
||||
return g.RevealChoose(playerID, a.CardID)
|
||||
case "battleChoose":
|
||||
return g.BattleChoose(playerID, a.Value)
|
||||
case "pass":
|
||||
return g.Pass(playerID)
|
||||
case "arrange":
|
||||
@@ -174,6 +180,9 @@ func botFallback(g *game.Game, playerID string) error {
|
||||
}
|
||||
switch g.Phase {
|
||||
case game.PhaseShop:
|
||||
if g.PendingReveal != nil && g.PendingReveal.PlayerID == playerID {
|
||||
return g.RevealChoose(playerID, g.PendingReveal.Options[0])
|
||||
}
|
||||
if g.Pending != nil && g.Pending.PlayerID == playerID {
|
||||
return g.TradeChoose(playerID, 0)
|
||||
}
|
||||
@@ -194,6 +203,9 @@ func botFallback(g *game.Game, playerID string) error {
|
||||
}
|
||||
return g.SubmitOrder(playerID, ids)
|
||||
case game.PhaseBattle:
|
||||
if g.PendingBattle != nil && g.Players[g.PendingBattle.Seat].ID == playerID {
|
||||
return g.BattleChoose(playerID, g.PendingBattle.Max)
|
||||
}
|
||||
return g.AcknowledgeBattle(playerID)
|
||||
}
|
||||
return game.ErrInvalidAction
|
||||
|
||||
@@ -31,6 +31,8 @@ type clientMessage struct {
|
||||
Pack string `json:"pack"` // setPack
|
||||
Difficulty string `json:"difficulty"` // addBot
|
||||
Target string `json:"target"` // removePlayer (player ID)
|
||||
Card string `json:"card"` // revealChoose (Cockatoo): pet card id
|
||||
Value int `json:"value"` // battleChoose (Nurse Shark): Trumpets to spend
|
||||
}
|
||||
|
||||
type serverMessage struct {
|
||||
@@ -140,12 +142,18 @@ func (s *Server) apply(r *room, c *client, msg clientMessage) {
|
||||
}
|
||||
case "buy":
|
||||
err = g.Buy(c.playerID, msg.Row)
|
||||
case "buyAvocado":
|
||||
err = g.BuyAvocado(c.playerID, msg.Row)
|
||||
case "sell":
|
||||
err = g.Sell(c.playerID, msg.Cards)
|
||||
case "trade":
|
||||
err = g.TradeStart(c.playerID, msg.Cards)
|
||||
case "tradeChoose":
|
||||
err = g.TradeChoose(c.playerID, msg.Pick)
|
||||
case "revealChoose":
|
||||
err = g.RevealChoose(c.playerID, msg.Card)
|
||||
case "battleChoose":
|
||||
err = g.BattleChoose(c.playerID, msg.Value)
|
||||
case "pass":
|
||||
err = g.Pass(c.playerID)
|
||||
case "arrange":
|
||||
|
||||
Reference in New Issue
Block a user