Example #1
0
 public bool ConfirmsSafetyPrompts(Tile t)
 {
     if(CanSee(t) && !HasAttr(AttrType.CONFUSED)){
         if(t.IsKnownTrap() && !HasAttr(AttrType.FLYING,AttrType.BRUTISH_STRENGTH) && !t.name.Contains("(safe)")){
             if(!B.YesOrNoPrompt("Really step on " + t.TheName(true) + "?")){
                 return false;
             }
         }
         if(t.IsBurning() && !IsBurning() && !HasAttr(AttrType.SLIMED,AttrType.NONLIVING)){ //nonliving indicates stoneform
             if(!B.YesOrNoPrompt("Really walk into the fire?")){
                 return false;
             }
         }
         if(HasAttr(AttrType.OIL_COVERED) && !HasAttr(AttrType.IMMUNE_BURNING,AttrType.IMMUNE_FIRE)){
             bool fire = false;
             foreach(Tile t2 in t.TilesWithinDistance(1)){
                 if((t2.actor() != null && t2.actor().IsBurning()) || t2.IsBurning()){
                     fire = true;
                     break;
                 }
             }
             if(fire && !B.YesOrNoPrompt("Really step next to the fire?")){
                 return false;
             }
         }
         if(t.Is(FeatureType.WEB) && !HasAttr(AttrType.SLIMED,AttrType.OIL_COVERED,AttrType.BRUTISH_STRENGTH) && !B.YesOrNoPrompt("Really walk into the web?")){
             return false;
         }
         if(!HasAttr(AttrType.NONLIVING)){
             if(t.Is(FeatureType.CONFUSION_GAS) && !B.YesOrNoPrompt("Really walk into the confusion gas?")){
                 return false;
             }
             if(t.Is(FeatureType.POISON_GAS) && !HasAttr(AttrType.POISONED) && !B.YesOrNoPrompt("Really walk into the poison gas?")){
                 return false;
             }
             if(t.Is(FeatureType.SPORES) && (!HasAttr(AttrType.POISONED) || !HasAttr(AttrType.STUNNED)) && !B.YesOrNoPrompt("Really walk into the spores?")){
                 return false;
             }
             if(t.Is(FeatureType.THICK_DUST) && !B.YesOrNoPrompt("Really walk into the cloud of dust?")){
                 return false;
             }
         }
     }
     return true;
 }