Improved AttackAttribute and DefenceAttribute logic.

This commit is contained in:
MobiusDevelopment
2023-01-09 22:44:33 +00:00
parent 9cba6a7a3a
commit 4b27ff44de
76 changed files with 1580 additions and 1744 deletions

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,10 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import java.util.HashSet; import java.util.EnumSet;
import java.util.Set; import java.util.Set;
import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -27,12 +26,13 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final Set<AttributeType> _attributes = new HashSet<>();
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
@@ -40,55 +40,32 @@ public class AttackAttribute extends AbstractEffect
final String attributes = params.getString("attribute", "FIRE"); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(",")) if (attributes.contains(","))
{ {
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(",")) for (String attribute : attributes.split(","))
{ {
_attributes.add(AttributeType.findByName(attribute.trim())); _multipleStats.add(Stat.valueOf(attribute + "_POWER"));
} }
} }
else else
{ {
_attributes.add(AttributeType.findByName(attributes)); _singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
} }
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
for (AttributeType attribute : _attributes) if (_singleStat != null)
{ {
switch (attribute) effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
case FIRE: }
{
effected.getStat().mergeAdd(Stat.FIRE_POWER, _amount); for (Stat stat : _multipleStats)
break; {
} effected.getStat().mergeAdd(stat, _amount);
case WATER:
{
effected.getStat().mergeAdd(Stat.WATER_POWER, _amount);
break;
}
case WIND:
{
effected.getStat().mergeAdd(Stat.WIND_POWER, _amount);
break;
}
case EARTH:
{
effected.getStat().mergeAdd(Stat.EARTH_POWER, _amount);
break;
}
case HOLY:
{
effected.getStat().mergeAdd(Stat.HOLY_POWER, _amount);
break;
}
case DARK:
{
effected.getStat().mergeAdd(Stat.DARK_POWER, _amount);
break;
}
}
} }
} }
} }

View File

@@ -16,10 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import java.util.HashSet; import java.util.EnumSet;
import java.util.Set; import java.util.Set;
import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -27,12 +26,13 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final Set<AttributeType> _attributes = new HashSet<>();
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
@@ -40,55 +40,32 @@ public class DefenceAttribute extends AbstractEffect
final String attributes = params.getString("attribute", "FIRE"); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(",")) if (attributes.contains(","))
{ {
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(",")) for (String attribute : attributes.split(","))
{ {
_attributes.add(AttributeType.findByName(attribute.trim())); _multipleStats.add(Stat.valueOf(attribute + "_RES"));
} }
} }
else else
{ {
_attributes.add(AttributeType.findByName(attributes)); _singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
} }
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
for (AttributeType attribute : _attributes) if (_singleStat != null)
{ {
switch (attribute) effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
case FIRE: }
{
effected.getStat().mergeAdd(Stat.FIRE_RES, _amount); for (Stat stat : _multipleStats)
break; {
} effected.getStat().mergeAdd(stat, _amount);
case WATER:
{
effected.getStat().mergeAdd(Stat.WATER_RES, _amount);
break;
}
case WIND:
{
effected.getStat().mergeAdd(Stat.WIND_RES, _amount);
break;
}
case EARTH:
{
effected.getStat().mergeAdd(Stat.EARTH_RES, _amount);
break;
}
case HOLY:
{
effected.getStat().mergeAdd(Stat.HOLY_RES, _amount);
break;
}
case DARK:
{
effected.getStat().mergeAdd(Stat.DARK_RES, _amount);
break;
}
}
} }
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_POWER"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_POWER; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_POWER; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_POWER;
break;
}
case EARTH:
{
stat = Stat.EARTH_POWER;
break;
}
case HOLY:
{
stat = Stat.HOLY_POWER;
break;
}
case DARK:
{
stat = Stat.DARK_POWER;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -54,6 +54,11 @@ public class AttackAttributeAdd extends AbstractEffect
switch (maxAttribute) switch (maxAttribute)
{ {
case FIRE:
{
stat = Stat.FIRE_POWER;
break;
}
case WATER: case WATER:
{ {
stat = Stat.WATER_POWER; stat = Stat.WATER_POWER;

View File

@@ -16,7 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.gameserver.enums.AttributeType; import java.util.EnumSet;
import java.util.Set;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -24,52 +26,46 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final AttributeType _attribute;
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
_amount = params.getDouble("amount", 0); _amount = params.getDouble("amount", 0);
_attribute = params.getEnum("attribute", AttributeType.class, AttributeType.FIRE); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(","))
{
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(","))
{
_multipleStats.add(Stat.valueOf(attribute + "_RES"));
}
}
else
{
_singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
}
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
Stat stat = Stat.FIRE_RES; if (_singleStat != null)
switch (_attribute)
{ {
case WATER: effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
stat = Stat.WATER_RES; }
break;
} for (Stat stat : _multipleStats)
case WIND: {
{ effected.getStat().mergeAdd(stat, _amount);
stat = Stat.WIND_RES;
break;
}
case EARTH:
{
stat = Stat.EARTH_RES;
break;
}
case HOLY:
{
stat = Stat.HOLY_RES;
break;
}
case DARK:
{
stat = Stat.DARK_RES;
break;
}
} }
effected.getStat().mergeAdd(stat, _amount);
} }
} }

