RuneHive-Game
Loading...
Searching...
No Matches
CrawsBow.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 */
18public class CrawsBow extends PlayerRangedStrategy {
19
20 private static final CrawsBow INSTANCE = new CrawsBow();
21 private static final Animation ANIMATION = new Animation(426, UpdatePriority.HIGH);
22 private static Projectile PROJECTILE_1;
23
24 static {
25 try {
27 } catch (Exception e) {
28 e.printStackTrace();
29 }
30 }
31
32 private CrawsBow() {
33 }
34
35 @Override
36 protected void sendStuff(Player attacker, Mob defender) {
37 attacker.animate(ANIMATION, true);
38 PROJECTILE_1.send(attacker, defender);
39 }
40
41 @Override
42 public CombatHit[] getHits(Player attacker, Mob defender) {
43 return new CombatHit[] { nextRangedHit(attacker, defender), nextRangedHit(attacker, defender) };
44 }
45
46 @Override
47 public int modifyAccuracy(Player attacker, Mob defender, int roll) {
48 return roll - roll / 4;
49 }
50
52 if (!projectile.getProjectile().isPresent())
53 throw new NullPointerException("No Craw's bow projectile found.");
54 PROJECTILE_1 = projectile.getProjectile().get();
55
56 }
57
58 public static CrawsBow get() {
59 return INSTANCE;
60 }
61
62}
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.