Package com.l2jfrozen.gameserver.skills.l2skills

Source Code of com.l2jfrozen.gameserver.skills.l2skills.L2SkillCharge

/* 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.skills.l2skills;

import com.l2jfrozen.gameserver.model.L2Character;
import com.l2jfrozen.gameserver.model.L2Object;
import com.l2jfrozen.gameserver.model.L2Skill;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.network.SystemMessageId;
import com.l2jfrozen.gameserver.network.serverpackets.EtcStatusUpdate;
import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage;
import com.l2jfrozen.gameserver.skills.effects.EffectCharge;
import com.l2jfrozen.gameserver.templates.StatsSet;

public class L2SkillCharge extends L2Skill
{

  public L2SkillCharge(StatsSet set)
  {
    super(set);
  }

  @Override
  public boolean checkCondition(L2Character activeChar, L2Object target, boolean itemOrWeapon)
    {
     if (activeChar instanceof L2PcInstance)
     {
       EffectCharge e = (EffectCharge)activeChar.getFirstEffect(this);
       if ((e != null) &&
        (e.numCharges >= getNumCharges()))
        {
          activeChar.sendPacket(new SystemMessage(SystemMessageId.FORCE_MAXLEVEL_REACHED));
          SystemMessage sm = new SystemMessage(SystemMessageId.S1_CANNOT_BE_USED);
          sm.addSkillName(getId());
          activeChar.sendPacket(sm);
          return false;
        }
      }
      return super.checkCondition(activeChar, target, itemOrWeapon);
    }
 
  @Override
  public void useSkill(L2Character caster, L2Object[] targets)
  {
    if(caster.isAlikeDead())
      return;

    // get the effect
    EffectCharge effect = null;
    if(caster instanceof L2PcInstance)
    {
      effect = ((L2PcInstance) caster).getChargeEffect();
    }
    else
    {
      effect = (EffectCharge) caster.getFirstEffect(this);
    }

    if(effect != null)
    {
      if(effect.numCharges < getNumCharges())
      {
        effect.numCharges++;
        if(caster instanceof L2PcInstance)
        {
          caster.sendPacket(new EtcStatusUpdate((L2PcInstance) caster));
          SystemMessage sm = new SystemMessage(SystemMessageId.FORCE_INCREASED_TO_S1);
          sm.addNumber(effect.numCharges);
          caster.sendPacket(sm);
        }
      }
      else
      {
        SystemMessage sm = new SystemMessage(SystemMessageId.FORCE_MAXIMUM);
        caster.sendPacket(sm);
      }
      return;
    }
    getEffects(caster, caster,false,false,false);

    //effect self :]
    //L2Effect seffect = caster.getEffect(getId());
    //TODO ?? this is always null due to a return in the if block above!
    //if (effect != null && seffect.isSelfEffect())
    //{
    //Replace old effect with new one.
    //    seffect.exit();
    //}
    // cast self effect if any
    getEffectsSelf(caster);
  }

}
TOP

Related Classes of com.l2jfrozen.gameserver.skills.l2skills.L2SkillCharge

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.