View File

@@ -16,10 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import java.util.HashSet; import java.util.EnumSet;
import java.util.Set; import java.util.Set;
import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -27,12 +26,13 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class AttackAttribute extends AbstractEffect public class AttackAttribute extends AbstractEffect
{ {
private final Set<AttributeType> _attributes = new HashSet<>();
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public AttackAttribute(StatSet params) public AttackAttribute(StatSet params)
{ {
@@ -40,55 +40,32 @@ public class AttackAttribute extends AbstractEffect
final String attributes = params.getString("attribute", "FIRE"); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(",")) if (attributes.contains(","))
{ {
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(",")) for (String attribute : attributes.split(","))
{ {
_attributes.add(AttributeType.findByName(attribute.trim())); _multipleStats.add(Stat.valueOf(attribute + "_POWER"));
} }
} }
else else
{ {
_attributes.add(AttributeType.findByName(attributes)); _singleStat = Stat.valueOf(attributes + "_POWER");
_multipleStats = null;
} }
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
for (AttributeType attribute : _attributes) if (_singleStat != null)
{ {
switch (attribute) effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
case FIRE: }
{
effected.getStat().mergeAdd(Stat.FIRE_POWER, _amount); for (Stat stat : _multipleStats)
break; {
} effected.getStat().mergeAdd(stat, _amount);
case WATER:
{
effected.getStat().mergeAdd(Stat.WATER_POWER, _amount);
break;
}
case WIND:
{
effected.getStat().mergeAdd(Stat.WIND_POWER, _amount);
break;
}
case EARTH:
{
effected.getStat().mergeAdd(Stat.EARTH_POWER, _amount);
break;
}
case HOLY:
{
effected.getStat().mergeAdd(Stat.HOLY_POWER, _amount);
break;
}
case DARK:
{
effected.getStat().mergeAdd(Stat.DARK_POWER, _amount);
break;
}
}
} }
} }
} }

View File

@@ -16,10 +16,9 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import java.util.HashSet; import java.util.EnumSet;
import java.util.Set; import java.util.Set;
import org.l2jmobius.gameserver.enums.AttributeType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Creature;
import org.l2jmobius.gameserver.model.effects.AbstractEffect; import org.l2jmobius.gameserver.model.effects.AbstractEffect;
@@ -27,12 +26,13 @@ import org.l2jmobius.gameserver.model.skill.Skill;
import org.l2jmobius.gameserver.model.stats.Stat; import org.l2jmobius.gameserver.model.stats.Stat;
/** /**
* @author Sdw * @author Mobius
*/ */
public class DefenceAttribute extends AbstractEffect public class DefenceAttribute extends AbstractEffect
{ {
private final Set<AttributeType> _attributes = new HashSet<>();
private final double _amount; private final double _amount;
private final Stat _singleStat;
private final Set<Stat> _multipleStats;
public DefenceAttribute(StatSet params) public DefenceAttribute(StatSet params)
{ {
@@ -40,55 +40,32 @@ public class DefenceAttribute extends AbstractEffect
final String attributes = params.getString("attribute", "FIRE"); final String attributes = params.getString("attribute", "FIRE");
if (attributes.contains(",")) if (attributes.contains(","))
{ {
_singleStat = null;
_multipleStats = EnumSet.noneOf(Stat.class);
for (String attribute : attributes.split(",")) for (String attribute : attributes.split(","))
{ {
_attributes.add(AttributeType.findByName(attribute.trim())); _multipleStats.add(Stat.valueOf(attribute + "_RES"));
} }
} }
else else
{ {
_attributes.add(AttributeType.findByName(attributes)); _singleStat = Stat.valueOf(attributes + "_RES");
_multipleStats = null;
} }
} }
@Override @Override
public void pump(Creature effected, Skill skill) public void pump(Creature effected, Skill skill)
{ {
for (AttributeType attribute : _attributes) if (_singleStat != null)
{ {
switch (attribute) effected.getStat().mergeAdd(_singleStat, _amount);
{ return;
case FIRE: }
{
effected.getStat().mergeAdd(Stat.FIRE_RES, _amount); for (Stat stat : _multipleStats)
break; {
} effected.getStat().mergeAdd(stat, _amount);
case WATER:
{
effected.getStat().mergeAdd(Stat.WATER_RES, _amount);
break;
}
case WIND:
{
effected.getStat().mergeAdd(Stat.WIND_RES, _amount);
break;
}
case EARTH:
{
effected.getStat().mergeAdd(Stat.EARTH_RES, _amount);
break;
}
case HOLY:
{
effected.getStat().mergeAdd(Stat.HOLY_RES, _amount);
break;
}
case DARK:
{
effected.getStat().mergeAdd(Stat.DARK_RES, _amount);
break;
}
}
} }
} }
} }