RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
CrawsBow.java
1package com.osroyale.game.world.entity.combat.strategy.player.special.range;
2
3import com.osroyale.game.Animation;
4import com.osroyale.game.Projectile;
5import com.osroyale.game.UpdatePriority;
6import com.osroyale.game.world.entity.combat.hit.CombatHit;
7import com.osroyale.game.world.entity.combat.projectile.CombatProjectile;
8import com.osroyale.game.world.entity.combat.strategy.player.PlayerRangedStrategy;
9import com.osroyale.game.world.entity.mob.Mob;
10import com.osroyale.game.world.entity.mob.player.Player;
11
45
46public class CrawsBow extends PlayerRangedStrategy {
47
48 private static final CrawsBow INSTANCE = new CrawsBow();
49 private static final Animation ANIMATION = new Animation(426, UpdatePriority.HIGH);
50 private static Projectile PROJECTILE_1;
51
52 static {
53 try {
54 setProjectiles(CombatProjectile.getDefinition("Craw's bow"));
55 } catch (Exception e) {
56 e.printStackTrace();
57 }
58 }
59
60 private CrawsBow() {
61 }
62
63 @Override
64 protected void sendStuff(Player attacker, Mob defender) {
65 attacker.animate(ANIMATION, true);
66 PROJECTILE_1.send(attacker, defender);
67 }
68
69 @Override
70 public CombatHit[] getHits(Player attacker, Mob defender) {
71 return new CombatHit[] { nextRangedHit(attacker, defender), nextRangedHit(attacker, defender) };
72 }
73
74 @Override
75 public int modifyAccuracy(Player attacker, Mob defender, int roll) {
76 return roll - roll / 4;
77 }
78
79 private static void setProjectiles(CombatProjectile projectile) {
80 if (!projectile.getProjectile().isPresent())
81 throw new NullPointerException("No Craw's bow projectile found.");
82 PROJECTILE_1 = projectile.getProjectile().get();
83
84 }
85
86 public static CrawsBow get() {
87 return INSTANCE;
88 }
89
90}