RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ArmadylCrossbow.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 ArmadylCrossbow extends PlayerRangedStrategy {
47
48 private static final ArmadylCrossbow INSTANCE = new ArmadylCrossbow();
49 private static final Animation ANIMATION = new Animation(4230, UpdatePriority.HIGH);
50 private static Projectile PROJECTILE;
51
52 static {
53 try {
54 setProjectiles(CombatProjectile.getDefinition("Armadyl special"));
55 } catch (Exception e) {
56 e.printStackTrace();
57 }
58 }
59
60 private ArmadylCrossbow() {
61 }
62
63 @Override
64 protected void sendStuff(Player attacker, Mob defender) {
65 attacker.animate(ANIMATION, true);
66 PROJECTILE.send(attacker, defender);
67 }
68
69 @Override
70 public CombatHit[] getHits(Player attacker, Mob defender) {
71 return new CombatHit[]{nextRangedHit(attacker, defender)};
72 }
73
74 @Override
75 public int modifyAccuracy(Player attacker, Mob defender, int roll) {
76 return 2 * roll;
77 }
78
79 private static void setProjectiles(CombatProjectile projectile) {
80 if (!projectile.getProjectile().isPresent())
81 throw new NullPointerException("No Magic Shortbow projectile found.");
82 PROJECTILE = projectile.getProjectile().get();
83 }
84
85 public static ArmadylCrossbow get() {
86 return INSTANCE;
87 }
88
89}