Пример #1
0
 public void startSpeaking(MOB mob) {
   Room mobHomeRoom = mob.getStartRoom();
   Area mobHomeArea = ((mobHomeRoom == null) ? null : mobHomeRoom.getArea());
   if (((lang != null) || (langStr.length() > 0))
       && (doPlayers || mob.isMonster())
       && ((!noMobs) || (!mob.isMonster()))
       && ((!homeOnly) || (homeRoom == null) || (mobHomeRoom == homeRoom))
       && ((!homeOnly) || (homeArea == null) || (mobHomeArea == homeArea))
       && (mob.fetchEffect(langStr) == null)
       && ((mobMask == null) || CMLib.masking().maskCheck(mobMask, mob, true))) {
     if (lang == null) lang = getLanguage();
     if (lang == null) {
       lang = (Language) CMClass.getAbility("Common");
       Log.errOut("Prop_LanguageSpeaker", "Unknown language " + langStr);
     }
     if (lang != null) {
       switch (affectedType) {
         case AREA:
           lang = (Language) lang.copyOf();
           break;
         case LOCALE:
           lang = (Language) lang.copyOf();
           break;
         case MOB:
           break;
         case EXIT:
           lang = (Language) lang.copyOf();
           break;
         default: // item
           break;
       }
       mob.addNonUninvokableEffect(lang);
       lang.setSavable(false);
       lang.invoke(mob, mob, false, 0);
     }
   }
 }