diff --git a/game.go b/game.go index 25b8e5f..170279d 100644 --- a/game.go +++ b/game.go @@ -168,10 +168,7 @@ func (g *Game) PlayerStateAct(id int, cmd string) *GameView { g.Status = StatusPlaying } //skip draw step when 0 life - if id == SentinalID && g.SentinalPlayer.Life <= 0 { - g.CanDraw = false - g.HasDrawn = true - } else if id == ScourgeID && g.ScourgePlayer.Life <= 0 { + if g.GetPlayer(id).Life <= 0 { g.CanDraw = false g.HasDrawn = true } else { @@ -181,14 +178,8 @@ func (g *Game) PlayerStateAct(id int, cmd string) *GameView { if id != g.CurrentTurn { return nil } - if id == SentinalID { - for _, v := range g.GameBoard.Sentinal { - OracleUpkeep(v, g) - } - } else { - for _, v := range g.GameBoard.Scourge { - OracleUpkeep(v, g) - } + for _, v := range g.GetBoard(id) { + OracleUpkeep(v, g) } case "e": //end turn and clean up @@ -196,14 +187,8 @@ func (g *Game) PlayerStateAct(id int, cmd string) *GameView { return nil } g.CardBuffer = DeckFromCards([]*Card{}) - if id == SentinalID { - for _, v := range g.GameBoard.Sentinal { - OracleEndstep(v, g) - } - } else { - for _, v := range g.GameBoard.Scourge { - OracleEndstep(v, g) - } + for _, v := range g.GetBoard(id) { + OracleEndstep(v, g) } if g.CurrentTurn == SentinalID { g.CurrentTurn = ScourgeID @@ -221,15 +206,9 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { var curr *Player var opp *Player var currD *Deck - if id == g.SentinalPlayer.Id { - curr = g.SentinalPlayer - opp = g.ScourgePlayer - currD = g.SentinalDeck - } else { - curr = g.ScourgePlayer - opp = g.SentinalPlayer - currD = g.ScourgeDeck - } + curr = g.GetPlayer(id) + opp = g.GetOpponent(id) + currD = g.GetDeck(id) cmd_s := strings.Split(cmd, " ") if len(cmd_s) < 1 { return nil @@ -319,15 +298,10 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { OracleAttack(g.GameBoard.GetCard(g.CurrentTurn, x_i), g) res := g.GameBoard.Attack(g.CurrentTurn, x_i, y_i) var aid, did int - if id == SentinalID { - aid = SentinalID - did = ScourgeID - } else { - aid = ScourgeID - did = SentinalID - } - attacker := g.GameBoard.GetRow(aid)[x_i] - defender := g.GameBoard.GetRow(did)[y_i] + aid = g.GetPlayer(id).Id + did = g.GetOpponent(id).Id + attacker := g.GetBoard(aid)[x_i] + defender := g.GetBoard(did)[y_i] switch res { case 1: opp.Life = opp.Life - 1 @@ -396,3 +370,35 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { func Debug(g *Game) { return } + +func (g *Game) GetPlayer(id int) *Player { + if id == SentinalID { + return g.SentinalPlayer + } else if id == ScourgeID { + return g.ScourgePlayer + } else { + return nil + } +} +func (g *Game) GetOpponent(id int) *Player { + if id == SentinalID { + return g.ScourgePlayer + } else if id == ScourgeID { + return g.SentinalPlayer + } else { + return nil + } +} +func (g *Game) GetDeck(id int) *Deck { + if id == SentinalID { + return g.SentinalDeck + } else if id == ScourgeID { + return g.ScourgeDeck + } else { + return nil + } +} + +func (g *Game) GetBoard(id int) []*Card { + return g.GameBoard.GetRow(id) +}