RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
DragonWarhammer.java
1package com.osroyale.game.world.entity.combat.strategy.player.special.melee;
2
3import com.osroyale.game.Animation;
4import com.osroyale.game.Graphic;
5import com.osroyale.game.UpdatePriority;
6import com.osroyale.game.world.entity.combat.attack.FightType;
7import com.osroyale.game.world.entity.combat.hit.Hit;
8import com.osroyale.game.world.entity.combat.strategy.player.PlayerMeleeStrategy;
9import com.osroyale.game.world.entity.mob.Mob;
10import com.osroyale.game.world.entity.mob.player.Player;
11import com.osroyale.game.world.entity.skill.Skill;
12
40
41public class DragonWarhammer extends PlayerMeleeStrategy {
42 private static final Animation ANIMATION = new Animation(1378, UpdatePriority.HIGH);
43 private static final Graphic GRAPHIC = new Graphic(1292);
44 private static final DragonWarhammer INSTANCE = new DragonWarhammer();
45
46 private DragonWarhammer() {
47 }
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 attack(Player attacker, Mob defender, Hit h) {
57 super.attack(attacker, defender, h);
58
59 if (h.getDamage() > 0) {
60 Skill skill = defender.skills.get(Skill.DEFENCE);
61 int level = skill.getLevel();
62 int reduction = (int) (level * 0.30);
63
64 defender.skills.get(skill.getSkill()).removeLevel(reduction);
65 defender.skills.refresh(skill.getSkill());
66
67 attacker.message("You've drained " + defender.getName() + "'s defence level by 30%.");
68
69 if (defender.isPlayer()) {
70 defender.getPlayer().message("Your defence level has been drained by 30%.");
71 }
72 }
73 }
74
75 @Override
76 public int getAttackDelay(Player attacker, Mob defender, FightType fightType) {
77 return 4;
78 }
79
80 @Override
81 public Animation getAttackAnimation(Player attacker, Mob defender) {
82 return ANIMATION;
83 }
84
85 @Override
86 public int modifyDamage(Player attacker, Mob defender, int damage) {
87 return damage * 3 / 2;
88 }
89
90 public static DragonWarhammer get() {
91 return INSTANCE;
92 }
93
94}