RuneHive-Game
Loading...
Searching...
No Matches
com.runehive.content.activity.infernomobs.JalTokJad Class Reference
Inheritance diagram for com.runehive.content.activity.infernomobs.JalTokJad:
Collaboration diagram for com.runehive.content.activity.infernomobs.JalTokJad:

Classes

class  Guardian
class  MagicAttack
class  MeleeAttack
class  RangedAttack

Public Member Functions

void block (Mob attacker, Npc defender, Hit hit, CombatType combatType)
boolean canAttack (Npc attacker, Mob defender)
void finishOutgoing (Npc attacker, Mob defender)
void hit (Npc attacker, Mob defender, Hit hit)
 JalTokJad ()
int modifyAccuracy (Npc attacker, Mob defender, int roll)
Public Member Functions inherited from com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy
void attack (Npc attacker, Mob defender, Hit hit)
boolean canOtherAttack (Mob attacker, Npc defender)
void finishIncoming (Mob attacker, Npc defender)
Animation getAttackAnimation (Npc attacker, Mob defender)
int getAttackDelay (Npc attacker, Mob defender, FightType fightType)
int getAttackDistance (Npc attacker, FightType fightType)
CombatType getCombatType ()
CombatHit[] getHits (Npc attacker, Mob defender)
void hitsplat (Npc attacker, Mob defender, Hit hit)
int modifyAggressive (Npc attacker, Mob defender, int roll)
int modifyAggressiveBonus (Npc attacker, Mob defender, int bonus)
int modifyAttackLevel (Npc attacker, Mob defender, int level)
int modifyDamage (Npc attacker, Mob defender, int damage)
int modifyDefenceLevel (Mob attacker, Npc defender, int level)
int modifyDefensive (Mob attacker, Npc defender, int roll)
int modifyDefensiveBonus (Mob attacker, Npc defender, int bonus)
int modifyMagicLevel (Npc attacker, Mob defender, int level)
int modifyOffensiveBonus (Npc attacker, Mob defender, int bonus)
int modifyRangedLevel (Npc attacker, Mob defender, int level)
int modifyStrengthLevel (Npc attacker, Mob defender, int level)
void onDamage (Npc defender, Hit hit)
void onDeath (Mob attacker, Npc defender, Hit hit)
void onKill (Npc attacker, Mob defender, Hit hit)
void preDeath (Mob attacker, Npc defender, Hit hit)
void preKill (Mob attacker, Mob defender, Hit hit)
 Called before attacker killed defender.
void start (Npc attacker, Mob defender, Hit[] hits)
boolean withinDistance (Npc attacker, Mob defender)
Public Member Functions inherited from com.runehive.game.world.entity.combat.strategy.CombatStrategy< T extends Mob >
void attack (T attacker, Mob defender, Hit hit)
 Called when the attacking hit executes on the defender.
void block (Mob attacker, T defender, Hit hit, CombatType combatType)
 Called when the defending mob blocks a hit from the attacker.
abstract boolean canAttack (T attacker, Mob defender)
 Checks if the attacker can attack the defender.
boolean canOtherAttack (Mob attacker, T defender)
 Checks if the attacker can attack the defender.
void finishIncoming (Mob attacker, T defender)
 Called when the attacking mob finishes their strategy's attack.
void finishOutgoing (T attacker, Mob defender)
 Called when the defending mob finishes their strategy's attack.
abstract Animation getAttackAnimation (T attacker, Mob defender)
abstract int getAttackDelay (T attacker, Mob defender, FightType fightType)
abstract int getAttackDistance (T attacker, FightType fightType)
CombatProjectile getCombatProjectile ()
abstract CombatHit[] getHits (T attacker, Mob defender)
void hit (T attacker, Mob defender, Hit hit)
 Called when the attacking mob performs an attack on the defender.
void hitsplat (T attacker, Mob defender, Hit hit)
 Called when attacker does the hitsplat.
boolean isAlwaysAccurate ()
void onDamage (T defender, Hit hit)
void onDeath (Mob attacker, T defender, Hit hit)
 Called when the defending mob dies.
void onKill (T attacker, Mob defender, Hit hit)
 Called when attacker killed defender.
