Half-done Force skill effect.

This commit is contained in:
MobiusDev 2015-06-29 22:22:15 +00:00
parent 8d27f298e2
commit 04d53aedc9
3 changed files with 230 additions and 83 deletions

View File

@ -195,6 +195,7 @@ public final class EffectMasterHandler
Transformation.class,
TrapDetect.class,
TrapRemove.class,
TriggerForce.class,
TriggerSkillByAttack.class,
TriggerSkillByAvoid.class,
TriggerSkillByDamage.class,

View File

@ -0,0 +1,97 @@
/*
* Copyright (C) 2004-2015 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L2J DataPack is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package handlers.effecthandlers;
import com.l2jserver.gameserver.model.StatsSet;
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;
/**
* Force Skill effect implementation.
* @author Mobius
*/
public final class TriggerForce extends AbstractEffect
{
private final SkillHolder _skill;
/**
* @param attachCond
* @param applyCond
* @param set
* @param params
*/
public TriggerForce(Condition attachCond, Condition applyCond, StatsSet set, StatsSet params)
{
super(attachCond, applyCond, set, params);
_skill = new SkillHolder(params.getInt("skillId", 0), 1);
}
@Override
public void onStart(BuffInfo info)
{
final L2PcInstance effector = info.getEffector().getActingPlayer();
final L2PcInstance effected = info.getEffected().getActingPlayer();
if (effected.isDead() || (effector == null))
{
return;
}
if (_skill.getSkillId() == 0)
{
return;
}
if (effector.getParty() != null)
{
for (L2PcInstance member : effector.getParty().getMembers())
{
member.makeTriggerCast(_skill.getSkill(), effector);
}
}
else
{
effector.makeTriggerCast(_skill.getSkill(), effector);
}
}
@Override
public void onExit(BuffInfo info)
{
final L2PcInstance effected = info.getEffected().getActingPlayer();
final int skillId = info.getSkill().getId();
if ((effected.getEffectList().getBuffInfoBySkillId(skillId) == null) && (effected.getEffectList().getBuffInfoBySkillId(skillId + 1) != null))
{
effected.getEffectList().remove(true, effected.getEffectList().getBuffInfoBySkillId(skillId + 1));
}
if (effected.getParty() != null)
{
for (L2PcInstance member : effected.getParty().getMembers())
{
member.makeTriggerCast(_skill.getSkill(), effected);
}
}
}
}

View File

