Package com.l2jfrozen.gameserver.templates

Source Code of com.l2jfrozen.gameserver.templates.L2Armor

/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package com.l2jfrozen.gameserver.templates;

import java.util.List;

import javolution.util.FastList;

import com.l2jfrozen.gameserver.datatables.SkillTable;
import com.l2jfrozen.gameserver.model.L2Character;
import com.l2jfrozen.gameserver.model.L2Skill;
import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
import com.l2jfrozen.gameserver.skills.Env;
import com.l2jfrozen.gameserver.skills.funcs.Func;
import com.l2jfrozen.gameserver.skills.funcs.FuncTemplate;

/**
* This class is dedicated to the management of armors.
*
* @version $Revision: 1.2.2.1.2.6 $ $Date: 2005/03/27 15:30:10 $
*/
public final class L2Armor extends L2Item
{
  private final int _avoidModifier;
  private final int _pDef;
  private final int _mDef;
  private final int _mpBonus;
  private final int _hpBonus;
  private L2Skill _itemSkill = null; // for passive skill

  /**
   * Constructor for Armor.<BR>
   * <BR>
   * <U><I>Variables filled :</I></U><BR>
   * <LI>_avoidModifier</LI> <LI>_pDef & _mDef</LI> <LI>_mpBonus & _hpBonus</LI>
   *
   * @param type : L2ArmorType designating the type of armor
   * @param set : StatsSet designating the set of couples (key,value) caracterizing the armor
   * @see L2Item constructor
   */
  public L2Armor(L2ArmorType type, StatsSet set)
  {
    super(type, set);
    _avoidModifier = set.getInteger("avoid_modify");
    _pDef = set.getInteger("p_def");
    _mDef = set.getInteger("m_def");
    _mpBonus = set.getInteger("mp_bonus", 0);
    _hpBonus = set.getInteger("hp_bonus", 0);

    int sId = set.getInteger("item_skill_id");
    int sLv = set.getInteger("item_skill_lvl");
    if(sId > 0 && sLv > 0)
    {
      _itemSkill = SkillTable.getInstance().getInfo(sId, sLv);
    }
  }

  /**
   * Returns the type of the armor.
   *
   * @return L2ArmorType
   */
  @Override
  public L2ArmorType getItemType()
  {
    return (L2ArmorType) super._type;
  }

  /**
   * Returns the ID of the item after applying the mask.
   *
   * @return int : ID of the item
   */
  @Override
  public final int getItemMask()
  {
    return getItemType().mask();
  }

  /**
   * Returns the magical defense of the armor
   *
   * @return int : value of the magic defense
   */
  public final int getMDef()
  {
    return _mDef;
  }

  /**
   * Returns the physical defense of the armor
   *
   * @return int : value of the physical defense
   */
  public final int getPDef()
  {
    return _pDef;
  }

  /**
   * Returns avoid modifier given by the armor
   *
   * @return int : avoid modifier
   */
  public final int getAvoidModifier()
  {
    return _avoidModifier;
  }

  /**
   * Returns magical bonus given by the armor
   *
   * @return int : value of the magical bonus
   */
  public final int getMpBonus()
  {
    return _mpBonus;
  }

  /**
   * Returns physical bonus given by the armor
   *
   * @return int : value of the physical bonus
   */
  public final int getHpBonus()
  {
    return _hpBonus;
  }

  /**
   * Returns passive skill linked to that armor
   *
   * @return
   */
  public L2Skill getSkill()
  {
    return _itemSkill;
  }

  /**
   * Returns array of Func objects containing the list of functions used by the armor
   *
   * @param instance : L2ItemInstance pointing out the armor
   * @param player : L2Character pointing out the player
   * @return Func[] : array of functions
   */
  @Override
  public Func[] getStatFuncs(L2ItemInstance instance, L2Character player)
  {
    List<Func> funcs = new FastList<Func>();
    if(_funcTemplates != null)
    {
      for(FuncTemplate t : _funcTemplates)
      {
        Env env = new Env();
        env.player = player;
        env.item = instance;
        Func f = t.getFunc(env, instance);
        if(f != null)
        {
          funcs.add(f);
        }
      }
    }
    return funcs.toArray(new Func[funcs.size()]);
  }
}
TOP

Related Classes of com.l2jfrozen.gameserver.templates.L2Armor

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.