void preDeath (Mob attacker, T defender, Hit hit)
 Called right before the defending mob dies.
void start (T attacker, Mob defender, Hit[] hits)
 Called when the strategy starts.
Public Member Functions inherited from com.runehive.game.world.entity.combat.attack.listener.CombatListener< T extends Mob >
default void init (T attacker, Mob defender)
 Called when the strategy initializes.
default void performChecks (T attacker, Mob defender)
boolean withinDistance (T attacker, Mob defender)
Public Member Functions inherited from com.runehive.game.world.entity.combat.FormulaModifier< T extends Mob >
default int modifyAccuracy (T attacker, Mob defender, int roll)
default int modifyAggressive (T attacker, Mob defender, int roll)
default int modifyAggressiveBonus (T attacker, Mob defender, int bonus)
default int modifyAttackLevel (T attacker, Mob defender, int level)
default int modifyDamage (T attacker, Mob defender, int damage)
default int modifyDefenceLevel (Mob attacker, T defender, int level)
default int modifyDefensive (Mob attacker, T defender, int roll)
default int modifyDefensiveBonus (Mob attacker, T defender, int bonus)
default int modifyMagicLevel (T attacker, Mob defender, int level)
default int modifyOffensiveBonus (T attacker, Mob defender, int bonus)
default int modifyRangedLevel (T attacker, Mob defender, int level)
default int modifyStrengthLevel (T attacker, Mob defender, int level)

Static Public Attributes

static int POS1 = 2274
static int POS2 = 5337

Private Attributes

boolean hasGuardians

Static Private Attributes

static final CombatStrategy< Npc >[] FULL_STRATEGIES = createStrategyArray(RANGED, MAGIC, MELEE)
static MagicAttack MAGIC = new MagicAttack()
static MeleeAttack MELEE = new MeleeAttack()
static final CombatStrategy< Npc >[] NON_MELEE = createStrategyArray(RANGED, MAGIC)
static int OBJECT = 1
static RangedAttack RANGED = new RangedAttack()

Additional Inherited Members

Static Public Member Functions inherited from com.runehive.game.world.entity.combat.strategy.CombatStrategy< T extends Mob >
static Graphic getEndGraphic (final CombatProjectile combatProjectile, final boolean splash, final Graphic splashGraphic)
static Graphic getEndGraphic (final CombatProjectile combatProjectile, final boolean splash, final Graphic splashGraphic, final int duration)
static Graphic getEndGraphic (final Optional< Graphic > end, final boolean splash, final Graphic splashGraphic, final int duration)
static int getProjectileDuration (final CombatProjectile combatProjectile)
static boolean missed (final Hit... hits)
Protected Member Functions inherited from com.runehive.game.world.entity.combat.strategy.CombatStrategy< T extends Mob >
final CombatHit nextMagicHit (T attacker, Mob defender)
CombatHit nextMagicHit (T attacker, Mob defender, CombatProjectile projectile)
final CombatHit nextMagicHit (T attacker, Mob defender, int max)
CombatHit nextMagicHit (T attacker, Mob defender, int max, CombatProjectile projectile)
final CombatHit nextMagicHit (T attacker, Mob defender, int max, int hitDelay, int hitsplatDelay)
CombatHit nextMeleeHit (T attacker, Mob defender)
CombatHit nextMeleeHit (T attacker, Mob defender, int max)
CombatHit nextMeleeHit (T attacker, Mob defender, int max, boolean multipleHitsAllowed)
CombatHit nextMeleeHit (T attacker, Mob defender, int max, int hitDelay, int hitsplatDelay)
CombatHit nextMeleeHit (T attacker, Mob defender, int max, int hitDelay, int hitsplatDelay, boolean multipleHitsAllowed)
final CombatHit nextRangedHit (T attacker, Mob defender)
final CombatHit nextRangedHit (T attacker, Mob defender, CombatProjectile projectile)
final CombatHit nextRangedHit (T attacker, Mob defender, int max)
final CombatHit nextRangedHit (T attacker, Mob defender, int max, CombatProjectile projectile)
CombatHit nextRangedHit (T attacker, Mob defender, int max, int hitDelay, int hitsplatDelay)
Protected Attributes inherited from com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy
CombatStrategy< NpccurrentStrategy

