public static void Targeting_DisplayContents(Tile tc,string always_displayed,string unseen_area_message,bool include_monsters,bool first_iteration) { if(always_displayed == ""){ if(include_monsters && tc.actor() == player){ if(!first_iteration){ string s = "You're standing here. "; //if(tc.ContentsCount() == 0 && tc.type == TileType.FLOOR){ if(tc.ContentsCount() == 0 && tc.name == "floor"){ B.DisplayNow(s); } else{ B.DisplayNow(s + tc.ContentsString() + " here. "); } } } else{ if(player.CanSee(tc)){ B.DisplayNow(tc.ContentsString(include_monsters) + ". "); if(!Help.displayed[TutorialTopic.Traps] && tc.IsKnownTrap()){ Help.TutorialTip(TutorialTopic.Traps); } else{ if(!Help.displayed[TutorialTopic.NotRevealedByLight] && ((tc.IsShrine() || tc.IsKnownTrap()) && !tc.revealed_by_light) || (tc.inv != null && !tc.inv.revealed_by_light)){ Help.TutorialTip(TutorialTopic.NotRevealedByLight); } else{ if(!Help.displayed[TutorialTopic.Fire] && tc.Is(FeatureType.FIRE)){ Help.TutorialTip(TutorialTopic.Fire); } else{ switch(tc.type){ case TileType.BLAST_FUNGUS: Help.TutorialTip(TutorialTopic.BlastFungus,true); break; case TileType.CRACKED_WALL: Help.TutorialTip(TutorialTopic.CrackedWall,true); break; case TileType.FIREPIT: Help.TutorialTip(TutorialTopic.FirePit,true); break; case TileType.POOL_OF_RESTORATION: Help.TutorialTip(TutorialTopic.PoolOfRestoration,true); break; case TileType.STONE_SLAB: case TileType.STONE_SLAB_OPEN: Help.TutorialTip(TutorialTopic.StoneSlab,true); break; case TileType.COMBAT_SHRINE: case TileType.DEFENSE_SHRINE: case TileType.MAGIC_SHRINE: case TileType.SPIRIT_SHRINE: case TileType.STEALTH_SHRINE: Help.TutorialTip(TutorialTopic.Shrines,true); break; } } } } } else{ if(include_monsters && tc.actor() != null && player.CanSee(tc.actor())){ B.DisplayNow("You sense " + tc.actor().a_name + " " + tc.actor().WoundStatus() + ". "); } else{ if(tc.seen){ if(tc.inv != null){ char itemch = tc.inv.symbol; char screench = Screen.MapChar(tc.row,tc.col).c; if(itemch == screench){ //hacky, but it seems to work (when a monster drops an item you haven't seen yet) if(tc.inv.quantity > 1){ B.DisplayNow("You can no longer see these " + tc.inv.Name(true) + ". "); } else{ B.DisplayNow("You can no longer see this " + tc.inv.Name(true) + ". "); } } else{ B.DisplayNow("You can no longer see this " + tc.Name(true) + ". "); } } else{ B.DisplayNow("You can no longer see this " + tc.Name(true) + ". "); } } else{ B.DisplayNow(unseen_area_message); } } } } } else{ B.DisplayNow(always_displayed); } }