RuneHive-Tarnish
Neural OSRS Enhancement Framework
Loading...
Searching...
No Matches
ItemCreation.java
1package com.osroyale.content;
2
3import com.osroyale.game.world.entity.skill.Skill;
4import com.osroyale.game.world.items.Item;
5import com.osroyale.util.Items;
6
7import java.util.Optional;
8
33
34public class ItemCreation {
35
37public enum CreationData {
38 SLAYER_HELM(new Item[]{new Item(11864)}, null, new Skill[]{new Skill(Skill.CRAFTING, 55, 0)}, new Item(8921), new Item(4166), new Item(4168), new Item(4164), new Item(4551), new Item(4155)),
39 SLAYER_HELM_I(new Item[]{new Item(11864)}, null, new Skill[]{new Skill(Skill.CRAFTING, 55, 0)}, new Item(8901), new Item(4166), new Item(4168), new Item(4164), new Item(4551), new Item(4155)),
40 BLACK_SLAYER_HELM(new Item[]{new Item(19639)}, null, null, new Item(11864), new Item(7980)),
41 BLACK_SLAYER_HELM_I(new Item[]{new Item(19641)}, null, null, new Item(11865), new Item(7980)),
42 GREEN_SLAYER_HELM(new Item[]{new Item(19643)}, null, null, new Item(11864), new Item(7981)),
43 GREEN_SLAYER_HELMI(new Item[]{new Item(19645)}, null, null, new Item(11865), new Item(7981)),
44 RED_SLAYER_HELM(new Item[]{new Item(19647)}, null, null, new Item(11864), new Item(7979)),
45 RED_SLAYER_HELMI(new Item[]{new Item(19649)}, null, null, new Item(11865), new Item(7979)),
46 PURPLE_SLAYER_HELM(new Item[]{new Item(21264)}, null, null, new Item(11864), new Item(21275)),
47 PURPLE_SLAYER_HELMI(new Item[]{new Item(21266)}, null, null, new Item(11865), new Item(21275)),
48 ARMADYL_GODSWORD(new Item[]{new Item(11802)}, null, null, new Item(11798), new Item(11810)),
49 BANDOS_GODSWORD(new Item[]{new Item(11804)}, null, null, new Item(11798), new Item(11812)),
50 SARADOMIN_GODSWORD(new Item[]{new Item(11806)}, null, null, new Item(11798), new Item(11814)),
51 ZAMORAK_GODSWORD(new Item[]{new Item(11808)}, null, null, new Item(11798), new Item(11816)),
52 PRIMORDIAL_BOOTS(new Item[]{new Item(13239)}, null, new Skill[] { new Skill(Skill.RUNECRAFTING, 60,0), new Skill(Skill.MAGIC, 60, 0) }, new Item(11840), new Item(13231)),
53 ETERNAL_BOOTS(new Item[]{new Item(13235)}, null, new Skill[] { new Skill(Skill.RUNECRAFTING, 60,0), new Skill(Skill.MAGIC, 60, 0) }, new Item(6920), new Item(13227)),
54 PEGASIAN_BOOTS(new Item[]{new Item(13237)}, null, new Skill[] { new Skill(Skill.RUNECRAFTING, 60,0), new Skill(Skill.MAGIC, 60, 0) }, new Item(2577), new Item(13229)),
55 INFERNAL_AXE(new Item[]{new Item(13241)}, null, new Skill[] { new Skill(Skill.WOODCUTTING, 61,0), new Skill(Skill.FIREMAKING, 85, 0) }, new Item(6739), new Item(13233)),
56 INFERNAL_PICKAXE(new Item[]{new Item(13243)}, null, new Skill[] { new Skill(Skill.SMITHING, 85,0) }, new Item(11920), new Item(13233)),
57 INFERNAL_HARPOON(new Item[]{new Item(21031)}, null, new Skill[] { new Skill(Skill.COOKING, 85,0) }, new Item(21028), new Item(13233)),
58 BLESSED_SPIRIT_SHIELD(new Item(12831), null, null, new Item(12829), new Item(12833)),
59 GODSWORD_SHARDS_1_AND_2(new Item[]{new Item(11794)}, null, null, new Item(11818), new Item(11820)),
60 GODSWORD_SHARDS_2_AND_3(new Item[]{new Item(11800)}, null, null, new Item(11822), new Item(11820)),
61 GODSWORD_SHARDS_1_AND_3(new Item[]{new Item(11796)}, null, null, new Item(11818), new Item(11822)),
62 GODSWORD_BLADE(new Item[]{new Item(11798)}, null, new Skill[] { new Skill(Skill.SMITHING, 80,0) }, new Item(11822), new Item(11794)),
63 GODSWORD_BLADE_I(new Item[]{new Item(11798)}, null, new Skill[] { new Skill(Skill.SMITHING, 80,0) }, new Item(11818), new Item(11800)),
64 GODSWORD_BLADE_II(new Item[]{new Item(11798)}, null, new Skill[] { new Skill(Skill.SMITHING, 80,0) }, new Item(11820), new Item(11796)),
65 TOXIC_BLOWPIPE(new Item(12924), null, new Skill[] { new Skill(Skill.FLETCHING, 53, 0)}, new Item(12922, 1), new Item(1755, 1)),
66 TOXIC_STAFF_OF_THE_DEAD(new Item(12904), null, new Skill[]{new Skill(Skill.CRAFTING, 59, 0)}, new Item(11791, 1), new Item(12932, 1)),
67 TRIDENT_OF_THE_SWAMP(new Item(12899), null, new Skill[]{new Skill(Skill.CRAFTING, 59, 0)}, new Item(12932, 1), new Item(11907, 1)),
68 DRAGON_PICKAXE(new Item(12797), null, null, new Item(11920, 1), new Item(12800, 1)),
69 MAGIC_SHORTBOW_INFUSED(new Item(12788), new Item(861), null, new Item(12786, 1), new Item(861, 1)),
70 ABYSSAL_TENTACLE_WHIP(new Item(12006, 1), new Item(12004, 1), null, new Item(12004, 1), new Item(4151, 1)),
71 ABYSSAL_VOLCANIC_WHIP(new Item(12773), new Item(4151, 1), null, new Item(12771, 1), new Item(4151, 1)),
72 ABYSSAL_FROZEN_WHIP(new Item(12774), new Item(4151, 1), null, new Item(12769, 1), new Item(4151, 1)),
73 BLUE_DARKBOW(new Item(12766), new Item(11235, 1), null, new Item(12757, 1), new Item(11235, 1)),
74 YELLOW_DARKBOW(new Item(12767), new Item(11235, 1), null, new Item(12761, 1), new Item(11235, 1)),
75 GREEN_DARKBOW(new Item(12765), new Item(11235, 1), null, new Item(12759, 1), new Item(11235, 1)),
76 WHITE_DARKBOW(new Item(12768), new Item(11235, 1), null, new Item(12763, 1), new Item(11235, 1)),
77
78 SERPENTINE_VISAGE(new Item(12929), new Item(12927, 1), null, new Item(12927, 1), new Item(1755, 1)),
79 FURY_AMULET_KIT(new Item(12436), null, null, new Item(6585, 1), new Item(12526, 1)),
80 CAP_AND_GOGGLES(new Item(9946), null, null, new Item(9945, 1), new Item(9472, 1)),
81 RING_OF_WEALTH_I(new Item(12785), null, null, new Item(12783, 1), new Item(2572, 1)),
82 DRAGON_FIRE_SHIELD(new Item(11283), null, null, new Item(11286,1 ), new Item(1540,1)),
83
84 GOLDEN_PROS_HELM(new Item(25549), null, null, new Item(25547, 1), new Item(12013, 1)),
85 GOLDEN_PROS_JACKET(new Item(25551), null, null, new Item(25547, 1), new Item(12014, 1)),
86 GOLDEN_PROS_LEGS(new Item(25553), null, null, new Item(25547, 1), new Item(12015, 1)),
87 GOLDEN_PROS_BOOTS(new Item(25555), null, null, new Item(25547, 1), new Item(12016, 1)),
88 ZENYTE_AMULET(new Item(19541), null,new Skill[] { new Skill(Skill.CRAFTING, 98,200) }, new Item(Items.GOLD_BAR, 1), new Item(Items.AMULET_MOULD, 1), new Item(Items.ZENYTE)),
89
90 ZENYTE_NECKLACE(new Item(19535), null,new Skill[] { new Skill(Skill.CRAFTING, 92,165) }, new Item(Items.GOLD_BAR, 1), new Item(Items.NECKLACE_MOULD, 1), new Item(Items.ZENYTE)),
91
92 ZENYTE_RING(new Item(19538), null,new Skill[] { new Skill(Skill.CRAFTING, 89,150) }, new Item(Items.GOLD_BAR, 1), new Item(Items.RING_MOULD, 1), new Item(Items.ZENYTE)),
93
94
95 ZENYTE_BRACELET(new Item(19492), null,new Skill[] { new Skill(Skill.CRAFTING, 95,180) }, new Item(Items.GOLD_BAR, 1), new Item(Items.BRACELET_MOULD, 1), new Item(Items.ZENYTE)),
97 FIRE_MAX_CAPE(new Item[]{new Item(13329), new Item(13330)}, null, null, new Item(6570), new Item(13280), new Item(13281)),
98 SARADOMIN_MAX_CAPE(new Item[]{new Item(13331), new Item(13332)}, null, null, new Item(10446), new Item(13280), new Item(13281)),
99 ZAMORAK_MAX_CAPE(new Item[]{new Item(13333), new Item(13334)}, null, null, new Item(10450), new Item(13280), new Item(13281)),
100 GUTHIX_MAX_CAPE(new Item[]{new Item(13335), new Item(13336)}, null, null, new Item(10448), new Item(13280), new Item(13281)),
101 AVA2_MAX_CAPE(new Item[]{new Item(13337), new Item(13338)}, null, null, new Item(10499), new Item(13280), new Item(13281)),//22109
102 ASSEMBLER_MAX_CAPE(new Item[]{new Item(21898), new Item(21900)}, null, null, new Item(22109), new Item(13280), new Item(13281)),
103 INFERNAL_MAX_CAPE(new Item[]{new Item(21284), new Item(21282)}, null, null, new Item(21295), new Item(13280), new Item(13281)),
104 IMBUED_SARADOMIN_MAX_CAPE(new Item[]{new Item(21776), new Item(21778)}, null, null, new Item(21791), new Item(13280), new Item(13281)),
105 IMBUED_ZAMORAK_MAX_CAPE(new Item[]{new Item(21780), new Item(21782)}, null, null, new Item(21795), new Item(13280), new Item(13281)),
106 IMBUED_GUTHIX_MAX_CAPE(new Item[]{new Item(21784), new Item(21786)}, null, null, new Item(21793), new Item(13280), new Item(13281));
107
108
110 public final Item[] product;
111
113 public final Item dropped;
114
116 public final Skill[] level;
117
119 public final Item[] required;
120
122 CreationData(Item product, Item dropped, Skill[] level, Item... required) {
123 this.product = new Item[]{product};
124 this.dropped = dropped;
125 this.level = level;
126 this.required = required;
127 }
128
130 CreationData(Item[] product, Item dropped, Skill[] level, Item... required) {
131 this.product = product;
132 this.dropped = dropped;
133 this.level = level;
134 this.required = required;
135 }
136
138 public static Optional<CreationData> forItems(Item first, Item second) {
139 for (CreationData data : CreationData.values()) {
140 int found = 0;
141 for (Item items : data.required) {
142 if (items.getId() == first.getId() || items.getId() == second.getId())
143 found++;
144 }
145 if (found >= 2) return Optional.of(data);
146 }
147 return Optional.empty();
148 }
149
151 public static Optional<CreationData> forItem(Item item) {
152 for (CreationData data : CreationData.values()) {
153 for (Item items : data.product) {
154 if (item.getId() == items.getId())
155 return Optional.of(data);
156 }
157 }
158 return Optional.empty();
159 }
160 }
161
163 public static Item onDeath(Item item) {
164 Optional<CreationData> data = CreationData.forItem(item);
165 return data.isPresent() && data.get().dropped != null ? data.get().dropped : item;
166 }
167}
static Optional< CreationData > forItem(Item item)
CreationData(Item product, Item dropped, Skill[] level, Item... required)
CreationData(Item[] product, Item dropped, Skill[] level, Item... required)
static Optional< CreationData > forItems(Item first, Item second)