All pastes #23498 Raw Edit

Untitled

public text v1 · immutable
#23498 ·published 2005-09-21 02:57 UTC
rendered paste body
public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets)
	{
		if (activeChar.isAlikeDead())
			return;
		
		int damage = 0;
		
		if (Config.DEBUG)
			if (Config.DEBUG) _log.fine("Begin Skill processing in Pdam.java " + skill.getSkillType());
		
        for(int index = 0;index < targets.length;index++)
        {
			L2Character target = (L2Character)targets[index];
			if (target.isAlikeDead())
				continue;
			
			boolean dual  = activeChar.isUsingDualWeapon();
			boolean shld = Formulas.getInstance().calcShldUse(activeChar, target);
			boolean crit = Formulas.getInstance().calcCrit(activeChar.getCriticalHit(target, skill));
			
			if(!crit && (skill.getCondition() & L2Skill.COND_CRIT) != 0)
				damage = 0;
			else
				damage = (int)Formulas.getInstance().calcPhysDam(
					activeChar, target, skill, shld, crit, dual, false);
			
			if (damage > 0)
			{   
                //Start Check For Fatal Counter - MickyLee 
                if (skill.getId() == 314)
                {
                    //Calculate the amount of lost HP and use that to calculate damage given to target
                    double counterDMG = activeChar.getMaxHp() - activeChar.getCurrentHp();
                    if (skill.getLevel() == 1)
                    {
                        damage = (int)(counterDMG * .40);
                    }
                    else if (skill.getLevel() == 2)
                    {
                        damage = (int)(counterDMG * .405);
                    }
                    else if (skill.getLevel() == 3)
                    {
                        damage = (int)(counterDMG * .41);
                    }
                    else if (skill.getLevel() == 4)
                    {
                        damage = (int)(counterDMG * .415);
                    }
                    else if (skill.getLevel() == 5)
                    {
                        damage = (int)(counterDMG * .42);
                    }
                    else if (skill.getLevel() == 6)
                    {
                        damage = (int)(counterDMG * .425);
                    }
                    else if (skill.getLevel() == 7)
                    {
                        damage = (int)(counterDMG * .43);
                    }
                    else if (skill.getLevel() == 8)
                    {
                        damage = (int)(counterDMG * .435);
                    }
                    else if (skill.getLevel() == 9)
                    {
                        damage = (int)(counterDMG * .44);
                    }
                    else if (skill.getLevel() == 10)
                    {
                        damage = (int)(counterDMG * .445);
                    }
                    else if (skill.getLevel() == 11)
                    {
                        damage = (int)(counterDMG * .45);
                    }
                    else if (skill.getLevel() == 12)
                    {
                        damage = (int)(counterDMG * .455);
                    }
                    else if (skill.getLevel() == 13)
                    {
                        damage = (int)(counterDMG * .46);
                    }
                    else if (skill.getLevel() == 14)
                    {
                        damage = (int)(counterDMG * .465);
                    }
                    else if (skill.getLevel() == 15)
                    {
                        damage = (int)(counterDMG * .47);
                    }
                    else if (skill.getLevel() == 16)
                    {
                        damage = (int)(counterDMG * .475);
                    }
                }
                
				target.reduceCurrentHp(damage, activeChar);

				if (activeChar instanceof L2PcInstance) {
					SystemMessage sm = new SystemMessage(SystemMessage.YOU_DID_S1_DMG);
					sm.addNumber(damage); 
					activeChar.sendPacket(sm);
				}

				// activate attacked effects, if any
				target.stopEffect(skill.getId());
	            if (target.getEffect(skill.getId()) != null)
	                target.removeEffect(target.getEffect(skill.getId()));
                skill.getEffects(activeChar, target);
			}
			else
			{
				SystemMessage sm = new SystemMessage(614);
				sm.addString(skill.getName() + " failed."); 
				activeChar.sendPacket(sm);
			}
		}	
	}