1package com.runehive.game.world.entity.combat.strategy.npc.boss.armadyl;
3import com.runehive.game.Animation;
4import com.runehive.game.UpdatePriority;
5import com.runehive.game.world.entity.combat.CombatType;
6import com.runehive.game.world.entity.combat.attack.FightType;
7import com.runehive.game.world.entity.combat.hit.CombatHit;
8import com.runehive.game.world.entity.combat.hit.Hit;
9import com.runehive.game.world.entity.combat.hit.HitIcon;
10import com.runehive.game.world.entity.combat.projectile.CombatProjectile;
11import com.runehive.game.world.entity.combat.strategy.CombatStrategy;
12import com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy;
13import com.runehive.game.world.entity.combat.strategy.npc.NpcMagicStrategy;
14import com.runehive.game.world.entity.combat.strategy.npc.NpcMeleeStrategy;
15import com.runehive.game.world.entity.combat.strategy.npc.NpcRangedStrategy;
16import com.runehive.game.world.entity.mob.Mob;
17import com.runehive.game.world.entity.mob.npc.Npc;
19import static com.runehive.game.world.entity.combat.CombatUtil.createStrategyArray;
20import static com.runehive.game.world.entity.combat.CombatUtil.randomStrategy;
41 return super.canOtherAttack(attacker, defender);
47 if (!
melee && !isTarget) {
50 }
else if (isTarget)
melee =
false;
51 return super.canAttack(attacker, defender);
57 if (!
melee && !isTarget) {
60 }
else if (isTarget)
melee =
false;
61 return super.withinDistance(attacker, defender);
66 super.finishOutgoing(attacker, defender);
68 if (!
melee && !isTarget) {
73 if (isTarget)
melee =
false;
100 if (
hit.isAccurate())
101 super.hit(attacker, defender,
hit);
Class that models a single animation used by an entity.
A wrapper for a Hit object, adding additional variables for hit and hitsplat delays.
A Hit object holds the damage amount and hitsplat data.
static CombatProjectile getDefinition(String name)
final CombatHit nextRangedHit(T attacker, Mob defender)
CombatHit nextMeleeHit(T attacker, Mob defender)
CombatStrategy< Npc > currentStrategy
NpcMagicStrategy(CombatProjectile combatProjectile)
NpcRangedStrategy(CombatProjectile combatProjectile)
CombatHit[] getHits(Npc attacker, Mob defender)
void hit(Npc attacker, Mob defender, Hit hit)
Animation getAttackAnimation(Npc attacker, Mob defender)
CombatHit[] getHits(Npc attacker, Mob defender)
static final Animation ANIMATION
CombatHit[] getHits(Npc attacker, Mob defender)
void finishOutgoing(Npc attacker, Mob defender)
boolean canAttack(Npc attacker, Mob defender)
static final Ranged RANGED
boolean withinDistance(Npc attacker, Mob defender)
static final CombatStrategy< Npc >[] NON_MELEE
boolean canOtherAttack(Mob attacker, Npc defender)
int getAttackDelay(Npc attacker, Mob defender, FightType fightType)
abstract< T extends Mob > CombatStrategy<? super T > getStrategy()
The combat strategy of the mob.
abstract Combat<? extends Mob > getCombat()
The combat of the mob.
final boolean isPlayer()
Check if an entity is a player.
Represents a non-player character in the in-game world.
boolean equals(Object obj)
void message(String message)
Represents different priorities for updating.
The enumerated type whose elements represent the fighting types.
The enumerated type whose elements represent the hit icon of a Hit.
MAGIC
Represents the magic hat hit icon.