1package com.runehive.game.world.entity.combat.strategy.npc.boss;
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.CombatUtil;
7import com.runehive.game.world.entity.combat.attack.FightType;
8import com.runehive.game.world.entity.combat.hit.CombatHit;
9import com.runehive.game.world.entity.combat.hit.Hit;
10import com.runehive.game.world.entity.combat.strategy.CombatStrategy;
11import com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy;
12import com.runehive.game.world.entity.combat.strategy.npc.NpcMeleeStrategy;
13import com.runehive.game.world.entity.combat.strategy.npc.impl.DragonfireStrategy;
14import com.runehive.game.world.entity.mob.Mob;
15import com.runehive.game.world.entity.mob.npc.Npc;
17import static com.runehive.game.world.entity.combat.CombatUtil.createStrategyArray;
18import static com.runehive.game.world.entity.combat.CombatUtil.randomStrategy;
19import static com.runehive.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
62 if (
STAB.withinDistance(attacker, defender)) {
115 super(getDefinition(
"KBD fire"));
132 super(getDefinition(
"KBD freeze"));
149 super(getDefinition(
"KBD shock"));
166 super(getDefinition(
"KBD poison"));
Class that models a single animation used by an entity.
A collection of util methods and constants related to combat.
static CombatHit generateDragonfire(Mob attacker, Mob defender, int max, boolean prayer)
A wrapper for a Hit object, adding additional variables for hit and hitsplat delays.
A Hit object holds the damage amount and hitsplat data.
CombatHit nextMeleeHit(T attacker, Mob defender)
void hit(Npc attacker, Mob defender, Hit hit)
CombatStrategy< Npc > currentStrategy
int getAttackDistance(Npc attacker, FightType fightType)
CombatHit[] getHits(Npc attacker, Mob defender)
static final Animation ANIMATION
Animation getAttackAnimation(Npc attacker, Mob defender)
CombatHit[] getHits(Npc attacker, Mob defender)
int getAttackDistance(Npc attacker, FightType fightType)
int getAttackDistance(Npc attacker, FightType fightType)
CombatHit[] getHits(Npc attacker, Mob defender)
int getAttackDistance(Npc attacker, FightType fightType)
CombatHit[] getHits(Npc attacker, Mob defender)
boolean canAttack(Npc attacker, Mob defender)
void finishOutgoing(Npc attacker, Mob defender)
static final CombatStrategy< Npc >[] FULL_STRATEGIES
KingBlackDragonStrategy()
static final CombatStrategy< Npc >[] NON_MELEE
static final CrushMelee CRUSH
boolean withinDistance(Npc attacker, Mob defender)
int getAttackDelay(Npc attacker, Mob defender, FightType fightType)
static final Freeze FREEZE
void block(Mob attacker, Npc defender, Hit hit, CombatType combatType)
static final Dragonfire DRAGONFIRE
static final Poison POISON
static final StabMelee STAB
static final Animation ANIMATION
int getAttackDistance(Npc attacker, FightType fightType)
CombatHit[] getHits(Npc attacker, Mob defender)
Animation getAttackAnimation(Npc attacker, Mob defender)
int getAttackDistance(Npc attacker, FightType fightType)
CombatHit[] getHits(Npc attacker, Mob defender)
DragonfireStrategy(CombatProjectile projectileDefinition)
Represents a non-player character in the in-game world.
Combat< Npc > getCombat()
The combat of the mob.
Represents different priorities for updating.
The enumerated type whose elements represent the fighting types.