Addition of CallRandomSkill effect handler.

This commit is contained in:
MobiusDev
2017-11-13 11:45:53 +00:00
parent 5b09bdea20
commit e4b5def978
15 changed files with 315 additions and 0 deletions

View File

@@ -68,6 +68,7 @@ public final class EffectMasterHandler
EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new); EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new);
EffectHandler.getInstance().registerHandler("CallParty", CallParty::new); EffectHandler.getInstance().registerHandler("CallParty", CallParty::new);
EffectHandler.getInstance().registerHandler("CallPc", CallPc::new); EffectHandler.getInstance().registerHandler("CallPc", CallPc::new);
EffectHandler.getInstance().registerHandler("CallRandomSkill", CallRandomSkill::new);
EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new); EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new);
EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new); EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new);
EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new); EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new);

View File

@@ -0,0 +1,61 @@
/*
* This file is part of the L2J Mobius project.
*
* This program 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.
*
* This program 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 java.util.ArrayList;
import java.util.List;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.holders.SkillHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.skills.SkillCaster;
/**
* @author Mobius
*/
public class CallRandomSkill extends AbstractEffect
{
private final List<SkillHolder> _skills = new ArrayList<>();
public CallRandomSkill(StatsSet params)
{
final String skills = params.getString("skills", null);
if (skills != null)
{
for (String skill : skills.split(";"))
{
_skills.add(new SkillHolder(Integer.parseInt(skill.split(",")[0]), Integer.parseInt(skill.split(",")[1])));
}
}
}
@Override
public boolean isInstant()
{
return true;
}
@Override
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
{
SkillCaster.triggerCast(effector, effected, _skills.get(Rnd.get(_skills.size())).getSkill());
}
}

View File

@@ -37,6 +37,7 @@ Breath: Underwater breathing stat.
BuffBlock: Blocks target from receiving buffs. BuffBlock: Blocks target from receiving buffs.
CallParty: Recalls whole party. CallParty: Recalls whole party.
CallPc: Recalls a Player. CallPc: Recalls a Player.
CallRandomSkill: Triggers a random skill. (l2jmobius)
CallSkill: Triggers a specified skill. CallSkill: Triggers a specified skill.
CallSkillOnActionTime: Triggers a specified skill every given amount of time. CallSkillOnActionTime: Triggers a specified skill every given amount of time.
CallTargetParty: Recalls the whole party of the target. CallTargetParty: Recalls the whole party of the target.

View File

@@ -68,6 +68,7 @@ public final class EffectMasterHandler
EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new); EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new);
EffectHandler.getInstance().registerHandler("CallParty", CallParty::new); EffectHandler.getInstance().registerHandler("CallParty", CallParty::new);
EffectHandler.getInstance().registerHandler("CallPc", CallPc::new); EffectHandler.getInstance().registerHandler("CallPc", CallPc::new);
EffectHandler.getInstance().registerHandler("CallRandomSkill", CallRandomSkill::new);
EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new); EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new);
EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new); EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new);
EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new); EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new);

View File

@@ -0,0 +1,61 @@
/*
* This file is part of the L2J Mobius project.
*
* This program 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.
*
* This program 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 java.util.ArrayList;
import java.util.List;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.holders.SkillHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.skills.SkillCaster;
/**
* @author Mobius
*/
public class CallRandomSkill extends AbstractEffect
{
private final List<SkillHolder> _skills = new ArrayList<>();
public CallRandomSkill(StatsSet params)
{
final String skills = params.getString("skills", null);
if (skills != null)
{
for (String skill : skills.split(";"))
{
_skills.add(new SkillHolder(Integer.parseInt(skill.split(",")[0]), Integer.parseInt(skill.split(",")[1])));
}
}
}
@Override
public boolean isInstant()
{
return true;
}
@Override
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
{
SkillCaster.triggerCast(effector, effected, _skills.get(Rnd.get(_skills.size())).getSkill());
}
}

View File

