RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
DragonKnife.java
1package com.osroyale.game.world.entity.combat.strategy.player.special.range;
2
3import com.osroyale.content.achievement.AchievementHandler;
4import com.osroyale.content.achievement.AchievementKey;
5import com.osroyale.game.Animation;
6import com.osroyale.game.Graphic;
7import com.osroyale.game.Projectile;
8import com.osroyale.game.UpdatePriority;
9import com.osroyale.game.world.entity.combat.hit.CombatHit;
10import com.osroyale.game.world.entity.combat.hit.Hit;
11import com.osroyale.game.world.entity.combat.projectile.CombatProjectile;
12import com.osroyale.game.world.entity.combat.strategy.player.PlayerRangedStrategy;
13import com.osroyale.game.world.entity.mob.Mob;
14import com.osroyale.game.world.entity.mob.player.Player;
15import com.osroyale.game.world.items.Item;
16
17import static com.osroyale.game.world.items.containers.equipment.Equipment.ARROWS_SLOT;
18
49
50public final class DragonKnife extends PlayerRangedStrategy {
51
52 private static final DragonKnife INSTANCE = new DragonKnife();
53
54 private static CombatProjectile PROJECTILE;
55
56 static {
57 try {
58 PROJECTILE = CombatProjectile.getDefinition("Dragon knife special");
59 } catch (Exception e) {
60 e.printStackTrace();
61 }
62 }
63
64 private DragonKnife() {
65 }
66
67 @Override
68 protected void sendStuff(Player attacker, Mob defender) {
69 super.sendStuff(attacker, defender);
70
71 PROJECTILE.getProjectile().ifPresent(projectile -> projectile.send(attacker, defender));
72 }
73
74 @Override
75 public void hit(Player attacker, Mob defender, Hit hit) {
76 super.hit(attacker, defender, hit);
77 }
78
79 @Override
80 public CombatHit[] getHits(Player attacker, Mob defender) {
81 CombatHit first = nextRangedHit(attacker, defender);
82 CombatHit second = nextRangedHit(attacker, defender);
83 int minimum = 5;
84
85 if (first.getDamage() < minimum) {
86 first.setDamage(minimum);
87 first.setAccurate(true);
88 }
89
90 if (second.getDamage() < minimum) {
91 second.setDamage(minimum);
92 second.setAccurate(true);
93 }
94
95 return new CombatHit[] { first, second };
96 }
97
98 @Override
99 public Animation getAttackAnimation(Player attacker, Mob defender) {
100 return new Animation(8291);
101 }
102
103 public static DragonKnife get() {
104 return INSTANCE;
105 }
106
107}