Files
2006Scape/2006Redone Server/src/com/rebotted/game/content/skills/crafting/Spinning.java
T
Gptaqbc 5f500280b2 New stuff 6 (#324)
* Some stuff on weight

Some stuff on weight

* Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

* removed a shitload of '== true'

I did a search and replace but I manually checked the changes that were made so there shouldn't be any issue with that.
2019-12-25 13:01:24 -05:00

80 lines
2.5 KiB
Java

package com.rebotted.game.content.skills.crafting;
import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.players.Player;
public class Spinning extends CraftingData {
public static int[][] BEFORE_AFTER = { { 1737, 1759, 3, 1 },
{ 1779, 1777, 15, 10 } };
public static void showSpinning(Player player) {
player.getPacketSender().sendChatInterface(8880);
player.getPacketSender().sendFrame126("What would you like to make?", 8879);
player.getPacketSender().sendFrame246(8883, 180, 1737); // left
player.getPacketSender().sendFrame246(8884, 180, 1779); // middle
player.getPacketSender().sendFrame246(8885, 180, 6051); // right
player.getPacketSender().sendFrame126("Wool", 8889);
player.getPacketSender().sendFrame126("Flax", 8893);
player.getPacketSender().sendFrame126("Magic tree", 8897);
player.clickedSpinning = true;
}
public static void getAmount(Player c, int amount) {
c.doAmount = amount;
spinItem(c);
c.isSpinning = true;
}
public static void spinItem(final Player c) {
c.getPacketSender().closeAllWindows();
for (int[] element : BEFORE_AFTER) {
final int before = element[0];
final int after = element[1];
final int exp = element[2];
final int level = element[3];
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (c.isSpinning) {
if (c.getItemAssistant().playerHasItem(before)) {
if (c.playerLevel[c.playerCrafting] < level) {
c.getDialogueHandler().sendStatement(
"You need a crafting level of " + level
+ " to do this.");
return;
}
c.startAnimation(896);
int amount = c.getItemAssistant().getItemCount( before);
c.getItemAssistant().deleteItem(before, amount);
c.getItemAssistant().addItem(after, amount);
c.getPlayerAssistant().addSkillXP(exp * amount, c.playerCrafting);
c.getPacketSender().sendMessage("You spin the " + ItemAssistant.getItemName(before) + " into a " + ItemAssistant.getItemName(after) + ".");
c.doAmount--;
}
if (!c.getItemAssistant().playerHasItem(before)
|| c.isSpinning == false) {
container.stop();
}
if (c.doAmount <= 0) {
container.stop();
}
}
}
@Override
public void stop() {
c.isSpinning = false;
}
}, 2);
}
}
}