@@ -37,6 +37,7 @@ Breath: Underwater breathing stat.
BuffBlock: Blocks target from receiving buffs. BuffBlock: Blocks target from receiving buffs.
CallParty: Recalls whole party. CallParty: Recalls whole party.
CallPc: Recalls a Player. CallPc: Recalls a Player.
CallRandomSkill: Triggers a random skill. (l2jmobius)
CallSkill: Triggers a specified skill. CallSkill: Triggers a specified skill.
CallSkillOnActionTime: Triggers a specified skill every given amount of time. CallSkillOnActionTime: Triggers a specified skill every given amount of time.
CallTargetParty: Recalls the whole party of the target. CallTargetParty: Recalls the whole party of the target.

View File

@@ -68,6 +68,7 @@ public final class EffectMasterHandler
EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new); EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new);
EffectHandler.getInstance().registerHandler("CallParty", CallParty::new); EffectHandler.getInstance().registerHandler("CallParty", CallParty::new);
EffectHandler.getInstance().registerHandler("CallPc", CallPc::new); EffectHandler.getInstance().registerHandler("CallPc", CallPc::new);
EffectHandler.getInstance().registerHandler("CallRandomSkill", CallRandomSkill::new);
EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new); EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new);
EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new); EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new);
EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new); EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new);

View File

@@ -0,0 +1,61 @@
/*
* This file is part of the L2J Mobius project.
*
* This program 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.
*
* This program 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 java.util.ArrayList;
import java.util.List;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.holders.SkillHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.skills.SkillCaster;
/**
* @author Mobius
*/
public class CallRandomSkill extends AbstractEffect
{
private final List<SkillHolder> _skills = new ArrayList<>();
public CallRandomSkill(StatsSet params)
{
final String skills = params.getString("skills", null);
if (skills != null)
{
for (String skill : skills.split(";"))
{
_skills.add(new SkillHolder(Integer.parseInt(skill.split(",")[0]), Integer.parseInt(skill.split(",")[1])));
}
}
}
@Override
public boolean isInstant()
{
return true;
}
@Override
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
{
SkillCaster.triggerCast(effector, effected, _skills.get(Rnd.get(_skills.size())).getSkill());
}
}

View File

@@ -37,6 +37,7 @@ Breath: Underwater breathing stat.
BuffBlock: Blocks target from receiving buffs. BuffBlock: Blocks target from receiving buffs.
CallParty: Recalls whole party. CallParty: Recalls whole party.
CallPc: Recalls a Player. CallPc: Recalls a Player.
CallRandomSkill: Triggers a random skill. (l2jmobius)
CallSkill: Triggers a specified skill. CallSkill: Triggers a specified skill.
CallSkillOnActionTime: Triggers a specified skill every given amount of time. CallSkillOnActionTime: Triggers a specified skill every given amount of time.
CallTargetParty: Recalls the whole party of the target. CallTargetParty: Recalls the whole party of the target.

View File

@@ -68,6 +68,7 @@ public final class EffectMasterHandler
EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new); EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new);
EffectHandler.getInstance().registerHandler("CallParty", CallParty::new); EffectHandler.getInstance().registerHandler("CallParty", CallParty::new);
EffectHandler.getInstance().registerHandler("CallPc", CallPc::new); EffectHandler.getInstance().registerHandler("CallPc", CallPc::new);
EffectHandler.getInstance().registerHandler("CallRandomSkill", CallRandomSkill::new);
EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new); EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new);
EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new); EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new);
EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new); EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new);

View File

@@ -0,0 +1,61 @@
/*
* This file is part of the L2J Mobius project.
*
* This program 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.
*
* This program 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 java.util.ArrayList;
import java.util.List;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.holders.SkillHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.skills.SkillCaster;
/**
* @author Mobius
*/
public class CallRandomSkill extends AbstractEffect
{
private final List<SkillHolder> _skills = new ArrayList<>();
public CallRandomSkill(StatsSet params)
{
final String skills = params.getString("skills", null);
if (skills != null)
{
for (String skill : skills.split(";"))
{
_skills.add(new SkillHolder(Integer.parseInt(skill.split(",")[0]), Integer.parseInt(skill.split(",")[1])));
}
}
}
@Override
public boolean isInstant()
{
return true;
}
@Override
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
{
SkillCaster.triggerCast(effector, effected, _skills.get(Rnd.get(_skills.size())).getSkill());
}
}

