RuneHive-Game
Loading...
Searching...
No Matches
ArmadylCrossbow.java
Go to the documentation of this file.
1package com.runehive.game.world.entity.combat.strategy.player.special.range;
2
3import com.runehive.game.Animation;
4import com.runehive.game.Projectile;
5import com.runehive.game.UpdatePriority;
6import com.runehive.game.world.entity.combat.hit.CombatHit;
7import com.runehive.game.world.entity.combat.projectile.CombatProjectile;
8import com.runehive.game.world.entity.combat.strategy.player.PlayerRangedStrategy;
9import com.runehive.game.world.entity.mob.Mob;
10import com.runehive.game.world.entity.mob.player.Player;
11
12/**
13 * Handles the magic shortbow weapon special attack.
14 *
15 * @author Daniel
16 * @author Michaael | Chex
17 */
19
20 private static final ArmadylCrossbow INSTANCE = new ArmadylCrossbow();
21 private static final Animation ANIMATION = new Animation(4230, UpdatePriority.HIGH);
22 private static Projectile PROJECTILE;
23
24 static {
25 try {
27 } catch (Exception e) {
28 e.printStackTrace();
29 }
30 }
31
32 private ArmadylCrossbow() {
33 }
34
35 @Override
36 protected void sendStuff(Player attacker, Mob defender) {
37 attacker.animate(ANIMATION, true);
38 PROJECTILE.send(attacker, defender);
39 }
40
41 @Override
42 public CombatHit[] getHits(Player attacker, Mob defender) {
43 return new CombatHit[]{nextRangedHit(attacker, defender)};
44 }
45
46 @Override
47 public int modifyAccuracy(Player attacker, Mob defender, int roll) {
48 return 2 * roll;
49 }
50
52 if (!projectile.getProjectile().isPresent())
53 throw new NullPointerException("No Magic Shortbow projectile found.");
54 PROJECTILE = projectile.getProjectile().get();
55 }
56
57 public static ArmadylCrossbow get() {
58 return INSTANCE;
59 }
60
61}
Class that models a single animation used by an entity.
A wrapper for a Hit object, adding additional variables for hit and hitsplat delays.
final CombatHit nextRangedHit(T attacker, Mob defender)
Handles the mob class.
Definition Mob.java:66
This class represents a character controlled by a player.
Definition Player.java:125
Represents different priorities for updating.