Exemplo n.º 1
0
Arquivo: fov.go Projeto: karlek/reason
// 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)
	}
}