private static ColorGlyph DetermineVisibleColorGlyph(TileType tile, FeatureType features, ItemType?item, ulong currentDepthSeed, Point p)           //todo, add trap, shrine, etc.
        //todo features
        {
            if (item != null)
            {
                return(GameObjectGlyphs.Get(item.Value));
            }
            if (features.HasFeature(FeatureType.Ice))
            {
                return(GameObjectGlyphs.Get(FeatureType.Ice));                                                // new ColorGlyph('~', Color.Cyan, Color.Gray);
            }
            if (features.HasFeature(FeatureType.CrackedIce))
            {
                return(new ColorGlyph('~', Color.Red, Color.Gray));
            }
            if (features.HasFeature(FeatureType.BrokenIce))
            {
                return(new ColorGlyph('~', Color.Gray, Color.DarkBlue));
            }
            if (features.HasFeature(FeatureType.Water))
            {
                return(new ColorGlyph('~', Color.Cyan, Color.DarkCyan));
            }
            //todo, should change color for creatures based on background, right? do I need rules for which colors to modify/invert?
            //so... if background color... then return a modified version.
            //bg colors are currently black, gray, dark blue... plus targeting/mouseover stuff.

            return(GameObjectGlyphs.Get(tile, currentDepthSeed, p));
        }
        private static ColorGlyph DetermineCreatureColorGlyph(CreatureType creature, TileType tile, FeatureType features, ItemType?item)
        {
            //todo, add trap, shrine, etc.
            //todo features
            Color bgColor = Color.Black;

            if (features.HasFeature(FeatureType.Water))
            {
                bgColor = Color.DarkCyan;
            }
            //else if(features.HasFeature(FeatureType.Lava)) bgColor = Color.DarkRed;
            else if (tile == TileType.ThickIce)
            {
                bgColor = Color.Gray;
            }
            else if (tile == TileType.DeepWater)
            {
                if (features.HasFeature(FeatureType.Ice) || features.HasFeature(FeatureType.CrackedIce))
                {
                    bgColor = Color.Gray;
                }
                else
                {
                    bgColor = Color.DarkBlue;
                }
            }
            ColorGlyph cg = GameObjectGlyphs.Get(creature);

            return(new ColorGlyph(cg.GlyphIndex, cg.ForegroundColor, bgColor));
        }
 public BasicMapRenderer(GameRunUI ui) : base(ui)
 {
     GameObjectGlyphs.Initialize();
 }