Skill target related improvements.
This commit is contained in:
parent
08d72b1ec8
commit
c67e5f29e2
@ -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<Creature> targets) throws IOException;
|
||||
|
||||
/**
|
||||
* this method is called at initialization to register all the item ids automatically
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
// check for other effects
|
||||
try
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final WorldObject[] targetList = skill.getTargetList(creature);
|
||||
final List<Creature> targetList = skill.getTargetList(creature);
|
||||
if (targetList == null)
|
||||
{
|
||||
return;
|
||||
|
@ -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<Creature> 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())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
for (WorldObject target1 : targets)
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
PlayerInstance player = null;
|
||||
if (creature instanceof PlayerInstance)
|
||||
|
@ -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<Creature> 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)
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature == null)
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof Playable))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final WorldObject[] targetList = skill.getTargetList(creature);
|
||||
final List<Creature> targetList = skill.getTargetList(creature);
|
||||
if (targetList == null)
|
||||
{
|
||||
return;
|
||||
|
@ -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<Creature> 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<Creature> tgts = new ArrayList<>();
|
||||
tgts.add(target);
|
||||
|
||||
try
|
||||
{
|
||||
healhandler.useSkill(creature, skill, tgts);
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final WorldObject[] targetList = skill.getTargetList(creature);
|
||||
final List<Creature> targetList = skill.getTargetList(creature);
|
||||
if (targetList == null)
|
||||
{
|
||||
return;
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
for (WorldObject obj : targets)
|
||||
{
|
||||
|
@ -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<Creature> 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<Creature> targetList = skill.getTargetList(creature);
|
||||
final InventoryUpdate iu = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate();
|
||||
if (targetList == null)
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
PlayerInstance player = null;
|
||||
if (creature instanceof PlayerInstance)
|
||||
|
@ -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<Creature> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
Creature target = null;
|
||||
if (creature.isAlikeDead())
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
PlayerInstance player = null;
|
||||
if (creature instanceof PlayerInstance)
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> 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<Creature> 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);
|
||||
}
|
||||
}
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> 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)
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
final WorldObject[] targetList = skill.getTargetList(creature);
|
||||
final List<Creature> targetList = skill.getTargetList(creature);
|
||||
if (targetList == null)
|
||||
{
|
||||
return;
|
||||
|
@ -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<Creature> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<Creature> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<Skill, ChanceCondition>
|
||||
}
|
||||
|
||||
final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(castedSkill.getSkillType());
|
||||
final WorldObject[] targets = castedSkill.getTargetList(_owner, false, target);
|
||||
final List<Creature> 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)
|
||||
|
@ -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<Creature> targets);
|
||||
|
||||
public boolean isSingleEffect()
|
||||
{
|
||||
@ -1373,7 +1373,7 @@ public abstract class Skill
|
||||
return true;
|
||||
}
|
||||
|
||||
public WorldObject[] getTargetList(Creature creature, boolean onlyFirst)
|
||||
public List<Creature> 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<Creature> 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<Creature> 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<WorldObject> 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<WorldObject> objs = creature.getKnownList().getKnownObjects().values();
|
||||
for (WorldObject newTarget : objs)
|
||||
@ -2762,20 +2653,19 @@ public abstract class Skill
|
||||
}
|
||||
}
|
||||
|
||||
public WorldObject[] getTargetList(Creature creature)
|
||||
public List<Creature> 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<Creature> 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)
|
||||
|
@ -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<Creature> 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<Creature> _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<Creature> 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<Creature> 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<Creature> finalTargets = null;
|
||||
int skipped = 0;
|
||||
if (escapeRange > 0)
|
||||
{
|
||||
final List<Creature> 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<Creature> 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<Creature> 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<Creature> 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<Creature> 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;
|
||||
|
@ -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<Creature> 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<Creature> 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<Creature> 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<Creature> 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<Creature> targets = new ArrayList<>();
|
||||
targets.add(target);
|
||||
|
||||
final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType());
|
||||
if (handler != null)
|
||||
{
|
||||
|
@ -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<Creature> 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.
|
||||
|
@ -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<Creature> targets = new ArrayList<>();
|
||||
targets.add(target);
|
||||
|
||||
// Launch the magic skill and calculate its effects
|
||||
if (handler != null)
|
||||
|
@ -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()));
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (caster.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (caster.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead() || (_createItemId == 0) || (_createItemCount == 0))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
caster.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
caster.sendMessage("Skill not implemented. Skill ID: " + getId() + " " + getSkillType());
|
||||
|
@ -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<Creature> 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<Creature> targets)
|
||||
{
|
||||
for (Creature target : (Creature[]) targets)
|
||||
for (Creature target : targets)
|
||||
{
|
||||
if (target.isAlikeDead() && (getTargetType() != SkillTargetType.TARGET_CORPSE_MOB))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (caster.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (caster.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (caster.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> 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);
|
||||
|
@ -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<Creature> _targets;
|
||||
private final int _singleTargetId;
|
||||
|
||||
public MagicSkillLaunched(Creature creature, int skillId, int skillLevel, WorldObject[] targets)
|
||||
public MagicSkillLaunched(Creature creature, int skillId, int skillLevel, List<Creature> 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;
|
||||
|
@ -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<Creature> targets) throws IOException;
|
||||
|
||||
/**
|
||||
* this method is called at initialization to register all the item ids automatically
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
// check for other effects
|
||||
try
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final WorldObject[] targetList = skill.getTargetList(creature);
|
||||
final List<Creature> targetList = skill.getTargetList(creature);
|
||||
if (targetList == null)
|
||||
{
|
||||
return;
|
||||
|
@ -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<Creature> 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())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
for (WorldObject target1 : targets)
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
PlayerInstance player = null;
|
||||
if (creature instanceof PlayerInstance)
|
||||
|
@ -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<Creature> 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)
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature == null)
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof Playable))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final WorldObject[] targetList = skill.getTargetList(creature);
|
||||
final List<Creature> targetList = skill.getTargetList(creature);
|
||||
if (targetList == null)
|
||||
{
|
||||
return;
|
||||
|
@ -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<Creature> 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<Creature> tgts = new ArrayList<>();
|
||||
tgts.add(target);
|
||||
|
||||
try
|
||||
{
|
||||
healhandler.useSkill(creature, skill, tgts);
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final WorldObject[] targetList = skill.getTargetList(creature);
|
||||
final List<Creature> targetList = skill.getTargetList(creature);
|
||||
if (targetList == null)
|
||||
{
|
||||
return;
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
for (WorldObject obj : targets)
|
||||
{
|
||||
|
@ -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<Creature> 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<Creature> targetList = skill.getTargetList(creature);
|
||||
final InventoryUpdate iu = Config.FORCE_INVENTORY_UPDATE ? null : new InventoryUpdate();
|
||||
if (targetList == null)
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
PlayerInstance player = null;
|
||||
if (creature instanceof PlayerInstance)
|
||||
|
@ -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<Creature> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
Creature target = null;
|
||||
if (creature.isAlikeDead())
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (creature.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
PlayerInstance player = null;
|
||||
if (creature instanceof PlayerInstance)
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> 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<Creature> 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);
|
||||
}
|
||||
}
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (!(creature instanceof PlayerInstance))
|
||||
{
|
||||
|
@ -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<Creature> 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)
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
final WorldObject[] targetList = skill.getTargetList(creature);
|
||||
final List<Creature> targetList = skill.getTargetList(creature);
|
||||
if (targetList == null)
|
||||
{
|
||||
return;
|
||||
|
@ -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<Creature> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<Creature> 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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<Skill, ChanceCondition>
|
||||
}
|
||||
|
||||
final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(castedSkill.getSkillType());
|
||||
final WorldObject[] targets = castedSkill.getTargetList(_owner, false, target);
|
||||
final List<Creature> 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)
|
||||
|
@ -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<Creature> targets);
|
||||
|
||||
public boolean isSingleEffect()
|
||||
{
|
||||
@ -1374,7 +1374,7 @@ public abstract class Skill
|
||||
return true;
|
||||
}
|
||||
|
||||
public WorldObject[] getTargetList(Creature creature, boolean onlyFirst)
|
||||
public List<Creature> 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<Creature> 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<Creature> 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<WorldObject> 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<WorldObject> objs = creature.getKnownList().getKnownObjects().values();
|
||||
for (WorldObject newTarget : objs)
|
||||
@ -2766,20 +2658,19 @@ public abstract class Skill
|
||||
}
|
||||
}
|
||||
|
||||
public WorldObject[] getTargetList(Creature creature)
|
||||
public List<Creature> 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<Creature> 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)
|
||||
|
@ -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<Creature> 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<Creature> _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<Creature> 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<Creature> 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<Creature> finalTargets = null;
|
||||
int skipped = 0;
|
||||
if (escapeRange > 0)
|
||||
{
|
||||
final List<Creature> 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<Creature> 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<Creature> 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<Creature> 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<Creature> 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;
|
||||
|
@ -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<Creature> 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<Creature> 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<Creature> 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<Creature> 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<Creature> targets = new ArrayList<>();
|
||||
targets.add(target);
|
||||
|
||||
final ISkillHandler handler = SkillHandler.getInstance().getSkillHandler(skill.getSkillType());
|
||||
if (handler != null)
|
||||
{
|
||||
|
@ -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<Creature> 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.
|
||||
|
@ -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<Creature> targets = new ArrayList<>();
|
||||
targets.add(target);
|
||||
|
||||
// Launch the magic skill and calculate its effects
|
||||
if (handler != null)
|
||||
|
@ -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()));
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (caster.isAlikeDead())
|
||||
{
|
||||
|
@ -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<Creature> targets)
|
||||
{
|
||||
if (caster.isAlikeDead())
|
||||
{
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user