FatalBlowRate effect should apply to effector.

This commit is contained in:
MobiusDev 2018-09-07 03:38:04 +00:00
parent 466f31f889
commit a4a77df305
7 changed files with 329 additions and 21 deletions

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}
}
}

View File

@ -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;
}
}
}
}