RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
DragonMace.java
1package com.osroyale.game.world.entity.combat.strategy.player.special.melee;
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.UpdatePriority;
8import com.osroyale.game.world.entity.combat.attack.FightType;
9import com.osroyale.game.world.entity.combat.hit.Hit;
10import com.osroyale.game.world.entity.combat.strategy.player.PlayerMeleeStrategy;
11import com.osroyale.game.world.entity.mob.Mob;
12import com.osroyale.game.world.entity.mob.player.Player;
13
41
42public class DragonMace extends PlayerMeleeStrategy {
43 private static final Animation ANIMATION = new Animation(1060, UpdatePriority.HIGH);
44 private static final Graphic GRAPHIC = new Graphic(251);
45 private static final DragonMace INSTANCE = new DragonMace();
46
47 private DragonMace() { }
48
49 @Override
50 public void start(Player attacker, Mob defender, Hit[] hits) {
51 super.start(attacker, defender, hits);
52 attacker.graphic(GRAPHIC);
53 }
54
55 @Override
56 public void hitsplat(Player attacker, Mob defender, Hit hit) {
57 super.hitsplat(attacker, defender, hit);
58 if (defender.isPlayer() && hit.getDamage() >= 45) {
59 AchievementHandler.activate(attacker, AchievementKey.DMACE_MAX);
60 }
61 }
62
63 @Override
64 public void onKill(Player attacker, Mob defender, Hit hit) {
65 AchievementHandler.activate(attacker, AchievementKey.DMACE_SPEC);
66 }
67
68 @Override
69 public int getAttackDelay(Player attacker, Mob defender, FightType fightType) {
70 return 3;
71 }
72
73 @Override
74 public Animation getAttackAnimation(Player attacker, Mob defender) {
75 return ANIMATION;
76 }
77
78 @Override
79 public int modifyAccuracy(Player attacker, Mob defender, int roll) {
80 return roll * 5 / 4;
81 }
82
83 @Override
84 public int modifyDamage(Player attacker, Mob defender, int damage) {
85 return 3 / 2;
86 }
87
88 public static DragonMace get() {
89 return INSTANCE;
90 }
91
92}
static void activate(Player player, AchievementKey achievement)