@ -300,152 +300,188 @@
<set name="coolTime" val="200" />
<set name="reuseDelay" val="3600000" />
</skill>
<!-- Level 1 : Casts Sigel Force on entire party, which increases P Atk. by 1%. -->
<skill id="1927" levels="1" name="Sigel Aura">
<set name="icon" val="icon.icon_sigel" />
<set name="magicLvl" val="85" />
<set name="operateType" val="TOGGLE" />
<set name="reuseDelay" val="5000" />
<set name="targetType" val="SELF" />
<set name="isMagic" val="3" />
<set name="reuseDelay" val="5000" />
<set name="castRange" val="1000" />
<for>
<effect name="TriggerForce">
<param skillId="1928" />
</effect>
</for>
</skill>
<skill id="1928" levels="1" name="Sigel Force">
<!-- AUTO GENERATED SKILL -->
<!-- P. Atk. + 1%. -->
<set name="icon" val="icon.icon_sigel_01" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="reuseDelay" val="5000" />
<set name="isMagic" val="3" />
</skill>
<!-- Level 1 : Casts Tyrr Force on entire party, which increases P. Critical Rate by 1%. -->
<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="reuseDelay" val="5000" />
<set name="targetType" val="PARTY" />
<set name="isMagic" val="2" />
<set name="isTriggeredSkill" val="true" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="1.01" />
</effect>
</for>
</skill>
<skill id="1929" levels="1" name="Tyrr Aura">
<set name="magicLvl" val="85" />
<set name="operateType" val="TOGGLE" />
<set name="targetType" val="SELF" />
<set name="isMagic" val="3" />
<set name="reuseDelay" val="5000" />
<set name="castRange" val="1000" />
<for>
<effect name="TriggerForce">
<param skillId="1930" />
</effect>
</for>
</skill>
<skill id="1930" levels="1" name="Tyrr Force">
<!-- AUTO GENERATED SKILL -->
<!-- P. Critical Rate + 1%. -->
<set name="icon" val="icon.icon_tir_01" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="reuseDelay" val="5000" />
<set name="isMagic" val="3" />
<set name="magicLvl" val="85" />
<set name="operateType" val="TOGGLE" />
<set name="targetType" val="PARTY" />
<set name="isMagic" val="2" />
<set name="isTriggeredSkill" val="true" />
<for>
<effect name="Buff">
<mul stat="rCrit" val="1.01" />
</effect>
</for>
</skill>
<!-- Level 1 : Casts Othell Force on entire party, which increases Atk. Spd. by 1%. -->
<skill id="1931" levels="1" name="Othell Aura">
<set name="icon" val="icon.icon_othel" />
<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="reuseDelay" val="5000" />
<set name="castRange" val="1000" />
<for>
<effect name="TriggerForce">
<param skillId="1932" />
</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="isTriggeredSkill" val="true" />
<for>
<effect name="Buff">
<mul stat="pAtkSpd" val="1.01" />
</effect>
</for>
</skill>
<skill id="1932" levels="1" name="Othell Force">
<!-- AUTO GENERATED SKILL -->
<!-- Atk. Spd. + 1%. -->
<set name="icon" val="icon.icon_othel_01" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="reuseDelay" val="5000" />
<set name="isMagic" val="3" />
</skill>
<!-- Level 1 : Casts Yul Force on entire party, which increases MP Recovery Bonus by 50%. -->
<skill id="1933" levels="1" name="Yul Aura">
<set name="icon" val="icon.icon_yr" />
<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="reuseDelay" val="5000" />
<set name="castRange" val="1000" />
<for>
<effect name="TriggerForce">
<param skillId="1934" />
</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="isTriggeredSkill" val="true" />
<for>
<effect name="Buff">
<mul stat="regMp" val="1.5" />
</effect>
</for>
</skill>
<skill id="1934" levels="1" name="Yul Force">
<!-- AUTO GENERATED SKILL -->
<!-- MP Recovery Bonus + 50%. -->
<set name="icon" val="icon.icon_yr_01" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="reuseDelay" val="5000" />
<set name="isMagic" val="3" />
</skill>
<!-- Level 1 : Casts Feoh Force on entire party, which increases Casting Spd. by 1%. -->
<skill id="1935" levels="1" name="Feoh Aura">
<set name="icon" val="icon.icon_feoh" />
<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="reuseDelay" val="5000" />
<set name="castRange" val="1000" />
<for>
<effect name="TriggerForce">
<param skillId="1936" />
</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="isTriggeredSkill" val="true" />
<for>
<effect name="Buff">
<mul stat="mAtkSpd" val="1.01" />
</effect>
</for>
</skill>
<skill id="1936" levels="1" name="Feoh Force">
<!-- AUTO GENERATED SKILL -->
<!-- Casting Spd. + 1%. -->
<set name="icon" val="icon.icon_feoh_01" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="reuseDelay" val="5000" />
<set name="isMagic" val="3" />
</skill>
<!-- Level 1 : Casts Wynn Force on entire party, which decreases P./M. Skill MP Consumption by 3%. -->
<skill id="1937" levels="1" name="Wynn Aura">
<set name="icon" val="icon.icon_wynn" />
<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="reuseDelay" val="5000" />
<set name="castRange" val="1000" />
<for>
<effect name="TriggerForce">
<param skillId="1938" />
</effect>
</for>
</skill>
<skill id="1938" levels="1" name="Wynn Force">
<!-- AUTO GENERATED SKILL -->
<!-- P./M. Skill MP Consumption - 3%. -->
<set name="icon" val="icon.icon_wynn_01" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<set name="reuseDelay" val="5000" />
<set name="isMagic" val="3" />
<set name="magicLvl" val="85" />
<set name="operateType" val="TOGGLE" />
<set name="targetType" val="PARTY" />
<set name="isMagic" val="2" />
<set name="isTriggeredSkill" val="true" />
<for>
<effect name="Buff">
<mul stat="PhysicalMpConsumeRate" val="0.97" />
<mul stat="MagicalMpConsumeRate" val="0.97" />
</effect>
</for>
</skill>
<!-- Level 1 : Casts Aeore Force on entire party, which increases M. Atk. by 1%. -->
<skill id="1939" levels="1" name="Aeore Aura">
<set name="icon" val="icon.icon_eolh" />
<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="reuseDelay" val="5000" />
<set name="castRange" val="1000" />
<for>
<effect name="TriggerForce">
<param skillId="1940" />
</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="isTriggeredSkill" val="true" />
<for>
<effect name="Buff">
<mul stat="mAtk" val="1.01" />
</effect>
</for>
</skill>
<skill id="1940" levels="1" name="Aeore Force">
<!-- AUTO GENERATED SKILL -->
<!-- M. Atk. + 1%. -->
<set name="icon" val="icon.icon_eolh_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="1941" levels="1" name="Physical Nail Attack">
<!-- AUTO GENERATED SKILL -->
<!-- Inflicts consecutive attacks using a Demon's claws. -->
@ -572,13 +608,26 @@
<set name="reuseDelay" val="10000" />
</skill>
<skill id="1955" levels="3" name="Party Solidarity">
<!-- AUTO GENERATED SKILL -->
<!-- Increases party members' P. Atk. by 1%, M. Atk. by 1%, P. Critical Rate by 1%, Atk. Spd. by 1%, and Casting Spd. by 1%. Decreases physical and magic skill Cooldown by 1%. Always includes Sigel and Aeore Force. When 4 or more forces are applied, the Party Solidarity effect is activated. When the number of forces applied increases, the Party Solidarity effect is raised. -->
<set name="icon" val="icon.skill1955" />
<set name="operateType" val="ACTIVE_CONTINUOUS" />
<set name="targetType" val="SELF" />
<table name="#pAtk"> 1.01 1.05 1.13 </table>
<table name="#rCrit"> 1.01 1.02 1.04 </table>
<table name="#AtkSpd"> 1.01 1.02 1.04 </table>
<table name="#Reuse"> 0.99 0.98 0.95 </table>
<set name="operateType" val="TOGGLE" />
<set name="targetType" val="PARTY" />
<set name="reuseDelay" val="5000" />
<set name="isMagic" val="3" />
<set name="isMagic" val="2" />
<for>
<effect name="Buff">
<mul stat="pAtk" val="#pAtk" />
<mul stat="mAtk" val="#pAtk" />
<mul stat="rCrit" val="#rCrit" />
<mul stat="pAtkSpd" val="#AtkSpd" />
<mul stat="mAtkSpd" val="#AtkSpd" />
<mul stat="pReuse" val="#Reuse" />
<mul stat="mReuse" val="#Reuse" />
</effect>
</for>
</skill>
<skill id="1956" levels="4" name="Sub - P. Atk./M. Atk. Increase">
<!-- P. Atk. + 1%, M. Atk. + 1%. -->