1package com.runehive.game.world.entity.combat.strategy.npc.boss;
3import com.runehive.game.Animation;
4import com.runehive.game.UpdatePriority;
5import com.runehive.game.task.Task;
6import com.runehive.game.world.World;
7import com.runehive.game.world.entity.combat.CombatType;
8import com.runehive.game.world.entity.combat.attack.FightType;
9import com.runehive.game.world.entity.combat.hit.CombatHit;
10import com.runehive.game.world.entity.combat.hit.Hit;
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.mob.Mob;
16import com.runehive.game.world.entity.mob.npc.Npc;
18import static com.runehive.game.world.entity.combat.CombatUtil.createStrategyArray;
19import static com.runehive.game.world.entity.combat.CombatUtil.randomStrategy;
20import static com.runehive.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
33 this.currentStrategy = randomStrategy(
STRATEGIES);
49 protected void execute() {
75 super.hit(attacker, defender,
hit);
80 return (
int) (roll * 2.3);
106 super(getDefinition(
"Wyrm Magic"));
Class that models a single animation used by an entity.
A game representing a cyclic unit of work.
Represents the game world.
static void schedule(Task task)
Submits a new event.
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)
CombatHit nextMeleeHit(T attacker, Mob defender)
final CombatHit nextMagicHit(T attacker, Mob defender)
boolean withinDistance(T attacker, Mob defender)
CombatStrategy< Npc > currentStrategy
NpcMagicStrategy(CombatProjectile combatProjectile)
static NpcMeleeStrategy get()
CombatHit[] getHits(Npc attacker, Mob defender)
static final Animation ANIMATION
int getAttackDistance(Npc attacker, FightType fightType)
Animation getAttackAnimation(Npc attacker, Mob defender)
CombatHit[] getHits(Npc attacker, Mob defender)
Animation getAttackAnimation(Npc attacker, Mob defender)
int getAttackDistance(Npc attacker, FightType fightType)
static final Animation ANIMATION
int modifyDefensive(Mob attacker, Npc defender, int roll)
static final CombatStrategy< Npc >[] STRATEGIES
boolean canAttack(Npc attacker, Mob defender)
void finishOutgoing(Npc attacker, Mob defender)
void hit(Npc attacker, Mob defender, Hit hit)
boolean withinDistance(Npc attacker, Mob defender)
void block(Mob attacker, Npc defender, Hit hit, CombatType combatType)
void transform(int transformId)
Represents a non-player character in the in-game world.
Represents different priorities for updating.
The enumerated type whose elements represent the fighting types.