59 public static void offer(
Player player) {
61 double experience = 0;
63 for (Item item : player.inventory) {
66 OfferingData offering = OfferingData.forItem(item.getId());
69 points += offering.getPoints();
70 experience += offering.getExperience();
73 if (points == 0 && experience == 0) {
78 player.dialogueFactory.
sendNpcChat(6797,
"I will give you " + points +
" slayer points &",
Utility.
formatDigits(experience) +
" experience for your offerings.",
"Do you accept?");
79 player.dialogueFactory.
sendOption(
"Yes", () -> confirm(player),
"No", () -> player.dialogueFactory.
clear());
80 player.dialogueFactory.
execute();
83 private static void confirm(
Player player) {
85 double experience = 0;
87 for (Item item : player.inventory) {
90 OfferingData offering = OfferingData.forItem(item.getId());
93 points += offering.getPoints();
94 experience += offering.getExperience();
95 player.inventory.
remove(item);
98 player.message(
"Your offerings were accepted!");
99 player.slayer.setPoints(player.slayer.getPoints() + points);
101 player.dialogueFactory.
clear();
104public enum OfferingData {
105 ANCIENT_SHARD(19677, 1, 1350),
106 TOTEM_BASE(19679, 1, 1350),
107 TOTEM_MIDDLE(19681, 1, 1350),
108 TOTEM_TOP(19683, 1, 1350),
109 TOTEM(19685, 1, 1350),
110 ENSOULED_GOBLIN_HEAD(13447, 1, 1000),
111 ENSOULED_GOBLIN_HEAD_II(13448, 1, 1000),
112 ENSOULED_MONKEY_HEAD(13450, 1, 1000),
113 ENSOULED_MONKEY_HEAD_II(13451, 1, 1000),
114 ENSOULED_IMP_HEAD(13453, 1, 1000),
115 ENSOULED_IMP_HEAD_II(13454, 1, 1000),
116 ENSOULED_MINOTAUR_HEAD(13456, 1, 1000),
117 ENSOULED_MINOTAUR_HEAD_II(13457, 1, 1000),
118 ENSOULED_SCORPION_HEAD(13459, 1, 1000),
119 ENSOULED_SCORPION_HEAD_II(13460, 1, 1000),
120 ENSOULED_BEAR_HEAD(13462, 1, 1000),
121 ENSOULED_BEAR_HEAD_II(13463, 1, 1000),
122 ENSOULED_UNICORN_HEAD(13465, 1, 1000),
123 ENSOULED_UNICORN_HEAD_II(13466, 1, 1000),
124 ENSOULED_DOG_HEAD(13468, 1, 1000),
125 ENSOULED_DOG_HEAD_II(13469, 1, 1000),
126 ENSOULED_CHAOS_DRUID_HEAD(13471, 1, 1000),
127 ENSOULED_CHAOS_DRUID_HEAD_II(13472, 1, 1000),
128 ENSOULED_GIANT_HEAD(13474, 1, 1000),
129 ENSOULED_GIANT_HEAD_II(13475, 1, 1000),
130 ENSOULED_OGRE_HEAD(13477, 1, 1000),
131 ENSOULED_OGRE_HEAD_II(13478, 1, 1000),
132 ENSOULED_ELF_HEAD(13480, 1, 1000),
133 ENSOULED_ELF_HEAD_II(13481, 1, 1000),
134 ENSOULED_TROLL_HEAD(13483, 1, 1000),
135 ENSOULED_TROLL_HEAD_II(13484, 1, 1000),
136 ENSOULED_HORROR_HEAD(13486, 1, 1000),
137 ENSOULED_HORROR_HEAD_II(13487, 1, 1000),
138 ENSOULED_KALPHITE_HEAD(13489, 1, 1000),
139 ENSOULED_KALPHITE_HEAD_II(13490, 1, 1000),
140 ENSOULED_DAGANNOTH_HEAD(13492, 1, 1000),
141 ENSOULED_DAGANNOTH_HEAD_II(13493, 1, 1000),
142 ENSOULED_BLOODVELD_HEAD(13495, 1, 1000),
143 ENSOULED_BLOODVELD_HEAD_II(13496, 1, 1000),
144 ENSOULED_TZHAAR_HEAD(13498, 1, 1000),
145 ENSOULED_TZHAAR_HEAD_II(13499, 1, 1000),
146 ENSOULED_DEMON_HEAD(13501, 1, 1000),
147 ENSOULED_DEMON_HEAD_II(13502, 1, 1000),
148 ENSOULED_AVIANSIE_HEAD(13504, 1, 1000),
149 ENSOULED_AVIANSIE_HEAD_II(13505, 1, 1000),
150 ENSOULED_ABYSSAL_HEAD(13507, 1, 1000),
151 ENSOULED_ABYSSAL_HEAD_II(13508, 1, 1000),
152 ENSOULED_DRAGON_HEAD(13511, 1, 1000),
153 ENSOULED_DRAGON_HEAD_II(13510, 1, 1000);
155 private final int item;
156 private final int points;
157 private final int experience;
160 OfferingData(
int item,
int points,
int experience) {
162 this.points = points;
163 this.experience = experience;
166 public int getItem() {
170 public int getPoints() {
174 public double getExperience() {
178 public static OfferingData forItem(
int item) {
179 for (OfferingData offering : values()) {
180 if (offering.getItem() == item)