1package com.runehive.game.world.entity.combat.attack.listener.npc;
3import com.runehive.game.world.entity.combat.attack.listener.NpcCombatListenerSignature;
4import com.runehive.game.world.entity.combat.attack.listener.SimplifiedListener;
5import com.runehive.game.world.entity.combat.hit.CombatHit;
6import com.runehive.game.world.entity.combat.hit.Hit;
7import com.runehive.game.world.entity.combat.strategy.CombatStrategy;
8import com.runehive.game.world.entity.combat.strategy.npc.NpcMagicStrategy;
9import com.runehive.game.world.entity.combat.strategy.npc.NpcMeleeStrategy;
10import com.runehive.game.world.entity.mob.Mob;
11import com.runehive.game.world.entity.mob.npc.Npc;
13import static com.runehive.game.world.entity.combat.CombatUtil.createStrategyArray;
14import static com.runehive.game.world.entity.combat.CombatUtil.randomStrategy;
15import static com.runehive.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
30 }
catch(Exception e) {
40 return attacker.
getStrategy().canAttack(attacker, defender);
54 super(getDefinition(
"Ice Barrage"));
59 super.hit(attacker, defender,
hit);
60 attacker.
speak(
"Semolina-Go!");
void hit(Npc attacker, Mob defender, Hit hit)
CombatHit[] getHits(Npc attacker, Mob defender)
static CombatStrategy< Npc >[] STRATEGIES
boolean canAttack(Npc attacker, Mob defender)
void start(Npc attacker, Mob defender, Hit[] hits)
A wrapper for a Hit object, adding additional variables for hit and hitsplat delays.
A Hit object holds the damage amount and hitsplat data.
void setAccurate(boolean accurate)
final CombatHit nextMagicHit(T attacker, Mob defender)
boolean withinDistance(T attacker, Mob defender)
final CombatProjectile combatProjectile
NpcMagicStrategy(CombatProjectile combatProjectile)
static NpcMeleeStrategy get()
void speak(String forceChat)
Sets the mob's forced chat.
Represents a non-player character in the in-game world.
void setStrategy(CombatStrategy< Npc > strategy)
CombatStrategy< Npc > getStrategy()
The combat strategy of the mob.