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