Detailed Description

Definition at line 35 of file JalTokJad.java.

Constructor & Destructor Documentation

◆ JalTokJad()

com.runehive.content.activity.infernomobs.JalTokJad.JalTokJad ( )

Definition at line 42 of file JalTokJad.java.

42 {
43 currentStrategy = randomStrategy(NON_MELEE);
44 }

References com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.currentStrategy, and NON_MELEE.

Member Function Documentation

◆ block()

void com.runehive.content.activity.infernomobs.JalTokJad.block ( Mob attacker,
Npc defender,
Hit hit,
CombatType combatType )

Reimplemented from com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.

Definition at line 55 of file JalTokJad.java.

55 {
56 currentStrategy.block(attacker, defender, hit, combatType);
57 defender.getCombat().attack(attacker);
58 }

References com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.currentStrategy, com.runehive.game.world.entity.mob.npc.Npc.getCombat(), and hit().

Here is the call graph for this function:

◆ canAttack()

boolean com.runehive.content.activity.infernomobs.JalTokJad.canAttack ( Npc attacker,
Mob defender )

Reimplemented from com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.

Definition at line 47 of file JalTokJad.java.

47 {
48 if (!currentStrategy.withinDistance(attacker, defender)) {
49 currentStrategy = randomStrategy(NON_MELEE);
50 }
51 return currentStrategy.canAttack(attacker, defender);
52 }

References com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.currentStrategy, and NON_MELEE.

◆ finishOutgoing()

void com.runehive.content.activity.infernomobs.JalTokJad.finishOutgoing ( Npc attacker,
Mob defender )

Reimplemented from com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.

Definition at line 104 of file JalTokJad.java.

104 {
105 currentStrategy.finishOutgoing(attacker, defender);
106 if (NpcMeleeStrategy.get().withinDistance(attacker, defender)) {
107 currentStrategy = randomStrategy(FULL_STRATEGIES);
108 } else {
109 currentStrategy = randomStrategy(NON_MELEE);
110 }
111 }

References com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.currentStrategy, FULL_STRATEGIES, com.runehive.game.world.entity.combat.strategy.npc.NpcMeleeStrategy.get(), NON_MELEE, and com.runehive.game.world.entity.combat.strategy.basic.MeleeStrategy< T extends Mob >.withinDistance().

Here is the call graph for this function:

◆ hit()

void com.runehive.content.activity.infernomobs.JalTokJad.hit ( Npc attacker,
Mob defender,
Hit hit )

Reimplemented from com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.

Definition at line 66 of file JalTokJad.java.

66 {
67 super.hit(attacker, defender, hit);
68
69 if (!defender.isPlayer())
70 return;
71 Player player = defender.getPlayer();
72
73 if (currentStrategy.getCombatType().equals(CombatType.MELEE)
74 && player.prayer.isActive(Prayer.PROTECT_FROM_MELEE)) {
75 hit.setDamage(0);
76 } else if (currentStrategy.getCombatType().equals(CombatType.RANGED)
77 && player.prayer.isActive(Prayer.PROTECT_FROM_RANGE)) {
78 hit.setDamage(0);
79 } else if (currentStrategy.getCombatType().equals(CombatType.MAGIC)
80 && player.prayer.isActive(Prayer.PROTECT_FROM_MAGIC)) {
81 hit.setDamage(0);
82 }
83
84 if (hasGuardians || attacker.getCurrentHealth() >= 175) {
85 return;
86 }
87 hasGuardians = true;
88
89 for (int i = 0; i <= 2; i++) {
90 Position spawn = RandomUtils.random(Utility.getInnerBoundaries(attacker));
91 Npc guardian = new Guardian(spawn, attacker);
92 guardian.register();
93 guardian.definition.setRespawnTime(-1);
94 guardian.walkExactlyTo(new Position(POS1, POS2, guardian.getHeight()), () -> {
95
96 World.sendGraphic(new Graphic(1460, true), guardian.getPosition());
97 defender.damage(new Hit(10 * guardian.getCurrentHealth() / guardian.getMaximumHealth()));
98 World.schedule(new CeillingCollapseTask(defender.getPlayer()));
99 });
100 }
101 }

