Support for multiple AttackAttribute and DefenceAttribute element values.
This commit is contained in:
@@ -16,6 +16,9 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.enums.AttributeType;
|
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;
|
||||||
@@ -28,48 +31,59 @@ import org.l2jmobius.gameserver.model.stats.Stat;
|
|||||||
*/
|
*/
|
||||||
public class AttackAttribute extends AbstractEffect
|
public class AttackAttribute extends AbstractEffect
|
||||||
{
|
{
|
||||||
private final AttributeType _attribute;
|
private final Set<AttributeType> _attributes = new HashSet<>();
|
||||||
private final double _amount;
|
private final double _amount;
|
||||||
|
|
||||||
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(","))
|
||||||
|
{
|
||||||
|
for (String attribute : attributes.split(","))
|
||||||
|
{
|
||||||
|
_attributes.add(AttributeType.findByName(attribute.trim()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_attributes.add(AttributeType.findByName(attributes));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pump(Creature effected, Skill skill)
|
public void pump(Creature effected, Skill skill)
|
||||||
{
|
{
|
||||||
Stat stat = Stat.FIRE_POWER;
|
for (AttributeType attribute : _attributes)
|
||||||
|
|
||||||
switch (_attribute)
|
|
||||||
{
|
{
|
||||||
case WATER:
|
switch (attribute)
|
||||||
{
|
{
|
||||||
stat = Stat.WATER_POWER;
|
case WATER:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.WATER_POWER, _amount);
|
||||||
case WIND:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.WIND_POWER;
|
case WIND:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.WIND_POWER, _amount);
|
||||||
case EARTH:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.EARTH_POWER;
|
case EARTH:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.EARTH_POWER, _amount);
|
||||||
case HOLY:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.HOLY_POWER;
|
case HOLY:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.HOLY_POWER, _amount);
|
||||||
case DARK:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.DARK_POWER;
|
case DARK:
|
||||||
break;
|
{
|
||||||
|
effected.getStat().mergeAdd(Stat.DARK_POWER, _amount);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
effected.getStat().mergeAdd(stat, _amount);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,9 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.enums.AttributeType;
|
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;
|
||||||
@@ -28,48 +31,59 @@ import org.l2jmobius.gameserver.model.stats.Stat;
|
|||||||
*/
|
*/
|
||||||
public class DefenceAttribute extends AbstractEffect
|
public class DefenceAttribute extends AbstractEffect
|
||||||
{
|
{
|
||||||
private final AttributeType _attribute;
|
private final Set<AttributeType> _attributes = new HashSet<>();
|
||||||
private final double _amount;
|
private final double _amount;
|
||||||
|
|
||||||
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(","))
|
||||||
|
{
|
||||||
|
for (String attribute : attributes.split(","))
|
||||||
|
{
|
||||||
|
_attributes.add(AttributeType.findByName(attribute.trim()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_attributes.add(AttributeType.findByName(attributes));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pump(Creature effected, Skill skill)
|
public void pump(Creature effected, Skill skill)
|
||||||
{
|
{
|
||||||
Stat stat = Stat.FIRE_RES;
|
for (AttributeType attribute : _attributes)
|
||||||
|
|
||||||
switch (_attribute)
|
|
||||||
{
|
{
|
||||||
case WATER:
|
switch (attribute)
|
||||||
{
|
{
|
||||||
stat = Stat.WATER_RES;
|
case WATER:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.WATER_RES, _amount);
|
||||||
case WIND:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.WIND_RES;
|
case WIND:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.WIND_RES, _amount);
|
||||||
case EARTH:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.EARTH_RES;
|
case EARTH:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.EARTH_RES, _amount);
|
||||||
case HOLY:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.HOLY_RES;
|
case HOLY:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.HOLY_RES, _amount);
|
||||||
case DARK:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.DARK_RES;
|
case DARK:
|
||||||
break;
|
{
|
||||||
|
effected.getStat().mergeAdd(Stat.DARK_RES, _amount);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
effected.getStat().mergeAdd(stat, _amount);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,9 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.enums.AttributeType;
|
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;
|
||||||
@@ -28,48 +31,59 @@ import org.l2jmobius.gameserver.model.stats.Stat;
|
|||||||
*/
|
*/
|
||||||
public class AttackAttribute extends AbstractEffect
|
public class AttackAttribute extends AbstractEffect
|
||||||
{
|
{
|
||||||
private final AttributeType _attribute;
|
private final Set<AttributeType> _attributes = new HashSet<>();
|
||||||
private final double _amount;
|
private final double _amount;
|
||||||
|
|
||||||
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(","))
|
||||||
|
{
|
||||||
|
for (String attribute : attributes.split(","))
|
||||||
|
{
|
||||||
|
_attributes.add(AttributeType.findByName(attribute.trim()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_attributes.add(AttributeType.findByName(attributes));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pump(Creature effected, Skill skill)
|
public void pump(Creature effected, Skill skill)
|
||||||
{
|
{
|
||||||
Stat stat = Stat.FIRE_POWER;
|
for (AttributeType attribute : _attributes)
|
||||||
|
|
||||||
switch (_attribute)
|
|
||||||
{
|
{
|
||||||
case WATER:
|
switch (attribute)
|
||||||
{
|
{
|
||||||
stat = Stat.WATER_POWER;
|
case WATER:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.WATER_POWER, _amount);
|
||||||
case WIND:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.WIND_POWER;
|
case WIND:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.WIND_POWER, _amount);
|
||||||
case EARTH:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.EARTH_POWER;
|
case EARTH:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.EARTH_POWER, _amount);
|
||||||
case HOLY:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.HOLY_POWER;
|
case HOLY:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.HOLY_POWER, _amount);
|
||||||
case DARK:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.DARK_POWER;
|
case DARK:
|
||||||
break;
|
{
|
||||||
|
effected.getStat().mergeAdd(Stat.DARK_POWER, _amount);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
effected.getStat().mergeAdd(stat, _amount);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,9 @@
|
|||||||
*/
|
*/
|
||||||
package handlers.effecthandlers;
|
package handlers.effecthandlers;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.l2jmobius.gameserver.enums.AttributeType;
|
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;
|
||||||
@@ -28,48 +31,59 @@ import org.l2jmobius.gameserver.model.stats.Stat;
|
|||||||
*/
|
*/
|
||||||
public class DefenceAttribute extends AbstractEffect
|
public class DefenceAttribute extends AbstractEffect
|
||||||
{
|
{
|
||||||
private final AttributeType _attribute;
|
private final Set<AttributeType> _attributes = new HashSet<>();
|
||||||
private final double _amount;
|
private final double _amount;
|
||||||
|
|
||||||
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(","))
|
||||||
|
{
|
||||||
|
for (String attribute : attributes.split(","))
|
||||||
|
{
|
||||||
|
_attributes.add(AttributeType.findByName(attribute.trim()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_attributes.add(AttributeType.findByName(attributes));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void pump(Creature effected, Skill skill)
|
public void pump(Creature effected, Skill skill)
|
||||||
{
|
{
|
||||||
Stat stat = Stat.FIRE_RES;
|
for (AttributeType attribute : _attributes)
|
||||||
|
|
||||||
switch (_attribute)
|
|
||||||
{
|
{
|
||||||
case WATER:
|
switch (attribute)
|
||||||
{
|
{
|
||||||
stat = Stat.WATER_RES;
|
case WATER:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.WATER_RES, _amount);
|
||||||
case WIND:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.WIND_RES;
|
case WIND:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.WIND_RES, _amount);
|
||||||
case EARTH:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.EARTH_RES;
|
case EARTH:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.EARTH_RES, _amount);
|
||||||
case HOLY:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.HOLY_RES;
|
case HOLY:
|
||||||
break;
|
{
|
||||||
}
|
effected.getStat().mergeAdd(Stat.HOLY_RES, _amount);
|
||||||
case DARK:
|
break;
|
||||||
{
|
}
|
||||||
stat = Stat.DARK_RES;
|
case DARK:
|
||||||
break;
|
{
|
||||||
|
effected.getStat().mergeAdd(Stat.DARK_RES, _amount);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
effected.getStat().mergeAdd(stat, _amount);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user