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; package handlers.effecthandlers;
import com.l2jmobius.gameserver.enums.StatModifierType;
import com.l2jmobius.gameserver.model.StatsSet; 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; 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) 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; package handlers.effecthandlers;
import com.l2jmobius.gameserver.enums.StatModifierType;
import com.l2jmobius.gameserver.model.StatsSet; 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; 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) 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; package handlers.effecthandlers;
import com.l2jmobius.gameserver.enums.StatModifierType;
import com.l2jmobius.gameserver.model.StatsSet; 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; 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) 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; package handlers.effecthandlers;
import com.l2jmobius.gameserver.enums.StatModifierType;
import com.l2jmobius.gameserver.model.StatsSet; 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; 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) 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; package handlers.effecthandlers;
import com.l2jmobius.gameserver.enums.StatModifierType;
import com.l2jmobius.gameserver.model.StatsSet; 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; 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) 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; package handlers.effecthandlers;
import com.l2jmobius.gameserver.enums.StatModifierType;
import com.l2jmobius.gameserver.model.StatsSet; 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; 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) 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; package handlers.effecthandlers;
import com.l2jmobius.gameserver.enums.StatModifierType;
import com.l2jmobius.gameserver.model.StatsSet; 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; 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) 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;
}
}
} }
} }