RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
Skillcape.java
1package com.osroyale.content.emote;
2
3import com.osroyale.content.store.StoreItem;
4import com.osroyale.content.store.currency.CurrencyType;
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;
9
10import java.util.Arrays;
11import java.util.Optional;
12import java.util.OptionalInt;
13
37
38public enum Skillcape {
39 ATTACK_CAPE(new int[]{9747, 9748, 9479}, 823, 4959, Skill.ATTACK),
40 STRENGTH_CAPE(new int[]{9750, 9751, 9752}, 828, 4981, Skill.STRENGTH),
41 DEFENCE_CAPE(new int[]{9753, 9754, 9755}, 824, 4961, Skill.DEFENCE),
42 RANGING_CAPE(new int[]{9756, 9757, 9758}, 832, 4973, Skill.RANGED),
43 PRAYER_CAPE(new int[]{9759, 9760, 9761}, 829, 4979, Skill.PRAYER),
44 MAGIC_CAPE(new int[]{9762, 9763, 9764}, 813, 4939, Skill.MAGIC),
45 RUNECRAFT_CAPE(new int[]{9765, 9766, 9767}, 817, 4947, Skill.RUNECRAFTING),
46 HITPOINTS_CAPE(new int[]{9768, 9769, 9770}, 833, 4971, Skill.HITPOINTS),
47 AGILITY_CAPE(new int[]{9771, 9772, 9773}, 830, 4977, Skill.AGILITY),
48 HERBLORE_CAPE(new int[]{9774, 9775, 9776}, 835, 4969, Skill.HERBLORE),
49 THEIVING_CAPE(new int[]{9777, 9778, 9779}, 826, 4965, Skill.THIEVING),
50 CRAFTING_CAPE(new int[]{9780, 9781, 9782}, 818, 4949, Skill.CRAFTING),
51 FLETCHING_CAPE(new int[]{9783, 9784, 9785}, 812, 4937, Skill.FLETCHING),
52 SLAYER_CAPE(new int[]{9786, 9787, 9788}, 827, 4967, Skill.SLAYER),
53 CONSTRUCTION_CAPE(new int[]{9789, 9790, 9791}, 820, 4953, Skill.CONSTRUCTION),
54 MINING_CAPE(new int[]{9792, 9793, 9794}, 814, 4941, Skill.MINING),
55 SMITHING_CAPE(new int[]{9795, 9796, 9797}, 815, 4943, Skill.SMITHING),
56 FISHING_CAPE(new int[]{9798, 9799, 9800}, 819, 4951, Skill.FISHING),
57 COOKING_CAPE(new int[]{9801, 9802, 9803}, 821, 4955, Skill.COOKING),
58 FIREMAKING_CAPE(new int[]{9804, 9805, 9806}, 831, 4975, Skill.FIREMAKING),
59 WOODCUTTING_CAPE(new int[]{9807, 9808, 9809}, 822, 4957, Skill.WOODCUTTING),
60 FARMING_CAPE(new int[]{9810, 9811, 9812}, 825, 4963, Skill.FARMING),
61 HUNTER_CAPE(new int[]{9948, 9949, 9950}, 907, 5158, Skill.HUNTER),
62 QUEST_POINT_CAPE(new int[]{9813, 9814, 9815}, 816, 4945, -1),
63 ACHIEVEMENT_CAPE(new int[]{13069}, 323, 2709, -1),
64 MAX_CAPE(new int[]{13280, 13329, 13331, 13333, 13335, 13337}, 1286, 7121, -1);
65
66 private final int[] item;
67 private final int graphic;
68 private final int animation;
69 private final int skill;
70
71 Skillcape(int[] item, int graphic, int animation, int skill) {
72 this.item = item;
73 this.graphic = graphic;
74 this.animation = animation;
75 this.skill = skill;
76 }
77
78 public int getAnimation() {
79 return animation;
80 }
81
82 public int getGraphic() {
83 return graphic;
84 }
85
86 public int[] getSkillcape() {
87 return item;
88 }
89
90 public int getSkill() {
91 return skill;
92 }
93
94 public static Skillcape forId(int id) {
95 for (Skillcape data : Skillcape.values())
96 for (int index = 0; index < data.getSkillcape().length; index++)
97 if (data.getSkillcape()[index] == id)
98 return data;
99 return null;
100 }
101
102 public static Optional<Skillcape> forSkill(int skill) {
103 return Arrays.stream(values()).filter(s -> s.getSkill() == skill).findFirst();
104 }
105
106 public static StoreItem[] getItems() {
107 final StoreItem[] items = new StoreItem[Skill.SKILL_COUNT];
108
109 int index = 0;
110 for (Skillcape data : values()) {
111 if (data.skill == -1)
112 continue;
113 items[index] = new StoreItem(data.getSkillcape()[1], 1, OptionalInt.of(100000), Optional.of(CurrencyType.COINS));
114 index++;
115 }
116
117 return items;
118 }
119
120 public static boolean equip(Player player, Item item) {
121 Skillcape data = forId(item.getId());
122
123 if (data == null) {
124 return true;
125 }
126
127 if (data.getSkill() == -1) {
128 return true;
129 }
130
131 if (player.skills.getMaxLevel(data.getSkill()) != 99) {
132 player.send(new SendMessage("You need to have a " + Skill.getName(data.getSkill()) + " level of 99 to equip this item."));
133 return false;
134 }
135
136 return true;
137 }
138}
static String getName(int skill)
Definition Skill.java:502