View File

@@ -37,6 +37,7 @@ Breath: Underwater breathing stat.
BuffBlock: Blocks target from receiving buffs. BuffBlock: Blocks target from receiving buffs.
CallParty: Recalls whole party. CallParty: Recalls whole party.
CallPc: Recalls a Player. CallPc: Recalls a Player.
CallRandomSkill: Triggers a random skill. (l2jmobius)
CallSkill: Triggers a specified skill. CallSkill: Triggers a specified skill.
CallSkillOnActionTime: Triggers a specified skill every given amount of time. CallSkillOnActionTime: Triggers a specified skill every given amount of time.
CallTargetParty: Recalls the whole party of the target. CallTargetParty: Recalls the whole party of the target.

View File

@@ -67,6 +67,7 @@ public final class EffectMasterHandler
EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new); EffectHandler.getInstance().registerHandler("BuffBlock", BuffBlock::new);
EffectHandler.getInstance().registerHandler("CallParty", CallParty::new); EffectHandler.getInstance().registerHandler("CallParty", CallParty::new);
EffectHandler.getInstance().registerHandler("CallPc", CallPc::new); EffectHandler.getInstance().registerHandler("CallPc", CallPc::new);
EffectHandler.getInstance().registerHandler("CallRandomSkill", CallRandomSkill::new);
EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new); EffectHandler.getInstance().registerHandler("CallSkill", CallSkill::new);
EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new); EffectHandler.getInstance().registerHandler("CallSkillOnActionTime", CallSkillOnActionTime::new);
EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new); EffectHandler.getInstance().registerHandler("CallTargetParty", CallTargetParty::new);

View File

@@ -0,0 +1,61 @@
/*
* This file is part of the L2J Mobius project.
*
* This program 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.
*
* This program 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 java.util.ArrayList;
import java.util.List;
import com.l2jmobius.commons.util.Rnd;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Character;
import com.l2jmobius.gameserver.model.effects.AbstractEffect;
import com.l2jmobius.gameserver.model.holders.SkillHolder;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.skills.SkillCaster;
/**
* @author Mobius
*/
public class CallRandomSkill extends AbstractEffect
{
private final List<SkillHolder> _skills = new ArrayList<>();
public CallRandomSkill(StatsSet params)
{
final String skills = params.getString("skills", null);
if (skills != null)
{
for (String skill : skills.split(";"))
{
_skills.add(new SkillHolder(Integer.parseInt(skill.split(",")[0]), Integer.parseInt(skill.split(",")[1])));
}
}
}
@Override
public boolean isInstant()
{
return true;
}
@Override
public void instant(L2Character effector, L2Character effected, Skill skill, L2ItemInstance item)
{
SkillCaster.triggerCast(effector, effected, _skills.get(Rnd.get(_skills.size())).getSkill());
}
}

View File

@@ -36,6 +36,7 @@ Breath: Underwater breathing stat.
BuffBlock: Blocks target from receiving buffs. BuffBlock: Blocks target from receiving buffs.
CallParty: Recalls whole party. CallParty: Recalls whole party.
CallPc: Recalls a Player. CallPc: Recalls a Player.
CallRandomSkill: Triggers a random skill. (l2jmobius)
CallSkill: Triggers a specified skill. CallSkill: Triggers a specified skill.
CallSkillOnActionTime: Triggers a specified skill every given amount of time. CallSkillOnActionTime: Triggers a specified skill every given amount of time.
CallTargetParty: Recalls the whole party of the target. CallTargetParty: Recalls the whole party of the target.