Examples of WeaponTemplate


Examples of lineage2.gameserver.templates.item.WeaponTemplate

    DuelEvent duelEvent = getEvent(DuelEvent.class);
    if ((duelEvent != null) && (target.getEvent(DuelEvent.class) != duelEvent))
    {
      duelEvent.abortDuel(getPlayer());
    }
    WeaponTemplate weaponItem = getActiveWeaponItem();
    if ((weaponItem != null) && ((weaponItem.getItemType() == WeaponType.BOW) || (weaponItem.getItemType() == WeaponType.CROSSBOW)))
    {
      double bowMpConsume = weaponItem.getMpConsume();
      if (bowMpConsume > 0)
      {
        double chance = calcStat(Stats.MP_USE_BOW_CHANCE, 0., target, null);
        if ((chance > 0) && Rnd.chance(chance))
        {
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

     * @param env Env
     */
    @Override
    public void calc(Env env)
    {
      WeaponTemplate weapon = env.character.getActiveWeaponItem();
      if (weapon != null)
      {
        env.value += weapon.getAttackRange();
      }
    }
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

      if (env.target.isRaid() && ((env.character.getLevel() - env.target.getLevel()) > Config.RAID_MAX_LEVEL_DIFF))
      {
        env.value = 1;
        return;
      }
      WeaponTemplate weapon = env.character.getActiveWeaponItem();
      if (weapon == null)
      {
        env.value *= 0.01 * env.target.calcStat(Stats.FIST_WPN_VULNERABILITY, env.character, env.skill);
      }
      else if (weapon.getItemType().getDefence() != null)
      {
        env.value *= 0.01 * env.target.calcStat(weapon.getItemType().getDefence(), env.character, env.skill);
      }
      env.value = Formulas.calcDamageResists(env.skill, env.character, env.target, env.value);
    }
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

        return;
      }
      Creature target = env.target;
      if (target != null)
      {
        WeaponTemplate weapon = target.getActiveWeaponItem();
        if (weapon != null)
        {
          switch (weapon.getItemType())
          {
            case BOW:
            case CROSSBOW:
              env.value += 30.;
              break;
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

    if (!player.isInZone(ZoneType.FISHING) || player.isInWater())
    {
      player.sendPacket(Msg.YOU_CANT_FISH_HERE);
      return false;
    }
    WeaponTemplate weaponItem = player.getActiveWeaponItem();
    if ((weaponItem == null) || (weaponItem.getItemType() != WeaponType.ROD))
    {
      player.sendPacket(Msg.FISHING_POLES_ARE_NOT_INSTALLED);
      return false;
    }
    ItemInstance lure = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

   * @param skill Skill
   * @return boolean
   */
  public static boolean calcBlow(Creature activeChar, Creature target, Skill skill)
  {
    WeaponTemplate weapon = activeChar.getActiveWeaponItem();
    double base_weapon_crit = weapon == null ? 4. : weapon.getCritical();
    double crit_height_bonus = (0.008 * Math.min(25, Math.max(-25, target.getZ() - activeChar.getZ()))) + 1.1;
    double buffs_mult = activeChar.calcStat(Stats.FATALBLOW_RATE, target, skill);
    double skill_mod = skill.isBehind() ? 5 : 4;
    double chance = base_weapon_crit * buffs_mult * crit_height_bonus * skill_mod;
    if (!target.isInCombat())
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

   * @param target Creature
   * @return boolean
   */
  public static boolean calcShldUse(Creature attacker, Creature target)
  {
    WeaponTemplate template = target.getSecondaryWeaponItem();
    if ((template == null) || (template.getItemType() != WeaponTemplate.WeaponType.NONE))
    {
      return false;
    }
    int angle = (int) target.calcStat(Stats.SHIELD_ANGLE, attacker, null);
    if (!PositionUtils.isFacing(target, attacker, angle))
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

      return;
    }
    getListeners().onAttack(target);
    int sAtk = Math.max(calculateAttackDelay(), 333);
    int ssGrade = 0;
    WeaponTemplate weaponItem = getActiveWeaponItem();
    if (weaponItem != null)
    {
      if (isPlayer() && (weaponItem.getAttackReuseDelay() > 0))
      {
        int reuse = (int) ((weaponItem.getAttackReuseDelay() * getReuseModifier(target) * 666 * calcStat(Stats.ATK_BASE, 0, target, null)) / 293. / getPAtkSpd());
        if (reuse > 0)
        {
          sendPacket(new SetupGauge(this, SetupGauge.RED_MINI, reuse));
          _attackReuseEndTime = (reuse + System.currentTimeMillis()) - 75;
          if (reuse > sAtk)
          {
            ThreadPoolManager.getInstance().schedule(new NotifyAITask(this, CtrlEvent.EVT_READY_TO_ACT, null, null), reuse);
          }
        }
      }
      ssGrade = weaponItem.getCrystalType().externalOrdinal;
    }
    _attackEndTime = (sAtk + System.currentTimeMillis()) - 10;
    _isAttackAborted = false;
    Attack attack = new Attack(this, target, getChargedSoulShot(), ssGrade);
    setHeading(PositionUtils.calculateHeadingFrom(this, target));
    if (weaponItem == null)
    {
      doAttackHitSimple(attack, target, 1., !isPlayer(), sAtk, true);
    }
    else
    {
      switch (weaponItem.getItemType())
      {
        case BOW:
        case CROSSBOW:
          doAttackHitByBow(attack, target, sAtk);
          break;
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

   * @param target Creature
   * @param sAtk int
   */
  private void doAttackHitByBow(Attack attack, Creature target, int sAtk)
  {
    WeaponTemplate activeWeapon = getActiveWeaponItem();
    if (activeWeapon == null)
    {
      return;
    }
    int damage1 = 0, damage2 = 0;
    boolean shld1 = false;
    boolean crit1 = false;
    boolean miss1 = Formulas.calcHitMiss(this, target);
    reduceArrowCount();
    if (!miss1)
    {
      AttackInfo info = Formulas.calcPhysDam(this, target, null, false, false, attack._soulshot, false);
      damage1 = (int) info.damage;
      damage2 = (int) info.reflectableDamage;
      shld1 = info.shld;
      crit1 = info.crit;
      int range = activeWeapon.getAttackRange();
      damage1 *= ((Math.min(range, getDistance(target)) / range) * .4) + 0.8;
    }
    ThreadPoolManager.getInstance().schedule(new HitTask(this, target, damage1, damage2, crit1, miss1, attack._soulshot, shld1, true, true), sAtk);
    attack.addHit(target, damage2, miss1, crit1, shld1);
  }
View Full Code Here

Examples of lineage2.gameserver.templates.item.WeaponTemplate

   * Method getRandomDamage.
   * @return int
   */
  public int getRandomDamage()
  {
    WeaponTemplate weaponItem = getActiveWeaponItem();
    if (weaponItem == null)
    {
      return 5 + (int) Math.sqrt(getLevel());
    }
    return weaponItem.getRandomDamage();
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.