From c67e5f29e288aa40ae7e0695d6794f4ceb5d0492 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Sat, 15 Aug 2020 16:46:56 +0000 Subject: [PATCH] Skill target related improvements. --- .../gameserver/handler/ISkillHandler.java | 4 +- .../handler/skillhandlers/BalanceLife.java | 4 +- .../handler/skillhandlers/BeastFeed.java | 7 +- .../handler/skillhandlers/Blow.java | 7 +- .../handler/skillhandlers/Charge.java | 3 +- .../handler/skillhandlers/ClanGate.java | 5 +- .../skillhandlers/CombatPointHeal.java | 6 +- .../handler/skillhandlers/Continuous.java | 4 +- .../handler/skillhandlers/CpDam.java | 4 +- .../handler/skillhandlers/Craft.java | 5 +- .../handler/skillhandlers/DeluxeKey.java | 6 +- .../handler/skillhandlers/Disablers.java | 10 +- .../handler/skillhandlers/DrainSoul.java | 6 +- .../handler/skillhandlers/Fishing.java | 5 +- .../handler/skillhandlers/FishingSkill.java | 5 +- .../handler/skillhandlers/GetPlayer.java | 4 +- .../handler/skillhandlers/GiveSp.java | 4 +- .../handler/skillhandlers/Harvest.java | 5 +- .../handler/skillhandlers/Heal.java | 4 +- .../handler/skillhandlers/ManaHeal.java | 23 +- .../handler/skillhandlers/Manadam.java | 4 +- .../handler/skillhandlers/Mdam.java | 4 +- .../handler/skillhandlers/Pdam.java | 2 +- .../handler/skillhandlers/Recall.java | 4 +- .../handler/skillhandlers/Resurrect.java | 2 +- .../handler/skillhandlers/SiegeFlag.java | 5 +- .../gameserver/handler/skillhandlers/Sow.java | 17 +- .../handler/skillhandlers/Spoil.java | 4 +- .../skillhandlers/StrSiegeAssault.java | 4 +- .../handler/skillhandlers/SummonFriend.java | 4 +- .../skillhandlers/SummonTreasureKey.java | 4 +- .../handler/skillhandlers/Sweep.java | 4 +- .../handler/skillhandlers/TakeCastle.java | 9 +- .../handler/skillhandlers/Unlock.java | 6 +- .../handler/skillhandlers/ZakenPlayer.java | 122 +++--- .../handler/skillhandlers/ZakenSelf.java | 122 +++--- .../gameserver/model/ChanceSkillList.java | 5 +- .../org/l2jmobius/gameserver/model/Skill.java | 362 ++++++----------- .../gameserver/model/actor/Creature.java | 51 +-- .../model/actor/instance/CubicInstance.java | 25 +- .../actor/instance/TamedBeastInstance.java | 8 +- .../gameserver/model/items/Weapon.java | 4 +- .../skills/effects/EffectSignetMDam.java | 2 +- .../model/skills/handlers/SkillCharge.java | 4 +- .../model/skills/handlers/SkillChargeDmg.java | 4 +- .../skills/handlers/SkillChargeEffect.java | 4 +- .../skills/handlers/SkillCreateItem.java | 5 +- .../model/skills/handlers/SkillDefault.java | 5 +- .../model/skills/handlers/SkillDrain.java | 8 +- .../model/skills/handlers/SkillElemental.java | 4 +- .../model/skills/handlers/SkillSeed.java | 4 +- .../model/skills/handlers/SkillSignet.java | 5 +- .../skills/handlers/SkillSignetCasttime.java | 5 +- .../model/skills/handlers/SkillSummon.java | 8 +- .../serverpackets/MagicSkillLaunched.java | 17 +- .../gameserver/handler/ISkillHandler.java | 4 +- .../handler/skillhandlers/BalanceLife.java | 4 +- .../handler/skillhandlers/BeastFeed.java | 7 +- .../handler/skillhandlers/Blow.java | 7 +- .../handler/skillhandlers/Charge.java | 3 +- .../handler/skillhandlers/ClanGate.java | 5 +- .../skillhandlers/CombatPointHeal.java | 6 +- .../handler/skillhandlers/Continuous.java | 4 +- .../handler/skillhandlers/CpDam.java | 4 +- .../handler/skillhandlers/Craft.java | 5 +- .../handler/skillhandlers/DeluxeKey.java | 6 +- .../handler/skillhandlers/Disablers.java | 10 +- .../handler/skillhandlers/DrainSoul.java | 6 +- .../handler/skillhandlers/Fishing.java | 5 +- .../handler/skillhandlers/FishingSkill.java | 5 +- .../handler/skillhandlers/GetPlayer.java | 4 +- .../handler/skillhandlers/GiveSp.java | 4 +- .../handler/skillhandlers/Harvest.java | 5 +- .../handler/skillhandlers/Heal.java | 4 +- .../handler/skillhandlers/ManaHeal.java | 23 +- .../handler/skillhandlers/Manadam.java | 4 +- .../handler/skillhandlers/Mdam.java | 4 +- .../handler/skillhandlers/Pdam.java | 2 +- .../handler/skillhandlers/Recall.java | 4 +- .../handler/skillhandlers/Resurrect.java | 2 +- .../handler/skillhandlers/SiegeFlag.java | 5 +- .../gameserver/handler/skillhandlers/Sow.java | 17 +- .../handler/skillhandlers/Spoil.java | 4 +- .../skillhandlers/StrSiegeAssault.java | 4 +- .../handler/skillhandlers/SummonFriend.java | 4 +- .../skillhandlers/SummonTreasureKey.java | 4 +- .../handler/skillhandlers/Sweep.java | 4 +- .../handler/skillhandlers/TakeCastle.java | 9 +- .../handler/skillhandlers/Unlock.java | 6 +- .../handler/skillhandlers/ZakenPlayer.java | 122 +++--- .../handler/skillhandlers/ZakenSelf.java | 122 +++--- .../gameserver/model/ChanceSkillList.java | 5 +- .../org/l2jmobius/gameserver/model/Skill.java | 363 ++++++------------ .../gameserver/model/actor/Creature.java | 51 +-- .../model/actor/instance/CubicInstance.java | 25 +- .../actor/instance/TamedBeastInstance.java | 8 +- .../gameserver/model/items/Weapon.java | 4 +- .../skills/effects/EffectSignetMDam.java | 2 +- .../model/skills/handlers/SkillCharge.java | 4 +- .../model/skills/handlers/SkillChargeDmg.java | 4 +- .../skills/handlers/SkillChargeEffect.java | 4 +- .../skills/handlers/SkillCreateItem.java | 5 +- .../model/skills/handlers/SkillDefault.java | 5 +- .../model/skills/handlers/SkillDrain.java | 8 +- .../model/skills/handlers/SkillElemental.java | 4 +- .../model/skills/handlers/SkillSeed.java | 4 +- .../model/skills/handlers/SkillSignet.java | 5 +- .../skills/handlers/SkillSignetCasttime.java | 5 +- .../model/skills/handlers/SkillSummon.java | 8 +- .../serverpackets/MagicSkillLaunched.java | 17 +- 110 files changed, 957 insertions(+), 980 deletions(-) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/ISkillHandler.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/ISkillHandler.java index f6ae0c4f27..037b03a3a4 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/ISkillHandler.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/ISkillHandler.java @@ -17,10 +17,10 @@ package org.l2jmobius.gameserver.handler; import java.io.IOException; +import java.util.List; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; public interface ISkillHandler @@ -32,7 +32,7 @@ public interface ISkillHandler * @param targets * @throws IOException */ - void useSkill(Creature creature, Skill skill, WorldObject[] targets) throws IOException; + void useSkill(Creature creature, Skill skill, List targets) throws IOException; /** * this method is called at initialization to register all the item ids automatically diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/BalanceLife.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/BalanceLife.java index 2df9015856..86a86d5b53 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/BalanceLife.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/BalanceLife.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.handler.SkillHandler; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; @@ -37,7 +39,7 @@ public class BalanceLife implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { // check for other effects try diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/BeastFeed.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/BeastFeed.java index 2ef89c32aa..a659dc38e2 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/BeastFeed.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/BeastFeed.java @@ -16,10 +16,11 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -34,14 +35,14 @@ public class BeastFeed implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { return; } - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Blow.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Blow.java index 0029cc78b3..5a60bd88d4 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Blow.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Blow.java @@ -16,13 +16,14 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.Config; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -49,7 +50,7 @@ public class Blow implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (creature.isAlikeDead()) { @@ -61,7 +62,7 @@ public class Blow implements ISkillHandler final boolean ss = creature.checkSs(); Formulas.getInstance(); - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if (target.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Charge.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Charge.java index 1c5c769431..5180290250 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Charge.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Charge.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.gameserver.handler.ISkillHandler; @@ -36,7 +37,7 @@ public class Charge implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { for (WorldObject target1 : targets) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ClanGate.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ClanGate.java index 10ea4d6697..a513be56df 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ClanGate.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ClanGate.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.CastleManager; @@ -23,7 +25,6 @@ import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.clan.Clan; @@ -40,7 +41,7 @@ public class ClanGate implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { PlayerInstance player = null; if (creature instanceof PlayerInstance) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/CombatPointHeal.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/CombatPointHeal.java index 3984aca066..f7be887613 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/CombatPointHeal.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/CombatPointHeal.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.handler.SkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -35,7 +37,7 @@ public class CombatPointHeal implements ISkillHandler }; @Override - public void useSkill(Creature actChar, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { // check for other effects try @@ -43,7 +45,7 @@ public class CombatPointHeal implements ISkillHandler final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(SkillType.BUFF); if (handler != null) { - handler.useSkill(actChar, skill, targets); + handler.useSkill(creature, skill, targets); } } catch (Exception e) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Continuous.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Continuous.java index 867b5e8965..630d612950 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Continuous.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Continuous.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; // @@ -64,7 +66,7 @@ public class Continuous implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skillValue, WorldObject[] targets) + public void useSkill(Creature creature, Skill skillValue, List targets) { if (creature == null) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/CpDam.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/CpDam.java index 715ffeb54e..10b4d5f8d8 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/CpDam.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/CpDam.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; @@ -36,7 +38,7 @@ public class CpDam implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof Playable)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Craft.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Craft.java index 147799cd80..f408867db0 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Craft.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Craft.java @@ -16,11 +16,12 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.RecipeController; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -34,7 +35,7 @@ public class Craft implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/DeluxeKey.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/DeluxeKey.java index e6336c8876..83b81eea0a 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/DeluxeKey.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/DeluxeKey.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -38,14 +38,14 @@ public class DeluxeKey implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { return; } - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Disablers.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Disablers.java index 050224cedc..0eabe67723 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Disablers.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Disablers.java @@ -80,7 +80,7 @@ public class Disablers implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { final SkillType type = skill.getSkillType(); final boolean bss = creature.checkBss(); @@ -671,10 +671,10 @@ public class Disablers implements ISkillHandler LOGGER.warning("Couldn't find skill handler for HEAL."); continue; } - final WorldObject[] tgts = new WorldObject[] - { - target - }; + + final List tgts = new ArrayList<>(); + tgts.add(target); + try { healhandler.useSkill(creature, skill, tgts); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/DrainSoul.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/DrainSoul.java index c764b616e3..9b0f9da7ef 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/DrainSoul.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/DrainSoul.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -37,14 +37,14 @@ public class DrainSoul implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { return; } - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Fishing.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Fishing.java index 74bacfae29..572966cfce 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Fishing.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Fishing.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.Config; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.datatables.xml.ZoneData; @@ -24,7 +26,6 @@ import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; @@ -46,7 +47,7 @@ public class Fishing implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/FishingSkill.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/FishingSkill.java index fa6af71974..5ce473bf0b 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/FishingSkill.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/FishingSkill.java @@ -16,11 +16,12 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Fishing; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.items.Weapon; @@ -39,7 +40,7 @@ public class FishingSkill implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/GetPlayer.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/GetPlayer.java index f026c929f3..db960f5dfe 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/GetPlayer.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/GetPlayer.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -33,7 +35,7 @@ public class GetPlayer implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/GiveSp.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/GiveSp.java index 5a853b6b8e..04abd145c4 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/GiveSp.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/GiveSp.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; @@ -33,7 +35,7 @@ public class GiveSp implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { for (WorldObject obj : targets) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Harvest.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Harvest.java index 14dab71875..c3ff361224 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Harvest.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Harvest.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.Config; @@ -49,7 +50,7 @@ public class Harvest implements ISkillHandler private MonsterInstance _target; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { @@ -58,7 +59,7 @@ public class Harvest implements ISkillHandler _player = (PlayerInstance) creature; - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); final InventoryUpdate iu = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); if (targetList == null) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Heal.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Heal.java index e1d756f4b6..1ce73bbae8 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Heal.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Heal.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.handler.SkillHandler; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; @@ -43,7 +45,7 @@ public class Heal implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { PlayerInstance player = null; if (creature instanceof PlayerInstance) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ManaHeal.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ManaHeal.java index a4d7b1ff53..72ece8d985 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ManaHeal.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ManaHeal.java @@ -16,10 +16,11 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.Stat; @@ -37,9 +38,9 @@ public class ManaHeal implements ISkillHandler }; @Override - public void useSkill(Creature actChar, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if ((target == null) || target.isDead() || target.isInvul()) { @@ -62,10 +63,10 @@ public class ManaHeal implements ISkillHandler sump.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp()); target.sendPacket(sump); - if ((actChar instanceof PlayerInstance) && (actChar != target)) + if ((creature instanceof PlayerInstance) && (creature != target)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_MP_HAS_BEEN_RESTORED_BY_S1); - sm.addString(actChar.getName()); + sm.addString(creature.getName()); sm.addNumber((int) mp); target.sendPacket(sm); } @@ -79,20 +80,20 @@ public class ManaHeal implements ISkillHandler if (skill.isMagic() && skill.useSpiritShot()) { - if (actChar.checkBss()) + if (creature.checkBss()) { - actChar.removeBss(); + creature.removeBss(); } - if (actChar.checkSps()) + if (creature.checkSps()) { - actChar.removeSps(); + creature.removeSps(); } } else if (skill.useSoulShot()) { - if (actChar.checkSs()) + if (creature.checkSs()) { - actChar.removeSs(); + creature.removeSs(); } } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Manadam.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Manadam.java index 63b028a661..220f7e1ffc 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Manadam.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Manadam.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; @@ -41,7 +43,7 @@ public class Manadam implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { Creature target = null; if (creature.isAlikeDead()) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java index c19e86b32d..8452ae1cec 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; @@ -37,7 +39,7 @@ public class Mdam implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java index 26404aaeed..eaf1c6a75e 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java @@ -50,7 +50,7 @@ public class Pdam implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Recall.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Recall.java index 596ede7f19..af0347e6d0 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Recall.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Recall.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.enums.TeleportWhereType; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; @@ -40,7 +42,7 @@ public class Recall implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { try { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Resurrect.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Resurrect.java index c06680a84e..d8b627e0c7 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Resurrect.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Resurrect.java @@ -39,7 +39,7 @@ public class Resurrect implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { PlayerInstance player = null; if (creature instanceof PlayerInstance) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SiegeFlag.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SiegeFlag.java index 3b61e6c448..493f73400b 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SiegeFlag.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SiegeFlag.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.CastleManager; @@ -25,7 +27,6 @@ import org.l2jmobius.gameserver.instancemanager.IdManager; import org.l2jmobius.gameserver.instancemanager.SiegeManager; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.SiegeFlagInstance; @@ -44,7 +45,7 @@ public class SiegeFlag implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Sow.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Sow.java index 341d4c0e64..5ccc511c29 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Sow.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Sow.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.commons.util.Rnd; @@ -24,7 +25,6 @@ import org.l2jmobius.gameserver.datatables.xml.ManorSeedData; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -50,7 +50,7 @@ public class Sow implements ISkillHandler private int _seedId; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { @@ -59,20 +59,21 @@ public class Sow implements ISkillHandler _player = (PlayerInstance) creature; - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; } - for (int index = 0; index < targetList.length; index++) + for (@SuppressWarnings("unused") + Creature element : targetList) { - if (!(targetList[0] instanceof MonsterInstance)) + if (!(targetList.get(0) instanceof MonsterInstance)) { continue; } - _target = (MonsterInstance) targetList[0]; + _target = (MonsterInstance) targetList.get(0); if (_target.isSeeded()) { _player.sendPacket(ActionFailed.STATIC_PACKET); @@ -104,6 +105,7 @@ public class Sow implements ISkillHandler _player.sendPacket(ActionFailed.STATIC_PACKET); break; } + // Consuming used seed _player.destroyItem("Consume", item.getObjectId(), 1, null, false); SystemMessage sm = null; @@ -126,7 +128,8 @@ public class Sow implements ISkillHandler { _player.getParty().broadcastToPartyMembers(sm); } - // TODO: Mob should not agro on player, this way doesn't work really nice + + // TODO: Mob should not aggro on player, this way doesn't work really nice _target.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Spoil.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Spoil.java index cb8bd20125..dcd80102de 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Spoil.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Spoil.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.ai.CtrlEvent; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -39,7 +41,7 @@ public class Spoil implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/StrSiegeAssault.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/StrSiegeAssault.java index 209d767615..86ade0f72c 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/StrSiegeAssault.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/StrSiegeAssault.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.FortManager; @@ -43,7 +45,7 @@ public class StrSiegeAssault implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonFriend.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonFriend.java index bb114e8b94..7e121cebf6 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonFriend.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonFriend.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.model.Skill; @@ -41,7 +43,7 @@ public class SummonFriend implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonTreasureKey.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonTreasureKey.java index 6d3fdb4545..cdaabcd685 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonTreasureKey.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonTreasureKey.java @@ -16,13 +16,13 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -38,7 +38,7 @@ public class SummonTreasureKey implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Sweep.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Sweep.java index ac83e9c795..9228e4a3b0 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Sweep.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Sweep.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.Config; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -41,7 +43,7 @@ public class Sweep implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/TakeCastle.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/TakeCastle.java index e569e7ed45..8567293874 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/TakeCastle.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/TakeCastle.java @@ -16,12 +16,13 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.FortManager; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.ArtefactInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -40,7 +41,7 @@ public class TakeCastle implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { @@ -77,9 +78,9 @@ public class TakeCastle implements ISkillHandler try { - if ((castle != null) && (targets[0] instanceof ArtefactInstance)) + if ((castle != null) && (targets.get(0) instanceof ArtefactInstance)) { - castle.Engrave(player.getClan(), targets[0].getObjectId()); + castle.Engrave(player.getClan(), targets.get(0).getObjectId()); } else if (fort != null) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Unlock.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Unlock.java index a91d132a96..98e23aa3dd 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Unlock.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/Unlock.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.ISkillHandler; @@ -39,9 +41,9 @@ public class Unlock implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenPlayer.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenPlayer.java index 3d686b6495..9195dadbbb 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenPlayer.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenPlayer.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -31,7 +33,7 @@ public class ZakenPlayer implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { try { @@ -41,59 +43,75 @@ public class ZakenPlayer implements ISkillHandler { continue; } + final Creature target = (Creature) target1; - final int ch = (Rnd.get(14) + 1); - if (ch == 1) + switch (Rnd.get(14) + 1) { - target.teleToLocation(55299, 219120, -2952, true); - } - else if (ch == 2) - { - target.teleToLocation(56363, 218043, -2952, true); - } - else if (ch == 3) - { - target.teleToLocation(54245, 220162, -2952, true); - } - else if (ch == 4) - { - target.teleToLocation(56289, 220126, -2952, true); - } - else if (ch == 5) - { - target.teleToLocation(55299, 219120, -3224, true); - } - else if (ch == 6) - { - target.teleToLocation(56363, 218043, -3224, true); - } - else if (ch == 7) - { - target.teleToLocation(54245, 220162, -3224, true); - } - else if (ch == 8) - { - target.teleToLocation(56289, 220126, -3224, true); - } - else if (ch == 9) - { - target.teleToLocation(55299, 219120, -3496, true); - } - else if (ch == 10) - { - target.teleToLocation(56363, 218043, -3496, true); - } - else if (ch == 11) - { - target.teleToLocation(54245, 220162, -3496, true); - } - else if (ch == 12) - { - target.teleToLocation(56289, 220126, -3496, true); - } - else - { - target.teleToLocation(53930, 217760, -2944, true); + case 1: + { + target.teleToLocation(55299, 219120, -2952, true); + break; + } + case 2: + { + target.teleToLocation(56363, 218043, -2952, true); + break; + } + case 3: + { + target.teleToLocation(54245, 220162, -2952, true); + break; + } + case 4: + { + target.teleToLocation(56289, 220126, -2952, true); + break; + } + case 5: + { + target.teleToLocation(55299, 219120, -3224, true); + break; + } + case 6: + { + target.teleToLocation(56363, 218043, -3224, true); + break; + } + case 7: + { + target.teleToLocation(54245, 220162, -3224, true); + break; + } + case 8: + { + target.teleToLocation(56289, 220126, -3224, true); + break; + } + case 9: + { + target.teleToLocation(55299, 219120, -3496, true); + break; + } + case 10: + { + target.teleToLocation(56363, 218043, -3496, true); + break; + } + case 11: + { + target.teleToLocation(54245, 220162, -3496, true); + break; + } + case 12: + { + target.teleToLocation(56289, 220126, -3496, true); + break; + } + default: + { + target.teleToLocation(53930, 217760, -2944, true); + break; + } } } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenSelf.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenSelf.java index 85ec77af27..c3a39ae7d1 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenSelf.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenSelf.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -31,7 +33,7 @@ public class ZakenSelf implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { try { @@ -41,59 +43,75 @@ public class ZakenSelf implements ISkillHandler { continue; } + final Creature target = (Creature) target1; - final int ch = (Rnd.get(14) + 1); - if (ch == 1) + switch (Rnd.get(14) + 1) { - target.teleToLocation(55299, 219120, -2952, true); - } - else if (ch == 2) - { - target.teleToLocation(56363, 218043, -2952, true); - } - else if (ch == 3) - { - target.teleToLocation(54245, 220162, -2952, true); - } - else if (ch == 4) - { - target.teleToLocation(56289, 220126, -2952, true); - } - else if (ch == 5) - { - target.teleToLocation(55299, 219120, -3224, true); - } - else if (ch == 6) - { - target.teleToLocation(56363, 218043, -3224, true); - } - else if (ch == 7) - { - target.teleToLocation(54245, 220162, -3224, true); - } - else if (ch == 8) - { - target.teleToLocation(56289, 220126, -3224, true); - } - else if (ch == 9) - { - target.teleToLocation(55299, 219120, -3496, true); - } - else if (ch == 10) - { - target.teleToLocation(56363, 218043, -3496, true); - } - else if (ch == 11) - { - target.teleToLocation(54245, 220162, -3496, true); - } - else if (ch == 12) - { - target.teleToLocation(56289, 220126, -3496, true); - } - else - { - target.teleToLocation(53930, 217760, -2944, true); + case 1: + { + target.teleToLocation(55299, 219120, -2952, true); + break; + } + case 2: + { + target.teleToLocation(56363, 218043, -2952, true); + break; + } + case 3: + { + target.teleToLocation(54245, 220162, -2952, true); + break; + } + case 4: + { + target.teleToLocation(56289, 220126, -2952, true); + break; + } + case 5: + { + target.teleToLocation(55299, 219120, -3224, true); + break; + } + case 6: + { + target.teleToLocation(56363, 218043, -3224, true); + break; + } + case 7: + { + target.teleToLocation(54245, 220162, -3224, true); + break; + } + case 8: + { + target.teleToLocation(56289, 220126, -3224, true); + break; + } + case 9: + { + target.teleToLocation(55299, 219120, -3496, true); + break; + } + case 10: + { + target.teleToLocation(56363, 218043, -3496, true); + break; + } + case 11: + { + target.teleToLocation(54245, 220162, -3496, true); + break; + } + case 12: + { + target.teleToLocation(56289, 220126, -3496, true); + break; + } + default: + { + target.teleToLocation(53930, 217760, -2944, true); + break; + } } } } diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/ChanceSkillList.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/ChanceSkillList.java index ed233bdde2..091b5d7e56 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/ChanceSkillList.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/ChanceSkillList.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.model; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.handler.ISkillHandler; @@ -156,9 +157,9 @@ public class ChanceSkillList extends ConcurrentHashMap } final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(castedSkill.getSkillType()); - final WorldObject[] targets = castedSkill.getTargetList(_owner, false, target); + final List targets = castedSkill.getTargetList(_owner, false, target); _owner.broadcastPacket(new MagicSkillLaunched(_owner, castedSkill.getDisplayId(), castedSkill.getLevel(), targets)); - _owner.broadcastPacket(new MagicSkillUse(_owner, (Creature) targets[0], castedSkill.getDisplayId(), castedSkill.getLevel(), 0, 0)); + _owner.broadcastPacket(new MagicSkillUse(_owner, targets.get(0), castedSkill.getDisplayId(), castedSkill.getLevel(), 0, 0)); // Launch the magic skill and calculate its effects if (handler != null) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/Skill.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/Skill.java index dd78f07f7f..c1c677f49e 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/Skill.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/Skill.java @@ -648,7 +648,7 @@ public abstract class Skill _isDebuff = set.getBoolean("isDebuff", false); } - public abstract void useSkill(Creature caster, WorldObject[] targets); + public abstract void useSkill(Creature caster, List targets); public boolean isSingleEffect() { @@ -1373,7 +1373,7 @@ public abstract class Skill return true; } - public WorldObject[] getTargetList(Creature creature, boolean onlyFirst) + public List getTargetList(Creature creature, boolean onlyFirst) { // Init to null the target of the skill Creature target = null; @@ -1408,7 +1408,7 @@ public abstract class Skill * @param targetCreature * @return */ - public WorldObject[] getTargetList(Creature creature, boolean onlyFirst, Creature targetCreature) + public List getTargetList(Creature creature, boolean onlyFirst, Creature targetCreature) { // to avoid attacks during oly start period if ((creature instanceof PlayerInstance) && _isOffensive && (((PlayerInstance) creature).isInOlympiadMode() && !((PlayerInstance) creature).isOlympiadStart())) @@ -1420,10 +1420,8 @@ public abstract class Skill final List targetList = new ArrayList<>(); if (_ispotion) { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } Creature target = targetCreature; @@ -1528,27 +1526,21 @@ public abstract class Skill } // If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } case TARGET_SELF: case TARGET_GROUND: { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } case TARGET_HOLY: { if ((creature instanceof PlayerInstance) && (creature.getTarget() instanceof ArtefactInstance)) { - return new Creature[] - { - (ArtefactInstance) creature.getTarget() - }; + targetList.add((ArtefactInstance) creature.getTarget()); + return targetList; } return null; } @@ -1558,10 +1550,8 @@ public abstract class Skill target = creature.getPet(); if ((target != null) && !target.isDead()) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } return null; } @@ -1572,10 +1562,8 @@ public abstract class Skill target = ((Summon) creature).getOwner(); if ((target != null) && !target.isDead()) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } } return null; @@ -1587,10 +1575,8 @@ public abstract class Skill target = creature.getPet(); if ((target != null) && target.isDead()) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } } return null; @@ -1694,19 +1680,14 @@ public abstract class Skill { continue; } - if (!onlyFirst) + + targetList.add(nearby); + if (onlyFirst) { - targetList.add(nearby); - } - else - { - return new Creature[] - { - nearby - }; + return targetList; } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_AREA: { @@ -1717,27 +1698,22 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } + Creature cha; if (_castRange >= 0) { cha = target; - if (!onlyFirst) + targetList.add(cha); + if (onlyFirst) { - targetList.add(cha); // Add target to target list - } - else - { - return new Creature[] - { - cha - }; + return targetList; } } else { cha = creature; } - final boolean effectOriginIsPlayableInstance = cha instanceof Playable; + PlayerInstance src = null; if (creature instanceof PlayerInstance) { @@ -1747,6 +1723,7 @@ public abstract class Skill { src = ((Summon) creature).getOwner(); } + final int radius = _skillRadius; final boolean srcInArena = creature.isInsideZone(ZoneId.PVP) && !creature.isInsideZone(ZoneId.SIEGE); for (WorldObject obj : creature.getKnownList().getKnownObjects().values()) @@ -1767,22 +1744,24 @@ public abstract class Skill { continue; } + if (_isOffensive && Creature.isInsidePeaceZone(creature, obj)) + { + continue; + } + if (!GeoEngine.getInstance().canSeeTarget(creature, obj)) + { + continue; + } + target = (Creature) obj; - if (!GeoEngine.getInstance().canSeeTarget(creature, target)) - { - continue; - } - if (_isOffensive && Creature.isInsidePeaceZone(creature, target)) - { - continue; - } if (!target.isAlikeDead() && (target != creature)) { if (!Util.checkIfInRange(radius, obj, cha, true)) { continue; } - if (src != null) // caster is l2playableinstance and exists + + if (src != null) // caster is a playable instance and exists { // check for Events if (obj instanceof PlayerInstance) @@ -1813,6 +1792,13 @@ public abstract class Skill continue; } } + + // Summon AOE skills should not target non attackable players. + if (obj.isPlayable() && !creature.isPlayer() && !obj.isAutoAttackable(creature)) + { + continue; + } + if (obj instanceof PlayerInstance) { final PlayerInstance trg = (PlayerInstance) obj; @@ -1844,7 +1830,7 @@ public abstract class Skill } } } - if (obj instanceof Summon) + else if (obj instanceof Summon) { final PlayerInstance trg = ((Summon) obj).getOwner(); if (trg == null) @@ -1876,11 +1862,7 @@ public abstract class Skill } } } - else if (effectOriginIsPlayableInstance && // If effect starts at PlayableInstance and - !(obj instanceof Playable)) - { - continue; - } + targetList.add((Creature) obj); } } @@ -1888,7 +1870,7 @@ public abstract class Skill { return null; } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_MULTIFACE: { @@ -1897,17 +1879,13 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } - if (!onlyFirst) + + targetList.add(target); + if (onlyFirst) { - targetList.add(target); - } - else - { - return new Creature[] - { - target - }; + return targetList; } + final int radius = _skillRadius; PlayerInstance src = null; if (creature instanceof PlayerInstance) @@ -1970,26 +1948,22 @@ public abstract class Skill return null; } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; // TODO multiface targets all around right now. need it to just get targets the character is facing. } case TARGET_PARTY: { + targetList.add(creature); if (onlyFirst) { - return new Creature[] - { - creature - }; + return targetList; } - targetList.add(creature); + final PlayerInstance player = creature.getActingPlayer(); if (player == null) { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } if (creature instanceof Summon) { @@ -2059,17 +2033,15 @@ public abstract class Skill } } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_PARTY_MEMBER: { if ((target != null) && !target.isDead() && ((target == creature) || ((creature.getParty() != null) && (target.getParty() != null) && (creature.getParty().getPartyLeaderOID() == target.getParty().getPartyLeaderOID())) || (creature.getPet() == target) || (creature == target.getPet()))) { // If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; @@ -2079,10 +2051,8 @@ public abstract class Skill if ((target != creature) && (target != null) && !target.isDead() && (creature.getParty() != null) && (target.getParty() != null) && (creature.getParty().getPartyLeaderOID() == target.getParty().getPartyLeaderOID())) { // If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; @@ -2098,22 +2068,15 @@ public abstract class Skill if (_targetType != SkillTargetType.TARGET_CORPSE_ALLY) // if corpose, the caster is not included { if (player.isInOlympiadMode()) - { - return new Creature[] - { - player - }; - } - if (!onlyFirst) { targetList.add(player); + return targetList; } - else + + targetList.add(player); + if (onlyFirst) { - return new Creature[] - { - player - }; + return targetList; } } PlayerInstance src = null; @@ -2191,21 +2154,16 @@ public abstract class Skill { continue; } - if (!onlyFirst) + + targetList.add((Creature) newTarget); + if (onlyFirst) { - targetList.add((Creature) newTarget); - } - else - { - return new Creature[] - { - (Creature) newTarget - }; + return targetList; } } } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_CORPSE_CLAN: case TARGET_CLAN: @@ -2218,22 +2176,15 @@ public abstract class Skill if (_targetType != SkillTargetType.TARGET_CORPSE_CLAN) { if (player.isInOlympiadMode()) - { - return new Creature[] - { - player - }; - } - if (!onlyFirst) { targetList.add(player); + return targetList; } - else + + targetList.add(player); + if (onlyFirst) { - return new Creature[] - { - player - }; + return targetList; } } if (clan != null) @@ -2286,16 +2237,11 @@ public abstract class Skill { continue; } - if (!onlyFirst) + + targetList.add(newTarget); + if (onlyFirst) { - targetList.add(newTarget); - } - else - { - return new Creature[] - { - newTarget - }; + return targetList; } } } @@ -2306,10 +2252,8 @@ public abstract class Skill final NpcInstance npc = (NpcInstance) creature; if ((npc.getFactionId() == null) || npc.getFactionId().isEmpty()) { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } targetList.add(creature); final Collection objs = creature.getKnownList().getKnownObjects().values(); @@ -2328,7 +2272,7 @@ public abstract class Skill } } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_CORPSE_PLAYER: { @@ -2386,15 +2330,8 @@ public abstract class Skill } if (condGood) { - if (!onlyFirst) - { - targetList.add(target); - return targetList.toArray(new WorldObject[targetList.size()]); - } - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } } } @@ -2408,15 +2345,9 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } - if (!onlyFirst) - { - targetList.add(target); - return targetList.toArray(new WorldObject[targetList.size()]); - } - return new Creature[] - { - target - }; + + targetList.add(target); + return targetList; } case TARGET_AREA_CORPSE_MOB: { @@ -2425,17 +2356,13 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } - if (!onlyFirst) + + targetList.add(target); + if (onlyFirst) { - targetList.add(target); - } - else - { - return new Creature[] - { - target - }; + return targetList; } + final boolean srcInArena = creature.isInsideZone(ZoneId.PVP) && !creature.isInsideZone(ZoneId.SIEGE); PlayerInstance src = null; if (creature instanceof PlayerInstance) @@ -2536,7 +2463,7 @@ public abstract class Skill { return null; } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_UNLOCKABLE: { @@ -2546,15 +2473,9 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.INVALID_TARGET)); return null; } - if (!onlyFirst) - { - targetList.add(target); - return targetList.toArray(new WorldObject[targetList.size()]); - } - return new Creature[] - { - target - }; + + targetList.add(target); + return targetList; } case TARGET_ITEM: { @@ -2570,18 +2491,9 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } - if (!onlyFirst) - { - targetList.add(target); - } - else - { - return new Creature[] - { - target - }; - } - return targetList.toArray(new WorldObject[targetList.size()]); + + targetList.add(target); + return targetList; } creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; @@ -2593,16 +2505,10 @@ public abstract class Skill if ((_castRange >= 0) && ((target instanceof NpcInstance) || (target instanceof SummonInstance)) && target.isUndead() && !target.isAlikeDead()) { cha = target; - if (!onlyFirst) + targetList.add(cha); + if (onlyFirst) { - targetList.add(cha); // Add target to target list - } - else - { - return new Creature[] - { - cha - }; + return targetList; } } else @@ -2643,16 +2549,11 @@ public abstract class Skill { continue; } - if (!onlyFirst) + + targetList.add((Creature) obj); + if (onlyFirst) { - targetList.add((Creature) obj); // Add obj to target lists - } - else - { - return new Creature[] - { - (Creature) obj - }; + return targetList; } } } @@ -2661,7 +2562,7 @@ public abstract class Skill { return null; } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_ENEMY_SUMMON: { @@ -2670,10 +2571,8 @@ public abstract class Skill final Summon targetSummon = (Summon) target; if (((creature instanceof PlayerInstance) && (creature.getPet() != targetSummon) && !targetSummon.isDead() && ((targetSummon.getOwner().getPvpFlag() != 0) || (targetSummon.getOwner().getKarma() > 0))) || (targetSummon.getOwner().isInsideZone(ZoneId.PVP) && ((PlayerInstance) creature).isInsideZone(ZoneId.PVP))) { - return new Creature[] - { - targetSummon - }; + targetList.add(targetSummon); + return targetList; } } return null; @@ -2682,10 +2581,8 @@ public abstract class Skill { if ((target != null) && !target.isDead() && ((target instanceof DoorInstance) || (target instanceof ControlTowerInstance))) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } return null; } @@ -2698,10 +2595,8 @@ public abstract class Skill } if ((target instanceof MonsterInstance) && ((((MonsterInstance) target).getNpcId() == 22217) || (((MonsterInstance) target).getNpcId() == 22216) || (((MonsterInstance) target).getNpcId() == 22215))) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } return null; } @@ -2709,10 +2604,8 @@ public abstract class Skill { if ((target != null) && target.isDead()) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } return null; } @@ -2725,10 +2618,8 @@ public abstract class Skill final NpcInstance npc = (NpcInstance) creature; if ((npc.getFactionId() == null) || npc.getFactionId().isEmpty()) { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } final Collection objs = creature.getKnownList().getKnownObjects().values(); for (WorldObject newTarget : objs) @@ -2762,20 +2653,19 @@ public abstract class Skill } } - public WorldObject[] getTargetList(Creature creature) + public List getTargetList(Creature creature) { return getTargetList(creature, false); } public WorldObject getFirstOfTargetList(Creature creature) { - WorldObject[] targets; - targets = getTargetList(creature, true); - if ((targets == null) || (targets.length == 0)) + final List targets = getTargetList(creature, true); + if ((targets == null) || (targets.isEmpty())) { return null; } - return targets[0]; + return targets.get(0); } public Func[] getStatFuncs(Effect effect, Creature creature) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Creature.java index 17d9157363..2ecf3387f8 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -1500,21 +1500,21 @@ public abstract class Creature extends WorldObject implements ISkillsHolder } // Get all possible targets of the skill in a table in function of the skill target type - final WorldObject[] targets = skill.getTargetList(creature); + final List targets = skill.getTargetList(creature); // Set the target of the skill in function of Skill Type and Target Type Creature target = null; if ((skill.getTargetType() == SkillTargetType.TARGET_AURA) || (skill.getTargetType() == SkillTargetType.TARGET_GROUND) || skill.isPotion()) { target = this; } - else if ((targets == null) || (targets.length == 0)) + else if ((targets == null) || targets.isEmpty()) { getAI().notifyEvent(CtrlEvent.EVT_CANCEL); return; } else if (((skill.getSkillType() == SkillType.BUFF) || (skill.getSkillType() == SkillType.HEAL) || (skill.getSkillType() == SkillType.COMBATPOINTHEAL) || (skill.getSkillType() == SkillType.COMBATPOINTPERCENTHEAL) || (skill.getSkillType() == SkillType.MANAHEAL) || (skill.getSkillType() == SkillType.REFLECT) || (skill.getSkillType() == SkillType.SEED) || (skill.getTargetType() == SkillTargetType.TARGET_SELF) || (skill.getTargetType() == SkillTargetType.TARGET_PET) || (skill.getTargetType() == SkillTargetType.TARGET_PARTY) || (skill.getTargetType() == SkillTargetType.TARGET_CLAN) || (skill.getTargetType() == SkillTargetType.TARGET_ALLY)) && !skill.isPotion()) { - target = (Creature) targets[0]; + target = targets.get(0); } else { @@ -2910,7 +2910,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder */ class MagicUseTask implements Runnable { - WorldObject[] _targets; + List _targets; Skill _skill; int _coolTime; int _phase; @@ -2922,7 +2922,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param coolTime the cool time * @param phase the phase */ - public MagicUseTask(WorldObject[] targets, Skill skill, int coolTime, int phase) + public MagicUseTask(List targets, Skill skill, int coolTime, int phase) { _targets = targets; _skill = skill; @@ -7261,9 +7261,9 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param coolTime the cool time * @param instant the instant */ - public void onMagicLaunchedTimer(WorldObject[] targets, Skill skill, int coolTime, boolean instant) + public void onMagicLaunchedTimer(List targets, Skill skill, int coolTime, boolean instant) { - if ((skill == null) || (((targets == null) || (targets.length <= 0)) && (skill.getTargetType() != SkillTargetType.TARGET_AURA))) + if ((skill == null) || (((targets == null) || targets.isEmpty()) && (skill.getTargetType() != SkillTargetType.TARGET_AURA))) { _skillCast = null; enableAllSkills(); @@ -7282,22 +7282,22 @@ public abstract class Creature extends WorldObject implements ISkillsHolder escapeRange = skill.getSkillRadius(); } - WorldObject[] finalTargets = null; + List finalTargets = null; int skipped = 0; if (escapeRange > 0) { final List targetList = new ArrayList<>(); - for (int i = 0; (targets != null) && (i < targets.length); i++) + if (targets != null) { - if (targets[i] instanceof Creature) + for (Creature target : targets) { - if (!Util.checkIfInRange(escapeRange, this, targets[i], true)) + if (!Util.checkIfInRange(escapeRange, this, target, true)) { continue; } // Check if the target is behind a wall - if ((skill.getSkillRadius() > 0) && skill.isOffensive() && Config.PATHFINDING && !GeoEngine.getInstance().canSeeTarget(this, targets[i])) + if ((skill.getSkillRadius() > 0) && skill.isOffensive() && Config.PATHFINDING && !GeoEngine.getInstance().canSeeTarget(this, target)) { skipped++; continue; @@ -7307,19 +7307,20 @@ public abstract class Creature extends WorldObject implements ISkillsHolder { if (this instanceof PlayerInstance) { - if (((Creature) targets[i]).isInsidePeaceZone((PlayerInstance) this)) + if (target.isInsidePeaceZone((PlayerInstance) this)) { continue; } } - else if (isInsidePeaceZone(this, targets[i])) + else if (isInsidePeaceZone(this, target)) { continue; } } - targetList.add((Creature) targets[i]); + targetList.add(target); } } + if (targetList.isEmpty() && (skill.getTargetType() != SkillTargetType.TARGET_AURA)) { if (this instanceof PlayerInstance) @@ -7333,7 +7334,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder abortCast(); return; } - finalTargets = targetList.toArray(new Creature[targetList.size()]); + finalTargets = targetList; } else { @@ -7389,9 +7390,9 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param coolTime the cool time * @param instant the instant */ - public void onMagicHitTimer(WorldObject[] targets, Skill skill, int coolTime, boolean instant) + public void onMagicHitTimer(List targets, Skill skill, int coolTime, boolean instant) { - if ((skill == null) || (((targets == null) || (targets.length <= 0)) && (skill.getTargetType() != SkillTargetType.TARGET_AURA))) + if ((skill == null) || (((targets == null) || targets.isEmpty()) && (skill.getTargetType() != SkillTargetType.TARGET_AURA))) { _skillCast = null; enableAllSkills(); @@ -7422,7 +7423,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder mog.exit(true); } - final WorldObject target = targets == null ? null : targets[0]; + final WorldObject target = targets == null ? null : targets.get(0); if (target != null) { notifyQuestEventSkillFinished(skill, target); @@ -7430,10 +7431,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder return; } - final WorldObject[] targets2 = targets; + final List targets2 = targets; try { - if ((targets2 != null) && (targets2.length != 0)) + if ((targets2 != null) && !targets2.isEmpty()) { // Go through targets table for (WorldObject target2 : targets2) @@ -7561,7 +7562,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param targets the targets * @param skill the skill */ - public void onMagicFinalizer(WorldObject[] targets, Skill skill) + public void onMagicFinalizer(List targets, Skill skill) { if (skill.isPotion()) { @@ -7660,7 +7661,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder { try { - if ((targets != null) && (targets.length > 0)) + if (targets != null) { for (WorldObject target : targets) { @@ -7851,7 +7852,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param skill The Skill to use * @param targets The table of WorldObject targets */ - public void callSkill(Skill skill, WorldObject[] targets) + public void callSkill(Skill skill, List targets) { try { @@ -7860,7 +7861,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder return; } - if ((targets == null) || (targets.length == 0)) + if ((targets == null) || targets.isEmpty()) { getAI().notifyEvent(CtrlEvent.EVT_CANCEL); return; diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/CubicInstance.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/CubicInstance.java index ded08d1f69..ce8aca25e0 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/CubicInstance.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/CubicInstance.java @@ -573,10 +573,8 @@ public class CubicInstance final SkillType type = skill.getSkillType(); final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType()); - final Creature[] targets = - { - target - }; + final List targets = new ArrayList<>(); + targets.add(target); if ((type == SkillType.PARALYZE) || (type == SkillType.STUN) || (type == SkillType.ROOT) || (type == SkillType.AGGDAMAGE)) { @@ -615,9 +613,9 @@ public class CubicInstance * @param skill the skill * @param targets the targets */ - public void useCubicContinuous(CubicInstance activeCubic, Skill skill, WorldObject[] targets) + public void useCubicContinuous(CubicInstance activeCubic, Skill skill, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if ((target == null) || target.isDead()) { @@ -644,9 +642,9 @@ public class CubicInstance * @param skill the skill * @param targets the targets */ - public void useCubicMdam(CubicInstance activeCubic, Skill skill, WorldObject[] targets) + public void useCubicMdam(CubicInstance activeCubic, Skill skill, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if (target == null) { @@ -703,9 +701,9 @@ public class CubicInstance * @param skill the skill * @param targets the targets */ - public void useCubicDisabler(SkillType type, CubicInstance activeCubic, Skill skill, WorldObject[] targets) + public void useCubicDisabler(SkillType type, CubicInstance activeCubic, Skill skill, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if ((target == null) || target.isDead()) { @@ -905,10 +903,9 @@ public class CubicInstance final Creature target = _target; if ((target != null) && !target.isDead() && ((target.getMaxHp() - target.getCurrentHp()) > skill.getPower())) { - final Creature[] targets = - { - target - }; + final List targets = new ArrayList<>(); + targets.add(target); + final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType()); if (handler != null) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/TamedBeastInstance.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/TamedBeastInstance.java index 5e0dbe4181..93de27e280 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/TamedBeastInstance.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/actor/instance/TamedBeastInstance.java @@ -18,6 +18,8 @@ package org.l2jmobius.gameserver.model.actor.instance; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_IDLE; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.Future; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -424,10 +426,8 @@ public class TamedBeastInstance extends FeedableBeastInstance { final WorldObject oldTarget = owner.getTarget(); owner.setTarget(_tamedBeast); - final WorldObject[] targets = - { - _tamedBeast - }; + final List targets = new ArrayList<>(); + targets.add(_tamedBeast); // emulate a call to the owner using food, but bypass all checks for range, etc // this also causes a call to the AI tasks handling feeding, which may call onReceiveFood as required. diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/items/Weapon.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/items/Weapon.java index f30e8700d5..26f4b66fcb 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/items/Weapon.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/items/Weapon.java @@ -408,8 +408,8 @@ public class Weapon extends Item { // Get the skill handler corresponding to the skill type final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType()); - final Creature[] targets = new Creature[1]; - targets[0] = target; + final List targets = new ArrayList<>(); + targets.add(target); // Launch the magic skill and calculate its effects if (handler != null) diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/effects/EffectSignetMDam.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/effects/EffectSignetMDam.java index b49e2366bf..6ff35e9da2 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/effects/EffectSignetMDam.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/effects/EffectSignetMDam.java @@ -143,7 +143,7 @@ public class EffectSignetMDam extends Effect if (!targets.isEmpty()) { - caster.broadcastPacket(new MagicSkillLaunched(caster, getSkill().getDisplayId(), getSkill().getLevel(), targets.toArray(new Creature[targets.size()]))); + caster.broadcastPacket(new MagicSkillLaunched(caster, getSkill().getDisplayId(), getSkill().getLevel(), targets)); for (Creature target : targets) { final boolean mcrit = Formulas.calcMCrit(caster.getMCriticalHit(target, getSkill())); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCharge.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCharge.java index eba578b8d0..b14fb07bcb 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCharge.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCharge.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.WorldObject; @@ -51,7 +53,7 @@ public class SkillCharge extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeDmg.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeDmg.java index 59afc9f239..addbb8a639 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeDmg.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeDmg.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; @@ -59,7 +61,7 @@ public class SkillChargeDmg extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeEffect.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeEffect.java index 2b9713ae0e..4f19ac9933 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeEffect.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeEffect.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.WorldObject; @@ -54,7 +56,7 @@ public class SkillChargeEffect extends Skill } @Override - public void useSkill(Creature creature, WorldObject[] targets) + public void useSkill(Creature creature, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCreateItem.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCreateItem.java index d237d6d239..d48c75479f 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCreateItem.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCreateItem.java @@ -16,10 +16,11 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -40,7 +41,7 @@ public class SkillCreateItem extends Skill } @Override - public void useSkill(Creature creature, WorldObject[] targets) + public void useSkill(Creature creature, List targets) { if (creature.isAlikeDead() || (_createItemId == 0) || (_createItemCount == 0)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDefault.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDefault.java index 598d85aebc..f0e88017fe 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDefault.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDefault.java @@ -16,9 +16,10 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; @@ -30,7 +31,7 @@ public class SkillDefault extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { caster.sendPacket(ActionFailed.STATIC_PACKET); caster.sendMessage("Skill not implemented. Skill ID: " + getId() + " " + getSkillType()); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDrain.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDrain.java index 1639cce6e2..4521086991 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDrain.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDrain.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; @@ -43,7 +45,7 @@ public class SkillDrain extends Skill } @Override - public void useSkill(Creature creature, WorldObject[] targets) + public void useSkill(Creature creature, List targets) { if (creature.isAlikeDead()) { @@ -168,9 +170,9 @@ public class SkillDrain extends Skill getEffectsSelf(creature); } - public void useCubicSkill(CubicInstance activeCubic, WorldObject[] targets) + public void useCubicSkill(CubicInstance activeCubic, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if (target.isAlikeDead() && (getTargetType() != SkillTargetType.TARGET_CORPSE_MOB)) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillElemental.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillElemental.java index f24d0632d1..0edfb867b5 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillElemental.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillElemental.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; @@ -47,7 +49,7 @@ public class SkillElemental extends Skill } @Override - public void useSkill(Creature creature, WorldObject[] targets) + public void useSkill(Creature creature, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSeed.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSeed.java index e84976c85f..a58660edf8 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSeed.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSeed.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; @@ -31,7 +33,7 @@ public class SkillSeed extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignet.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignet.java index d7f28f1bac..ef21d5d739 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignet.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignet.java @@ -16,13 +16,14 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.instancemanager.IdManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.EffectPointInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -41,7 +42,7 @@ public class SkillSignet extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignetCasttime.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignetCasttime.java index 399989116a..32682ff69d 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignetCasttime.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignetCasttime.java @@ -16,9 +16,10 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; public class SkillSignetCasttime extends Skill @@ -34,7 +35,7 @@ public class SkillSignetCasttime extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSummon.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSummon.java index 30af4bc9c5..b1e93d9463 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSummon.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSummon.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.datatables.xml.ExperienceData; @@ -106,7 +108,7 @@ public class SkillSummon extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead() || !(caster instanceof PlayerInstance)) { @@ -141,7 +143,7 @@ public class SkillSummon extends Skill cubicSkillLevel = ((getLevel() - 100) / 7) + 8; } - if (targets.length > 1) // Mass cubic skill + if (targets.size() > 1) // Mass cubic skill { for (WorldObject obj : targets) { @@ -236,7 +238,7 @@ public class SkillSummon extends Skill // Check to see if we should do the decay right after the cast if (getTargetType() == SkillTargetType.TARGET_CORPSE_MOB) { - final Creature target = (Creature) targets[0]; + final Creature target = targets.get(0); if (target.isDead() && (target instanceof NpcInstance)) { summon.spawnMe(target.getX(), target.getY(), target.getZ() + 5); diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/MagicSkillLaunched.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/MagicSkillLaunched.java index 991da69092..fa73c11ef9 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/MagicSkillLaunched.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/network/serverpackets/MagicSkillLaunched.java @@ -16,6 +16,9 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; +import java.util.List; + import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; @@ -29,27 +32,25 @@ public class MagicSkillLaunched extends GameServerPacket private final int _skillId; private final int _skillLevel; private int _numberOfTargets; - private WorldObject[] _targets; + private List _targets; private final int _singleTargetId; - public MagicSkillLaunched(Creature creature, int skillId, int skillLevel, WorldObject[] targets) + public MagicSkillLaunched(Creature creature, int skillId, int skillLevel, List targets) { _objectId = creature.getObjectId(); _skillId = skillId; _skillLevel = skillLevel; + if (targets != null) { - _numberOfTargets = targets.length; + _numberOfTargets = targets.size(); _targets = targets; } else { _numberOfTargets = 1; - final WorldObject[] objs = - { - creature - }; - _targets = objs; + _targets = new ArrayList<>(); + _targets.add(creature); } _singleTargetId = 0; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/ISkillHandler.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/ISkillHandler.java index f6ae0c4f27..037b03a3a4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/ISkillHandler.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/ISkillHandler.java @@ -17,10 +17,10 @@ package org.l2jmobius.gameserver.handler; import java.io.IOException; +import java.util.List; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; public interface ISkillHandler @@ -32,7 +32,7 @@ public interface ISkillHandler * @param targets * @throws IOException */ - void useSkill(Creature creature, Skill skill, WorldObject[] targets) throws IOException; + void useSkill(Creature creature, Skill skill, List targets) throws IOException; /** * this method is called at initialization to register all the item ids automatically diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/BalanceLife.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/BalanceLife.java index f32bf5feea..09d1e57362 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/BalanceLife.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/BalanceLife.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.handler.SkillHandler; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; @@ -38,7 +40,7 @@ public class BalanceLife implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { // check for other effects try diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/BeastFeed.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/BeastFeed.java index 2ef89c32aa..a659dc38e2 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/BeastFeed.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/BeastFeed.java @@ -16,10 +16,11 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -34,14 +35,14 @@ public class BeastFeed implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { return; } - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Blow.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Blow.java index e6a6ab701f..8ade1d6bf4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Blow.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Blow.java @@ -16,13 +16,14 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.Config; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Summon; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -49,7 +50,7 @@ public class Blow implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (creature.isAlikeDead()) { @@ -61,7 +62,7 @@ public class Blow implements ISkillHandler final boolean ss = creature.checkSs(); Formulas.getInstance(); - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if (target.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Charge.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Charge.java index 1c5c769431..5180290250 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Charge.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Charge.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.gameserver.handler.ISkillHandler; @@ -36,7 +37,7 @@ public class Charge implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { for (WorldObject target1 : targets) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ClanGate.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ClanGate.java index 10ea4d6697..a513be56df 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ClanGate.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ClanGate.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.CastleManager; @@ -23,7 +25,6 @@ import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.clan.Clan; @@ -40,7 +41,7 @@ public class ClanGate implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { PlayerInstance player = null; if (creature instanceof PlayerInstance) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/CombatPointHeal.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/CombatPointHeal.java index 3984aca066..f7be887613 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/CombatPointHeal.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/CombatPointHeal.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.handler.SkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -35,7 +37,7 @@ public class CombatPointHeal implements ISkillHandler }; @Override - public void useSkill(Creature actChar, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { // check for other effects try @@ -43,7 +45,7 @@ public class CombatPointHeal implements ISkillHandler final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(SkillType.BUFF); if (handler != null) { - handler.useSkill(actChar, skill, targets); + handler.useSkill(creature, skill, targets); } } catch (Exception e) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Continuous.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Continuous.java index cda0021dd0..a01f8d9fe1 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Continuous.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Continuous.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; // @@ -65,7 +67,7 @@ public class Continuous implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skillValue, WorldObject[] targets) + public void useSkill(Creature creature, Skill skillValue, List targets) { if (creature == null) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/CpDam.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/CpDam.java index 715ffeb54e..10b4d5f8d8 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/CpDam.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/CpDam.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; @@ -36,7 +38,7 @@ public class CpDam implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof Playable)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Craft.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Craft.java index 147799cd80..f408867db0 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Craft.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Craft.java @@ -16,11 +16,12 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.RecipeController; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.SystemMessageId; @@ -34,7 +35,7 @@ public class Craft implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/DeluxeKey.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/DeluxeKey.java index e6336c8876..83b81eea0a 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/DeluxeKey.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/DeluxeKey.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -38,14 +38,14 @@ public class DeluxeKey implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { return; } - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Disablers.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Disablers.java index 050224cedc..0eabe67723 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Disablers.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Disablers.java @@ -80,7 +80,7 @@ public class Disablers implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { final SkillType type = skill.getSkillType(); final boolean bss = creature.checkBss(); @@ -671,10 +671,10 @@ public class Disablers implements ISkillHandler LOGGER.warning("Couldn't find skill handler for HEAL."); continue; } - final WorldObject[] tgts = new WorldObject[] - { - target - }; + + final List tgts = new ArrayList<>(); + tgts.add(target); + try { healhandler.useSkill(creature, skill, tgts); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/DrainSoul.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/DrainSoul.java index c764b616e3..9b0f9da7ef 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/DrainSoul.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/DrainSoul.java @@ -16,12 +16,12 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -37,14 +37,14 @@ public class DrainSoul implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { return; } - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Fishing.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Fishing.java index 74bacfae29..572966cfce 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Fishing.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Fishing.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.Config; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.datatables.xml.ZoneData; @@ -24,7 +26,6 @@ import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.itemcontainer.Inventory; @@ -46,7 +47,7 @@ public class Fishing implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/FishingSkill.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/FishingSkill.java index fa6af71974..5ce473bf0b 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/FishingSkill.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/FishingSkill.java @@ -16,11 +16,12 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Fishing; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.items.Weapon; @@ -39,7 +40,7 @@ public class FishingSkill implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/GetPlayer.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/GetPlayer.java index f026c929f3..db960f5dfe 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/GetPlayer.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/GetPlayer.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -33,7 +35,7 @@ public class GetPlayer implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/GiveSp.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/GiveSp.java index 5a853b6b8e..04abd145c4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/GiveSp.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/GiveSp.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; @@ -33,7 +35,7 @@ public class GiveSp implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { for (WorldObject obj : targets) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Harvest.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Harvest.java index 14dab71875..c3ff361224 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Harvest.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Harvest.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.Config; @@ -49,7 +50,7 @@ public class Harvest implements ISkillHandler private MonsterInstance _target; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { @@ -58,7 +59,7 @@ public class Harvest implements ISkillHandler _player = (PlayerInstance) creature; - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); final InventoryUpdate iu = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate(); if (targetList == null) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Heal.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Heal.java index c4099e641b..f4a166fb34 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Heal.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Heal.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.handler.SkillHandler; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; @@ -43,7 +45,7 @@ public class Heal implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { PlayerInstance player = null; if (creature instanceof PlayerInstance) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ManaHeal.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ManaHeal.java index a4d7b1ff53..72ece8d985 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ManaHeal.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ManaHeal.java @@ -16,10 +16,11 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.skills.Stat; @@ -37,9 +38,9 @@ public class ManaHeal implements ISkillHandler }; @Override - public void useSkill(Creature actChar, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if ((target == null) || target.isDead() || target.isInvul()) { @@ -62,10 +63,10 @@ public class ManaHeal implements ISkillHandler sump.addAttribute(StatusUpdate.CUR_MP, (int) target.getCurrentMp()); target.sendPacket(sump); - if ((actChar instanceof PlayerInstance) && (actChar != target)) + if ((creature instanceof PlayerInstance) && (creature != target)) { final SystemMessage sm = new SystemMessage(SystemMessageId.S2_MP_HAS_BEEN_RESTORED_BY_S1); - sm.addString(actChar.getName()); + sm.addString(creature.getName()); sm.addNumber((int) mp); target.sendPacket(sm); } @@ -79,20 +80,20 @@ public class ManaHeal implements ISkillHandler if (skill.isMagic() && skill.useSpiritShot()) { - if (actChar.checkBss()) + if (creature.checkBss()) { - actChar.removeBss(); + creature.removeBss(); } - if (actChar.checkSps()) + if (creature.checkSps()) { - actChar.removeSps(); + creature.removeSps(); } } else if (skill.useSoulShot()) { - if (actChar.checkSs()) + if (creature.checkSs()) { - actChar.removeSs(); + creature.removeSs(); } } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Manadam.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Manadam.java index 2d2cd368f6..606710db0d 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Manadam.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Manadam.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; @@ -41,7 +43,7 @@ public class Manadam implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { Creature target = null; if (creature.isAlikeDead()) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java index c19e86b32d..8452ae1cec 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Mdam.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; @@ -37,7 +39,7 @@ public class Mdam implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java index 8e5575e431..929679dd0c 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Pdam.java @@ -51,7 +51,7 @@ public class Pdam implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Recall.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Recall.java index 4c2299cfa2..d762d802aa 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Recall.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Recall.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.enums.TeleportWhereType; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; @@ -40,7 +42,7 @@ public class Recall implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { try { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Resurrect.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Resurrect.java index c06680a84e..d8b627e0c7 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Resurrect.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Resurrect.java @@ -39,7 +39,7 @@ public class Resurrect implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { PlayerInstance player = null; if (creature instanceof PlayerInstance) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SiegeFlag.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SiegeFlag.java index 3b61e6c448..493f73400b 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SiegeFlag.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SiegeFlag.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.CastleManager; @@ -25,7 +27,6 @@ import org.l2jmobius.gameserver.instancemanager.IdManager; import org.l2jmobius.gameserver.instancemanager.SiegeManager; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.SiegeFlagInstance; @@ -44,7 +45,7 @@ public class SiegeFlag implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Sow.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Sow.java index 341d4c0e64..5ccc511c29 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Sow.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Sow.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.commons.util.Rnd; @@ -24,7 +25,6 @@ import org.l2jmobius.gameserver.datatables.xml.ManorSeedData; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.MonsterInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -50,7 +50,7 @@ public class Sow implements ISkillHandler private int _seedId; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { @@ -59,20 +59,21 @@ public class Sow implements ISkillHandler _player = (PlayerInstance) creature; - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; } - for (int index = 0; index < targetList.length; index++) + for (@SuppressWarnings("unused") + Creature element : targetList) { - if (!(targetList[0] instanceof MonsterInstance)) + if (!(targetList.get(0) instanceof MonsterInstance)) { continue; } - _target = (MonsterInstance) targetList[0]; + _target = (MonsterInstance) targetList.get(0); if (_target.isSeeded()) { _player.sendPacket(ActionFailed.STATIC_PACKET); @@ -104,6 +105,7 @@ public class Sow implements ISkillHandler _player.sendPacket(ActionFailed.STATIC_PACKET); break; } + // Consuming used seed _player.destroyItem("Consume", item.getObjectId(), 1, null, false); SystemMessage sm = null; @@ -126,7 +128,8 @@ public class Sow implements ISkillHandler { _player.getParty().broadcastToPartyMembers(sm); } - // TODO: Mob should not agro on player, this way doesn't work really nice + + // TODO: Mob should not aggro on player, this way doesn't work really nice _target.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE); } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Spoil.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Spoil.java index cb8bd20125..dcd80102de 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Spoil.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Spoil.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.ai.CtrlEvent; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -39,7 +41,7 @@ public class Spoil implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/StrSiegeAssault.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/StrSiegeAssault.java index 209d767615..86ade0f72c 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/StrSiegeAssault.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/StrSiegeAssault.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.FortManager; @@ -43,7 +45,7 @@ public class StrSiegeAssault implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonFriend.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonFriend.java index bb114e8b94..7e121cebf6 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonFriend.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonFriend.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.model.Skill; @@ -41,7 +43,7 @@ public class SummonFriend implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonTreasureKey.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonTreasureKey.java index 6d3fdb4545..cdaabcd685 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonTreasureKey.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/SummonTreasureKey.java @@ -16,13 +16,13 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; import java.util.logging.Logger; import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -38,7 +38,7 @@ public class SummonTreasureKey implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Sweep.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Sweep.java index ac83e9c795..9228e4a3b0 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Sweep.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Sweep.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.Config; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -41,7 +43,7 @@ public class Sweep implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/TakeCastle.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/TakeCastle.java index e569e7ed45..8567293874 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/TakeCastle.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/TakeCastle.java @@ -16,12 +16,13 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.instancemanager.CastleManager; import org.l2jmobius.gameserver.instancemanager.FortManager; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.Skill.SkillType; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.ArtefactInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -40,7 +41,7 @@ public class TakeCastle implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { if (!(creature instanceof PlayerInstance)) { @@ -77,9 +78,9 @@ public class TakeCastle implements ISkillHandler try { - if ((castle != null) && (targets[0] instanceof ArtefactInstance)) + if ((castle != null) && (targets.get(0) instanceof ArtefactInstance)) { - castle.Engrave(player.getClan(), targets[0].getObjectId()); + castle.Engrave(player.getClan(), targets.get(0).getObjectId()); } else if (fort != null) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Unlock.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Unlock.java index a91d132a96..98e23aa3dd 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Unlock.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/Unlock.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.ai.CtrlIntention; import org.l2jmobius.gameserver.handler.ISkillHandler; @@ -39,9 +41,9 @@ public class Unlock implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { - final WorldObject[] targetList = skill.getTargetList(creature); + final List targetList = skill.getTargetList(creature); if (targetList == null) { return; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenPlayer.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenPlayer.java index 3d686b6495..9195dadbbb 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenPlayer.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenPlayer.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -31,7 +33,7 @@ public class ZakenPlayer implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { try { @@ -41,59 +43,75 @@ public class ZakenPlayer implements ISkillHandler { continue; } + final Creature target = (Creature) target1; - final int ch = (Rnd.get(14) + 1); - if (ch == 1) + switch (Rnd.get(14) + 1) { - target.teleToLocation(55299, 219120, -2952, true); - } - else if (ch == 2) - { - target.teleToLocation(56363, 218043, -2952, true); - } - else if (ch == 3) - { - target.teleToLocation(54245, 220162, -2952, true); - } - else if (ch == 4) - { - target.teleToLocation(56289, 220126, -2952, true); - } - else if (ch == 5) - { - target.teleToLocation(55299, 219120, -3224, true); - } - else if (ch == 6) - { - target.teleToLocation(56363, 218043, -3224, true); - } - else if (ch == 7) - { - target.teleToLocation(54245, 220162, -3224, true); - } - else if (ch == 8) - { - target.teleToLocation(56289, 220126, -3224, true); - } - else if (ch == 9) - { - target.teleToLocation(55299, 219120, -3496, true); - } - else if (ch == 10) - { - target.teleToLocation(56363, 218043, -3496, true); - } - else if (ch == 11) - { - target.teleToLocation(54245, 220162, -3496, true); - } - else if (ch == 12) - { - target.teleToLocation(56289, 220126, -3496, true); - } - else - { - target.teleToLocation(53930, 217760, -2944, true); + case 1: + { + target.teleToLocation(55299, 219120, -2952, true); + break; + } + case 2: + { + target.teleToLocation(56363, 218043, -2952, true); + break; + } + case 3: + { + target.teleToLocation(54245, 220162, -2952, true); + break; + } + case 4: + { + target.teleToLocation(56289, 220126, -2952, true); + break; + } + case 5: + { + target.teleToLocation(55299, 219120, -3224, true); + break; + } + case 6: + { + target.teleToLocation(56363, 218043, -3224, true); + break; + } + case 7: + { + target.teleToLocation(54245, 220162, -3224, true); + break; + } + case 8: + { + target.teleToLocation(56289, 220126, -3224, true); + break; + } + case 9: + { + target.teleToLocation(55299, 219120, -3496, true); + break; + } + case 10: + { + target.teleToLocation(56363, 218043, -3496, true); + break; + } + case 11: + { + target.teleToLocation(54245, 220162, -3496, true); + break; + } + case 12: + { + target.teleToLocation(56289, 220126, -3496, true); + break; + } + default: + { + target.teleToLocation(53930, 217760, -2944, true); + break; + } } } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenSelf.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenSelf.java index 85ec77af27..c3a39ae7d1 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenSelf.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/handler/skillhandlers/ZakenSelf.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.handler.skillhandlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.handler.ISkillHandler; import org.l2jmobius.gameserver.model.Skill; @@ -31,7 +33,7 @@ public class ZakenSelf implements ISkillHandler }; @Override - public void useSkill(Creature creature, Skill skill, WorldObject[] targets) + public void useSkill(Creature creature, Skill skill, List targets) { try { @@ -41,59 +43,75 @@ public class ZakenSelf implements ISkillHandler { continue; } + final Creature target = (Creature) target1; - final int ch = (Rnd.get(14) + 1); - if (ch == 1) + switch (Rnd.get(14) + 1) { - target.teleToLocation(55299, 219120, -2952, true); - } - else if (ch == 2) - { - target.teleToLocation(56363, 218043, -2952, true); - } - else if (ch == 3) - { - target.teleToLocation(54245, 220162, -2952, true); - } - else if (ch == 4) - { - target.teleToLocation(56289, 220126, -2952, true); - } - else if (ch == 5) - { - target.teleToLocation(55299, 219120, -3224, true); - } - else if (ch == 6) - { - target.teleToLocation(56363, 218043, -3224, true); - } - else if (ch == 7) - { - target.teleToLocation(54245, 220162, -3224, true); - } - else if (ch == 8) - { - target.teleToLocation(56289, 220126, -3224, true); - } - else if (ch == 9) - { - target.teleToLocation(55299, 219120, -3496, true); - } - else if (ch == 10) - { - target.teleToLocation(56363, 218043, -3496, true); - } - else if (ch == 11) - { - target.teleToLocation(54245, 220162, -3496, true); - } - else if (ch == 12) - { - target.teleToLocation(56289, 220126, -3496, true); - } - else - { - target.teleToLocation(53930, 217760, -2944, true); + case 1: + { + target.teleToLocation(55299, 219120, -2952, true); + break; + } + case 2: + { + target.teleToLocation(56363, 218043, -2952, true); + break; + } + case 3: + { + target.teleToLocation(54245, 220162, -2952, true); + break; + } + case 4: + { + target.teleToLocation(56289, 220126, -2952, true); + break; + } + case 5: + { + target.teleToLocation(55299, 219120, -3224, true); + break; + } + case 6: + { + target.teleToLocation(56363, 218043, -3224, true); + break; + } + case 7: + { + target.teleToLocation(54245, 220162, -3224, true); + break; + } + case 8: + { + target.teleToLocation(56289, 220126, -3224, true); + break; + } + case 9: + { + target.teleToLocation(55299, 219120, -3496, true); + break; + } + case 10: + { + target.teleToLocation(56363, 218043, -3496, true); + break; + } + case 11: + { + target.teleToLocation(54245, 220162, -3496, true); + break; + } + case 12: + { + target.teleToLocation(56289, 220126, -3496, true); + break; + } + default: + { + target.teleToLocation(53930, 217760, -2944, true); + break; + } } } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/ChanceSkillList.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/ChanceSkillList.java index ed233bdde2..091b5d7e56 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/ChanceSkillList.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/ChanceSkillList.java @@ -16,6 +16,7 @@ */ package org.l2jmobius.gameserver.model; +import java.util.List; import java.util.concurrent.ConcurrentHashMap; import org.l2jmobius.gameserver.handler.ISkillHandler; @@ -156,9 +157,9 @@ public class ChanceSkillList extends ConcurrentHashMap } final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(castedSkill.getSkillType()); - final WorldObject[] targets = castedSkill.getTargetList(_owner, false, target); + final List targets = castedSkill.getTargetList(_owner, false, target); _owner.broadcastPacket(new MagicSkillLaunched(_owner, castedSkill.getDisplayId(), castedSkill.getLevel(), targets)); - _owner.broadcastPacket(new MagicSkillUse(_owner, (Creature) targets[0], castedSkill.getDisplayId(), castedSkill.getLevel(), 0, 0)); + _owner.broadcastPacket(new MagicSkillUse(_owner, targets.get(0), castedSkill.getDisplayId(), castedSkill.getLevel(), 0, 0)); // Launch the magic skill and calculate its effects if (handler != null) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Skill.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Skill.java index 1c4f42105b..fbf8c918e7 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Skill.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/Skill.java @@ -649,7 +649,7 @@ public abstract class Skill _isDebuff = set.getBoolean("isDebuff", false); } - public abstract void useSkill(Creature caster, WorldObject[] targets); + public abstract void useSkill(Creature caster, List targets); public boolean isSingleEffect() { @@ -1374,7 +1374,7 @@ public abstract class Skill return true; } - public WorldObject[] getTargetList(Creature creature, boolean onlyFirst) + public List getTargetList(Creature creature, boolean onlyFirst) { // Init to null the target of the skill Creature target = null; @@ -1409,7 +1409,7 @@ public abstract class Skill * @param targetCreature * @return */ - public WorldObject[] getTargetList(Creature creature, boolean onlyFirst, Creature targetCreature) + public List getTargetList(Creature creature, boolean onlyFirst, Creature targetCreature) { // to avoid attacks during oly start period if ((creature instanceof PlayerInstance) && _isOffensive && (((PlayerInstance) creature).isInOlympiadMode() && !((PlayerInstance) creature).isOlympiadStart())) @@ -1421,10 +1421,8 @@ public abstract class Skill final List targetList = new ArrayList<>(); if (_ispotion) { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } Creature target = targetCreature; @@ -1529,27 +1527,21 @@ public abstract class Skill } // If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } case TARGET_SELF: case TARGET_GROUND: { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } case TARGET_HOLY: { if ((creature instanceof PlayerInstance) && (creature.getTarget() instanceof ArtefactInstance)) { - return new Creature[] - { - (ArtefactInstance) creature.getTarget() - }; + targetList.add((ArtefactInstance) creature.getTarget()); + return targetList; } return null; } @@ -1559,10 +1551,8 @@ public abstract class Skill target = creature.getPet(); if ((target != null) && !target.isDead()) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } return null; } @@ -1573,10 +1563,8 @@ public abstract class Skill target = ((Summon) creature).getOwner(); if ((target != null) && !target.isDead()) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } } return null; @@ -1588,10 +1576,8 @@ public abstract class Skill target = creature.getPet(); if ((target != null) && target.isDead()) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } } return null; @@ -1695,19 +1681,14 @@ public abstract class Skill { continue; } - if (!onlyFirst) + + targetList.add(nearby); + if (onlyFirst) { - targetList.add(nearby); - } - else - { - return new Creature[] - { - nearby - }; + return targetList; } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_AREA: { @@ -1718,27 +1699,22 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } + Creature cha; if (_castRange >= 0) { cha = target; - if (!onlyFirst) + targetList.add(cha); + if (onlyFirst) { - targetList.add(cha); // Add target to target list - } - else - { - return new Creature[] - { - cha - }; + return targetList; } } else { cha = creature; } - final boolean effectOriginIsPlayableInstance = cha instanceof Playable; + PlayerInstance src = null; if (creature instanceof PlayerInstance) { @@ -1748,6 +1724,7 @@ public abstract class Skill { src = ((Summon) creature).getOwner(); } + final int radius = _skillRadius; final boolean srcInArena = creature.isInsideZone(ZoneId.PVP) && !creature.isInsideZone(ZoneId.SIEGE); for (WorldObject obj : creature.getKnownList().getKnownObjects().values()) @@ -1768,22 +1745,24 @@ public abstract class Skill { continue; } + if (_isOffensive && Creature.isInsidePeaceZone(creature, obj)) + { + continue; + } + if (!GeoEngine.getInstance().canSeeTarget(creature, obj)) + { + continue; + } + target = (Creature) obj; - if (!GeoEngine.getInstance().canSeeTarget(creature, target)) - { - continue; - } - if (_isOffensive && Creature.isInsidePeaceZone(creature, target)) - { - continue; - } if (!target.isAlikeDead() && (target != creature)) { if (!Util.checkIfInRange(radius, obj, cha, true)) { continue; } - if (src != null) // caster is l2playableinstance and exists + + if (src != null) // caster is a playable instance and exists { // check for Events if (obj instanceof PlayerInstance) @@ -1814,6 +1793,13 @@ public abstract class Skill continue; } } + + // Summon AOE skills should not target non attackable players. + if (obj.isPlayable() && !creature.isPlayer() && !obj.isAutoAttackable(creature)) + { + continue; + } + if (obj instanceof PlayerInstance) { final PlayerInstance trg = (PlayerInstance) obj; @@ -1845,7 +1831,7 @@ public abstract class Skill } } } - if (obj instanceof Summon) + else if (obj instanceof Summon) { final PlayerInstance trg = ((Summon) obj).getOwner(); if (trg == null) @@ -1877,11 +1863,7 @@ public abstract class Skill } } } - else if (effectOriginIsPlayableInstance && // If effect starts at PlayableInstance and - !(obj instanceof Playable)) - { - continue; - } + targetList.add((Creature) obj); } } @@ -1889,7 +1871,7 @@ public abstract class Skill { return null; } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_MULTIFACE: { @@ -1898,17 +1880,13 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } - if (!onlyFirst) + + targetList.add(target); + if (onlyFirst) { - targetList.add(target); - } - else - { - return new Creature[] - { - target - }; + return targetList; } + final int radius = _skillRadius; PlayerInstance src = null; if (creature instanceof PlayerInstance) @@ -1971,26 +1949,22 @@ public abstract class Skill return null; } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; // TODO multiface targets all around right now. need it to just get targets the character is facing. } case TARGET_PARTY: { + targetList.add(creature); if (onlyFirst) { - return new Creature[] - { - creature - }; + return targetList; } - targetList.add(creature); + final PlayerInstance player = creature.getActingPlayer(); if (player == null) { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } if (creature instanceof Summon) { @@ -2060,17 +2034,15 @@ public abstract class Skill } } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_PARTY_MEMBER: { if ((target != null) && !target.isDead() && ((target == creature) || ((creature.getParty() != null) && (target.getParty() != null) && (creature.getParty().getPartyLeaderOID() == target.getParty().getPartyLeaderOID())) || (creature.getPet() == target) || (creature == target.getPet()))) { // If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; @@ -2080,10 +2052,8 @@ public abstract class Skill if ((target != creature) && (target != null) && !target.isDead() && (creature.getParty() != null) && (target.getParty() != null) && (creature.getParty().getPartyLeaderOID() == target.getParty().getPartyLeaderOID())) { // If a target is found, return it in a table else send a system message TARGET_IS_INCORRECT - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; @@ -2099,22 +2069,15 @@ public abstract class Skill if (_targetType != SkillTargetType.TARGET_CORPSE_ALLY) // if corpose, the caster is not included { if (player.isInOlympiadMode()) - { - return new Creature[] - { - player - }; - } - if (!onlyFirst) { targetList.add(player); + return targetList; } - else + + targetList.add(player); + if (onlyFirst) { - return new Creature[] - { - player - }; + return targetList; } } PlayerInstance src = null; @@ -2192,21 +2155,16 @@ public abstract class Skill { continue; } - if (!onlyFirst) + + targetList.add((Creature) newTarget); + if (onlyFirst) { - targetList.add((Creature) newTarget); - } - else - { - return new Creature[] - { - (Creature) newTarget - }; + return targetList; } } } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_CORPSE_CLAN: case TARGET_CLAN: @@ -2219,22 +2177,15 @@ public abstract class Skill if (_targetType != SkillTargetType.TARGET_CORPSE_CLAN) { if (player.isInOlympiadMode()) - { - return new Creature[] - { - player - }; - } - if (!onlyFirst) { targetList.add(player); + return targetList; } - else + + targetList.add(player); + if (onlyFirst) { - return new Creature[] - { - player - }; + return targetList; } } if (clan != null) @@ -2252,6 +2203,7 @@ public abstract class Skill { continue; } + final PlayerInstance trg = newTarget; final PlayerInstance src = player; // if src is in event and trg not OR viceversa: @@ -2290,16 +2242,11 @@ public abstract class Skill { continue; } - if (!onlyFirst) + + targetList.add(newTarget); + if (onlyFirst) { - targetList.add(newTarget); - } - else - { - return new Creature[] - { - newTarget - }; + return targetList; } } } @@ -2310,10 +2257,8 @@ public abstract class Skill final NpcInstance npc = (NpcInstance) creature; if ((npc.getFactionId() == null) || npc.getFactionId().isEmpty()) { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } targetList.add(creature); final Collection objs = creature.getKnownList().getKnownObjects().values(); @@ -2332,7 +2277,7 @@ public abstract class Skill } } } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_CORPSE_PLAYER: { @@ -2390,15 +2335,8 @@ public abstract class Skill } if (condGood) { - if (!onlyFirst) - { - targetList.add(target); - return targetList.toArray(new WorldObject[targetList.size()]); - } - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } } } @@ -2412,15 +2350,9 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } - if (!onlyFirst) - { - targetList.add(target); - return targetList.toArray(new WorldObject[targetList.size()]); - } - return new Creature[] - { - target - }; + + targetList.add(target); + return targetList; } case TARGET_AREA_CORPSE_MOB: { @@ -2429,17 +2361,13 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } - if (!onlyFirst) + + targetList.add(target); + if (onlyFirst) { - targetList.add(target); - } - else - { - return new Creature[] - { - target - }; + return targetList; } + final boolean srcInArena = creature.isInsideZone(ZoneId.PVP) && !creature.isInsideZone(ZoneId.SIEGE); PlayerInstance src = null; if (creature instanceof PlayerInstance) @@ -2540,7 +2468,7 @@ public abstract class Skill { return null; } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_UNLOCKABLE: { @@ -2550,15 +2478,9 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.INVALID_TARGET)); return null; } - if (!onlyFirst) - { - targetList.add(target); - return targetList.toArray(new WorldObject[targetList.size()]); - } - return new Creature[] - { - target - }; + + targetList.add(target); + return targetList; } case TARGET_ITEM: { @@ -2574,18 +2496,9 @@ public abstract class Skill creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; } - if (!onlyFirst) - { - targetList.add(target); - } - else - { - return new Creature[] - { - target - }; - } - return targetList.toArray(new WorldObject[targetList.size()]); + + targetList.add(target); + return targetList; } creature.sendPacket(new SystemMessage(SystemMessageId.THAT_IS_THE_INCORRECT_TARGET)); return null; @@ -2597,16 +2510,10 @@ public abstract class Skill if ((_castRange >= 0) && ((target instanceof NpcInstance) || (target instanceof SummonInstance)) && target.isUndead() && !target.isAlikeDead()) { cha = target; - if (!onlyFirst) + targetList.add(cha); + if (onlyFirst) { - targetList.add(cha); // Add target to target list - } - else - { - return new Creature[] - { - cha - }; + return targetList; } } else @@ -2647,16 +2554,11 @@ public abstract class Skill { continue; } - if (!onlyFirst) + + targetList.add((Creature) obj); + if (onlyFirst) { - targetList.add((Creature) obj); // Add obj to target lists - } - else - { - return new Creature[] - { - (Creature) obj - }; + return targetList; } } } @@ -2665,7 +2567,7 @@ public abstract class Skill { return null; } - return targetList.toArray(new Creature[targetList.size()]); + return targetList; } case TARGET_ENEMY_SUMMON: { @@ -2674,10 +2576,8 @@ public abstract class Skill final Summon targetSummon = (Summon) target; if (((creature instanceof PlayerInstance) && (creature.getPet() != targetSummon) && !targetSummon.isDead() && ((targetSummon.getOwner().getPvpFlag() != 0) || (targetSummon.getOwner().getKarma() > 0) || targetSummon.getOwner().isInDuel())) || (targetSummon.getOwner().isInsideZone(ZoneId.PVP) && ((PlayerInstance) creature).isInsideZone(ZoneId.PVP))) { - return new Creature[] - { - targetSummon - }; + targetList.add(targetSummon); + return targetList; } } return null; @@ -2686,10 +2586,8 @@ public abstract class Skill { if ((target != null) && !target.isDead() && ((target instanceof DoorInstance) || (target instanceof ControlTowerInstance))) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } return null; } @@ -2702,10 +2600,8 @@ public abstract class Skill } if ((target instanceof MonsterInstance) && ((((MonsterInstance) target).getNpcId() == 22217) || (((MonsterInstance) target).getNpcId() == 22216) || (((MonsterInstance) target).getNpcId() == 22215))) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } return null; } @@ -2713,10 +2609,8 @@ public abstract class Skill { if ((target != null) && target.isDead()) { - return new Creature[] - { - target - }; + targetList.add(target); + return targetList; } return null; } @@ -2729,10 +2623,8 @@ public abstract class Skill final NpcInstance npc = (NpcInstance) creature; if ((npc.getFactionId() == null) || npc.getFactionId().isEmpty()) { - return new Creature[] - { - creature - }; + targetList.add(creature); + return targetList; } final Collection objs = creature.getKnownList().getKnownObjects().values(); for (WorldObject newTarget : objs) @@ -2766,20 +2658,19 @@ public abstract class Skill } } - public WorldObject[] getTargetList(Creature creature) + public List getTargetList(Creature creature) { return getTargetList(creature, false); } public WorldObject getFirstOfTargetList(Creature creature) { - WorldObject[] targets; - targets = getTargetList(creature, true); - if ((targets == null) || (targets.length == 0)) + final List targets = getTargetList(creature, true); + if ((targets == null) || (targets.isEmpty())) { return null; } - return targets[0]; + return targets.get(0); } public Func[] getStatFuncs(Effect effect, Creature creature) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java index 03b9fbabb4..ed990e2170 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/Creature.java @@ -1545,21 +1545,21 @@ public abstract class Creature extends WorldObject implements ISkillsHolder } // Get all possible targets of the skill in a table in function of the skill target type - final WorldObject[] targets = skill.getTargetList(creature); + final List targets = skill.getTargetList(creature); // Set the target of the skill in function of Skill Type and Target Type Creature target = null; if ((skill.getTargetType() == SkillTargetType.TARGET_AURA) || (skill.getTargetType() == SkillTargetType.TARGET_GROUND) || skill.isPotion()) { target = this; } - else if ((targets == null) || (targets.length == 0)) + else if ((targets == null) || targets.isEmpty()) { getAI().notifyEvent(CtrlEvent.EVT_CANCEL); return; } else if (((skill.getSkillType() == SkillType.BUFF) || (skill.getSkillType() == SkillType.HEAL) || (skill.getSkillType() == SkillType.COMBATPOINTHEAL) || (skill.getSkillType() == SkillType.COMBATPOINTPERCENTHEAL) || (skill.getSkillType() == SkillType.MANAHEAL) || (skill.getSkillType() == SkillType.REFLECT) || (skill.getSkillType() == SkillType.SEED) || (skill.getTargetType() == SkillTargetType.TARGET_SELF) || (skill.getTargetType() == SkillTargetType.TARGET_PET) || (skill.getTargetType() == SkillTargetType.TARGET_PARTY) || (skill.getTargetType() == SkillTargetType.TARGET_CLAN) || (skill.getTargetType() == SkillTargetType.TARGET_ALLY)) && !skill.isPotion()) { - target = (Creature) targets[0]; + target = targets.get(0); } else { @@ -2955,7 +2955,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder */ class MagicUseTask implements Runnable { - WorldObject[] _targets; + List _targets; Skill _skill; int _coolTime; int _phase; @@ -2967,7 +2967,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param coolTime the cool time * @param phase the phase */ - public MagicUseTask(WorldObject[] targets, Skill skill, int coolTime, int phase) + public MagicUseTask(List targets, Skill skill, int coolTime, int phase) { _targets = targets; _skill = skill; @@ -7310,9 +7310,9 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param coolTime the cool time * @param instant the instant */ - public void onMagicLaunchedTimer(WorldObject[] targets, Skill skill, int coolTime, boolean instant) + public void onMagicLaunchedTimer(List targets, Skill skill, int coolTime, boolean instant) { - if ((skill == null) || (((targets == null) || (targets.length <= 0)) && (skill.getTargetType() != SkillTargetType.TARGET_AURA))) + if ((skill == null) || (((targets == null) || targets.isEmpty()) && (skill.getTargetType() != SkillTargetType.TARGET_AURA))) { _skillCast = null; enableAllSkills(); @@ -7331,22 +7331,22 @@ public abstract class Creature extends WorldObject implements ISkillsHolder escapeRange = skill.getSkillRadius(); } - WorldObject[] finalTargets = null; + List finalTargets = null; int skipped = 0; if (escapeRange > 0) { final List targetList = new ArrayList<>(); - for (int i = 0; (targets != null) && (i < targets.length); i++) + if (targets != null) { - if (targets[i] instanceof Creature) + for (Creature target : targets) { - if (!Util.checkIfInRange(escapeRange, this, targets[i], true)) + if (!Util.checkIfInRange(escapeRange, this, target, true)) { continue; } // Check if the target is behind a wall - if ((skill.getSkillRadius() > 0) && skill.isOffensive() && Config.PATHFINDING && !GeoEngine.getInstance().canSeeTarget(this, targets[i])) + if ((skill.getSkillRadius() > 0) && skill.isOffensive() && Config.PATHFINDING && !GeoEngine.getInstance().canSeeTarget(this, target)) { skipped++; continue; @@ -7356,19 +7356,20 @@ public abstract class Creature extends WorldObject implements ISkillsHolder { if (this instanceof PlayerInstance) { - if (((Creature) targets[i]).isInsidePeaceZone((PlayerInstance) this)) + if (target.isInsidePeaceZone((PlayerInstance) this)) { continue; } } - else if (isInsidePeaceZone(this, targets[i])) + else if (isInsidePeaceZone(this, target)) { continue; } } - targetList.add((Creature) targets[i]); + targetList.add(target); } } + if (targetList.isEmpty() && (skill.getTargetType() != SkillTargetType.TARGET_AURA)) { if (this instanceof PlayerInstance) @@ -7382,7 +7383,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder abortCast(); return; } - finalTargets = targetList.toArray(new Creature[targetList.size()]); + finalTargets = targetList; } else { @@ -7438,9 +7439,9 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param coolTime the cool time * @param instant the instant */ - public void onMagicHitTimer(WorldObject[] targets, Skill skill, int coolTime, boolean instant) + public void onMagicHitTimer(List targets, Skill skill, int coolTime, boolean instant) { - if ((skill == null) || (((targets == null) || (targets.length <= 0)) && (skill.getTargetType() != SkillTargetType.TARGET_AURA))) + if ((skill == null) || (((targets == null) || targets.isEmpty()) && (skill.getTargetType() != SkillTargetType.TARGET_AURA))) { _skillCast = null; enableAllSkills(); @@ -7471,7 +7472,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder mog.exit(true); } - final WorldObject target = targets == null ? null : targets[0]; + final WorldObject target = targets == null ? null : targets.get(0); if (target != null) { notifyQuestEventSkillFinished(skill, target); @@ -7479,10 +7480,10 @@ public abstract class Creature extends WorldObject implements ISkillsHolder return; } - final WorldObject[] targets2 = targets; + final List targets2 = targets; try { - if ((targets2 != null) && (targets2.length != 0)) + if ((targets2 != null) && !targets2.isEmpty()) { // Go through targets table for (WorldObject target2 : targets2) @@ -7610,7 +7611,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param targets the targets * @param skill the skill */ - public void onMagicFinalizer(WorldObject[] targets, Skill skill) + public void onMagicFinalizer(List targets, Skill skill) { if (skill.isPotion()) { @@ -7709,7 +7710,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder { try { - if ((targets != null) && (targets.length > 0)) + if (targets != null) { for (WorldObject target : targets) { @@ -7900,7 +7901,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder * @param skill The Skill to use * @param targets The table of WorldObject targets */ - public void callSkill(Skill skill, WorldObject[] targets) + public void callSkill(Skill skill, List targets) { try { @@ -7909,7 +7910,7 @@ public abstract class Creature extends WorldObject implements ISkillsHolder return; } - if ((targets == null) || (targets.length == 0)) + if ((targets == null) || targets.isEmpty()) { getAI().notifyEvent(CtrlEvent.EVT_CANCEL); return; diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/CubicInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/CubicInstance.java index 500931839f..96cb5afdce 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/CubicInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/CubicInstance.java @@ -644,10 +644,8 @@ public class CubicInstance final SkillType type = skill.getSkillType(); final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType()); - final Creature[] targets = - { - target - }; + final List targets = new ArrayList<>(); + targets.add(target); if ((type == SkillType.PARALYZE) || (type == SkillType.STUN) || (type == SkillType.ROOT) || (type == SkillType.AGGDAMAGE)) { @@ -686,9 +684,9 @@ public class CubicInstance * @param skill the skill * @param targets the targets */ - public void useCubicContinuous(CubicInstance activeCubic, Skill skill, WorldObject[] targets) + public void useCubicContinuous(CubicInstance activeCubic, Skill skill, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if ((target == null) || target.isDead()) { @@ -730,9 +728,9 @@ public class CubicInstance * @param skill the skill * @param targets the targets */ - public void useCubicMdam(CubicInstance activeCubic, Skill skill, WorldObject[] targets) + public void useCubicMdam(CubicInstance activeCubic, Skill skill, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if (target == null) { @@ -789,9 +787,9 @@ public class CubicInstance * @param skill the skill * @param targets the targets */ - public void useCubicDisabler(SkillType type, CubicInstance activeCubic, Skill skill, WorldObject[] targets) + public void useCubicDisabler(SkillType type, CubicInstance activeCubic, Skill skill, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if ((target == null) || target.isDead()) { @@ -1042,10 +1040,9 @@ public class CubicInstance final Creature target = _target; if ((target != null) && !target.isDead() && ((target.getMaxHp() - target.getCurrentHp()) > skill.getPower())) { - final Creature[] targets = - { - target - }; + final List targets = new ArrayList<>(); + targets.add(target); + final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType()); if (handler != null) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/TamedBeastInstance.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/TamedBeastInstance.java index 5e0dbe4181..93de27e280 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/TamedBeastInstance.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/actor/instance/TamedBeastInstance.java @@ -18,6 +18,8 @@ package org.l2jmobius.gameserver.model.actor.instance; import static org.l2jmobius.gameserver.ai.CtrlIntention.AI_INTENTION_IDLE; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.Future; import org.l2jmobius.commons.concurrent.ThreadPool; @@ -424,10 +426,8 @@ public class TamedBeastInstance extends FeedableBeastInstance { final WorldObject oldTarget = owner.getTarget(); owner.setTarget(_tamedBeast); - final WorldObject[] targets = - { - _tamedBeast - }; + final List targets = new ArrayList<>(); + targets.add(_tamedBeast); // emulate a call to the owner using food, but bypass all checks for range, etc // this also causes a call to the AI tasks handling feeding, which may call onReceiveFood as required. diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/items/Weapon.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/items/Weapon.java index f30e8700d5..26f4b66fcb 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/items/Weapon.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/items/Weapon.java @@ -408,8 +408,8 @@ public class Weapon extends Item { // Get the skill handler corresponding to the skill type final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType()); - final Creature[] targets = new Creature[1]; - targets[0] = target; + final List targets = new ArrayList<>(); + targets.add(target); // Launch the magic skill and calculate its effects if (handler != null) diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/effects/EffectSignetMDam.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/effects/EffectSignetMDam.java index b49e2366bf..6ff35e9da2 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/effects/EffectSignetMDam.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/effects/EffectSignetMDam.java @@ -143,7 +143,7 @@ public class EffectSignetMDam extends Effect if (!targets.isEmpty()) { - caster.broadcastPacket(new MagicSkillLaunched(caster, getSkill().getDisplayId(), getSkill().getLevel(), targets.toArray(new Creature[targets.size()]))); + caster.broadcastPacket(new MagicSkillLaunched(caster, getSkill().getDisplayId(), getSkill().getLevel(), targets)); for (Creature target : targets) { final boolean mcrit = Formulas.calcMCrit(caster.getMCriticalHit(target, getSkill())); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCharge.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCharge.java index db96d92d9b..948744b7a4 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCharge.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCharge.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.WorldObject; @@ -52,7 +54,7 @@ public class SkillCharge extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeDmg.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeDmg.java index 09d4a70c25..40684b2854 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeDmg.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeDmg.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; @@ -60,7 +62,7 @@ public class SkillChargeDmg extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeEffect.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeEffect.java index 6746e9d19f..3e6272ffb8 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeEffect.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillChargeEffect.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.WorldObject; @@ -55,7 +57,7 @@ public class SkillChargeEffect extends Skill } @Override - public void useSkill(Creature creature, WorldObject[] targets) + public void useSkill(Creature creature, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCreateItem.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCreateItem.java index d237d6d239..d48c75479f 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCreateItem.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillCreateItem.java @@ -16,10 +16,11 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; /** @@ -40,7 +41,7 @@ public class SkillCreateItem extends Skill } @Override - public void useSkill(Creature creature, WorldObject[] targets) + public void useSkill(Creature creature, List targets) { if (creature.isAlikeDead() || (_createItemId == 0) || (_createItemCount == 0)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDefault.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDefault.java index 598d85aebc..f0e88017fe 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDefault.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDefault.java @@ -16,9 +16,10 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; @@ -30,7 +31,7 @@ public class SkillDefault extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { caster.sendPacket(ActionFailed.STATIC_PACKET); caster.sendMessage("Skill not implemented. Skill ID: " + getId() + " " + getSkillType()); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDrain.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDrain.java index 1639cce6e2..4521086991 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDrain.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillDrain.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; @@ -43,7 +45,7 @@ public class SkillDrain extends Skill } @Override - public void useSkill(Creature creature, WorldObject[] targets) + public void useSkill(Creature creature, List targets) { if (creature.isAlikeDead()) { @@ -168,9 +170,9 @@ public class SkillDrain extends Skill getEffectsSelf(creature); } - public void useCubicSkill(CubicInstance activeCubic, WorldObject[] targets) + public void useCubicSkill(CubicInstance activeCubic, List targets) { - for (Creature target : (Creature[]) targets) + for (Creature target : targets) { if (target.isAlikeDead() && (getTargetType() != SkillTargetType.TARGET_CORPSE_MOB)) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillElemental.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillElemental.java index f24d0632d1..0edfb867b5 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillElemental.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillElemental.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; @@ -47,7 +49,7 @@ public class SkillElemental extends Skill } @Override - public void useSkill(Creature creature, WorldObject[] targets) + public void useSkill(Creature creature, List targets) { if (creature.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSeed.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSeed.java index e84976c85f..a58660edf8 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSeed.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSeed.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Effect; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; @@ -31,7 +33,7 @@ public class SkillSeed extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignet.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignet.java index d7f28f1bac..ef21d5d739 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignet.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignet.java @@ -16,13 +16,14 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.instancemanager.IdManager; import org.l2jmobius.gameserver.model.Location; import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.World; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.EffectPointInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -41,7 +42,7 @@ public class SkillSignet extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignetCasttime.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignetCasttime.java index 399989116a..32682ff69d 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignetCasttime.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSignetCasttime.java @@ -16,9 +16,10 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.gameserver.model.Skill; import org.l2jmobius.gameserver.model.StatSet; -import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; public class SkillSignetCasttime extends Skill @@ -34,7 +35,7 @@ public class SkillSignetCasttime extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead()) { diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSummon.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSummon.java index 30af4bc9c5..b1e93d9463 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSummon.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/skills/handlers/SkillSummon.java @@ -16,6 +16,8 @@ */ package org.l2jmobius.gameserver.model.skills.handlers; +import java.util.List; + import org.l2jmobius.commons.util.Rnd; import org.l2jmobius.gameserver.datatables.sql.NpcTable; import org.l2jmobius.gameserver.datatables.xml.ExperienceData; @@ -106,7 +108,7 @@ public class SkillSummon extends Skill } @Override - public void useSkill(Creature caster, WorldObject[] targets) + public void useSkill(Creature caster, List targets) { if (caster.isAlikeDead() || !(caster instanceof PlayerInstance)) { @@ -141,7 +143,7 @@ public class SkillSummon extends Skill cubicSkillLevel = ((getLevel() - 100) / 7) + 8; } - if (targets.length > 1) // Mass cubic skill + if (targets.size() > 1) // Mass cubic skill { for (WorldObject obj : targets) { @@ -236,7 +238,7 @@ public class SkillSummon extends Skill // Check to see if we should do the decay right after the cast if (getTargetType() == SkillTargetType.TARGET_CORPSE_MOB) { - final Creature target = (Creature) targets[0]; + final Creature target = targets.get(0); if (target.isDead() && (target instanceof NpcInstance)) { summon.spawnMe(target.getX(), target.getY(), target.getZ() + 5); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/MagicSkillLaunched.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/MagicSkillLaunched.java index 991da69092..fa73c11ef9 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/MagicSkillLaunched.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/serverpackets/MagicSkillLaunched.java @@ -16,6 +16,9 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.ArrayList; +import java.util.List; + import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.actor.Creature; @@ -29,27 +32,25 @@ public class MagicSkillLaunched extends GameServerPacket private final int _skillId; private final int _skillLevel; private int _numberOfTargets; - private WorldObject[] _targets; + private List _targets; private final int _singleTargetId; - public MagicSkillLaunched(Creature creature, int skillId, int skillLevel, WorldObject[] targets) + public MagicSkillLaunched(Creature creature, int skillId, int skillLevel, List targets) { _objectId = creature.getObjectId(); _skillId = skillId; _skillLevel = skillLevel; + if (targets != null) { - _numberOfTargets = targets.length; + _numberOfTargets = targets.size(); _targets = targets; } else { _numberOfTargets = 1; - final WorldObject[] objs = - { - creature - }; - _targets = objs; + _targets = new ArrayList<>(); + _targets.add(creature); } _singleTargetId = 0;