package scenario import ( "log" "code.ur.gs/lupine/ordoor/internal/maps" ) type CellPoint struct { IsoPt Z int } func (s *Scenario) CellAtCursor() (*maps.Cell, CellPoint) { cell := s.area.Cell(int(s.highlightedCell.X), int(s.highlightedCell.Y), 0) return cell, CellPoint{IsoPt: s.highlightedCell, Z: 0} } func (s *Scenario) HighlightedCharacter() *maps.Character { // FIXME: characters are always at zIdx 0 right now return s.area.CharacterAt(int(s.highlightedCell.X), int(s.highlightedCell.Y), 0) } func (s *Scenario) SelectedCharacter() *maps.Character { return s.selectedCharacter } func (s *Scenario) SelectHighlightedCharacter() { chr := s.HighlightedCharacter() log.Printf("Selected character %s", chr) s.selectedCharacter = chr } func (s *Scenario) ChangeZIdx(by int) { newZ := s.ZIdx + by if newZ < 0 { newZ = 0 } if newZ > 6 { newZ = 6 } s.ZIdx = newZ }