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.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.strategy.CombatStrategy;
10import com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy;
11import com.runehive.game.world.entity.combat.strategy.npc.NpcMagicStrategy;
12import com.runehive.game.world.entity.combat.strategy.npc.NpcMeleeStrategy;
13import com.runehive.game.world.entity.combat.strategy.npc.NpcRangedStrategy;
14import com.runehive.game.world.entity.mob.Mob;
15import com.runehive.game.world.entity.mob.npc.Npc;
16import com.runehive.game.world.entity.mob.prayer.Prayer;
17import com.runehive.util.RandomUtils;
18import com.runehive.util.Utility;
20import java.util.HashSet;
23import static com.runehive.game.world.entity.combat.CombatUtil.createStrategyArray;
24import static com.runehive.game.world.entity.combat.CombatUtil.randomStrategy;
25import static com.runehive.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
35 private static final Integer[]
FORMS = { 7147, 7148, 7149 };
41 this.currentStrategy = randomStrategy(
STRATEGIES);
57 nextForm = defender.
id;
83 super.hit(attacker, defender,
hit);
84 if (
hit.getDamage() == 0) {
95 return (
int) (roll * 2.3);
121 super(getDefinition(
"Demonic Gorilla Magic"));
146 super(getDefinition(
"Demonic Gorilla Ranged"));
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.
void setAccurate(boolean accurate)
final CombatHit nextRangedHit(T attacker, Mob defender)
CombatHit nextMeleeHit(T attacker, Mob defender)
final CombatHit nextMagicHit(T attacker, Mob defender)
CombatStrategy< Npc > currentStrategy
NpcMagicStrategy(CombatProjectile combatProjectile)
NpcRangedStrategy(CombatProjectile combatProjectile)
int getAttackDistance(Npc attacker, FightType fightType)
Animation getAttackAnimation(Npc attacker, Mob defender)
CombatHit[] getHits(Npc attacker, Mob defender)
static final Animation ANIMATION
CombatHit[] getHits(Npc attacker, Mob defender)
Animation getAttackAnimation(Npc attacker, Mob defender)
static final Animation ANIMATION
int getAttackDistance(Npc attacker, FightType fightType)
CombatHit[] getHits(Npc attacker, Mob defender)
int getAttackDistance(Npc attacker, FightType fightType)
Animation getAttackAnimation(Npc attacker, Mob defender)
static final Animation ANIMATION
void block(Mob attacker, Npc defender, Hit hit, CombatType combatType)
void hit(Npc attacker, Mob defender, Hit hit)
CombatStrategy getNextStrategy()
int modifyDefensive(Mob attacker, Npc defender, int roll)
static final Integer[] FORMS
static final CombatStrategy< Npc >[] STRATEGIES
static final Ranged RANGED
void transform(int transformId)
Represents a non-player character in the in-game world.
boolean isActive(Prayer... prayers)
Checks if all given prayers are active.
void toggle(Prayer... prayers)
Inverts a prayer's active state.
A static-util class that provides additional functionality for generating pseudo-random numbers.
static< T > T randomExclude(T[] array, T exclude)
Returns a pseudo-random int value between inclusive min and inclusive max excluding the specified num...
Represents different priorities for updating.
The enumerated type whose elements represent the fighting types.