a100affda2
Unified kotlin and java into just src/main Unified the rs09 and core packages Took all content out of the core package, and placed it into the new content package Reorganised all source code relating to content to be easier to find and explore
84 lines
1.9 KiB
Java
84 lines
1.9 KiB
Java
package content.global.skill.summoning.familiar;
|
|
|
|
import java.util.List;
|
|
|
|
import core.game.node.entity.Entity;
|
|
import core.game.node.entity.combat.equipment.WeaponInterface;
|
|
import core.game.node.entity.impl.Projectile;
|
|
import core.game.node.entity.player.Player;
|
|
import core.game.system.task.Pulse;
|
|
import core.game.world.GameWorld;
|
|
import core.game.world.map.RegionManager;
|
|
import core.game.world.update.flag.context.Animation;
|
|
import core.plugin.Initializable;
|
|
import core.game.world.update.flag.context.Graphics;
|
|
|
|
/**
|
|
* Represents the Spirit Kalphite familiar.
|
|
* @author Vexia
|
|
* @author Aero
|
|
*/
|
|
@Initializable
|
|
public class SpiritKalphiteNPC extends BurdenBeast {
|
|
|
|
/**
|
|
* Constructs a new {@code SpiritKalphiteNPC} {@code Object}.
|
|
*/
|
|
public SpiritKalphiteNPC() {
|
|
this(null, 6994);
|
|
}
|
|
|
|
/**
|
|
* Constructs a new {@code SpiritKalphiteNPC} {@code Object}.
|
|
* @param owner The owner.
|
|
* @param id The id.
|
|
*/
|
|
public SpiritKalphiteNPC(Player owner, int id) {
|
|
super(owner, id, 2200, 12063, 6, 6, WeaponInterface.STYLE_DEFENSIVE);
|
|
}
|
|
|
|
@Override
|
|
public Familiar construct(Player owner, int id) {
|
|
return new SpiritKalphiteNPC(owner, id);
|
|
}
|
|
|
|
@Override
|
|
protected boolean specialMove(FamiliarSpecial special) {
|
|
if (!isOwnerAttackable()) {
|
|
return false;
|
|
}
|
|
final List<Entity> entitys = RegionManager.getLocalEntitys(owner, 6);
|
|
visualize(Animation.create(8517), Graphics.create(1350));
|
|
GameWorld.getPulser().submit(new Pulse(1, owner) {
|
|
@Override
|
|
public boolean pulse() {
|
|
int count = 0;
|
|
for (Entity entity : entitys) {
|
|
if (count > 5) {
|
|
return true;
|
|
}
|
|
if (!canCombatSpecial(entity)) {
|
|
continue;
|
|
}
|
|
Projectile.magic(SpiritKalphiteNPC.this, entity, 1349, 40, 36, 50, 5).send();
|
|
sendFamiliarHit(entity, 20);
|
|
count++;
|
|
}
|
|
return true;
|
|
}
|
|
});
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public String getText() {
|
|
return "Hsssss!";
|
|
}
|
|
|
|
@Override
|
|
public int[] getIds() {
|
|
return new int[] { 6994, 6995 };
|
|
}
|
|
|
|
}
|