References com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.currentStrategy, com.runehive.game.world.entity.mob.npc.Npc.definition, com.runehive.game.world.entity.mob.Mob.getCurrentHealth(), com.runehive.game.world.entity.Entity.getHeight(), com.runehive.util.Utility.getInnerBoundaries(), com.runehive.game.world.entity.mob.Mob.getPlayer(), hasGuardians, hit(), com.runehive.game.world.entity.mob.prayer.PrayerBook.isActive(), com.runehive.game.world.entity.mob.Mob.isPlayer(), com.runehive.game.world.entity.combat.CombatType.MAGIC, com.runehive.game.world.entity.combat.CombatType.MELEE, POS1, POS2, com.runehive.game.world.entity.mob.Mob.prayer, com.runehive.game.world.entity.mob.prayer.Prayer.PROTECT_FROM_MAGIC, com.runehive.game.world.entity.mob.prayer.Prayer.PROTECT_FROM_MELEE, com.runehive.game.world.entity.mob.prayer.Prayer.PROTECT_FROM_RANGE, com.runehive.util.RandomUtils.random(), com.runehive.game.world.entity.combat.CombatType.RANGED, com.runehive.game.world.entity.mob.npc.Npc.register(), com.runehive.game.world.entity.mob.npc.definition.NpcDefinition.setRespawnTime(), and com.runehive.game.world.entity.mob.Mob.walkExactlyTo().

Referenced by block(), com.runehive.content.activity.infernomobs.JalTokJad.MagicAttack.getHits(), com.runehive.content.activity.infernomobs.JalTokJad.MeleeAttack.getHits(), and hit().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ modifyAccuracy()

int com.runehive.content.activity.infernomobs.JalTokJad.modifyAccuracy ( Npc attacker,
Mob defender,
int roll )

Reimplemented from com.runehive.game.world.entity.combat.strategy.npc.MultiStrategy.

Definition at line 114 of file JalTokJad.java.

114 {
115 return roll + 150_000;
116 }

Member Data Documentation

◆ FULL_STRATEGIES

final CombatStrategy<Npc> [] com.runehive.content.activity.infernomobs.JalTokJad.FULL_STRATEGIES = createStrategyArray(RANGED, MAGIC, MELEE)
staticprivate

Definition at line 39 of file JalTokJad.java.

Referenced by finishOutgoing().

◆ hasGuardians

boolean com.runehive.content.activity.infernomobs.JalTokJad.hasGuardians
private

Definition at line 60 of file JalTokJad.java.

Referenced by hit().

◆ MAGIC

MagicAttack com.runehive.content.activity.infernomobs.JalTokJad.MAGIC = new MagicAttack()
staticprivate

Definition at line 37 of file JalTokJad.java.

◆ MELEE

MeleeAttack com.runehive.content.activity.infernomobs.JalTokJad.MELEE = new MeleeAttack()
staticprivate

Definition at line 38 of file JalTokJad.java.

◆ NON_MELEE

final CombatStrategy<Npc> [] com.runehive.content.activity.infernomobs.JalTokJad.NON_MELEE = createStrategyArray(RANGED, MAGIC)
staticprivate

Definition at line 40 of file JalTokJad.java.

Referenced by canAttack(), finishOutgoing(), and JalTokJad().

◆ OBJECT

int com.runehive.content.activity.infernomobs.JalTokJad.OBJECT = 1
staticprivate

Definition at line 61 of file JalTokJad.java.

◆ POS1

int com.runehive.content.activity.infernomobs.JalTokJad.POS1 = 2274
static

Definition at line 62 of file JalTokJad.java.

Referenced by hit().

◆ POS2

int com.runehive.content.activity.infernomobs.JalTokJad.POS2 = 5337
static

Definition at line 63 of file JalTokJad.java.

Referenced by hit().

◆ RANGED

RangedAttack com.runehive.content.activity.infernomobs.JalTokJad.RANGED = new RangedAttack()
staticprivate

Definition at line 36 of file JalTokJad.java.


The documentation for this class was generated from the following file: