private static void Render() { Terminal.Clear(); Terminal.Layer(1); if (Player != null) { Map.Draw(_mapLayer); MessageHandler.Draw(_messageLayer); StatPanel.Draw(_statLayer); if (ShowInfo) { InfoPanel.Draw(_leftLayer); } else { LookPanel.Draw(_leftLayer); } if (ShowEquip) { Player.Equipment.Draw(_rightLayer); } else { Player.Inventory.Draw(_rightLayer); } } StateHandler.Draw(); Animations.Draw(); Terminal.Refresh(); }
public Option <ICommand> HandleMouseInput(int x, int y, bool leftClick, bool rightClick) { Loc pos = new Loc(x, y); Tile current = Game.Map.Field[pos]; if (!current.IsExplored || current.IsWall) { return(Option.None <ICommand>()); } foreach (LocCost next in Game.Map.GetPathToPlayer(pos).Reverse()) { if (Game.Map.Field[next.Loc].IsExplored) { Game.Overlay.Set(next.Loc.X, next.Loc.Y, Colors.Path); } } Game.Overlay.Set(pos.X, pos.Y, Colors.Cursor); if (current.IsVisible) { Game.Map.GetItem(pos).MatchSome(LookPanel.DisplayItem); Game.Map.GetActor(pos).MatchSome(LookPanel.DisplayActor); } else { LookPanel.Clear(); } LookPanel.DisplayTerrain(current); return(Option.None <ICommand>()); }