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)); }