RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
Woodcutting.java
1package com.osroyale.content.skill.impl.woodcutting;
2
3import com.osroyale.content.event.impl.ObjectInteractionEvent;
4import com.osroyale.content.skill.SkillRepository;
5import com.osroyale.game.world.entity.mob.player.Player;
6import com.osroyale.game.world.entity.skill.Skill;
7import com.osroyale.game.world.items.Item;
8import com.osroyale.net.packet.out.SendMessage;
9import com.osroyale.util.StringUtils;
10
37
38public final class Woodcutting extends Skill {
39
41 public Woodcutting(int level, double experience) {
42 super(Skill.WOODCUTTING, level, experience);
43 }
44
45 public static double getBonus(Player player) {
46 double bonus = 0;
47 if(player.equipment.getId(0) == 10941)
48 bonus += 0.4;
49 if(player.equipment.getId(4) == 10939)
50 bonus += 0.8;
51 if(player.equipment.getId(7) == 10940)
52 bonus += 0.6;
53 if(player.equipment.getId(10) == 10933)
54 bonus += 0.2;
55
56 if(player.equipment.containsAll(10941, 10939, 10940, 10933))
57 bonus = 2.5;
58
59 return bonus;
60 }
61
62 public static boolean success(Player player, TreeData tree, AxeData axe) {
63 return SkillRepository.isSuccess(player, Skill.WOODCUTTING, tree.levelRequired, axe.level);
64 }
65
66 @Override
67 protected boolean clickObject(Player player, ObjectInteractionEvent event) {
68 TreeData tree = TreeData.forId(event.getObject().getId());
69
70 if (tree == null)
71 return false;
72
73 AxeData axe = AxeData.getDefinition(player).orElse(null);
74
75 if (axe == null) {
76 player.send(new SendMessage("You don't have a hatchet."));
77 return true;
78 }
79
80 if (!player.skills.getSkills()[Skill.WOODCUTTING].reqLevel(axe.level)) {
81 player.send(new SendMessage("You need a level of " + axe.level + " to use this hatchet!"));
82 return true;
83 }
84
85 if (!player.skills.getSkills()[Skill.WOODCUTTING].reqLevel(tree.levelRequired)) {
86 player.send(new SendMessage("You need a level of " + tree.levelRequired + " to cut " + StringUtils.appendIndefiniteArticle(event.getObject().getDefinition().getName()) + "."));
87 return true;
88 }
89
90 if (!player.inventory.hasCapacityFor(new Item(tree.item))) {
91 player.message("You do not have enough inventory spaces to do this!");
92 return true;
93 }
94
95 player.action.execute(new WoodcuttingAction(player, event.getObject(), tree, axe));
96 player.skills.get(Skill.WOODCUTTING).setDoingSkill(true);
97 player.message(true, "You swing your axe at the tree...");
98 return true;
99 }
100}
Skill(int skill, int level, double experience)
Definition Skill.java:221