1package com.osroyale.content.skill.impl.crafting.impl;
3import com.osroyale.Config;
4import com.osroyale.net.packet.out.SendInputAmount;
5import com.osroyale.net.packet.out.SendMessage;
6import com.osroyale.game.Animation;
7import com.osroyale.game.action.Action;
8import com.osroyale.game.action.policy.WalkablePolicy;
9import com.osroyale.game.world.entity.mob.player.Player;
10import com.osroyale.content.dialogue.ChatBoxItemDialogue;
11import com.osroyale.content.dialogue.DialogueFactory;
12import com.osroyale.game.world.entity.skill.Skill;
13import com.osroyale.game.world.items.Item;
14import com.osroyale.util.Utility;
67 BOWSTRING(
new Item(1779),
new Item(1777), 15.0D, 10),
68 WOOL(
new Item(1737),
new Item(1759), 2.5D, 1),
69 ROPE(
new Item(10814),
new Item(954), 25.0D, 30),
70 MAGIC_STRING(
new Item(6051),
new Item(6038), 30.0D, 19),
71 YEW_STRING(
new Item(6049),
new Item(9438), 15.0D, 10),
72 SINEW_STRING(
new Item(9436),
new Item(9438), 15.0D, 10);
117 factory.
sendOption(
"Ball of wool (wool)", () -> {
121 },
"Bow string (flax)", () -> {
125 },
"Rope (yak hair)", () -> {
129 },
"Nevermind", () -> {
130 player.interfaceManager.close();
141 player.dialogueFactory.
clear();
149 player.dialogueFactory.
sendStatement(
"You do not have the required items to do this!").
execute();
156 public void firstOption(
Player player) {
157 player.action.execute(spin(player, spinnable, 1),
true);
161 public void secondOption(
Player player) {
162 player.action.execute(spin(player, spinnable, 5),
true);
166 public void thirdOption(
Player player) {
167 player.send(
new SendInputAmount(
"Enter amount", 2, input -> player.action.execute(spin(player, spinnable, Integer.parseInt(input)),
true)));
171 public void fourthOption(
Player player) {
172 player.action.execute(spin(player, spinnable, 28),
true);
191 public void execute() {
192 if (!player.inventory.
contains(spinnable.item)) {
194 player.send(
new SendMessage(
"<col=369>You have run out of materials."));
199 player.inventory.
remove(spinnable.item);
200 player.inventory.
add(spinnable.outcome);
202 player.send(
new SendMessage(
"You spin the " + spinnable.item.getName() +
" into " +
Utility.
getAOrAn(spinnable.outcome.getName()) +
" " + spinnable.outcome.getName() +
"."));
204 if (++ticks == amount) {
211 public String getName() {
216 public WalkablePolicy getWalkablePolicy() {
217 return WalkablePolicy.NON_WALKABLE;
static final double CRAFTING_MODIFICATION
final DialogueFactory sendStatement(String... lines)
final DialogueFactory sendOption(String option1, Runnable action1, String option2, Runnable action2)
final DialogueFactory onAction(Runnable action)
final DialogueFactory execute()
static void open(Player player)
static void click(Player player, Spinnable spinnable)
static final int CRAFTING
void addExperience(int id, double experience)
boolean remove(Item item)
static String getAOrAn(String nextWord)
Spinnable(Item item, Item outcome, double experience, int requiredLevel)