// DrawFOV draws a field of view around a creature as well as the creatures // memory of already explored areas. func (c Creature) DrawFOV(a *area.Area) { // Clear screen. ui.Clear() // Get viewport coordinate offset. camX, camY := camXY(c, a) // Draw already explored areas. a.DrawExplored(ui.Area, camX, camY) // Draw hero. a.Draw(c.X(), c.Y(), camX, camY, ui.Area) // Visible coordinates of character. cs := c.FOV(a) for p := range cs { // Set terrain as explored. a.Terrain[p.X][p.Y].IsExplored = true // TODO(_): refactor cam. a.Draw(p.X, p.Y, camX, camY, ui.Area) } }