RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
RangeMaxHit.java
1package com.osroyale.game.world.entity.combat.maxhit;
2
3import com.osroyale.game.world.entity.combat.CombatType;
4import com.osroyale.game.world.entity.combat.FormulaUtils;
5import com.osroyale.game.world.entity.combat.attack.FightStyle;
6import com.osroyale.game.world.entity.mob.Mob;
7import com.osroyale.game.world.entity.mob.player.Player;
8import com.osroyale.game.world.entity.mob.prayer.Prayer;
9import com.osroyale.game.world.entity.skill.Skill;
10import com.osroyale.game.world.items.containers.equipment.Equipment;
11
48
49public class RangeMaxHit {
50
51 public static double getBaseDamage(Mob player) {
52 int rangestr = player.getBonus(Equipment.RANGED_STRENGTH);
53 return (1.3 + (getEffectiveRanged(player) / 10) + (rangestr / 80D) + (getEffectiveRanged(player) * rangestr / 640));
54 }
55
56 public static int getRangedlevel(Mob player) {
57 return player.skills.getLevel(Skill.RANGED);
58 }
59
60 public static double getEffectiveRanged(Mob player) {
61 return Math.floor(((getRangedlevel(player)) * getPrayerBonus(player)) * getOtherBonus(player)) + getStyleBonus(player);
62 }
63
64 public static double getPrayerBonus(Mob player) {
65 double prayerBonus = 1;
66 if (player.getStrategy().getCombatType().equals(CombatType.RANGED)) {
67 if (player.prayer.isActive(Prayer.SHARP_EYE))
68 prayerBonus *= 1.05D; // 5% range level boost
69 else if (player.prayer.isActive(Prayer.HAWK_EYE))
70 prayerBonus *= 1.10D; // 10% range level boost
71 else if (player.prayer.isActive(Prayer.EAGLE_EYE))
72 prayerBonus *= 1.15D; // 15% range level boost
73 else if (player.prayer.isActive(Prayer.RIGOUR))
74 prayerBonus *= 1.20D; // 20% range level boost
75 }
76 return prayerBonus;
77 }
78
79 public static int getStyleBonus(Mob player) {
80 FightStyle style = player.getCombat().getFightType().getStyle();
81 return style.equals(FightStyle.ACCURATE) ? 3 : 0;
82 }
83
84 public static double getOtherBonus(Mob player) {
85 double otherBonus = 1.0;
86
87
88
89 Mob target = player.getCombat().getDefender();
90
91
92 if (FormulaUtils.voidRanger((Player) player)) {
93 otherBonus *= 1.10;
94 }
95
96
97 if (FormulaUtils.wearingEliteVoid((Player) player)) {
98 otherBonus *= 1.125;
99 }
100
101 /*
102 * BOWFA, MIGHT ADD COLORED ONES INTO IT. IF SO, ADD HERE.
103 */
104
105 if (((Player) player).equipment.contains(23971) && ((Player) player).equipment.contains(25865)) {
106 otherBonus *= 1.025;//2.5% damage boost
107 }
108
109 if (((Player) player).equipment.contains(23975) && ((Player) player).equipment.contains(25865)) {
110 otherBonus *= 1.075;//7.5% damage boost
111 }
112
113 if (((Player) player).equipment.contains(23979) && ((Player) player).equipment.contains(25865)) {
114 otherBonus *= 1.05;//5.0% damage boost
115 }
116
117 if (FormulaUtils.hasCrawsBow((Player) player) && target != null && target.isNpc()) {
118 otherBonus += 0.50;
119 }
120
121 return otherBonus;
122 }
123
124 public static int maxHit(Mob player) {
125 int maxHit;
126 maxHit = (int) getBaseDamage(player);
127 return maxHit;
128 }
129}
abstract< T extends Mob > CombatStrategy<? super T > getStrategy()
abstract Combat<? extends Mob > getCombat()