Ejemplo n.º 1
0
  public void onSkillUseEvent(OnCreatureSkillUse event) {
    if ((_chance == 0)
        || ((_skill.getSkillId() == 0)
            || (_skill.getSkillLvl() == 0)
            || ((_castSkillId == 0) && (_skill.getSkillId() != AQUAMARINE)))) {
      return;
    }

    if ((_castSkillId != event.getSkill().getId()) && (_skill.getSkillId() != AQUAMARINE)) {
      return;
    }

    final ITargetTypeHandler targetHandler = TargetHandler.getInstance().getHandler(_targetType);
    if (targetHandler == null) {
      _log.warning("Handler for target type: " + _targetType + " does not exist.");
      return;
    }

    if (Rnd.get(100) > _chance) {
      return;
    }

    final Skill triggerSkill = _skill.getSkill();
    final L2Object[] targets =
        targetHandler.getTargetList(triggerSkill, event.getCaster(), false, event.getTarget());

    for (L2Object triggerTarget : targets) {
      if ((triggerTarget == null) || !triggerTarget.isCharacter()) {
        continue;
      }

      final L2Character targetChar = (L2Character) triggerTarget;
      if (!targetChar.isInvul()) {
        event.getCaster().makeTriggerCast(triggerSkill, targetChar);
      }
    }
  }