RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
SaradominGodsword.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.hit.CombatHit;
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
13import static com.osroyale.game.world.entity.skill.Skill.HITPOINTS;
14import static com.osroyale.game.world.entity.skill.Skill.PRAYER;
15
51
52public class SaradominGodsword extends PlayerMeleeStrategy {
53
54 //SGS(normal): 7640, SGS(OR): 7641
55 private static final Animation ANIMATION = new Animation(7640, UpdatePriority.HIGH);
56 private static final Graphic GRAPHIC = new Graphic(1209, UpdatePriority.HIGH);
57
58 private static final SaradominGodsword INSTANCE = new SaradominGodsword();
59
60 @Override
61 public void attack(Player attacker, Mob defender, Hit hit) {
62 super.attack(attacker, defender, hit);
63 attacker.graphic(GRAPHIC);
64 int heal = hit.getDamage() / 2;
65 int prayerRestore = hit.getDamage() / 4;
66
67 Skill skill = attacker.skills.get(HITPOINTS);
68 if (skill.getLevel() < skill.getMaxLevel()) {
69 int level = skill.getLevel() + heal;
70 if (skill.getLevel() + heal > skill.getMaxLevel())
71 level = skill.getMaxLevel();
72 attacker.skills.setLevel(HITPOINTS, level);
73 System.out.println("here");
74 System.out.println("healed " + heal + " hp");
75 }
76
77 skill = attacker.skills.get(PRAYER);
78 if (skill.getLevel() < skill.getMaxLevel()) {
79 int level = skill.getLevel() + prayerRestore;
80 if (skill.getLevel() + prayerRestore > skill.getMaxLevel())
81 level = skill.getMaxLevel();
82 attacker.skills.setLevel(PRAYER, level);
83 System.out.println("here");
84 System.out.println("restored " + prayerRestore + " prayer");
85 }
86 }
87
88 @Override
89 public void hit(Player attacker, Mob defender, Hit hit) {
90 super.hit(attacker, defender, hit);
91 }
92
93 @Override
94 public CombatHit[] getHits(Player attacker, Mob defender) {
95 return new CombatHit[]{nextMeleeHit(attacker, defender)};
96 }
97
98 @Override
99 public Animation getAttackAnimation(Player attacker, Mob defender) {
100 return ANIMATION;
101 }
102
103 @Override
104 public int modifyAccuracy(Player attacker, Mob defender, int roll) {
105 return roll * 2;
106 }
107
108 @Override
109 public int modifyDamage(Player attacker, Mob defender, int damage) {
110 return damage * 11 / 10;
111 }
112
113 public static SaradominGodsword get() {
114 return INSTANCE;
115 }
116
117}