Various item and skill improvements.

Contributed by gamelike85.
This commit is contained in:
MobiusDev
2017-12-03 09:19:10 +00:00
parent 3c6fd6e6d9
commit c1d931342c
21 changed files with 1767 additions and 124 deletions

View File

@@ -16,6 +16,7 @@
*/
package handlers.skillconditionhandlers;
import com.l2jmobius.gameserver.enums.SkillConditionAffectType;
import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
@@ -31,21 +32,32 @@ public class OpCheckAbnormalSkillCondition implements ISkillCondition
private final AbnormalType _type;
private final int _level;
private final boolean _hasAbnormal;
private final SkillConditionAffectType _affectType;
public OpCheckAbnormalSkillCondition(StatsSet params)
{
_type = params.getEnum("type", AbnormalType.class);
_level = params.getInt("level");
_hasAbnormal = params.getBoolean("hasAbnormal");
_affectType = params.getEnum("affectType", SkillConditionAffectType.class, SkillConditionAffectType.TARGET);
}
@Override
public boolean canUse(L2Character caster, Skill skill, L2Object target)
{
if (target.isCharacter())
switch (_affectType)
{
final boolean hasAbnormal = ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level));
return _hasAbnormal ? hasAbnormal : !hasAbnormal;
case CASTER:
{
return caster.getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
case TARGET:
{
if (target.isCharacter())
{
return ((L2Character) target).getEffectList().hasAbnormalType(_type, info -> (info.getSkill().getAbnormalLvl() >= _level)) == _hasAbnormal;
}
}
}
return false;
}

View File

@@ -580,7 +580,7 @@
<skills>
<skill id="18715" level="1" /> <!-- Greater Ruby -->
<skill id="18716" level="1" /> <!-- Greater Ruby -->
<skill id="18717" level="1" /> <!-- Greater Ruby -->
<skill id="18717" level="6" /> <!-- Ruby -->
</skills>
</item>
<item id="47689" name="Greater Sapphire" type="Armor">
@@ -594,7 +594,7 @@
<skills>
<skill id="18718" level="1" /> <!-- Greater Sapphire -->
<skill id="18718" level="2" /> <!-- Greater Sapphire -->
<skill id="18719" level="1" /> <!-- Greater Sapphire -->
<skill id="18719" level="6" /> <!-- Sapphire -->
</skills>
</item>
<item id="47690" name="Greater Obsidian" type="Armor">

View File

@@ -1100,24 +1100,9 @@
<value level="11">-722</value>
</effectPoint>
<reuseDelay>7000</reuseDelay>
<affectLimit>5-12</affectLimit>
<fanRange>
<value level="1">0;0;900;50</value>
<value level="2">0;0;700;50</value>
<value level="3">0;0;700;50</value>
<value level="4">0;0;700;50</value>
<value level="5">0;0;700;50</value>
<value level="6">0;0;700;50</value>
<value level="7">0;0;700;50</value>
<value level="8">0;0;700;50</value>
<value level="9">0;0;700;50</value>
<value level="10">0;0;700;50</value>
<value level="11">0;0;700;50</value>
</fanRange>
<rideState>NONE</rideState>
<targetType>ENEMY</targetType>
<affectScope>SQUARE</affectScope>
<affectObject>NOT_FRIEND</affectObject>
<affectScope>SINGLE</affectScope>
<conditions>
<condition name="EquipWeapon">
<weaponType>