FatalBlowRate effect should apply to effector.
This commit is contained in:
		@@ -16,16 +16,60 @@
 | 
			
		||||
 */
 | 
			
		||||
package handlers.effecthandlers;
 | 
			
		||||
 | 
			
		||||
import com.l2jmobius.gameserver.enums.StatModifierType;
 | 
			
		||||
import com.l2jmobius.gameserver.model.StatsSet;
 | 
			
		||||
import com.l2jmobius.gameserver.model.actor.L2Character;
 | 
			
		||||
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
 | 
			
		||||
import com.l2jmobius.gameserver.model.skills.Skill;
 | 
			
		||||
import com.l2jmobius.gameserver.model.stats.Stats;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * @author Sdw
 | 
			
		||||
 * @author Mobius
 | 
			
		||||
 */
 | 
			
		||||
public class FatalBlowRate extends AbstractStatEffect
 | 
			
		||||
public class FatalBlowRate extends AbstractEffect
 | 
			
		||||
{
 | 
			
		||||
	private final double _amount;
 | 
			
		||||
	private final StatModifierType _mode;
 | 
			
		||||
	
 | 
			
		||||
	public FatalBlowRate(StatsSet params)
 | 
			
		||||
	{
 | 
			
		||||
		super(params, Stats.BLOW_RATE);
 | 
			
		||||
		_amount = params.getDouble("amount", 0);
 | 
			
		||||
		_mode = params.getEnum("mode", StatModifierType.class, StatModifierType.DIFF);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
	public void onStart(L2Character effector, L2Character effected, Skill skill)
 | 
			
		||||
	{
 | 
			
		||||
		switch (_mode)
 | 
			
		||||
		{
 | 
			
		||||
			case DIFF:
 | 
			
		||||
			{
 | 
			
		||||
				effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount);
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case PER:
 | 
			
		||||
			{
 | 
			
		||||
				effector.getStat().mergeMul(Stats.BLOW_RATE, (_amount / 100) + 1);
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
	public void onExit(L2Character effector, L2Character effected, Skill skill)
 | 
			
		||||
	{
 | 
			
		||||
		switch (_mode)
 | 
			
		||||
		{
 | 
			
		||||
			case DIFF:
 | 
			
		||||
			{
 | 
			
		||||
				effector.getStat().mergeAdd(Stats.BLOW_RATE, _amount * -1);
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
			case PER:
 | 
			
		||||
			{
 | 
			
		||||
				effector.getStat().mergeMul(Stats.BLOW_RATE, ((_amount / 100) + 1) * -1);
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user