-TriggerForce effect for awaken class forces.
-Forces (except Eviscerator - temp done, need correct stat). -Update TriggerForce effect and implemented all Sigel's Aura buffs/debuff. Contributed by NviX.
This commit is contained in:
@@ -18,20 +18,46 @@
|
||||
*/
|
||||
package handlers.effecthandlers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.l2jserver.gameserver.datatables.SkillData;
|
||||
import com.l2jserver.gameserver.model.StatsSet;
|
||||
import com.l2jserver.gameserver.model.actor.L2Character;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.conditions.Condition;
|
||||
import com.l2jserver.gameserver.model.effects.AbstractEffect;
|
||||
import com.l2jserver.gameserver.model.holders.SkillHolder;
|
||||
import com.l2jserver.gameserver.model.skills.BuffInfo;
|
||||
import com.l2jserver.gameserver.model.skills.Skill;
|
||||
import com.l2jserver.gameserver.model.zone.ZoneId;
|
||||
|
||||
/**
|
||||
* Force Skill effect implementation.
|
||||
* @author Mobius
|
||||
* @author Mobius, NviX
|
||||
*/
|
||||
public final class TriggerForce extends AbstractEffect
|
||||
{
|
||||
private final SkillHolder _skill;
|
||||
private final List<L2PcInstance> _affectedMembers = new ArrayList<>();
|
||||
private final List<L2Character> _affectedObjects = new ArrayList<>();
|
||||
private final List<L2Character> _affectedObjToRemove = new ArrayList<>();
|
||||
private static final int SIGEL_FORCE = 1928;
|
||||
private static final int TYRR_FORCE = 1930;
|
||||
private static final int OTHELL_FORCE = 1932;
|
||||
private static final int YUL_FORCE = 1934;
|
||||
private static final int FEOH_FORCE = 1936;
|
||||
private static final int WYNN_FORCE = 1938;
|
||||
private static final int AEORE_FORCE = 1940;
|
||||
private static final int EVISCERATOR_FORCE = 30603;
|
||||
private static final int SAYHAS_SEER_FORCE = 30606;
|
||||
private static final int PARTY_SOLIDARITY = 1955;
|
||||
private static final int RAGE_AURA = 10029;
|
||||
private static final int CHALLENGE_AURA = 10031;
|
||||
private static final int IRON_AURA = 10033;
|
||||
private static final int RESISTANCE_AURA = 10035;
|
||||
private static final int RECOVERY_AURA = 10037;
|
||||
private static final int SPIRIT_AURA = 10039;
|
||||
|
||||
/**
|
||||
* @param attachCond
|
||||
@@ -61,37 +87,216 @@ public final class TriggerForce extends AbstractEffect
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (effector.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance member : effector.getParty().getMembers())
|
||||
{
|
||||
member.makeTriggerCast(_skill.getSkill(), effector);
|
||||
_affectedMembers.add(member);
|
||||
if (member.calculateDistance(effector, true, false) < 900)
|
||||
{
|
||||
member.makeTriggerCast(_skill.getSkill(), effector);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
effector.makeTriggerCast(_skill.getSkill(), effector);
|
||||
_affectedMembers.add(effector);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActionTime(BuffInfo info)
|
||||
{
|
||||
final L2PcInstance effector = info.getEffector().getActingPlayer();
|
||||
// if die
|
||||
if (effector.isDead())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// apply Rage Aura to enemies
|
||||
if (_skill.getSkillId() == RAGE_AURA)
|
||||
{
|
||||
final boolean srcInArena = (effector.isInsideZone(ZoneId.PVP) && (!effector.isInsideZone(ZoneId.SIEGE)));
|
||||
for (L2Character obj : effector.getKnownList().getKnownCharactersInRadius(200))
|
||||
{
|
||||
if (((obj.isAttackable() || obj.isPlayable()) && !obj.isDoor()) && Skill.checkForAreaOffensiveSkills(effector, obj, _skill.getSkill(), srcInArena) && !_affectedObjects.contains(obj))
|
||||
{
|
||||
_affectedObjects.add(obj);
|
||||
_skill.getSkill().applyEffects(effector, obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
// remove Rage Aura from enemies who not in affect radius
|
||||
if (!_affectedObjects.isEmpty())
|
||||
{
|
||||
for (L2Character obj : _affectedObjects)
|
||||
{
|
||||
if (!effector.getKnownList().getKnownCharactersInRadius(200).contains(obj))
|
||||
{
|
||||
if (obj.getEffectList().isAffectedBySkill(RAGE_AURA))
|
||||
{
|
||||
obj.getEffectList().remove(true, obj.getEffectList().getBuffInfoBySkillId(RAGE_AURA));
|
||||
}
|
||||
_affectedObjToRemove.add(obj);
|
||||
}
|
||||
}
|
||||
if (!_affectedObjToRemove.isEmpty())
|
||||
{
|
||||
final int limit = _affectedObjToRemove.size();
|
||||
for (int i = 0; i < limit; i++)
|
||||
{
|
||||
if (_affectedObjects.contains(_affectedObjToRemove.get(i)))
|
||||
{
|
||||
_affectedObjects.remove(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
_affectedObjToRemove.clear();
|
||||
}
|
||||
// apply effect to new party members or remove if member > 900 distance from effector.
|
||||
if (effector.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance member : effector.getParty().getMembers())
|
||||
{
|
||||
if (!_affectedMembers.contains(member))
|
||||
{
|
||||
_affectedMembers.add(member);
|
||||
}
|
||||
if (!member.getEffectList().isAffectedBySkill(_skill.getSkillId()) && (member.calculateDistance(effector, true, false) < 900))
|
||||
{
|
||||
if ((member != effector))
|
||||
{
|
||||
member.makeTriggerCast(_skill.getSkill(), effector);
|
||||
}
|
||||
else if ((_skill.getSkillId() != CHALLENGE_AURA) && (_skill.getSkillId() != IRON_AURA) && (_skill.getSkillId() != RESISTANCE_AURA) && (_skill.getSkillId() != RECOVERY_AURA) && (_skill.getSkillId() != SPIRIT_AURA))
|
||||
{
|
||||
member.makeTriggerCast(_skill.getSkill(), effector);
|
||||
}
|
||||
}
|
||||
else if (member.getEffectList().isAffectedBySkill(_skill.getSkillId()) && (member.calculateDistance(effector, true, false) > 900))
|
||||
{
|
||||
member.getEffectList().remove(true, member.getEffectList().getBuffInfoBySkillId(_skill.getSkillId()));
|
||||
}
|
||||
}
|
||||
}
|
||||
// if any member leave from party
|
||||
if (!_affectedMembers.isEmpty())
|
||||
{
|
||||
for (L2PcInstance player : _affectedMembers)
|
||||
{
|
||||
if ((player != effector) && !player.isInPartyWith(effector) && (player.getEffectList().getBuffInfoBySkillId(_skill.getSkillId()) != null))
|
||||
{
|
||||
player.getEffectList().remove(true, player.getEffectList().getBuffInfoBySkillId(_skill.getSkillId()));
|
||||
if (player.getEffectList().getBuffInfoBySkillId(PARTY_SOLIDARITY) != null)
|
||||
{
|
||||
player.getEffectList().remove(true, player.getEffectList().getBuffInfoBySkillId(PARTY_SOLIDARITY));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
_affectedMembers.clear();
|
||||
// Party Solidarity apply/remove
|
||||
if (effector.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance member : effector.getParty().getMembers())
|
||||
{
|
||||
_affectedMembers.add(member);
|
||||
int activeForces = 0;
|
||||
if (member.getEffectList().getBuffInfoBySkillId(SIGEL_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
if (member.getEffectList().getBuffInfoBySkillId(TYRR_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
if (member.getEffectList().getBuffInfoBySkillId(OTHELL_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
if (member.getEffectList().getBuffInfoBySkillId(YUL_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
if (member.getEffectList().getBuffInfoBySkillId(FEOH_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
if (member.getEffectList().getBuffInfoBySkillId(WYNN_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
if (member.getEffectList().getBuffInfoBySkillId(AEORE_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
if (member.getEffectList().getBuffInfoBySkillId(EVISCERATOR_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
if (member.getEffectList().getBuffInfoBySkillId(SAYHAS_SEER_FORCE) != null)
|
||||
{
|
||||
activeForces++;
|
||||
}
|
||||
|
||||
if ((activeForces < 4) || ((member.getEffectList().getBuffInfoBySkillId(AEORE_FORCE) == null) || (member.getEffectList().getBuffInfoBySkillId(SIGEL_FORCE) == null)))
|
||||
{
|
||||
if (member.getEffectList().getBuffInfoBySkillId(PARTY_SOLIDARITY) != null)
|
||||
{
|
||||
member.getEffectList().remove(true, member.getEffectList().getBuffInfoBySkillId(PARTY_SOLIDARITY));
|
||||
}
|
||||
}
|
||||
if ((activeForces >= 4) && (member.getEffectList().getBuffInfoBySkillId(AEORE_FORCE) != null) && (member.getEffectList().getBuffInfoBySkillId(SIGEL_FORCE) != null))
|
||||
{
|
||||
BuffInfo skill = member.getEffectList().getBuffInfoBySkillId(PARTY_SOLIDARITY);
|
||||
if (!member.getEffectList().isAffectedBySkill(PARTY_SOLIDARITY) || (skill.getSkill().getLevel() != Math.min((activeForces - 3), 3)))
|
||||
{
|
||||
member.makeTriggerCast(SkillData.getInstance().getSkill(PARTY_SOLIDARITY, Math.min((activeForces - 3), 3)), member);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
_affectedMembers.add(effector);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onExit(BuffInfo info)
|
||||
{
|
||||
final L2PcInstance effected = info.getEffected().getActingPlayer();
|
||||
final L2PcInstance effector = info.getEffector().getActingPlayer();
|
||||
final int skillId = info.getSkill().getId();
|
||||
|
||||
if ((effected.getEffectList().getBuffInfoBySkillId(skillId) == null) && (effected.getEffectList().getBuffInfoBySkillId(skillId + 1) != null))
|
||||
if ((effector.getEffectList().getBuffInfoBySkillId(skillId) == null) && (effector.getEffectList().getBuffInfoBySkillId(skillId + 1) != null))
|
||||
{
|
||||
effected.getEffectList().remove(true, effected.getEffectList().getBuffInfoBySkillId(skillId + 1));
|
||||
effector.getEffectList().remove(true, effector.getEffectList().getBuffInfoBySkillId(skillId + 1));
|
||||
}
|
||||
|
||||
if (effected.getParty() != null)
|
||||
if (effector.getParty() != null)
|
||||
{
|
||||
for (L2PcInstance member : effected.getParty().getMembers())
|
||||
for (L2PcInstance member : _affectedMembers)
|
||||
{
|
||||
member.makeTriggerCast(_skill.getSkill(), effected);
|
||||
if (member.getEffectList().getBuffInfoBySkillId(skillId + 1) != null)
|
||||
{
|
||||
member.getEffectList().remove(true, member.getEffectList().getBuffInfoBySkillId(skillId + 1));
|
||||
}
|
||||
}
|
||||
}
|
||||
// remove Rage Aura from all affected enemies
|
||||
if (!_affectedObjects.isEmpty())
|
||||
{
|
||||
for (L2Character obj : _affectedObjects)
|
||||
{
|
||||
if (obj.getEffectList().isAffectedBySkill(RAGE_AURA))
|
||||
{
|
||||
obj.getEffectList().remove(true, obj.getEffectList().getBuffInfoBySkillId(RAGE_AURA));
|
||||
}
|
||||
}
|
||||
_affectedObjects.clear();
|
||||
_affectedObjToRemove.clear();
|
||||
}
|
||||
}
|
||||
}
|
@@ -304,21 +304,22 @@
|
||||
<set name="icon" val="icon.icon_sigel" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce">
|
||||
<param skillId="1928" />
|
||||
<effect name="TriggerForce" ticks="1">
|
||||
<param skillId="1928" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="1928" levels="1" name="Sigel Force">
|
||||
<set name="icon" val="icon.icon_sigel_01" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="isMagic" val="2" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
@@ -327,23 +328,25 @@
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="1929" levels="1" name="Tyrr Aura">
|
||||
<set name="icon" val="icon.icon_tir" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce">
|
||||
<param skillId="1930" />
|
||||
<effect name="TriggerForce" ticks="1">
|
||||
<param skillId="1930" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="1930" levels="1" name="Tyrr Force">
|
||||
<set name="icon" val="icon.icon_tir_01" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="isMagic" val="2" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
@@ -355,21 +358,22 @@
|
||||
<set name="icon" val="icon.icon_othel" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce">
|
||||
<param skillId="1932" />
|
||||
<effect name="TriggerForce" ticks="1">
|
||||
<param skillId="1932" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="1932" levels="1" name="Othell Force">
|
||||
<set name="icon" val="icon.icon_othel_01" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="isMagic" val="2" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
@@ -381,21 +385,22 @@
|
||||
<set name="icon" val="icon.icon_yr" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce">
|
||||
<param skillId="1934" />
|
||||
<effect name="TriggerForce" ticks="1">
|
||||
<param skillId="1934" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="1934" levels="1" name="Yul Force">
|
||||
<set name="icon" val="icon.icon_yr_01" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="isMagic" val="2" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
@@ -407,21 +412,22 @@
|
||||
<set name="icon" val="icon.icon_feoh" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce">
|
||||
<param skillId="1936" />
|
||||
<effect name="TriggerForce" ticks="1">
|
||||
<param skillId="1936" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="1936" levels="1" name="Feoh Force">
|
||||
<set name="icon" val="icon.icon_feoh_01" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="isMagic" val="2" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
@@ -433,21 +439,22 @@
|
||||
<set name="icon" val="icon.icon_wynn" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce">
|
||||
<param skillId="1938" />
|
||||
<effect name="TriggerForce" ticks="1">
|
||||
<param skillId="1938" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="1938" levels="1" name="Wynn Force">
|
||||
<set name="icon" val="icon.icon_wynn_01" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="isMagic" val="2" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
@@ -460,21 +467,22 @@
|
||||
<set name="icon" val="icon.icon_eolh" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce">
|
||||
<param skillId="1940" />
|
||||
<effect name="TriggerForce" ticks="1">
|
||||
<param skillId="1940" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="1940" levels="1" name="Aeore Force">
|
||||
<set name="icon" val="icon.icon_eolh_01" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="isMagic" val="2" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
|
295
trunk/dist/game/data/stats/skills/10000-10099.xml
vendored
295
trunk/dist/game/data/stats/skills/10000-10099.xml
vendored
@@ -1242,77 +1242,78 @@
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="skillType" val="CONT" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="skillToCast" val="10029" />
|
||||
<set name="skillToCastLevel" val="1" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="abnormalLvl" val="2" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="abnormalVisualEffect" val="AURA_DEBUFF_SELF" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="DamOverTime" val="0">
|
||||
<mul stat="pAtk" val="1.1" />
|
||||
<mul stat="pAtkSpd" val="1.1" />
|
||||
<add stat="runSpd" val="10" />
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.1">
|
||||
<using kind="SWORD, BLUNT" />
|
||||
</mul>
|
||||
<mul stat="pAtkSpd" val="1.1">
|
||||
<using kind="SWORD, BLUNT" />
|
||||
</mul>
|
||||
<add stat="runSpd" val="10">
|
||||
<using kind="SWORD, BLUNT" />
|
||||
</add>
|
||||
</effect>
|
||||
<effect name="TriggerForce" ticks="2">
|
||||
<param skillId="10029" skillLevel="1" />
|
||||
<param targetType="AURA" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10029" levels="1" name="Rage Aura">
|
||||
<set name="hitTime" val="500" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="power" val="100" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="lvlDepend" val="1" />
|
||||
<set name="abnormalVisualEffect" val="AURA_DEBUFF" />
|
||||
<set name="targetType" val="AURA" />
|
||||
<set name="isDebuff" val="true" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Debuff" val="0">
|
||||
<effect name="Debuff">
|
||||
<mul stat="pAtkSpd" val="0.8" />
|
||||
<mul stat="pAtk" val="0.8" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10030" levels="1" name="Challenge Aura">
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="abnormalLvl" val="2" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="skillType" val="CONT" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF_SELF" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="skillToCast" val="10031" />
|
||||
<set name="skillToCastLevel" val="1" />
|
||||
<for>
|
||||
<effect name="DamOverTime" val="0">
|
||||
<effect name="Buff">
|
||||
<!-- TODO: add increase aggression power -->
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<mul stat="MagicalMpConsumeRate" val="0.8" />
|
||||
<mul stat="PhysicalMpConsumeRate" val="0.8" />
|
||||
<mul stat="DanceMpConsumeRate" val="0.8" />
|
||||
</effect>
|
||||
<effect name="TriggerForce" ticks="2">
|
||||
<param skillId="10031" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10031" levels="1" name="Challenge Aura">
|
||||
<set name="hitTime" val="500" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="abnormalLvl" val="1" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="power" val="100" />
|
||||
<set name="lvlDepend" val="1" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="power" val="35000" />
|
||||
<set name="skillType" val="BUFF" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<cond>
|
||||
<not>
|
||||
<target active_effect_id="10030" />
|
||||
</not>
|
||||
</cond>
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff" val="0">
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<mul stat="MagicalMpConsumeRate" val="0.8" />
|
||||
@@ -1322,79 +1323,75 @@
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10032" levels="1" name="Iron Aura">
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="abnormalLvl" val="2" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="skillType" val="CONT" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF_SELF" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="skillToCast" val="10033" />
|
||||
<set name="skillToCastLevel" val="1" />
|
||||
<for>
|
||||
<effect name="DamOverTime" val="0">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05">
|
||||
<using kind="SHIELD" />
|
||||
</mul>
|
||||
<mul stat="pAtkSpd" val="1.05">
|
||||
<using kind="SHIELD" />
|
||||
</mul>
|
||||
<add stat="pDef" val="215">
|
||||
<using kind="HEAVY" />
|
||||
<using kind="SHIELD" />
|
||||
</add>
|
||||
<mul stat="sDef" val="1.5">
|
||||
<using kind="HEAVY" />
|
||||
</mul>
|
||||
<mul stat="rShld" val="2">
|
||||
<using kind="HEAVY" />
|
||||
<using kind="SHIELD" />
|
||||
</mul>
|
||||
<!--<mul stat="bowWpnVuln" val="0.8">
|
||||
<using kind="HEAVY" />
|
||||
</mul>
|
||||
<mul stat="crossbowWpnVuln" val="0.8">
|
||||
<using kind="HEAVY" />
|
||||
</mul>-->
|
||||
<mul stat="cAtk" val="0.85">
|
||||
<using kind="HEAVY" />
|
||||
<mul stat="sDef" val="1.5">
|
||||
<using kind="SHIELD" />
|
||||
</mul>
|
||||
<mul stat="defCritDamage" val="0.85" />
|
||||
</effect>
|
||||
<effect name="DefenceTrait">
|
||||
<param BOW="20" />
|
||||
<param CROSSBOW="20" />
|
||||
</effect>
|
||||
<effect name="TriggerForce" ticks="2">
|
||||
<param skillId="10033" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10033" levels="1" name="Iron Aura">
|
||||
<set name="hitTime" val="500" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="abnormalLvl" val="1" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="power" val="100" />
|
||||
<set name="lvlDepend" val="1" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="effectRange" val="120" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="skillType" val="BUFF" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<cond>
|
||||
<not>
|
||||
<target active_effect_id="10032" />
|
||||
</not>
|
||||
</cond>
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff" val="0">
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<mul stat="pDef" val="1.10" />
|
||||
<!-- <mul stat="bowWpnVuln" val="0.8" />
|
||||
<mul stat="crossbowWpnVuln" val="0.8" />-->
|
||||
<mul stat="healEffect" val="1.1" />
|
||||
</effect>
|
||||
<effect name="DefenceTrait">
|
||||
<param BOW="20" />
|
||||
<param CROSSBOW="20" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10034" levels="1" name="Aura Resistance">
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="abnormalLvl" val="2" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="skillType" val="CONT" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="skillToCast" val="10035" />
|
||||
<set name="skillToCastLevel" val="1" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF_SELF" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="DamOverTime" val="0">
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<mul stat="mDef" val="1.1" />
|
||||
@@ -1403,26 +1400,24 @@
|
||||
<add stat="windRes" val="20" />
|
||||
<add stat="earthRes" val="20" />
|
||||
</effect>
|
||||
<effect name="TriggerForce" ticks="2">
|
||||
<param skillId="10035" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10035" levels="1" name="Aura Resistance">
|
||||
<set name="hitTime" val="500" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="abnormalLvl" val="1" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="power" val="100" />
|
||||
<set name="lvlDepend" val="1" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="skillType" val="BUFF" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<cond>
|
||||
<not>
|
||||
<target active_effect_id="10034" />
|
||||
</not>
|
||||
</cond>
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff" val="0">
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<mul stat="mDef" val="1.1" />
|
||||
@@ -1434,96 +1429,92 @@
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10036" levels="1" name="Recovery Aura">
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="abnormalLvl" val="2" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="skillType" val="CONT" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="skillToCast" val="10037" />
|
||||
<set name="skillToCastLevel" val="1" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF_SELF" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<for>
|
||||
<effect name="DamOverTime" val="0">
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<param HOLD="15" />
|
||||
<sub stat="debuffVuln" val="15" />
|
||||
<sub stat="debuffVuln" val="20" />
|
||||
<mul stat="regHp" val="1.1" />
|
||||
<!--<mul stat="gainHp" val="1.1" />-->
|
||||
<mul stat="healEffect" val="1.1" />
|
||||
</effect>
|
||||
<effect name="TriggerForce" ticks="2">
|
||||
<param skillId="10037" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10037" levels="1" name="Recovery Aura">
|
||||
<set name="hitTime" val="500" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="abnormalLvl" val="1" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="power" val="100" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="skillType" val="BUFF" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<cond>
|
||||
<not>
|
||||
<target active_effect_id="10036" />
|
||||
</not>
|
||||
</cond>
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff" val="0">
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<param HOLD="15" />
|
||||
<sub stat="debuffVuln" val="15" />
|
||||
<sub stat="debuffVuln" val="20" />
|
||||
<mul stat="regHp" val="1.1" />
|
||||
<!--<mul stat="gainHp" val="1.1" />-->
|
||||
<mul stat="healEffect" val="1.1" />
|
||||
</effect>
|
||||
<effect name="DefenceTrait">
|
||||
<param HOLD="20" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10038" levels="1" name="Spirit Aura">
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="abnormalLvl" val="2" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="skillType" val="CONT" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF_SELF" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="skillToCast" val="10039" />
|
||||
<set name="skillToCastLevel" val="1" />
|
||||
<for>
|
||||
<effect name="DamOverTime" val="0">
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<param HOLD="15" />
|
||||
<sub stat="debuffVuln" val="15" />
|
||||
<sub stat="debuffVuln" val="20" />
|
||||
<mul stat="regMp" val="1.1" />
|
||||
<!--<add stat="gainMp" val="10" />-->
|
||||
<mul stat="manaCharge" val="1.1" />
|
||||
</effect>
|
||||
<effect name="TriggerForce" ticks="2">
|
||||
<param skillId="10039" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="10039" levels="1" name="Spirit Aura">
|
||||
<set name="hitTime" val="500" />
|
||||
<set name="reuseDelay" val="1000" />
|
||||
<set name="abnormalLvl" val="1" />
|
||||
<set name="abnormalType" val="SIGEL_AURA" />
|
||||
<set name="abnormalVisualEffect" val="AURA_BUFF" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="power" val="100" />
|
||||
<set name="abnormalTime" val="15" />
|
||||
<set name="skillRadius" val="200" />
|
||||
<set name="targetType" val="PARTY" />
|
||||
<set name="skillType" val="BUFF" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<cond>
|
||||
<not>
|
||||
<target active_effect_id="10038" />
|
||||
</not>
|
||||
</cond>
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff" val="0">
|
||||
<effect name="Buff">
|
||||
<mul stat="pAtk" val="1.05" />
|
||||
<mul stat="pAtkSpd" val="1.05" />
|
||||
<param HOLD="15" />
|
||||
<sub stat="debuffVuln" val="15" />
|
||||
<sub stat="debuffVuln" val="20" />
|
||||
<mul stat="regMp" val="1.1" />
|
||||
<!--<add stat="gainMp" val="10" />-->
|
||||
<mul stat="manaCharge" val="1.1" />
|
||||
</effect>
|
||||
<effect name="DefenceTrait">
|
||||
<param HOLD="20" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
|
@@ -21,23 +21,33 @@
|
||||
<set name="coolTime" val="500" />
|
||||
<set name="reuseDelay" val="10000" />
|
||||
</skill>
|
||||
<!-- Level 1 : Casts Eviscerator Force on entire party, which increases P. Skill Critical Rate + 1%. -->
|
||||
<skill id="30602" levels="1" name="Eviscerator Aura">
|
||||
<set name="icon" val="icon.icon_lender" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce" ticks="2">
|
||||
<param skillId="30603" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="30603" levels="1" name="Eviscerator Force">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- P. Skill Critical Rate + 1%. -->
|
||||
<set name="icon" val="icon.icon_lender_01" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
<mul stat="physicalSkillPower" val="1.01" /> <!-- IMPLEMENT P.Skill Critical Rate and change stat -->
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="30604" levels="1" name="Block Eviscerator Force">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
@@ -46,29 +56,33 @@
|
||||
<set name="operateType" val="PASSIVE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
</skill>
|
||||
<!-- Level 1 : Casts Sayha's Seer Force on entire party, which increases M. Critical Rate + 1%. -->
|
||||
<skill id="30605" levels="1" name="Sayha's Seer Aura">
|
||||
<set name="icon" val="icon.icon_Er_wizard" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="castRange" val="1000" />
|
||||
<for>
|
||||
<effect name="TriggerForce" ticks="2">
|
||||
<param skillId="30606" skillLevel="1" />
|
||||
<param targetType="PARTY" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="30606" levels="1" name="Sayha's Seer Force">
|
||||
<set name="icon" val="icon.icon_Er_wizard_01" />
|
||||
<set name="operateType" val="TOGGLE" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="magicLvl" val="85" />
|
||||
<set name="isMagic" val="3" />
|
||||
<set name="isTriggeredSkill" val="true" />
|
||||
<for>
|
||||
<effect name="Buff">
|
||||
<mul stat="mCritRate" val="1.01" />
|
||||
</effect>
|
||||
</for>
|
||||
</skill>
|
||||
<skill id="30606" levels="1" name="Sayha's Seer Force">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- M. Critical Rate + 1%. -->
|
||||
<set name="icon" val="icon.icon_Er_wizard_01" />
|
||||
<set name="operateType" val="ACTIVE_CONTINUOUS" />
|
||||
<set name="targetType" val="SELF" />
|
||||
<set name="reuseDelay" val="5000" />
|
||||
<set name="isMagic" val="3" />
|
||||
</skill>
|
||||
<skill id="30607" levels="1" name="Block Sayha's Seer Force">
|
||||
<!-- AUTO GENERATED SKILL -->
|
||||
<!-- Blocks Sayha's Seer Force. -->
|
||||
|
BIN
trunk/dist/game/data/stats/skills/TODO.xlsx
vendored
BIN
trunk/dist/game/data/stats/skills/TODO.xlsx
vendored
Binary file not shown.
@@ -373,7 +373,8 @@ public enum AbnormalType
|
||||
REF_SONATA,
|
||||
ELEMENTAL_RESISTANCE_ISS,
|
||||
HOLY_ATTACK_RESISTANCE_ISS,
|
||||
MENTAL_ATTACK_RESISTANCE_ISS;
|
||||
MENTAL_ATTACK_RESISTANCE_ISS,
|
||||
SIGEL_AURA;
|
||||
|
||||
/**
|
||||
* Get the enumerate for the given String.
|
||||
|
Reference in New Issue
Block a user