1package com.runehive.game.world.entity.combat.strategy.npc.boss.skotizo;
3import com.runehive.game.Animation;
4import com.runehive.game.Graphic;
5import com.runehive.game.Projectile;
6import com.runehive.game.UpdatePriority;
7import com.runehive.game.world.World;
8import com.runehive.game.world.entity.combat.CombatType;
9import com.runehive.game.world.entity.combat.attack.FightType;
10import com.runehive.game.world.entity.combat.hit.CombatHit;
11import com.runehive.game.world.entity.combat.hit.Hit;
12import com.runehive.game.world.entity.combat.projectile.CombatProjectile;
13import com.runehive.game.world.entity.combat.strategy.CombatStrategy;
14import com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy;
15import com.runehive.game.world.entity.combat.strategy.npc.NpcMagicStrategy;
16import com.runehive.game.world.entity.combat.strategy.npc.NpcMeleeStrategy;
17import com.runehive.game.world.entity.mob.Mob;
18import com.runehive.game.world.entity.mob.npc.Npc;
19import com.runehive.game.world.position.Position;
20import com.runehive.game.world.region.RegionManager;
21import com.runehive.util.RandomUtils;
22import com.runehive.util.Utility;
24import static com.runehive.game.world.entity.combat.CombatUtil.createStrategyArray;
25import static com.runehive.game.world.entity.combat.CombatUtil.randomStrategy;
40 private static final String[]
SHOUTS = {
41 "Feel the wrath of Skotizo!",
42 "The dark times have come for you all!"
63 if (!defender.
getCombat().isAttacking()) {
66 defender.
speak(
"ARHHHH! TIME TO SWITCH IT UP!!");
115 hit.setAccurate(
false);
121 return roll + 50_000;
142 attacker.
speak(
"ARHHHH! TIME TO SWITCH IT UP!!");
148 hit.setAccurate(
false);
169 attacker.
speak(
"YOU WILL NOW FEEL THE TRUE WRATH OF SKOTIZO!");
177 if (other.getPosition().equals(
position)) {
179 other.speak(
"OUCH!");
180 other.message(
"Skotizo has just electrocuted your entire body! Don't stay in one spot!");
189 hit.setAccurate(
false);
Class that models a single animation used by an entity.
Represents a single graphic that can be used by entities.
Represents the game world.
static void schedule(Task task)
Submits a new event.
static void sendGraphic(Graphic graphic, Position position, int instance)
Sends a graphic to the world.
static void sendProjectile(Projectile projectile, Position position, int instance, int lock, byte offsetX, byte offsetY)
Sends a world projectile.
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 nextMagicHit(T attacker, Mob defender)
boolean withinDistance(T attacker, Mob defender)
void hit(Npc attacker, Mob defender, Hit hit)
CombatStrategy< Npc > currentStrategy
final CombatProjectile combatProjectile
NpcMagicStrategy(CombatProjectile combatProjectile)
static NpcMeleeStrategy get()
void start(Npc attacker, Mob defender, Hit[] hits)
void attack(Npc attacker, Mob defender, Hit hit)
CombatHit[] getHits(Npc attacker, Mob defender)
void hit(Npc attacker, Mob defender, Hit hit)
Skotizo's magic strategy.
void start(Npc attacker, Mob defender, Hit[] hits)
void attack(Npc attacker, Mob defender, Hit hit)
int modifyAccuracy(Npc attacker, Mob defender, int roll)
CombatHit[] getHits(Npc attacker, Mob defender)
void hit(Npc attacker, Mob defender, Hit hit)
void hit(Npc attacker, Mob defender, Hit hit)
void start(Npc attacker, Mob defender, Hit[] hits)
void attack(Npc attacker, Mob defender, Hit hit)
CombatHit[] getHits(Npc attacker, Mob defender)
static final String[] SHOUTS
boolean canAttack(Npc attacker, Mob defender)
Skotizo()
Constructs a new Skotizo.
static final CombatStrategy< Npc >[] FULL_STRATEGIES
static final CombatStrategy< Npc >[] MAGIC_STRATEGIES
void block(Mob attacker, Npc defender, Hit hit, CombatType combatType)
int getAttackDelay(Npc attacker, Mob defender, FightType fightType)
static LightingRain LIGHTNING_RAIN
void finishOutgoing(Npc attacker, Mob defender)
static TeleGrab TELE_GRAB
void speak(String forceChat)
Sets the mob's forced chat.
void animate(int animation)
Optional< Graphic > graphic
Represents a non-player character in the in-game world.
Combat< Npc > getCombat()
The combat of the mob.
Represents a single tile on the game world.
Manages the world regions.
static void forNearbyPlayer(Mob mob, int distance, Consumer< Player > action)
Sends an action to Mob instance which is within a distance.
Handles miscellaneous methods.
static int random(int bound)
static< T > T randomElement(Collection< T > collection)
Picks a random element out of any array type.
Represents different priorities for updating.
VERY_HIGH
A very high priority.
The enumerated type whose elements represent the fighting types.