From 13060571dca18e8e595bacccfc587e5df44ff936 Mon Sep 17 00:00:00 2001 From: Steve Date: Sun, 14 Nov 2021 14:59:53 -0500 Subject: [PATCH] add student and librarian --- game.go | 12 ++++++------ oracle.go | 13 +++++++++++++ 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/game.go b/game.go index 6ec1ade..df469e1 100644 --- a/game.go +++ b/game.go @@ -245,7 +245,7 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { return g.CardBuffer case "d": //draw: return player hand - if !g.CanDraw || g.QueuedEffect != nil { + if !g.CanDraw || g.QueuedEffect != nil || g.BottomBuffer != 0 { return nil } if len(cmd_s) != 2 || !g.CanDraw { @@ -273,7 +273,7 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { g.HasDrawn = true return DeckFromCards(curr.Hand) case "b": - if g.BottomBuffer == 0 || g.ScryBuffer == 0 { + if g.BottomBuffer == 0 || g.ScryBuffer != 0 { return nil } if len(cmd_s) != 2 { @@ -302,7 +302,7 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { if len(cmd_s) != 3 { return nil } - if !g.HasDrawn || g.QueuedEffect != nil { + if !g.HasDrawn || g.QueuedEffect != nil || g.BottomBuffer != 0 { return nil } x_i, err := strconv.Atoi(cmd_s[1]) @@ -326,7 +326,7 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { if len(cmd_s) != 3 { return nil } - if !g.HasDrawn || g.QueuedEffect != nil { + if !g.HasDrawn || g.QueuedEffect != nil || g.BottomBuffer != 0 { return nil } x_i, err := strconv.Atoi(cmd_s[1]) @@ -379,7 +379,7 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { fmt.Println("not enough arguments") return nil } - if !g.HasDrawn || g.QueuedEffect != nil { + if !g.HasDrawn || g.QueuedEffect != nil || g.BottomBuffer != 0 { return nil } x_i, err := strconv.Atoi(cmd_s[1]) @@ -415,7 +415,7 @@ func (g *Game) PlayerAct(id int, cmd string) *Deck { fmt.Println("not enough arguments") return nil } - if !g.HasDrawn || g.QueuedEffect == nil { + if !g.HasDrawn || g.QueuedEffect == nil || g.BottomBuffer != 0 { return nil } board, err := strconv.Atoi(cmd_s[1]) diff --git a/oracle.go b/oracle.go index 64218c8..7f4ca09 100644 --- a/oracle.go +++ b/oracle.go @@ -60,6 +60,10 @@ func OracleEnters(c *Card, g *Game) { return case Scholar: AddPlayerEffect(g.GetPlayer(c.Owner), &Effect{c.Id, uuid.Nil, 2, 1, true}) + case Student: + AddPlayerEffect(g.GetPlayer(c.Owner), &Effect{c.Id, uuid.Nil, 4, 2, true}) + case Librarian: + AddPlayerEffect(g.GetPlayer(c.Owner), &Effect{c.Id, uuid.Nil, 1, 1, true}) case ShieldWall, Tree: c.Counters = 0 case HealthPotion: @@ -273,6 +277,10 @@ func OraclePlayerEffect(p *Player, g *Game) { } for _, e := range p.Effects { switch e.ID { + case 1: + g.CanDraw = true + g.HasDrawn = false + RemovePlayerEffect(e.Owner, p) case 2: g.CardBuffer = DeckFromCards(g.GetDeck(p.Id).Scry(1)) g.CanDraw = true @@ -282,6 +290,11 @@ func OraclePlayerEffect(p *Player, g *Game) { g.ScryBuffer = e.Modifier g.BottomBuffer = e.Modifier - 1 RemovePlayerEffect(e.Owner, p) + case 4: + g.ScryBuffer = e.Modifier + g.CanDraw = true + g.HasDrawn = false + RemovePlayerEffect(e.Owner, p) } } }