Пример #1
0
  public boolean invoke(MOB mob, Vector commands, Physical givenTarget, boolean auto, int asLevel) {
    MOB target = getTargetAnywhere(mob, commands, givenTarget, false, true, false);
    if (target == null) return false;

    Ability A = target.fetchEffect(ID());
    if (A != null) {
      A.unInvoke();
      mob.tell(target.Name() + " is released from his freezedness.");
      return true;
    }

    if (!super.invoke(mob, commands, givenTarget, auto, asLevel)) return false;

    boolean success = proficiencyCheck(mob, 0, auto);

    if (success) {
      CMMsg msg =
          CMClass.getMsg(
              mob,
              target,
              this,
              CMMsg.MASK_MOVE | CMMsg.TYP_JUSTICE | (auto ? CMMsg.MASK_ALWAYS : 0),
              auto
                  ? "A frozen chill falls upon <T-NAME>!"
                  : "^F<S-NAME> freeze(s) <T-NAMESELF>.^?");
      CMLib.color().fixSourceFightColor(msg);
      if (mob.location().okMessage(mob, msg)) {
        mob.location().send(mob, msg);
        mob.location().show(target, null, CMMsg.MSG_OK_VISUAL, "<S-NAME> <S-IS-ARE> frozen!");
        beneficialAffect(mob, target, asLevel, Ability.TICKS_ALMOST_FOREVER);
        Log.sysOut("Freeze", mob.name() + " freezed " + target.name() + ".");
      }
    } else
      return beneficialVisualFizzle(
          mob, target, "<S-NAME> attempt(s) to freeze <T-NAMESELF>, but fail(s).");
    return success;
  }