package game import "log" func OracleUpkeep(c *Card, g *Game) { switch c.Type { case Eight: c.Sick = true if c.Counters > 3 { g.GameBoard.Remove(c) } default: c.Sick = false } return } func OracleSpell(c CardType, g *Game) bool { switch c { case Valk: return true default: return false } } func OracleCast(c *Card, g *Game) bool { switch c.Type { case Valk: g.GameBoard = NewBoard() return false default: return true } } func OracleEnters(c *Card, g *Game) { c.Sick = true switch c.Type { case Ace: c.Sick = false case Two: //+1 to all if c.Owner == SentinalID { for _, v := range g.GameBoard.Sentinal { v.Power = v.Power + 1 } } else if c.Owner == ScourgeID { for _, v := range g.GameBoard.Scourge { v.Power = v.Power + 1 } } else { log.Println("Trying to lookup an ETB when card not on field") } case Three: //+1 around it if c.Owner == SentinalID { if c.Position-1 >= 0 { g.GameBoard.Sentinal[c.Position-1].Power = g.GameBoard.Sentinal[c.Position-1].Power + 1 } if c.Position+1 <= 3 { g.GameBoard.Sentinal[c.Position+1].Power = g.GameBoard.Sentinal[c.Position+1].Power + 1 } } if c.Owner == ScourgeID { if c.Position-1 >= 0 { g.GameBoard.Scourge[c.Position-1].Power = g.GameBoard.Scourge[c.Position-1].Power + 1 } if c.Position+1 <= 3 { g.GameBoard.Scourge[c.Position+1].Power = g.GameBoard.Scourge[c.Position+1].Power + 1 } } } return } func OracleLeaves(c *Card, g *Game) { switch c.Type { case Two: //remove +1 to all if c.Owner == SentinalID { for _, v := range g.GameBoard.Sentinal { v.Power = v.Power - 1 } } else if c.Owner == ScourgeID { for _, v := range g.GameBoard.Scourge { v.Power = v.Power - 1 } } else { log.Println("Trying to lookup an LTB when card not on field") } case Three: //+1 around it if c.Owner == SentinalID { if c.Position-1 >= 0 { g.GameBoard.Sentinal[c.Position-1].Power = g.GameBoard.Sentinal[c.Position-1].Power - 1 } if c.Position+1 <= 3 { g.GameBoard.Sentinal[c.Position+1].Power = g.GameBoard.Sentinal[c.Position+1].Power - 1 } } if c.Owner == ScourgeID { if c.Position-1 >= 0 { g.GameBoard.Scourge[c.Position-1].Power = g.GameBoard.Scourge[c.Position-1].Power - 1 } if c.Position+1 <= 3 { g.GameBoard.Scourge[c.Position+1].Power = g.GameBoard.Scourge[c.Position+1].Power - 1 } } } return } func OracleEndstep(c *Card, g *Game) { switch c.Type { case Eight: c.Counters = c.Counters + 1 } return } func OraclePower(c CardType, g *Game) int { return int(c) } func OracleMove(c *Card, src, dest int, g *Game) { c.Sick = true switch c.Type { case Three: row := g.GameBoard.GetRow(c.Owner) row[src-1].Power = row[src-1].Power - 1 row[src+1].Power = row[src+1].Power - 1 row[dest-1].Power = row[dest-1].Power + 1 row[dest+1].Power = row[dest+1].Power + 1 } } func OracleAttack(c *Card, g *Game) { c.Sick = true }