Пример #1
0
 public void executeMsg(final Environmental myHost, final CMMsg msg) {
   if (affected != null)
     switch (affectedType) {
       case AREA:
         {
           if (msg.targetMinor() == CMMsg.TYP_ENTER) startSpeaking(msg.source());
           else if (msg.sourceMinor() == CMMsg.TYP_LIFE) startSpeaking(msg.source());
           break;
         }
       case LOCALE:
         {
           if ((msg.target() == affected) && (msg.targetMinor() == CMMsg.TYP_ENTER))
             startSpeaking(msg.source());
           else if (msg.sourceMinor() == CMMsg.TYP_LIFE) startSpeaking(msg.source());
           break;
         }
       case MOB:
         {
           if (lang == null) startSpeaking((MOB) affected);
           break;
         }
       case EXIT:
         {
           if ((msg.targetMinor() == CMMsg.TYP_ENTER) && (msg.tool() == affected))
             startSpeaking(msg.source());
           break;
         }
       default: // item
         {
           if ((msg.target() == affected)
               && (msg.targetMinor() == CMMsg.TYP_GET)
               && ((lang == null) || (lang.affecting() != msg.source()))) {
             if ((lang != null) && (lang.affecting() != null)) lang.affecting().delEffect(lang);
             startSpeaking(msg.source());
           } else if ((msg.target() == affected)
               && (msg.targetMinor() == CMMsg.TYP_DROP)
               && (lang != null)
               && (lang.affecting() != null)) {
             lang.affecting().delEffect(lang);
             lang.setAffectedOne(null);
           }
           break;
         }
     }
   super.executeMsg(myHost, msg);
 }