1package com.runehive.game.world.entity.combat.magic;
3import com.runehive.content.skill.impl.magic.Spellbook;
4import com.runehive.game.Animation;
5import com.runehive.game.Graphic;
6import com.runehive.game.world.entity.combat.CombatImpact;
7import com.runehive.game.world.entity.combat.projectile.CombatProjectile;
8import com.runehive.game.world.entity.mob.Mob;
9import com.runehive.game.world.items.Item;
11import java.util.HashMap;
13import java.util.Optional;
15import static com.runehive.game.world.entity.combat.projectile.CombatProjectile.getDefinition;
19 getDefinition(
"Wind Strike"),
27 getDefinition(
"Water Strike"),
36 getDefinition(
"Earth Strike"),
45 getDefinition(
"Fire Strike"),
54 getDefinition(
"Wind Bolt"),
62 getDefinition(
"Water Bolt"),
71 getDefinition(
"Earth Bolt"),
80 getDefinition(
"Fire Bolt"),
89 getDefinition(
"Crumble Undead"),
97 getDefinition(
"Wind Blast"),
105 getDefinition(
"Water Blast"),
114 getDefinition(
"Earth Blast"),
123 getDefinition(
"Fire Blast"),
132 getDefinition(
"Wind Wave"),
140 getDefinition(
"Water Wave"),
149 getDefinition(
"Earth Wave"),
158 getDefinition(
"Fire Wave"),
167 getDefinition(
"Saradomin Strike"),
176 getDefinition(
"Claws of Guthix"),
185 getDefinition(
"Flames of Zamorak"),
194 getDefinition(
"Bind"),
203 getDefinition(
"Iban Blast"),
211 getDefinition(
"Magic Dart"),
219 getDefinition(
"Snare"),
228 getDefinition(
"Entangle"),
237 getDefinition(
"Confuse"),
246 getDefinition(
"Weaken"),
255 getDefinition(
"Curse"),
264 getDefinition(
"Vulnerability"),
273 getDefinition(
"Enfeeble"),
282 getDefinition(
"Stun"),
291 getDefinition(
"Teleblock"),
300 getDefinition(
"Wind Surge"),
308 getDefinition(
"Water Surge"),
317 getDefinition(
"Earth Surge"),
326 getDefinition(
"Fire Surge"),
335 getDefinition(
"Ice Rush"),
344 getDefinition(
"Ice Blitz"),
353 getDefinition(
"Ice Burst"),
362 getDefinition(
"Ice Barrage"),
371 getDefinition(
"Blood Rush"),
380 getDefinition(
"Blood Blitz"),
388 getDefinition(
"Blood Burst"),
397 getDefinition(
"Blood Barrage"),
406 getDefinition(
"Smoke Rush"),
416 getDefinition(
"Smoke Blitz"),
426 getDefinition(
"Smoke Burst"),
436 getDefinition(
"Smoke Barrage"),
446 getDefinition(
"Shadow Rush"),
456 getDefinition(
"Shadow Blitz"),
466 getDefinition(
"Shadow Burst"),
476 getDefinition(
"Shadow Barrage"),
485 private final int id;
490 private final static Map<Integer, CombatSpell>
SPELLS;
494 SPELLS =
new HashMap<>(spells.length);
504 this.spell =
new MagicSpell(level, baseExperience, runes) {
506 public Optional<Item[]> equipmentRequired() {
530 return spell.baseExperience;
563 return spell.canCast(attacker, Optional.ofNullable(defender));
Represents a combat spell.
Optional< Graphic > getStart()
static CombatProjectile getDefinition(String name)
Optional< Animation > getAnimation()
Optional< Graphic > getEnd()
The container class that represents an item that can be interacted with.
The in-game spellbooks for players.
final Spellbook spellbook
Optional< Graphic > getStart()
final CombatProjectile combatProjectile
static final Map< Integer, CombatSpell > SPELLS
int sendProjectile(Mob attacker, Mob defender)
double getBaseExperience()
Optional< Animation > getAnimation()
RequiredRune[] getRunes()
Optional< CombatImpact > getEffect()
boolean canCast(Mob attacker, Mob defender)
CombatSpell(Spellbook spellbook, int id, int level, float baseExperience, Item weapon, CombatProjectile combatProjectile, RequiredRune[] runes)
Optional< Graphic > getEnd()
CombatProjectile getCombatProjectile()