Replace a bunch of magic numbers & Fix Mackerel Spelling (#559)

* Convert Some NPCActions Magic Numbers

* IntelliJ Reformat NpcActions.java

* Convert Magic Numbers In Dye.java

* Convert More Magic Numbers In NpcActions.java

* Convert More NpcActions.java Magic Numbers

* Plugins: Replace Magic Numbers

* Skills: Cooking: Replaced all Item/Object Magic Numbers & Fixed Mackerel spelling

* Food: Fixed Mackerel spelling

* Skills: Fishing: Replace Magic Numbers

* Skills: Mining: Replace Magic Numbers

* IntelliJ Code Reformat Changed Files
This commit is contained in:
Josh Shippam
2023-01-30 00:11:12 +00:00
committed by GitHub
parent 15d6b9f35a
commit aab9cfe951
18 changed files with 2678 additions and 2754 deletions
@@ -4,6 +4,7 @@ import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo import com.rs2.event.SubscribesTo
import com.rs2.event.impl.ItemFirstClickEvent import com.rs2.event.impl.ItemFirstClickEvent
import com.rs2.game.content.StaticItemList.YOYO
import com.rs2.game.players.Player import com.rs2.game.players.Player
@@ -18,7 +19,7 @@ class ItemFirstClick : EventSubscriber<ItemFirstClickEvent> {
when(event.item) { when(event.item) {
4079 -> player.startAnimation(1457) // yo-yo YOYO -> player.startAnimation(1457)
} }
@@ -4,6 +4,7 @@ import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo import com.rs2.event.SubscribesTo
import com.rs2.event.impl.ItemOnItemEvent import com.rs2.event.impl.ItemOnItemEvent
import com.rs2.game.content.StaticItemList.*
import com.rs2.game.players.Player import com.rs2.game.players.Player
@SubscribesTo(ItemOnItemEvent::class) @SubscribesTo(ItemOnItemEvent::class)
@@ -15,9 +16,9 @@ class ItemOnItem : EventSubscriber<ItemOnItemEvent> {
player.packetSender.sendMessage("[ItemOnItem] - used: ${event.used} with: ${event.usedWith}") player.packetSender.sendMessage("[ItemOnItem] - used: ${event.used} with: ${event.usedWith}")
} }
if (event.used == 38 && event.usedWith == 590) { if (event.used == BLACK_CANDLE && event.usedWith == TINDERBOX) {
player.itemAssistant.addItem(32, 1) player.itemAssistant.addItem(LIT_BLACK_CANDLE, 1)
player.itemAssistant.deleteItem(38, 1) player.itemAssistant.deleteItem(BLACK_CANDLE, 1)
} }
} }
@@ -4,6 +4,7 @@ import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo import com.rs2.event.SubscribesTo
import com.rs2.event.impl.ItemSecondClickEvent import com.rs2.event.impl.ItemSecondClickEvent
import com.rs2.game.content.StaticItemList.YOYO
import com.rs2.game.players.Player import com.rs2.game.players.Player
@SubscribesTo(ItemSecondClickEvent::class) @SubscribesTo(ItemSecondClickEvent::class)
@@ -17,7 +18,7 @@ class ItemSecondClick : EventSubscriber<ItemSecondClickEvent> {
when(event.id) { when(event.id) {
4079 -> player.startAnimation(1459) //yo-yo YOYO -> player.startAnimation(1459)
} }
@@ -4,6 +4,7 @@ import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo import com.rs2.event.SubscribesTo
import com.rs2.event.impl.ItemThirdClickEvent import com.rs2.event.impl.ItemThirdClickEvent
import com.rs2.game.content.StaticItemList.YOYO
import com.rs2.game.players.Player import com.rs2.game.players.Player
@SubscribesTo(ItemThirdClickEvent::class) @SubscribesTo(ItemThirdClickEvent::class)
@@ -17,7 +18,7 @@ class ItemThirdClick : EventSubscriber<ItemThirdClickEvent> {
when(event.id) { when(event.id) {
4079 -> player.startAnimation(1460) //yo-yo YOYO -> player.startAnimation(1460)
} }
@@ -1,11 +1,10 @@
package plugin.click.npc package plugin.click.npc
import com.rs2.GameConstants
import com.rs2.event.EventContext import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo import com.rs2.event.SubscribesTo
import com.rs2.event.impl.NpcFirstClickEvent import com.rs2.event.impl.NpcFirstClickEvent
import com.rs2.game.npcs.Npc import com.rs2.game.content.StaticNpcList.*
import com.rs2.game.players.Player import com.rs2.game.players.Player
import com.rs2.util.Misc import com.rs2.util.Misc
@@ -21,7 +20,7 @@ class NpcFirstClick : EventSubscriber<NpcFirstClickEvent> {
when(event.npc) { when(event.npc) {
1,2,3,4,5,6 -> if (Misc.random(10) <= 5) { MAN,MAN_2,MAN_3,WOMAN,WOMAN_5,WOMAN_6 -> if (Misc.random(10) <= 5) {
player.dialogueHandler.sendDialogues(3869, player.npcType) player.dialogueHandler.sendDialogues(3869, player.npcType)
} else { } else {
player.dialogueHandler.sendDialogues(3872, player.npcType) player.dialogueHandler.sendDialogues(3872, player.npcType)
@@ -6,6 +6,7 @@ import com.rs2.event.SubscribesTo
import com.rs2.event.impl.ObjectFirstClickEvent import com.rs2.event.impl.ObjectFirstClickEvent
import com.rs2.game.content.skills.core.Mining import com.rs2.game.content.skills.core.Mining
import com.rs2.game.players.Player import com.rs2.game.players.Player
import com.rs2.world.clip.Region
@SubscribesTo(ObjectFirstClickEvent::class) @SubscribesTo(ObjectFirstClickEvent::class)
class ObjectFirstClick : EventSubscriber<ObjectFirstClickEvent> { class ObjectFirstClick : EventSubscriber<ObjectFirstClickEvent> {
@@ -16,6 +17,10 @@ class ObjectFirstClick : EventSubscriber<ObjectFirstClickEvent> {
player.packetSender.sendMessage("[click= object], [type= first], [id= ${player.objectId}], [location= x:${player.objectX} y:${player.objectY} ]") player.packetSender.sendMessage("[click= object], [type= first], [id= ${player.objectId}], [location= x:${player.objectX} y:${player.objectY} ]")
} }
if (!Region.objectExists(player.objectId, player.objectX, player.objectY, player.heightLevel)) {
return
}
// if its a rock we can mine, mine it // if its a rock we can mine, mine it
if (Mining.rockExists(event.gameObject)) { if (Mining.rockExists(event.gameObject)) {
player.mining.startMining(player, event.gameObject, player.objectX, player.objectY, player.clickObjectType) player.mining.startMining(player, event.gameObject, player.objectX, player.objectY, player.clickObjectType)
@@ -6,6 +6,7 @@ import com.rs2.event.SubscribesTo
import com.rs2.event.impl.ObjectSecondClickEvent import com.rs2.event.impl.ObjectSecondClickEvent
import com.rs2.game.content.skills.thieving.Stalls import com.rs2.game.content.skills.thieving.Stalls
import com.rs2.game.players.Player import com.rs2.game.players.Player
import com.rs2.world.clip.Region
@SubscribesTo(ObjectSecondClickEvent::class) @SubscribesTo(ObjectSecondClickEvent::class)
class ObjectSecondClick : EventSubscriber<ObjectSecondClickEvent> { class ObjectSecondClick : EventSubscriber<ObjectSecondClickEvent> {
@@ -16,6 +17,10 @@ class ObjectSecondClick : EventSubscriber<ObjectSecondClickEvent> {
player.packetSender.sendMessage("[click= object], [type= second], [id= ${player.objectId}], [location= x:${player.objectX} y:${player.objectY} ]"); player.packetSender.sendMessage("[click= object], [type= second], [id= ${player.objectId}], [location= x:${player.objectX} y:${player.objectY} ]");
} }
if (!Region.objectExists(player.objectId, player.objectX, player.objectY, player.heightLevel)) {
return
}
if (Stalls.isObject(event.gameObject)) { if (Stalls.isObject(event.gameObject)) {
Stalls.attemptStall(player, event.gameObject, player.objectX, player.objectY) Stalls.attemptStall(player, event.gameObject, player.objectX, player.objectY)
return return
@@ -4,8 +4,10 @@ import com.rs2.event.EventContext
import com.rs2.event.EventSubscriber import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo import com.rs2.event.SubscribesTo
import com.rs2.event.impl.ObjectThirdClickEvent import com.rs2.event.impl.ObjectThirdClickEvent
import com.rs2.game.content.StaticObjectList.IRON_LADDER_10177
import com.rs2.game.content.skills.thieving.Stalls import com.rs2.game.content.skills.thieving.Stalls
import com.rs2.game.players.Player import com.rs2.game.players.Player
import com.rs2.world.clip.Region
@SubscribesTo(ObjectThirdClickEvent::class) @SubscribesTo(ObjectThirdClickEvent::class)
class ObjectThirdClick : EventSubscriber<ObjectThirdClickEvent> { class ObjectThirdClick : EventSubscriber<ObjectThirdClickEvent> {
@@ -16,13 +18,17 @@ class ObjectThirdClick : EventSubscriber<ObjectThirdClickEvent> {
player.packetSender.sendMessage("[click= object], [type= third], [id= ${player.objectId}], [location= x:${player.objectX} y:${player.objectY} ], [PLUGIN]"); player.packetSender.sendMessage("[click= object], [type= third], [id= ${player.objectId}], [location= x:${player.objectX} y:${player.objectY} ], [PLUGIN]");
} }
if (!Region.objectExists(player.objectId, player.objectX, player.objectY, player.heightLevel)) {
return
}
if (Stalls.isObject(event.gameObject)) { if (Stalls.isObject(event.gameObject)) {
Stalls.attemptStall(player, event.gameObject, player.objectX, player.objectY) Stalls.attemptStall(player, event.gameObject, player.objectX, player.objectY)
return return
} }
when (event.gameObject) { when (event.gameObject) {
10177 -> player.playerAssistant.movePlayer(1798, 4407, 3); IRON_LADDER_10177 -> player.playerAssistant.movePlayer(1798, 4407, 3);
} }
} }
@@ -5,12 +5,13 @@ import com.rs2.event.EventSubscriber
import com.rs2.event.SubscribesTo import com.rs2.event.SubscribesTo
import com.rs2.event.impl.NpcSecondClickEvent import com.rs2.event.impl.NpcSecondClickEvent
import com.rs2.game.players.Player import com.rs2.game.players.Player
import com.rs2.game.content.StaticNpcList.FADLI
@SubscribesTo(NpcSecondClickEvent::class) @SubscribesTo(NpcSecondClickEvent::class)
class SecondClick : EventSubscriber<NpcSecondClickEvent> { class SecondClick : EventSubscriber<NpcSecondClickEvent> {
override fun subscribe(context: EventContext, player: Player, event: NpcSecondClickEvent) { override fun subscribe(context: EventContext, player: Player, event: NpcSecondClickEvent) {
if (event.npc == 958) { if (event.npc == FADLI) {
player.packetSender.openUpBank() player.packetSender.openUpBank()
} }
} }
@@ -20,7 +20,7 @@ public class Food {
PINEAPPLE(2114, 2, "Pineapple", 0, "Food", false), PINEAPPLE(2114, 2, "Pineapple", 0, "Food", false),
CHOCOLATE_BAR(1973, 2, "Chocolate Bar", 0, "Food", false), CHOCOLATE_BAR(1973, 2, "Chocolate Bar", 0, "Food", false),
Wine(1993, 11, "Wine", 1935, "Drink", false), Wine(1993, 11, "Wine", 1935, "Drink", false),
MACKERAL(355, 6, "Mackeral", 0, "Food", false), MACKEREL(355, 6, "Mackerel", 0, "Food", false),
MANTA(391, 22, "Manta Ray", 0, "Food", false), MANTA(391, 22, "Manta Ray", 0, "Food", false),
SHARK(385, 20, "Shark", 0, "Food", false), SHARK(385, 20, "Shark", 0, "Food", false),
LOBSTER(379, 12, "Lobster", 0, "Food", false), LOBSTER(379, 12, "Lobster", 0, "Food", false),
@@ -1,10 +1,11 @@
package com.rs2.game.content.skills.cooking; package com.rs2.game.content.skills.cooking;
import java.security.SecureRandom;
import com.rs2.GameConstants; import com.rs2.GameConstants;
import com.rs2.event.CycleEvent; import com.rs2.event.CycleEvent;
import com.rs2.event.CycleEventContainer; import com.rs2.event.CycleEventContainer;
import com.rs2.event.CycleEventHandler; import com.rs2.event.CycleEventHandler;
import com.rs2.game.content.StaticItemList;
import com.rs2.game.content.StaticObjectList;
import com.rs2.game.content.music.sound.SoundList; import com.rs2.game.content.music.sound.SoundList;
import com.rs2.game.content.randomevents.RandomEventHandler; import com.rs2.game.content.randomevents.RandomEventHandler;
import com.rs2.game.content.skills.SkillHandler; import com.rs2.game.content.skills.SkillHandler;
@@ -13,261 +14,263 @@ import com.rs2.game.items.ItemConstants;
import com.rs2.game.players.Player; import com.rs2.game.players.Player;
import com.rs2.util.Misc; import com.rs2.util.Misc;
import java.security.SecureRandom;
public class Cooking extends SkillHandler { public class Cooking extends SkillHandler {
private static SecureRandom cookingRandom = new SecureRandom(); // The random factor private static SecureRandom cookingRandom = new SecureRandom(); // The random factor
private static enum CookingItems { private static enum CookingItems {
//raw, cooked, burnt, levelreq, exp, stopburn, stopburn w/gloves, name //raw, cooked, burnt, levelreq, exp, stopburn, stopburn w/gloves, name
SHRIMP(317, 315, 7954, 1, 30, 34, 30, "shrimp"), SHRIMP(StaticItemList.RAW_SHRIMPS, StaticItemList.SHRIMPS, StaticItemList.BURNT_SHRIMP, 1, 30, 34, 30, "shrimp"),
SARDINE(327, 325, 369, 1, 40, 38, 38, "sardine"), SARDINE(StaticItemList.RAW_SARDINE, StaticItemList.SARDINE, StaticItemList.BURNT_FISH_369, 1, 40, 38, 38, "sardine"),
HERRING(345, 347, 357, 5, 50, 41, 41, "herring"), HERRING(StaticItemList.RAW_HERRING, StaticItemList.HERRING, StaticItemList.BURNT_FISH_357, 5, 50, 41, 41, "herring"),
TROUT(335, 333, 343, 15, 70, 50, 50, "trout"), TROUT(StaticItemList.RAW_TROUT, StaticItemList.TROUT, StaticItemList.BURNT_FISH_343, 15, 70, 50, 50, "trout"),
TUNA(359, 361, 367, 30, 100, 64, 63, "tuna"), TUNA(StaticItemList.RAW_TUNA, StaticItemList.TUNA, StaticItemList.BURNT_FISH_367, 30, 100, 64, 63, "tuna"),
ANCHOVIES(321, 319, 323, 5, 45, 34, 34, "anchovies"), ANCHOVIES(StaticItemList.RAW_ANCHOVIES, StaticItemList.ANCHOVIES, StaticItemList.BURNT_FISH, 5, 45, 34, 34, "anchovies"),
RAW_BEEF(2132, 2142, 2146, 1, 30, 33, 33, "raw beef"), RAW_BEEF(StaticItemList.RAW_BEEF, StaticItemList.COOKED_MEAT, StaticItemList.BURNT_MEAT, 1, 30, 33, 33, "raw beef"),
RAW_RAT(2134, 2142, 2146, 1, 30, 33, 33, "raw rat meat"), RAW_RAT(StaticItemList.RAW_RAT_MEAT, StaticItemList.COOKED_MEAT, StaticItemList.BURNT_MEAT, 1, 30, 33, 33, "raw rat meat"),
BURNT_MEAT(2142, 2146, 2146, 1, 1, 100, 100, "cooked meat"), BURNT_MEAT(StaticItemList.COOKED_MEAT, StaticItemList.BURNT_MEAT, StaticItemList.BURNT_MEAT, 1, 1, 100, 100, "cooked meat"),
RAW_CHICKEN(2138, 2140, 2144, 1, 30, 33, 33, "raw chicken"), RAW_CHICKEN(StaticItemList.RAW_CHICKEN, StaticItemList.COOKED_CHICKEN, StaticItemList.BURNT_CHICKEN, 1, 30, 33, 33, "raw chicken"),
RAW_BEAR_MEAT(2136, 2142, 2146, 1, 30, 33, 33, "raw bear meat"), RAW_BEAR_MEAT(StaticItemList.RAW_BEAR_MEAT, StaticItemList.COOKED_MEAT, StaticItemList.BURNT_MEAT, 1, 30, 33, 33, "raw bear meat"),
MACKERAL(353, 355, 357, 10, 60, 45, 45, "mackeral"), MACKEREL(StaticItemList.RAW_MACKEREL, StaticItemList.MACKEREL, StaticItemList.BURNT_FISH_357, 10, 60, 45, 45, "mackerel"),
SALMON(331, 329, 343, 25, 90, 58, 55, "salmon"), SALMON(StaticItemList.RAW_SALMON, StaticItemList.SALMON, StaticItemList.BURNT_FISH_343, 25, 90, 58, 55, "salmon"),
UNCOOKED_BERRY_PIE(2321, 2325, 2329, 10, 78, 50, 50, "uncooked pie"), UNCOOKED_BERRY_PIE(StaticItemList.UNCOOKED_BERRY_PIE, StaticItemList.REDBERRY_PIE, StaticItemList.BURNT_PIE, 10, 78, 50, 50, "uncooked pie"),
PIKE(349, 351, 343, 20, 80, 59, 59, "pike"), PIKE(StaticItemList.RAW_PIKE, StaticItemList.PIKE, StaticItemList.BURNT_FISH_343, 20, 80, 59, 59, "pike"),
KARAMBWAN(3142, 3144, 3146, 1, 80, 20, 20, "karambwan"), KARAMBWAN(StaticItemList.RAW_KARAMBWAN, StaticItemList.COOKED_KARAMBWAN, StaticItemList.COOKED_KARAMBWAN_3146, 1, 80, 20, 20, "karambwan"),
LOBSTER(377, 379, 381, 40, 120, 74, 68, "lobster"), LOBSTER(StaticItemList.RAW_LOBSTER, StaticItemList.LOBSTER, StaticItemList.BURNT_LOBSTER, 40, 120, 74, 68, "lobster"),
SWORDFISH(371, 373, 375, 50, 140, 86, 81, "swordfish"), SWORDFISH(StaticItemList.RAW_SWORDFISH, StaticItemList.SWORDFISH, StaticItemList.BURNT_SWORDFISH, 50, 140, 86, 81, "swordfish"),
MONKFISH(7944, 7946, 7948, 62, 150, 92, 90, "monkfish"), MONKFISH(StaticItemList.RAW_MONKFISH, StaticItemList.MONKFISH, StaticItemList.BURNT_MONKFISH, 62, 150, 92, 90, "monkfish"),
SHARK(383, 385, 387, 76, 210, 100, 94, "shark"), SHARK(StaticItemList.RAW_SHARK, StaticItemList.SHARK, StaticItemList.BURNT_SHARK, 76, 210, 100, 94, "shark"),
SEA_TURTLE(395, 397, 399, 82, 211, 100, 100, "sea turtle"), SEA_TURTLE(StaticItemList.RAW_SEA_TURTLE, StaticItemList.SEA_TURTLE, StaticItemList.BURNT_SEA_TURTLE, 82, 211, 100, 100, "sea turtle"),
MANTA_RAY(389, 391, 393, 91, 216, 100, 100, "manta ray"), MANTA_RAY(StaticItemList.RAW_MANTA_RAY, StaticItemList.MANTA_RAY, StaticItemList.BURNT_MANTA_RAY, 91, 216, 100, 100, "manta ray"),
SEAWEED(401, 1781, 1781, 1, 1, 1, 1, "sea weed"), SEAWEED(StaticItemList.SEAWEED, StaticItemList.SODA_ASH, StaticItemList.SODA_ASH, 1, 1, 1, 1, "sea weed"),
CURRY(2009, 2011, 2013, 60, 280, 74, 74, "curry"); CURRY(StaticItemList.UNCOOKED_CURRY, StaticItemList.CURRY, StaticItemList.BURNT_CURRY, 60, 280, 74, 74, "curry");
int rawItem, cookedItem, burntItem, levelReq, xp, stopBurn, stopBurnGloves; int rawItem, cookedItem, burntItem, levelReq, xp, stopBurn, stopBurnGloves;
String name; String name;
private CookingItems(int rawItem, int cookedItem, int burntItem, int levelReq, int xp, int stopBurn, int stopBurnGloves, String name) { private CookingItems(int rawItem, int cookedItem, int burntItem, int levelReq, int xp, int stopBurn, int stopBurnGloves, String name) {
this.rawItem = rawItem; this.rawItem = rawItem;
this.cookedItem = cookedItem; this.cookedItem = cookedItem;
this.burntItem = burntItem; this.burntItem = burntItem;
this.levelReq = levelReq; this.levelReq = levelReq;
this.xp = xp; this.xp = xp;
this.stopBurn = stopBurn; this.stopBurn = stopBurn;
this.name = name; this.name = name;
} }
private int getRawItem() { private int getRawItem() {
return rawItem; return rawItem;
} }
private int getCookedItem() { private int getCookedItem() {
return cookedItem; return cookedItem;
} }
private int getBurntItem() { private int getBurntItem() {
return burntItem; return burntItem;
} }
private int getLevelReq() { private int getLevelReq() {
return levelReq; return levelReq;
} }
private int getXp() { private int getXp() {
return xp; return xp;
} }
private int getStopBurn() { private int getStopBurn() {
return stopBurn; return stopBurn;
} }
private int getStopBurnGloves() { private int getStopBurnGloves() {
return stopBurnGloves; return stopBurnGloves;
} }
private String getName() { private String getName() {
return name; return name;
} }
} }
public static CookingItems forId(int itemId) { public static CookingItems forId(int itemId) {
for (CookingItems item : CookingItems.values()) { for (CookingItems item : CookingItems.values()) {
if (itemId == item.getRawItem()) { if (itemId == item.getRawItem()) {
return item; return item;
} }
} }
return null; return null;
} }
public static void makeBreadOptions(Player c, int item) { public static void makeBreadOptions(Player c, int item) {
if (c.getItemAssistant().playerHasItem(1929) && c.getItemAssistant().playerHasItem(1933) && item == c.breadID) { if (c.getItemAssistant().playerHasItem(StaticItemList.BUCKET_OF_WATER) && c.getItemAssistant().playerHasItem(StaticItemList.POT_OF_FLOUR) && item == c.breadID) {
c.getItemAssistant().deleteItem(1929, 1); c.getItemAssistant().deleteItem(StaticItemList.BUCKET_OF_WATER, 1);
c.getItemAssistant().deleteItem(1933, 1); c.getItemAssistant().deleteItem(StaticItemList.POT_OF_FLOUR, 1);
c.getItemAssistant().addItem(1925, 1); c.getItemAssistant().addItem(StaticItemList.BUCKET, 1);
c.getItemAssistant().addItem(1931, 1); c.getItemAssistant().addItem(StaticItemList.POT, 1);
c.getItemAssistant().addItem(item, 1); c.getItemAssistant().addItem(item, 1);
c.getPacketSender().sendMessage("You mix the water and flour to make some " + ItemAssistant.getItemName(item) + "."); c.getPacketSender().sendMessage("You mix the water and flour to make some " + ItemAssistant.getItemName(item) + ".");
} }
c.getPacketSender().closeAllWindows(); c.getPacketSender().closeAllWindows();
} }
public static void pastryCreation(Player c, int itemID1, int itemID2, int giveItem, String message) { public static void pastryCreation(Player c, int itemID1, int itemID2, int giveItem, String message) {
if (c.getItemAssistant().playerHasItem(itemID1) && c.getItemAssistant().playerHasItem(itemID2)) { if (c.getItemAssistant().playerHasItem(itemID1) && c.getItemAssistant().playerHasItem(itemID2)) {
c.getItemAssistant().deleteItem(itemID1, 1); c.getItemAssistant().deleteItem(itemID1, 1);
c.getItemAssistant().deleteItem(itemID2, 1); c.getItemAssistant().deleteItem(itemID2, 1);
c.getItemAssistant().addItem(giveItem, 1); c.getItemAssistant().addItem(giveItem, 1);
if (message.equalsIgnoreCase("")) { if (message.equalsIgnoreCase("")) {
c.getPacketSender().sendMessage("You mix the two ingredients and get an " + ItemAssistant.getItemName(giveItem) + "."); c.getPacketSender().sendMessage("You mix the two ingredients and get an " + ItemAssistant.getItemName(giveItem) + ".");
} else { } else {
c.getPacketSender().sendMessage(message); c.getPacketSender().sendMessage(message);
} }
} }
} }
public static void cookingAddon(Player c, int itemID1, int itemID2, int giveItem, int requiredLevel, int expGained) { public static void cookingAddon(Player c, int itemID1, int itemID2, int giveItem, int requiredLevel, int expGained) {
if (c.playerLevel[GameConstants.COOKING] >= requiredLevel) { if (c.playerLevel[GameConstants.COOKING] >= requiredLevel) {
if (c.getItemAssistant().playerHasItem(itemID1) && c.getItemAssistant().playerHasItem(itemID2)) { if (c.getItemAssistant().playerHasItem(itemID1) && c.getItemAssistant().playerHasItem(itemID2)) {
c.getItemAssistant().deleteItem(itemID1, 1); c.getItemAssistant().deleteItem(itemID1, 1);
c.getItemAssistant().deleteItem(itemID2, 1); c.getItemAssistant().deleteItem(itemID2, 1);
c.getItemAssistant().addItem(giveItem, 1); c.getItemAssistant().addItem(giveItem, 1);
c.getPlayerAssistant().addSkillXP(expGained, 7); c.getPlayerAssistant().addSkillXP(expGained, 7);
c.getPacketSender().sendMessage("You create a " + ItemAssistant.getItemName(giveItem) + "."); c.getPacketSender().sendMessage("You create a " + ItemAssistant.getItemName(giveItem) + ".");
} }
} else { } else {
c.getPacketSender().sendMessage("You don't have the required level to make an " + ItemAssistant.getItemName(giveItem)); c.getPacketSender().sendMessage("You don't have the required level to make an " + ItemAssistant.getItemName(giveItem));
} }
} }
public static void setCooking(Player player, boolean isCooking) { public static void setCooking(Player player, boolean isCooking) {
player.playerIsCooking = isCooking; player.playerIsCooking = isCooking;
player.stopPlayerSkill = isCooking; player.stopPlayerSkill = isCooking;
} }
private static void viewCookInterface(Player c, int item) { private static void viewCookInterface(Player c, int item) {
c.getPacketSender().sendChatInterface(1743); c.getPacketSender().sendChatInterface(1743);
c.getPacketSender().sendFrame246(13716, view190 ? 190 : 170, item); c.getPacketSender().sendFrame246(13716, view190 ? 190 : 170, item);
c.getPacketSender().sendString(getLine(c) + "" + ItemAssistant.getItemName(item) + "", 13717); c.getPacketSender().sendString(getLine(c) + "" + ItemAssistant.getItemName(item) + "", 13717);
} }
public static boolean startCooking(Player c, int itemId, int objectId) { public static boolean startCooking(Player c, int itemId, int objectId) {
CookingItems item = forId(itemId); CookingItems item = forId(itemId);
if (item != null) { if (item != null) {
if (c.playerLevel[GameConstants.COOKING] < item.getLevelReq()) { if (c.playerLevel[GameConstants.COOKING] < item.getLevelReq()) {
c.getPacketSender().closeAllWindows(); c.getPacketSender().closeAllWindows();
c.getDialogueHandler().sendStatement("You need a Cooking level of " + item.getLevelReq() + " to cook this."); c.getDialogueHandler().sendStatement("You need a Cooking level of " + item.getLevelReq() + " to cook this.");
c.nextChat = 0; c.nextChat = 0;
return false; return false;
} }
if (c.playerIsCooking) { if (c.playerIsCooking) {
c.getPacketSender().closeAllWindows(); c.getPacketSender().closeAllWindows();
return false; return false;
} }
if (!COOKING) { if (!COOKING) {
c.getPacketSender().sendMessage("This skill is currently disabled."); c.getPacketSender().sendMessage("This skill is currently disabled.");
return false; return false;
} }
// save the id of the item and object for the cooking interface. // save the id of the item and object for the cooking interface.
c.cookingItem = itemId; c.cookingItem = itemId;
c.cookingObject = objectId; c.cookingObject = objectId;
viewCookInterface(c, item.getRawItem()); viewCookInterface(c, item.getRawItem());
return true; return true;
} }
return false; return false;
} }
private static boolean getSuccess(Player c, int burnBonus, int levelReq, int stopBurn) { private static boolean getSuccess(Player c, int burnBonus, int levelReq, int stopBurn) {
if (c.playerLevel[GameConstants.COOKING] >= stopBurn) { if (c.playerLevel[GameConstants.COOKING] >= stopBurn) {
return true; return true;
} }
double burn_chance = 55.0 - burnBonus; double burn_chance = 55.0 - burnBonus;
double cook_level = c.playerLevel[GameConstants.COOKING]; double cook_level = c.playerLevel[GameConstants.COOKING];
double lev_needed = levelReq; double lev_needed = levelReq;
double burn_stop = stopBurn; double burn_stop = stopBurn;
double multi_a = burn_stop - lev_needed; double multi_a = burn_stop - lev_needed;
double burn_dec = burn_chance / multi_a; double burn_dec = burn_chance / multi_a;
double multi_b = cook_level - lev_needed; double multi_b = cook_level - lev_needed;
burn_chance -= multi_b * burn_dec; burn_chance -= multi_b * burn_dec;
double randNum = cookingRandom.nextDouble() * 100.0; double randNum = cookingRandom.nextDouble() * 100.0;
return burn_chance <= randNum; return burn_chance <= randNum;
} }
public static void cookItem(final Player player, final int itemId, final int amount, final int objectId) { public static void cookItem(final Player player, final int itemId, final int amount, final int objectId) {
CycleEventHandler.getSingleton().stopEvents(player, "cookingEvent".hashCode()); CycleEventHandler.getSingleton().stopEvents(player, "cookingEvent".hashCode());
final CookingItems item = forId(itemId); final CookingItems item = forId(itemId);
if (item != null) { if (item != null) {
setCooking(player, true); setCooking(player, true);
RandomEventHandler.addRandom(player); RandomEventHandler.addRandom(player);
player.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
player.doAmount = amount; player.doAmount = amount;
if (player.doAmount > player.getItemAssistant().getItemAmount(itemId)) { if (player.doAmount > player.getItemAssistant().getItemAmount(itemId)) {
player.doAmount = player.getItemAssistant().getItemAmount(itemId); player.doAmount = player.getItemAssistant().getItemAmount(itemId);
} }
if (objectId > 0) { if (objectId > 0) {
player.startAnimation(objectId == 2732 ? 897 : 896); player.startAnimation(objectId == StaticObjectList.FIRE ? 897 : 896);
} }
CycleEventHandler.getSingleton().addEvent("cookingEvent".hashCode(), player, new CycleEvent() { CycleEventHandler.getSingleton().addEvent("cookingEvent".hashCode(), player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (!player.playerIsCooking) { if (!player.playerIsCooking) {
setCooking(player, false); setCooking(player, false);
container.stop(); container.stop();
return; return;
} }
if (!player.getItemAssistant().playerHasItem(item.getRawItem(), 1)) { if (!player.getItemAssistant().playerHasItem(item.getRawItem(), 1)) {
player.getPacketSender().sendMessage("You have run out of " + item.getName() + " to cook."); player.getPacketSender().sendMessage("You have run out of " + item.getName() + " to cook.");
setCooking(player, false); setCooking(player, false);
container.stop(); container.stop();
return; return;
} }
boolean burn; boolean burn;
if (player.playerEquipment[ItemConstants.HANDS] == 775) { if (player.playerEquipment[ItemConstants.HANDS] == StaticItemList.COOKING_GAUNTLETS) {
burn = !getSuccess(player, 3, item.getLevelReq(), item.getStopBurnGloves()); burn = !getSuccess(player, 3, item.getLevelReq(), item.getStopBurnGloves());
} else { } else {
burn = !getSuccess(player, 3, item.getLevelReq(), item.getStopBurn()); burn = !getSuccess(player, 3, item.getLevelReq(), item.getStopBurn());
} }
player.getItemAssistant().deleteItem(item.getRawItem(), player.getItemAssistant().deleteItem(item.getRawItem(),
player.getItemAssistant().getItemSlot(itemId), 1); player.getItemAssistant().getItemSlot(itemId), 1);
if (!burn) { if (!burn) {
player.getPacketSender().sendMessage("You successfully cook the " + item.getName().toLowerCase() + "."); player.getPacketSender().sendMessage("You successfully cook the " + item.getName().toLowerCase() + ".");
if (GameConstants.SOUND) { if (GameConstants.SOUND) {
player.getPacketSender().sendSound(SoundList.COOK_ITEM, 100, 0); player.getPacketSender().sendSound(SoundList.COOK_ITEM, 100, 0);
} }
player.getPlayerAssistant().addSkillXP(item.getXp(), GameConstants.COOKING); player.getPlayerAssistant().addSkillXP(item.getXp(), GameConstants.COOKING);
player.getItemAssistant().addItem(item.getCookedItem(), 1); player.getItemAssistant().addItem(item.getCookedItem(), 1);
} else { } else {
player.getPacketSender().sendMessage( player.getPacketSender().sendMessage(
"Oops! You accidentally burnt the " "Oops! You accidentally burnt the "
+ item.getName().toLowerCase() + "!"); + item.getName().toLowerCase() + "!");
player.getItemAssistant().addItem(item.getBurntItem(), 1); player.getItemAssistant().addItem(item.getBurntItem(), 1);
} }
player.doAmount--; player.doAmount--;
if (player.disconnected) { if (player.disconnected) {
container.stop(); container.stop();
return; return;
} }
if (objectId < 0) { if (objectId < 0) {
container.stop(); container.stop();
return; return;
} }
if (player.playerIsCooking && !Misc.goodDistance(player.objectX, player.objectY, player.absX, player.absY, 2)) { if (player.playerIsCooking && !Misc.goodDistance(player.objectX, player.objectY, player.absX, player.absY, 2)) {
container.stop(); container.stop();
return; return;
} }
if (player.doAmount > 0) { if (player.doAmount > 0) {
if (objectId > 0) { if (objectId > 0) {
player.startAnimation(objectId == 2732 ? 897 : 896); player.startAnimation(objectId == StaticObjectList.FIRE ? 897 : 896);
} }
} else if (player.doAmount == 0) { } else if (player.doAmount == 0) {
setCooking(player, false); setCooking(player, false);
container.stop(); container.stop();
} }
} }
@Override @Override
public void stop() { public void stop() {
} }
}, 4); }, 4);
} }
} }
} }
@@ -4,6 +4,8 @@ import com.rs2.GameConstants;
import com.rs2.event.CycleEvent; import com.rs2.event.CycleEvent;
import com.rs2.event.CycleEventContainer; import com.rs2.event.CycleEventContainer;
import com.rs2.event.CycleEventHandler; import com.rs2.event.CycleEventHandler;
import com.rs2.game.content.StaticItemList;
import com.rs2.game.content.StaticObjectList;
import com.rs2.game.content.music.sound.SoundList; import com.rs2.game.content.music.sound.SoundList;
import com.rs2.game.content.skills.SkillHandler; import com.rs2.game.content.skills.SkillHandler;
import com.rs2.game.items.ItemAssistant; import com.rs2.game.items.ItemAssistant;
@@ -12,170 +14,170 @@ import com.rs2.util.Misc;
public class CookingTutorialIsland extends SkillHandler { public class CookingTutorialIsland extends SkillHandler {
public static void cookThisFood(Player p, int i, int object) { public static void cookThisFood(Player p, int i, int object) {
switch (i) { switch (i) {
case 317: case StaticItemList.RAW_SHRIMPS:
cookFish(p, i, 30, 1, 323, 315, object); cookFish(p, i, 30, 1, StaticItemList.BURNT_FISH, StaticItemList.SHRIMPS, object);
break; break;
default: default:
p.getPacketSender().sendMessage("Nothing interesting happens."); p.getPacketSender().sendMessage("Nothing interesting happens.");
break; break;
} }
} }
private static void cookFish(Player c, int itemID, int xpRecieved, private static void cookFish(Player c, int itemID, int xpRecieved,
int levelRequired, int burntFish, int cookedFish, int object) { int levelRequired, int burntFish, int cookedFish, int object) {
if (!COOKING) { if (!COOKING) {
c.getPacketSender().sendMessage( c.getPacketSender().sendMessage(
"Cooking is currently disabled."); "Cooking is currently disabled.");
return; return;
} }
if (!hasRequiredLevel(c, 7, levelRequired, "cooking", "cook this")) { if (!hasRequiredLevel(c, 7, levelRequired, "cooking", "cook this")) {
return; return;
} }
int chance = c.playerLevel[GameConstants.COOKING]; int chance = c.playerLevel[GameConstants.COOKING];
if (c.playerEquipment[c.playerHands] == 775) { if (c.playerEquipment[c.playerHands] == StaticItemList.COOKING_GAUNTLETS) {
chance = c.playerLevel[GameConstants.COOKING] + 8; chance = c.playerLevel[GameConstants.COOKING] + 8;
} }
if (chance <= 0) { if (chance <= 0) {
chance = Misc.random(5); chance = Misc.random(5);
} }
c.playerSkillProp[GameConstants.COOKING][0] = itemID; c.playerSkillProp[GameConstants.COOKING][0] = itemID;
c.playerSkillProp[GameConstants.COOKING][1] = xpRecieved; c.playerSkillProp[GameConstants.COOKING][1] = xpRecieved;
c.playerSkillProp[GameConstants.COOKING][2] = levelRequired; c.playerSkillProp[GameConstants.COOKING][2] = levelRequired;
c.playerSkillProp[GameConstants.COOKING][3] = burntFish; c.playerSkillProp[GameConstants.COOKING][3] = burntFish;
c.playerSkillProp[GameConstants.COOKING][4] = cookedFish; c.playerSkillProp[GameConstants.COOKING][4] = cookedFish;
c.playerSkillProp[GameConstants.COOKING][5] = object; c.playerSkillProp[GameConstants.COOKING][5] = object;
c.playerSkillProp[GameConstants.COOKING][6] = chance; c.playerSkillProp[GameConstants.COOKING][6] = chance;
c.stopPlayerSkill = false; c.stopPlayerSkill = false;
int item = c.getItemAssistant().getItemAmount(c.playerSkillProp[GameConstants.COOKING][0]); int item = c.getItemAssistant().getItemAmount(c.playerSkillProp[GameConstants.COOKING][0]);
if (item == 1) { if (item == 1) {
c.doAmount = 1; c.doAmount = 1;
cookTutFish(c); cookTutFish(c);
return; return;
} }
viewCookInterface(c, itemID); viewCookInterface(c, itemID);
} }
public static void getAmount(Player player, int amount) { public static void getAmount(Player player, int amount) {
int item = player.getItemAssistant().getItemAmount(player.playerSkillProp[GameConstants.COOKING][0]); int item = player.getItemAssistant().getItemAmount(player.playerSkillProp[GameConstants.COOKING][0]);
if (amount > item) { if (amount > item) {
amount = item; amount = item;
} }
player.doAmount = amount; player.doAmount = amount;
cookTutFish(player); cookTutFish(player);
} }
public static void resetCooking(Player c) { public static void resetCooking(Player c) {
c.playerSkilling[GameConstants.COOKING] = false; c.playerSkilling[GameConstants.COOKING] = false;
c.stopPlayerSkill = false; c.stopPlayerSkill = false;
for (int i = 0; i < 6; i++) { for (int i = 0; i < 6; i++) {
c.playerSkillProp[GameConstants.COOKING][i] = -1; c.playerSkillProp[GameConstants.COOKING][i] = -1;
} }
} }
private static void viewCookInterface(Player c, int item) { private static void viewCookInterface(Player c, int item) {
c.getPacketSender().sendChatInterface(1743); c.getPacketSender().sendChatInterface(1743);
c.getPacketSender().sendFrame246(13716, 190, item); c.getPacketSender().sendFrame246(13716, 190, item);
c.getPacketSender().sendString( c.getPacketSender().sendString(
"" + ItemAssistant.getItemName(item) + "", 13717); "" + ItemAssistant.getItemName(item) + "", 13717);
} }
private static void cookTutFish(final Player c) { private static void cookTutFish(final Player c) {
if (c.playerSkilling[GameConstants.COOKING]) { if (c.playerSkilling[GameConstants.COOKING]) {
return; return;
} }
if (c.tutorialProgress == 6) { if (c.tutorialProgress == 6) {
c.playerSkilling[GameConstants.COOKING] = true; c.playerSkilling[GameConstants.COOKING] = true;
c.stopPlayerSkill = true; c.stopPlayerSkill = true;
c.getPacketSender().closeAllWindows(); c.getPacketSender().closeAllWindows();
if (c.playerSkillProp[GameConstants.COOKING][5] > 0) { if (c.playerSkillProp[GameConstants.COOKING][5] > 0) {
// c.startAnimation(c.playerSkillProp[GameConstants.COOKING][5] == 2732 ? 897 : // c.startAnimation(c.playerSkillProp[GameConstants.COOKING][5] == StaticObjectList.FIRE ? 897 :
// 896); // 896);
c.startAnimation(c.playerSkillProp[GameConstants.COOKING][5] == 2732 ? 897 c.startAnimation(c.playerSkillProp[GameConstants.COOKING][5] == StaticObjectList.FIRE ? 897
: c.playerSkillProp[GameConstants.COOKING][5] == 12269 ? 897 : 896); : c.playerSkillProp[GameConstants.COOKING][5] == StaticObjectList.STOVE_12269 ? 897 : 896);
if (GameConstants.SOUND) { if (GameConstants.SOUND) {
c.getPacketSender().sendSound(SoundList.COOK_ITEM, 100, c.getPacketSender().sendSound(SoundList.COOK_ITEM, 100,
0); 0);
} }
} }
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
c.getItemAssistant().deleteItem( c.getItemAssistant().deleteItem(
c.playerSkillProp[GameConstants.COOKING][0], c.playerSkillProp[GameConstants.COOKING][0],
c.getItemAssistant().getItemSlot( c.getItemAssistant().getItemSlot(
c.playerSkillProp[GameConstants.COOKING][0]), 1); c.playerSkillProp[GameConstants.COOKING][0]), 1);
if (c.cookStage1 == 1) { if (c.cookStage1 == 1) {
c.getPacketSender().chatbox(6180); c.getPacketSender().chatbox(6180);
c.getDialogueHandler() c.getDialogueHandler()
.chatboxText( .chatboxText(
"You have just burned your first shrimp. This is normal. As you", "You have just burned your first shrimp. This is normal. As you",
"get more experience in Cooking, you will burn stuff less often.", "get more experience in Cooking, you will burn stuff less often.",
"Let's try cooking without burning it this time. First catch some", "Let's try cooking without burning it this time. First catch some",
"more shrimp then use them on a fire.", "more shrimp then use them on a fire.",
"Burning your shrimp."); "Burning your shrimp.");
c.getPacketSender().chatbox(6179); c.getPacketSender().chatbox(6179);
c.cookStage1 = 0; c.cookStage1 = 0;
c.getItemAssistant() c.getItemAssistant()
.addItem(c.playerSkillProp[GameConstants.COOKING][3], 1); .addItem(c.playerSkillProp[GameConstants.COOKING][3], 1);
} else { } else {
c.getPacketSender().chatbox(6180); c.getPacketSender().chatbox(6180);
c.getDialogueHandler() c.getDialogueHandler()
.chatboxText( .chatboxText(
"If you'd like a recap on anything you've learnt so far, speak to", "If you'd like a recap on anything you've learnt so far, speak to",
"the Survival Expert. You can now move on to the next", "the Survival Expert. You can now move on to the next",
"instructor. Click on the gate shown and follow the path.", "instructor. Click on the gate shown and follow the path.",
"Remember, you can move the camera with the arrow keys.", "Remember, you can move the camera with the arrow keys.",
"Well done, you've just cooked your first RuneScape meal"); "Well done, you've just cooked your first RuneScape meal");
c.getPacketSender().chatbox(6179); c.getPacketSender().chatbox(6179);
c.getPacketSender().createArrow(3089, 3092, c.getPacketSender().createArrow(3089, 3092,
c.getH(), 2); c.getH(), 2);
c.getPlayerAssistant().addSkillXP( c.getPlayerAssistant().addSkillXP(
c.playerSkillProp[GameConstants.COOKING][1], 7); c.playerSkillProp[GameConstants.COOKING][1], 7);
c.getItemAssistant() c.getItemAssistant()
.addItem(c.playerSkillProp[GameConstants.COOKING][4], 1); .addItem(c.playerSkillProp[GameConstants.COOKING][4], 1);
c.tutorialProgress = 7; c.tutorialProgress = 7;
} }
deleteTime(c); deleteTime(c);
if (!c.getItemAssistant().playerHasItem( if (!c.getItemAssistant().playerHasItem(
c.playerSkillProp[GameConstants.COOKING][0], 1) c.playerSkillProp[GameConstants.COOKING][0], 1)
|| c.doAmount <= 0) { || c.doAmount <= 0) {
container.stop(); container.stop();
} }
if (!c.stopPlayerSkill) { if (!c.stopPlayerSkill) {
container.stop(); container.stop();
} }
} }
@Override @Override
public void stop() { public void stop() {
resetCooking(c); resetCooking(c);
} }
}, 4); }, 4);
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (c.playerSkillProp[GameConstants.COOKING][5] > 0) { if (c.playerSkillProp[GameConstants.COOKING][5] > 0) {
// c.getPacketSender().sendSound(357, 100, 1); // // c.getPacketSender().sendSound(357, 100, 1); //
// cook sound // cook sound
c.startAnimation(c.playerSkillProp[GameConstants.COOKING][5] == 2732 ? 897 c.startAnimation(c.playerSkillProp[GameConstants.COOKING][5] == StaticObjectList.FIRE ? 897
: 896); : 896);
} }
if (!c.stopPlayerSkill) { if (!c.stopPlayerSkill) {
container.stop(); container.stop();
} }
} }
@Override @Override
public void stop() { public void stop() {
} }
}, 4); }, 4);
return; return;
} }
} }
} }
@@ -1,115 +1,117 @@
package com.rs2.game.content.skills.cooking; package com.rs2.game.content.skills.cooking;
import java.util.HashMap;
import com.rs2.GameConstants; import com.rs2.GameConstants;
import com.rs2.event.CycleEvent; import com.rs2.event.CycleEvent;
import com.rs2.event.CycleEventContainer; import com.rs2.event.CycleEventContainer;
import com.rs2.event.CycleEventHandler; import com.rs2.event.CycleEventHandler;
import com.rs2.game.content.StaticItemList;
import com.rs2.game.items.ItemAssistant; import com.rs2.game.items.ItemAssistant;
import com.rs2.game.players.Player; import com.rs2.game.players.Player;
import java.util.HashMap;
/** /**
* Created by IntelliJ IDEA. User: vayken Date: 23/12/11 Time: 20:42 To change * Created by IntelliJ IDEA. User: vayken Date: 23/12/11 Time: 20:42 To change
* this template use File | Settings | File Templates. * this template use File | Settings | File Templates.
*/ */
public class DairyChurn { public class DairyChurn {
private static final int CHURN_ANIMATION = 894; private static final int CHURN_ANIMATION = 894;
public static enum ChurnData { public static enum ChurnData {
CREAM(59238, new int[] { 1927 }, 2130, 21, 18), BUTTER(59239, CREAM(59238, new int[]{StaticItemList.BUCKET_OF_MILK}, StaticItemList.POT_OF_CREAM, 21, 18),
new int[] { 1927, 2130 }, 6697, 38, 40), CHEESE(59240, BUTTER(59239, new int[]{StaticItemList.BUCKET_OF_MILK, StaticItemList.POT_OF_CREAM}, StaticItemList.PAT_OF_BUTTER, 38, 40),
new int[] { 1927, 2130, 6697 }, 1985, 48, 64); CHEESE(59240, new int[]{StaticItemList.BUCKET_OF_MILK, StaticItemList.POT_OF_CREAM, StaticItemList.PAT_OF_BUTTER}, StaticItemList.CHEESE, 48, 64);
private int buttonId; private int buttonId;
private int[] used; private int[] used;
private int result; private int result;
private int level; private int level;
private double experience; private double experience;
public static HashMap<Integer, ChurnData> churnItems = new HashMap<Integer, ChurnData>(); public static HashMap<Integer, ChurnData> churnItems = new HashMap<Integer, ChurnData>();
public static ChurnData forId(int id) { public static ChurnData forId(int id) {
return churnItems.get(id); return churnItems.get(id);
} }
static { static {
for (ChurnData data : ChurnData.values()) { for (ChurnData data : ChurnData.values()) {
churnItems.put(data.buttonId, data); churnItems.put(data.buttonId, data);
} }
} }
private ChurnData(int buttonId, int[] used, int result, int level, private ChurnData(int buttonId, int[] used, int result, int level,
double experience) { double experience) {
this.buttonId = buttonId; this.buttonId = buttonId;
this.used = used; this.used = used;
this.result = result; this.result = result;
this.level = level; this.level = level;
this.experience = experience; this.experience = experience;
} }
public int getButtonId() { public int getButtonId() {
return buttonId; return buttonId;
} }
public int[] getUsed() { public int[] getUsed() {
return used; return used;
} }
public int getResult() { public int getResult() {
return result; return result;
} }
public int getLevel() { public int getLevel() {
return level; return level;
} }
public double getExperience() { public double getExperience() {
return experience; return experience;
} }
} }
public static void churnItem(final Player player, int buttonId) { public static void churnItem(final Player player, int buttonId) {
final ChurnData churnData = ChurnData.forId(buttonId); final ChurnData churnData = ChurnData.forId(buttonId);
if (churnData == null || player.getStatedInterface() != "dairyChurn") { if (churnData == null || player.getStatedInterface() != "dairyChurn") {
return; return;
} }
if (player.playerLevel[GameConstants.COOKING] < churnData.getLevel()) { if (player.playerLevel[GameConstants.COOKING] < churnData.getLevel()) {
player.getDialogueHandler().sendStatement("You need a cooking level of " + churnData.getLevel() + " to make this."); player.getDialogueHandler().sendStatement("You need a cooking level of " + churnData.getLevel() + " to make this.");
return; return;
} }
player.playerIsCooking = true; player.playerIsCooking = true;
player.getPacketSender().closeAllWindows(); player.getPacketSender().closeAllWindows();
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
for (int i = 0; i <= churnData.getUsed().length - 1; i++) { for (int i = 0; i <= churnData.getUsed().length - 1; i++) {
if (!player.getItemAssistant().playerHasItem(churnData.getUsed()[i])) { if (!player.getItemAssistant().playerHasItem(churnData.getUsed()[i])) {
player.getDialogueHandler().sendStatement("You don't have the required items to use the churn."); player.getDialogueHandler().sendStatement("You don't have the required items to use the churn.");
container.stop(); container.stop();
return; return;
} }
} }
if (!player.playerIsCooking) { if (!player.playerIsCooking) {
container.stop(); container.stop();
return; return;
} }
container.setTick(5); container.setTick(5);
player.startAnimation(CHURN_ANIMATION); player.startAnimation(CHURN_ANIMATION);
player.getPacketSender().sendMessage("You make a " + ItemAssistant.getItemName(churnData.getResult()).toLowerCase() + "."); player.getPacketSender().sendMessage("You make a " + ItemAssistant.getItemName(churnData.getResult()).toLowerCase() + ".");
for (int i = 0; i < churnData.getUsed().length; i++) for (int i = 0; i < churnData.getUsed().length; i++)
player.getItemAssistant().deleteItem(churnData.getUsed()[i], 1); player.getItemAssistant().deleteItem(churnData.getUsed()[i], 1);
player.getItemAssistant().addItem(churnData.getResult(), 1); player.getItemAssistant().addItem(churnData.getResult(), 1);
player.getItemAssistant().addItem(1925, 1); player.getItemAssistant().addItem(StaticItemList.BUCKET, 1);
player.getPlayerAssistant().addSkillXP(churnData.getExperience(), GameConstants.COOKING); player.getPlayerAssistant().addSkillXP(churnData.getExperience(), GameConstants.COOKING);
} }
@Override @Override
public void stop() { public void stop() {
player.getPlayerAssistant().resetAnimation(); player.getPlayerAssistant().resetAnimation();
} }
}, 1); }, 1);
} }
} }
@@ -1,115 +1,118 @@
package com.rs2.game.content.skills.cooking; package com.rs2.game.content.skills.cooking;
import java.util.HashMap;
import java.util.Map;
import com.rs2.GameConstants; import com.rs2.GameConstants;
import com.rs2.game.content.StaticItemList;
import com.rs2.game.content.randomevents.RandomEventHandler; import com.rs2.game.content.randomevents.RandomEventHandler;
import com.rs2.game.content.skills.SkillHandler; import com.rs2.game.content.skills.SkillHandler;
import com.rs2.game.players.Player; import com.rs2.game.players.Player;
import java.util.HashMap;
import java.util.Map;
public class Potatoes extends SkillHandler { public class Potatoes extends SkillHandler {
Player c; Player c;
public Potatoes(Player player) { public Potatoes(Player player) {
this.c = player; this.c = player;
} }
public enum PotatoMaking { public enum PotatoMaking {
// first item, new item, xp, level required // first item, new item, xp, level required
// BUTTERED(6701, 6703, 6697, 95, 39), // BUTTERED(6701, 6703, 6697, 95, 39),
CHILLI(7062, 7054, 165, 41), CHEESE(1985, 6705, 199, 47), EGG(7064, CHILLI(StaticItemList.CHILLI_CON_CARNE, StaticItemList.CHILLI_POTATO, 165, 41),
7056, 195, 51), MUSHROOM(7066, 7058, 27, 64), TUNA(7068, 7060, CHEESE(StaticItemList.CHEESE, StaticItemList.POTATO_WITH_CHEESE, 199, 47),
309, 68); EGG(StaticItemList.EGG_AND_TOMATO, StaticItemList.EGG_POTATO, 195, 51),
MUSHROOM(StaticItemList.MUSHROOM__ONION, StaticItemList.MUSHROOM_POTATO, 27, 64),
TUNA(StaticItemList.TUNA_AND_CORN, StaticItemList.TUNA_POTATO, 309, 68);
/** /**
* Seperate integers for the id's. * Seperate integers for the id's.
*/ */
private int newPotatoID, ingredient, XP, levelReq; private int newPotatoID, ingredient, XP, levelReq;
/** /**
* @param ingredient * @param ingredient
* @param newPotatoID * @param newPotatoID
* @param XP * @param XP
* @param levelReq * @param levelReq
*/ */
private PotatoMaking(int ingredient, int newPotatoID, int XP, private PotatoMaking(int ingredient, int newPotatoID, int XP,
int levelReq) { int levelReq) {
// this.potatoID = potatoID; // this.potatoID = potatoID;
this.ingredient = ingredient; this.ingredient = ingredient;
this.newPotatoID = newPotatoID; this.newPotatoID = newPotatoID;
this.levelReq = levelReq; this.levelReq = levelReq;
this.XP = XP; this.XP = XP;
} }
public int getNewPotatoID() { public int getNewPotatoID() {
return newPotatoID; return newPotatoID;
} }
public int getIngredient() { public int getIngredient() {
return ingredient; return ingredient;
} }
public int getReq() { public int getReq() {
return levelReq; return levelReq;
} }
public int getXP() { public int getXP() {
return XP; return XP;
} }
private static final Map<Integer, PotatoMaking> potato = new HashMap<Integer, PotatoMaking>(); private static final Map<Integer, PotatoMaking> potato = new HashMap<Integer, PotatoMaking>();
public static PotatoMaking forId(int id) { public static PotatoMaking forId(int id) {
return potato.get(id); return potato.get(id);
} }
static { static {
for (PotatoMaking p : PotatoMaking.values()) { for (PotatoMaking p : PotatoMaking.values()) {
potato.put(p.getIngredient(), p); potato.put(p.getIngredient(), p);
} }
} }
} }
/** /**
* Id used with one or the other * Id used with one or the other
* *
* @param id1 * @param id1
* @param id2 * @param id2
*/ */
public void handlePotato(int id1, int id2) { public void handlePotato(int id1, int id2) {
makePotato(id1 == 6703 ? id2 : id1); makePotato(id1 == StaticItemList.POTATO_WITH_BUTTER ? id2 : id1);
} }
/** /**
* Creating the actual item and replacing the id's * Creating the actual item and replacing the id's
* *
* @param id * @param id
* @return * @return
*/ */
public boolean makePotato(int id) { public boolean makePotato(int id) {
PotatoMaking potato = PotatoMaking.forId(id); PotatoMaking potato = PotatoMaking.forId(id);
if (potato == null) { if (potato == null) {
return false; return false;
} }
if (!COOKING) { if (!COOKING) {
c.getPacketSender().sendMessage("This skill is currently disabled."); c.getPacketSender().sendMessage("This skill is currently disabled.");
return false; return false;
} }
if (c.getItemAssistant().playerHasItem(potato.getIngredient(), 1)) { if (c.getItemAssistant().playerHasItem(potato.getIngredient(), 1)) {
if (c.playerLevel[GameConstants.COOKING] >= potato.getReq()) { if (c.playerLevel[GameConstants.COOKING] >= potato.getReq()) {
c.getItemAssistant().deleteItem(potato.getIngredient(), 1); c.getItemAssistant().deleteItem(potato.getIngredient(), 1);
c.getItemAssistant().deleteItem(6703, 1); c.getItemAssistant().deleteItem(StaticItemList.POTATO_WITH_BUTTER, 1);
c.getPacketSender().sendMessage("You put the topping on."); c.getPacketSender().sendMessage("You put the topping on.");
c.getItemAssistant().addItem(potato.getNewPotatoID(), 1); c.getItemAssistant().addItem(potato.getNewPotatoID(), 1);
c.getPlayerAssistant().addSkillXP(potato.getXP(), GameConstants.COOKING); c.getPlayerAssistant().addSkillXP(potato.getXP(), GameConstants.COOKING);
RandomEventHandler.addRandom(c); RandomEventHandler.addRandom(c);
} else { } else {
c.getPacketSender().sendMessage("You need a cooking level of " + potato.getReq() + " to make this potato."); c.getPacketSender().sendMessage("You need a cooking level of " + potato.getReq() + " to make this potato.");
} }
} }
return false; return false;
} }
} }
File diff suppressed because it is too large Load Diff
@@ -1,7 +1,11 @@
package com.rs2.game.content.skills.core; package com.rs2.game.content.skills.core;
import com.rs2.GameConstants; import com.rs2.GameConstants;
import com.rs2.event.*; import com.rs2.event.CycleEvent;
import com.rs2.event.CycleEventContainer;
import com.rs2.event.CycleEventHandler;
import com.rs2.game.content.StaticItemList;
import com.rs2.game.content.StaticObjectList;
import com.rs2.game.items.ItemAssistant; import com.rs2.game.items.ItemAssistant;
import com.rs2.game.objects.Object; import com.rs2.game.objects.Object;
import com.rs2.game.players.Player; import com.rs2.game.players.Player;
@@ -11,403 +15,407 @@ import com.rs2.world.clip.Region;
public class Mining { public class Mining {
/** /**
* Andrew (Mr Extremez) * Andrew (Mr Extremez)
*/ */
private static final int[] RANDOM_GEMS = {1617, 1619, 1621, 1623}; private static final int[] RANDOM_GEMS = {StaticItemList.UNCUT_DIAMOND, StaticItemList.UNCUT_RUBY, StaticItemList.UNCUT_EMERALD, StaticItemList.UNCUT_SAPPHIRE};
private static final int[] GLORIES = {1706, 1708, 1710, 1712}; private static final int[] GLORIES = {StaticItemList.AMULET_OF_GLORY1, StaticItemList.AMULET_OF_GLORY2, StaticItemList.AMULET_OF_GLORY3, StaticItemList.AMULET_OF_GLORY4};
public boolean giveGem(Player player) { public boolean giveGem(Player player) {
int chance = 256; int chance = 256;
for (int i = 0; i < GLORIES.length; i++) { for (int i = 0; i < GLORIES.length; i++) {
if (player.playerEquipment[player.playerAmulet] == GLORIES[i]) { if (player.playerEquipment[player.playerAmulet] == GLORIES[i]) {
chance = 86; chance = 86;
} }
} }
return Misc.random(chance) == 1; return Misc.random(chance) == 1;
} }
public void obtainGem(Player player) { public void obtainGem(Player player) {
int reward = RANDOM_GEMS[(int)(RANDOM_GEMS.length * Math.random())]; int reward = RANDOM_GEMS[(int) (RANDOM_GEMS.length * Math.random())];
player.getItemAssistant().addItem(reward, 1); player.getItemAssistant().addItem(reward, 1);
player.getPacketSender().sendMessage("You found an " + ItemAssistant.getItemName(reward) + "."); player.getPacketSender().sendMessage("You found an " + ItemAssistant.getItemName(reward) + ".");
} }
public final int[][] Pick_Settings = { public final int[][] Pick_Settings = {
{1265, 1, 1, 625}, //Bronze {StaticItemList.BRONZE_PICKAXE, 1, 1, 625}, //Bronze
{1267, 1, 2, 626}, //Iron {StaticItemList.IRON_PICKAXE, 1, 2, 626}, //Iron
{1269, 6, 3, 627}, //Steel {StaticItemList.STEEL_PICKAXE, 6, 3, 627}, //Steel
{1273, 21, 4, 629}, //Mithril {StaticItemList.MITHRIL_PICKAXE, 21, 4, 629}, //Mithril
{1271, 31, 5, 628}, //Addy {StaticItemList.ADAMANT_PICKAXE, 31, 5, 628}, //Addy
{1275, 41, 6, 624}, //Rune {StaticItemList.RUNE_PICKAXE, 41, 6, 624}, //Rune
}; };
public static enum gems { public static enum gems {
OPAL(1625, 60), OPAL(StaticItemList.UNCUT_OPAL, 60),
JADE(1627, 30), JADE(StaticItemList.UNCUT_JADE, 30),
RED_TOPAZ(1629, 15), RED_TOPAZ(StaticItemList.UNCUT_RED_TOPAZ, 15),
SAPHIRE(1623, 9), SAPHIRE(StaticItemList.UNCUT_SAPPHIRE, 9),
EMERALD(1621, 5), EMERALD(StaticItemList.UNCUT_EMERALD, 5),
RUBY(1619, 5), RUBY(StaticItemList.UNCUT_RUBY, 5),
DIAMOND(1617, 4); DIAMOND(StaticItemList.UNCUT_DIAMOND, 4);
public final int itemID; public final int itemID;
public final int chance; public final int chance;
gems(int itemID, int chance){ gems(int itemID, int chance) {
this.itemID = itemID; this.itemID = itemID;
this.chance = chance; this.chance = chance;
} }
public static int getRandom(){ public static int getRandom() {
final int maxChance = 128; final int maxChance = 128;
int random = (int) Math.floor(Math.random() * maxChance); int random = (int) Math.floor(Math.random() * maxChance);
int index = 0; int index = 0;
for (gems gem: gems.values()){ for (gems gem : gems.values()) {
index += gem.chance; index += gem.chance;
if (index >= random) if (index >= random)
return gem.itemID; return gem.itemID;
} }
return gems.OPAL.itemID; return gems.OPAL.itemID;
} }
} }
public static enum rockData { //Rock ID's, Level Req, XP, mineTimer, respawnTimer, Ore ID's
ESSENCE(new int[] { 2491 }, 1, 5, 2, 0, new int[] { 1436, 7936 }), public static enum rockData {
CLAY(new int[] { 2108, 2109, 11189, 11190, 11191, 9713, 9711, 14905, 14904 }, 1, 5, 1, 2, new int[] { 434 }), ESSENCE(new int[]{StaticObjectList.RUNE_ESSENCE}, 1, 5, 2, 0, new int[]{StaticItemList.RUNE_ESSENCE, StaticItemList.PURE_ESSENCE}),
COPPER(new int[] { 3042, 2091, 2090, 9708, 9709, 9710, 11960, 14906, 14907 }, 1, 18, 1, 4, new int[] { 436 }), CLAY(new int[]{StaticObjectList.ROCKS_2108, StaticObjectList.ROCKS_2109, StaticObjectList.ROCKS_11189, StaticObjectList.ROCKS_11190, StaticObjectList.ROCKS_11191, StaticObjectList.ROCKS_9713, StaticObjectList.ROCKS_9711, StaticObjectList.ROCKS_14905, StaticObjectList.ROCKS_14904}, 1, 5, 1, 2, new int[]{StaticItemList.CLAY}),
TIN(new int[] { 2094, 2095, 3043, 9716, 9714, 11958, 11957, 11959, 11933, 11934, 11935, 14903, 14902 }, 1, 18, 1, 4, new int[] { 438 }), COPPER(new int[]{StaticObjectList.ROCKS_3042, StaticObjectList.ROCKS_2091, StaticObjectList.ROCKS_2090, StaticObjectList.ROCKS_9708, StaticObjectList.ROCKS_9709, StaticObjectList.ROCKS_9710, StaticObjectList.ROCKS_11960, StaticObjectList.ROCKS_14906, StaticObjectList.ROCKS_14907}, 1, 18, 1, 4, new int[]{StaticItemList.COPPER_ORE}),
BLURITE(new int[] { 10574, 10583, 10584, 2110 }, 10, 20, 1, 42, new int[] { 668 }), TIN(new int[]{StaticObjectList.ROCKS_2094, StaticObjectList.ROCKS_2095, StaticObjectList.ROCKS_3043, StaticObjectList.ROCKS_9716, StaticObjectList.ROCKS_9714, StaticObjectList.ROCKS_11958, StaticObjectList.ROCKS_11957, StaticObjectList.ROCKS_11959, StaticObjectList.ROCKS_11933, StaticObjectList.ROCKS_11934, StaticObjectList.ROCKS_11935, StaticObjectList.ROCKS_14903, StaticObjectList.ROCKS_14902}, 1, 18, 1, 4, new int[]{StaticItemList.TIN_ORE}),
IRON(new int[] { 450, 2093, 2092, 9717, 9718, 9719, 11962, 11956, 11954, 14856, 14857, 14858, 14914, 14913 }, 15, 35, 2, 9, new int[] { 440 }), BLURITE(new int[]{StaticObjectList.ROCKS_10583, StaticObjectList.ROCKS_10584, StaticObjectList.ROCKS_2110}, 10, 20, 1, 42, new int[]{StaticItemList.BLURITE_ORE}),
SILVER(new int[] { 2101, 11186, 11187, 11188, 2100 }, 20, 40, 3, 100, new int[] { 442 }), IRON(new int[]{StaticObjectList.ROCKS, StaticObjectList.ROCKS_2093, StaticObjectList.ROCKS_2092, StaticObjectList.ROCKS_9717, StaticObjectList.ROCKS_9718, StaticObjectList.ROCKS_9719, StaticObjectList.ROCKS_11962, StaticObjectList.ROCKS_11956, StaticObjectList.ROCKS_11954, StaticObjectList.ROCKS_14856, StaticObjectList.ROCKS_14857, StaticObjectList.ROCKS_14858, StaticObjectList.ROCKS_14914, StaticObjectList.ROCKS_14913}, 15, 35, 2, 9, new int[]{StaticItemList.IRON_ORE}),
COAL(new int[] { 2096, 2097, 11963, 11964, 14850, 14851, 14852, 11930, 11931, 11932 }, 30, 50, 4, 50, new int[] { 453 }), SILVER(new int[]{StaticObjectList.ROCKS_2101, StaticObjectList.ROCKS_11186, StaticObjectList.ROCKS_11187, StaticObjectList.ROCKS_11188, StaticObjectList.ROCKS_2100}, 20, 40, 3, 100, new int[]{StaticItemList.SILVER_ORE}),
GOLD(new int[] { 2099, 2098, 11183, 11184, 11185, 9720, 9722 }, 40, 65, 6, 100, new int[] { 444 }), COAL(new int[]{StaticObjectList.ROCKS_2096, StaticObjectList.ROCKS_2097, StaticObjectList.ROCKS_11963, StaticObjectList.ROCKS_11964, StaticObjectList.ROCKS_14850, StaticObjectList.ROCKS_14851, StaticObjectList.ROCKS_14852, StaticObjectList.ROCKS_11930, StaticObjectList.ROCKS_11931, StaticObjectList.ROCKS_11932}, 30, 50, 4, 50, new int[]{StaticItemList.COAL}),
MITHRIL(new int[] { 2103, 2102, 14853, 14854, 14855 }, 55, 80, 8, 200, new int[] { 447 }), GOLD(new int[]{StaticObjectList.ROCKS_2099, StaticObjectList.ROCKS_2098, StaticObjectList.ROCKS_11183, StaticObjectList.ROCKS_11184, StaticObjectList.ROCKS_11185, StaticObjectList.ROCKS_9720, StaticObjectList.ROCKS_9722}, 40, 65, 6, 100, new int[]{StaticItemList.GOLD_ORE}),
ADAMANT(new int[] { 2104, 2105, 14862, 14863, 14864 }, 70, 95, 10, 400, new int[] { 449 }), MITHRIL(new int[]{StaticObjectList.ROCKS_2103, StaticObjectList.ROCKS_2102, StaticObjectList.ROCKS_14853, StaticObjectList.ROCKS_14854, StaticObjectList.ROCKS_14855}, 55, 80, 8, 200, new int[]{StaticItemList.MITHRIL_ORE}),
RUNE(new int[] { 14859, 14860, 2106, 2107 }, 85, 125, 20, 1200, new int[] { 451 }), ADAMANT(new int[]{StaticObjectList.ROCKS_2104, StaticObjectList.ROCKS_2105, StaticObjectList.ROCKS_14862, StaticObjectList.ROCKS_14863, StaticObjectList.ROCKS_14864}, 70, 95, 10, 400, new int[]{StaticItemList.ADAMANTITE_ORE}),
GRANITE(new int[] { 10947 }, 45, 75, 10, 8, new int[] { 6979, 6981, 6983 }), RUNE(new int[]{StaticObjectList.ROCKS_14859, StaticObjectList.ROCKS_14860, StaticObjectList.ROCKS_2106, StaticObjectList.ROCKS_2107}, 85, 125, 20, 1200, new int[]{StaticItemList.RUNITE_ORE}),
SANDSTONE(new int[] { 10946 }, 35, 60, 5, 8, new int[] { 6971, 6973, 6975, 6977 }), GRANITE(new int[]{StaticObjectList.ROCKS_10947}, 45, 75, 10, 8, new int[]{StaticItemList.GRANITE_500G, StaticItemList.GRANITE_2KG, StaticItemList.GRANITE_5KG}),
GEM(new int[] {2111}, 40, 65, 6, 175, new int[] {}); SANDSTONE(new int[]{StaticObjectList.ROCKS_10946}, 35, 60, 5, 8, new int[]{StaticItemList.SANDSTONE_1KG, StaticItemList.SANDSTONE_2KG, StaticItemList.SANDSTONE_5KG, StaticItemList.SANDSTONE_10KG}),
GEM(new int[]{StaticObjectList.ROCKS_2111}, 40, 65, 6, 175, new int[]{});
private final int levelReq, mineTimer, respawnTimer, xp; private final int levelReq, mineTimer, respawnTimer, xp;
private final int[] oreIds; private final int[] oreIds;
private final int[] objectId; private final int[] objectId;
private rockData(final int[] objectId, final int levelReq, final int xp, final int mineTimer, final int respawnTimer, final int... oreIds) { private rockData(final int[] objectId, final int levelReq, final int xp, final int mineTimer, final int respawnTimer, final int... oreIds) {
this.objectId = objectId; this.objectId = objectId;
this.levelReq = levelReq; this.levelReq = levelReq;
this.xp = xp; this.xp = xp;
this.mineTimer = mineTimer; this.mineTimer = mineTimer;
this.respawnTimer = respawnTimer; this.respawnTimer = respawnTimer;
this.oreIds = oreIds; this.oreIds = oreIds;
} }
public int getObject(final int object) { public int getObject(final int object) {
for (int element : objectId) { for (int element : objectId) {
if (object == element) { if (object == element) {
return element; return element;
} }
} }
return -1; return -1;
} }
public static rockData getRock(final int object) { public static rockData getRock(final int object) {
for (final rockData rock : rockData.values()) { for (final rockData rock : rockData.values()) {
if (object == rock.getObject(object)) { if (object == rock.getObject(object)) {
return rock; return rock;
} }
} }
return null; return null;
} }
public int getRequiredLevel() { public int getRequiredLevel() {
return levelReq; return levelReq;
} }
public int getXp() { public int getXp() {
return xp; return xp;
} }
public int getTimer() { public int getTimer() {
return mineTimer; return mineTimer;
} }
public int getRespawnTimer() { public int getRespawnTimer() {
return respawnTimer; return respawnTimer;
} }
public int[] getOreIds() { public int[] getOreIds() {
return oreIds; return oreIds;
} }
public int getOre(int playerLevel){ public int getOre(int playerLevel) {
if (this == rockData.ESSENCE) if (this == rockData.ESSENCE)
return playerLevel < 30 ? oreIds[0] : oreIds[1]; return playerLevel < 30 ? oreIds[0] : oreIds[1];
if (this == rockData.GEM) if (this == rockData.GEM)
return gems.getRandom(); return gems.getRandom();
// return a random ore from the possibilities // return a random ore from the possibilities
return oreIds[(int) Math.floor(Math.random() * oreIds.length)]; return oreIds[(int) Math.floor(Math.random() * oreIds.length)];
} }
} }
public void repeatAnimation(final Player c) { public void repeatAnimation(final Player c) {
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() { CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
if (c.isMining) { if (c.isMining) {
c.startAnimation(Pick_Settings[c.miningAxe][3]); c.startAnimation(Pick_Settings[c.miningAxe][3]);
c.getPacketSender().sendSound(432, 100, 0); c.getPacketSender().sendSound(432, 100, 0);
} else { } else {
container.stop(); container.stop();
} }
} }
@Override @Override
public void stop() { public void stop() {
c.startAnimation(65535); c.startAnimation(65535);
c.isMining = false; c.isMining = false;
} }
}, 3); }, 3);
} }
public void startMining(final Player player, final int objectID, final int objectX, final int objectY, final int type) { public void startMining(final Player player, final int objectID, final int objectX, final int objectY, final int type) {
CycleEventHandler.getSingleton().stopEvents(player, "miningEvent".hashCode()); CycleEventHandler.getSingleton().stopEvents(player, "miningEvent".hashCode());
if (player.isMining || player.miningRock) if (player.isMining || player.miningRock)
return; return;
int miningLevel = player.playerLevel[GameConstants.MINING]; int miningLevel = player.playerLevel[GameConstants.MINING];
rockData rock = rockData.getRock(objectID); rockData rock = rockData.getRock(objectID);
player.miningAxe = -1; player.miningAxe = -1;
player.turnPlayerTo(objectX, objectY); player.turnPlayerTo(objectX, objectY);
// check if the player has required level for this rock // check if the player has required level for this rock
if (rock.getRequiredLevel() > miningLevel) { if (rock.getRequiredLevel() > miningLevel) {
player.getPacketSender().sendMessage("You need a Mining level of " + rock.getRequiredLevel() + " to mine this rock."); player.getPacketSender().sendMessage("You need a Mining level of " + rock.getRequiredLevel() + " to mine this rock.");
return; return;
} }
// check id the player has a pickaxe they can use on them // check id the player has a pickaxe they can use on them
for (int i = 0; i < Pick_Settings.length; i++) { for (int i = 0; i < Pick_Settings.length; i++) {
if (player.getItemAssistant().playerHasItem(Pick_Settings[i][0]) || player.playerEquipment[player.playerWeapon] == Pick_Settings[i][0]) { if (player.getItemAssistant().playerHasItem(Pick_Settings[i][0]) || player.playerEquipment[player.playerWeapon] == Pick_Settings[i][0]) {
if (Pick_Settings[i][1] <= miningLevel) { if (Pick_Settings[i][1] <= miningLevel) {
player.miningAxe = i; player.miningAxe = i;
} }
} }
} }
if (player.miningAxe == -1) { if (player.miningAxe == -1) {
player.getPacketSender().sendMessage("You need a pickaxe to mine this rock."); player.getPacketSender().sendMessage("You need a pickaxe to mine this rock.");
return; return;
} }
if (player.getItemAssistant().freeSlots() < 1) { if (player.getItemAssistant().freeSlots() < 1) {
player.getPacketSender().sendMessage("You do not have enough inventory slots to do that."); player.getPacketSender().sendMessage("You do not have enough inventory slots to do that.");
return; return;
} }
player.startAnimation(Pick_Settings[player.miningAxe][3]); player.startAnimation(Pick_Settings[player.miningAxe][3]);
player.getPacketSender().sendSound(432, 100, 0); player.getPacketSender().sendSound(432, 100, 0);
player.isMining = true; player.isMining = true;
repeatAnimation(player); repeatAnimation(player);
player.rockX = objectX; player.rockX = objectX;
player.rockY = objectY; player.rockY = objectY;
player.miningRock = true; player.miningRock = true;
// Tutorial only stuff // Tutorial only stuff
if (player.tutorialProgress == 17 || player.tutorialProgress == 18) { if (player.tutorialProgress == 17 || player.tutorialProgress == 18) {
player.getPacketSender().chatbox(6180); player.getPacketSender().chatbox(6180);
player.getDialogueHandler().chatboxText("", "Your character is now attempting to mine the rock.", "This should only take a few seconds.", "", "Please wait"); player.getDialogueHandler().chatboxText("", "Your character is now attempting to mine the rock.", "This should only take a few seconds.", "", "Please wait");
player.getPacketSender().chatbox(6179); player.getPacketSender().chatbox(6179);
} else { } else {
player.getPacketSender().sendMessage("You swing your pick at the rock."); player.getPacketSender().sendMessage("You swing your pick at the rock.");
} }
CycleEventHandler.getSingleton().addEvent("miningEvent".hashCode(), player, new CycleEvent() { CycleEventHandler.getSingleton().addEvent("miningEvent".hashCode(), player, new CycleEvent() {
@Override @Override
public void execute(CycleEventContainer container) { public void execute(CycleEventContainer container) {
int oreID = rock.getOre(miningLevel); int oreID = rock.getOre(miningLevel);
if (!player.isMining) { if (!player.isMining) {
container.stop(); container.stop();
player.startAnimation(65535); player.startAnimation(65535);
return; return;
} }
if (player.isMining) { if (player.isMining) {
if (!giveGem(player)) { if (!giveGem(player)) {
player.getItemAssistant().addItem(oreID, 1); player.getItemAssistant().addItem(oreID, 1);
player.getPlayerAssistant().addSkillXP(rock.getXp(), GameConstants.MINING); player.getPlayerAssistant().addSkillXP(rock.getXp(), GameConstants.MINING);
player.getPacketSender().sendMessage("You manage to mine some " + ItemAssistant.getItemName(oreID).toLowerCase() + "."); player.getPacketSender().sendMessage("You manage to mine some " + ItemAssistant.getItemName(oreID).toLowerCase() + ".");
} else { } else {
obtainGem(player); obtainGem(player);
} }
} }
if (player.tutorialProgress == 17) { if (player.tutorialProgress == 17) {
if (rock != rockData.TIN) { if (rock != rockData.TIN) {
player.getDialogueHandler().sendStatement("You should mine tin first."); player.getDialogueHandler().sendStatement("You should mine tin first.");
resetMining(player); resetMining(player);
return; return;
} }
if (player.getItemAssistant().playerHasItem(438)) { if (player.getItemAssistant().playerHasItem(StaticItemList.TIN_ORE)) {
player.getPacketSender().createArrow(3086, 9501, player.getH(), 2); player.getPacketSender().createArrow(3086, 9501, player.getH(), 2);
player.getDialogueHandler().chatboxText("Now you have some tin ore you must need some copper ore, then", "you'll have all you need to create a bronze bar. As you did before", "riger click on the copper rock and select 'mine'.", "", "Mining"); player.getDialogueHandler().chatboxText("Now you have some tin ore you must need some copper ore, then", "you'll have all you need to create a bronze bar. As you did before", "right click on the copper rock and select 'mine'.", "", "Mining");
player.tutorialProgress = 18; player.tutorialProgress = 18;
} }
} else if (player.tutorialProgress == 18) { } else if (player.tutorialProgress == 18) {
if (rock != rockData.COPPER) { if (rock != rockData.COPPER) {
player.getDialogueHandler().sendStatement("You have already mined this type of ore, now try the other."); player.getDialogueHandler().sendStatement("You have already mined this type of ore, now try the other.");
resetMining(player); resetMining(player);
return; return;
} }
if (player.getItemAssistant().playerHasItem(436)) { if (player.getItemAssistant().playerHasItem(StaticItemList.COPPER_ORE)) {
player.getPacketSender().createArrow(3078, 9495, 0, 2); player.getPacketSender().createArrow(3078, 9495, 0, 2);
player.getDialogueHandler().sendDialogues(3061, -1); player.getDialogueHandler().sendDialogues(3061, -1);
} }
} }
if (player.getItemAssistant().freeSlots() < 1) { if (player.getItemAssistant().freeSlots() < 1) {
player.getPacketSender().sendMessage("You have ran out of inventory slots."); player.getPacketSender().sendMessage("You have ran out of inventory slots.");
container.stop(); container.stop();
} }
mineRock(rock.getRespawnTimer(), objectX, objectY, type, objectID); mineRock(rock.getRespawnTimer(), objectX, objectY, type, objectID);
container.stop(); container.stop();
if (rock == rockData.ESSENCE) { if (rock == rockData.ESSENCE) {
startMining(player, objectID, objectX, objectY, type); startMining(player, objectID, objectX, objectY, type);
} }
} }
@Override
public void stop() {
player.getPacketSender().closeAllWindows();
player.startAnimation(65535);
player.isMining = false;
player.rockX = 0;
player.rockY = 0;
player.miningRock = false;
return;
}
}, getTimer(rock, player.miningAxe, miningLevel));
}
public static void resetMining(Player player) { @Override
player.getPacketSender().closeAllWindows(); public void stop() {
player.startAnimation(65535); player.getPacketSender().closeAllWindows();
player.isMining = false; player.startAnimation(65535);
player.rockX = 0; player.isMining = false;
player.rockY = 0; player.rockX = 0;
player.miningRock = false; player.rockY = 0;
} player.miningRock = false;
return;
}
}, getTimer(rock, player.miningAxe, miningLevel));
}
public int getTimer(rockData rock, int pick, int level) { public static void resetMining(Player player) {
double timer = (int)((rock.getRequiredLevel() * 2) + 20 + Misc.random(20))-((Pick_Settings[pick][2] * (Pick_Settings[pick][2] * 0.75)) + level); player.getPacketSender().closeAllWindows();
if (timer < 2.0) { player.startAnimation(65535);
return 2; player.isMining = false;
} else { player.rockX = 0;
return (int)timer; player.rockY = 0;
} player.miningRock = false;
} }
public void mineRock(int respawnTime, int x, int y, int type, int i) { public int getTimer(rockData rock, int pick, int level) {
if (i != 2491) { double timer = (int) ((rock.getRequiredLevel() * 2) + 20 + Misc.random(20)) - ((Pick_Settings[pick][2] * (Pick_Settings[pick][2] * 0.75)) + level);
new Object(452, x, y, 0, type, 10, i, respawnTime); if (timer < 2.0) {
Region.addObject(452, x, y, 0, 10, type, false); return 2;
} else {
return (int) timer;
}
}
for (int t = 0; t < PlayerHandler.players.length; t++) { public void mineRock(int respawnTime, int x, int y, int type, int i) {
if (PlayerHandler.players[t] != null) { if (i != StaticObjectList.RUNE_ESSENCE) {
if (PlayerHandler.players[t].rockX == x && PlayerHandler.players[t].rockY == y) { new Object(StaticObjectList.ROCKS_452, x, y, 0, type, 10, i, respawnTime);
PlayerHandler.players[t].isMining = false; Region.addObject(StaticObjectList.ROCKS_452, x, y, 0, 10, type, false);
PlayerHandler.players[t].startAnimation(65535);
PlayerHandler.players[t].rockX = 0;
PlayerHandler.players[t].rockY = 0;
}
}
}
}
}
public static void prospectRock(final Player player, final String itemName) { for (int t = 0; t < PlayerHandler.players.length; t++) {
if (player.tutorialProgress == 15 || player.tutorialProgress == 16) { if (PlayerHandler.players[t] != null) {
player.getPacketSender().closeAllWindows(); if (PlayerHandler.players[t].rockX == x && PlayerHandler.players[t].rockY == y) {
player.getPacketSender().chatbox(6180); PlayerHandler.players[t].isMining = false;
player.getDialogueHandler() PlayerHandler.players[t].startAnimation(65535);
.chatboxText( PlayerHandler.players[t].rockX = 0;
"Please wait.", PlayerHandler.players[t].rockY = 0;
"Your character is now attempting to prospect the rock. This should", }
"only take a few seconds.", "", ""); }
player.getPacketSender().chatbox(6179); }
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() { }
@Override }
public void execute(CycleEventContainer container) {
if (player.tutorialProgress == 15) {
player.getPacketSender().sendMessage("This rock contains " + itemName.toLowerCase() + ".");
player.getPacketSender().chatbox(6180);
player.getDialogueHandler()
.chatboxText(
"",
"So now you know there's tin in the grey rocks. Try prospecting",
"the brown ones next.", "",
"It's tin");
player.getPacketSender().createArrow(3086, 9501,
player.getH(), 2);
player.getPacketSender().chatbox(6179);
player.tutorialProgress = 16;
container.stop();
return;
} else if (player.tutorialProgress == 16) {
player.getPacketSender().sendMessage("This rock contains " + itemName.toLowerCase() + ".");
player.getPacketSender().chatbox(6180);
player.getDialogueHandler()
.chatboxText(
"Talk to the Mining Instructor to find out about these types of",
"ore and how you can mine them. He'll even give you the",
"required tools.", "",
"It's copper");
player.getPacketSender().createArrow(1, 5);
player.getPacketSender().chatbox(6179);
container.stop();
return;
}
player.getPacketSender().sendMessage("This rock contains " + itemName.toLowerCase() + ".");
container.stop();
}
@Override public static void prospectRock(final Player player, final String itemName) {
public void stop() { if (player.tutorialProgress == 15 || player.tutorialProgress == 16) {
player.getPacketSender().closeAllWindows();
player.getPacketSender().chatbox(6180);
player.getDialogueHandler()
.chatboxText(
"Please wait.",
"Your character is now attempting to prospect the rock. This should",
"only take a few seconds.", "", "");
player.getPacketSender().chatbox(6179);
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (player.tutorialProgress == 15) {
player.getPacketSender().sendMessage("This rock contains " + itemName.toLowerCase() + ".");
player.getPacketSender().chatbox(6180);
player.getDialogueHandler()
.chatboxText(
"",
"So now you know there's tin in the grey rocks. Try prospecting",
"the brown ones next.", "",
"It's tin");
player.getPacketSender().createArrow(3086, 9501,
player.getH(), 2);
player.getPacketSender().chatbox(6179);
player.tutorialProgress = 16;
container.stop();
return;
} else if (player.tutorialProgress == 16) {
player.getPacketSender().sendMessage("This rock contains " + itemName.toLowerCase() + ".");
player.getPacketSender().chatbox(6180);
player.getDialogueHandler()
.chatboxText(
"Talk to the Mining Instructor to find out about these types of",
"ore and how you can mine them. He'll even give you the",
"required tools.", "",
"It's copper");
player.getPacketSender().createArrow(1, 5);
player.getPacketSender().chatbox(6179);
container.stop();
return;
}
player.getPacketSender().sendMessage("This rock contains " + itemName.toLowerCase() + ".");
container.stop();
}
} @Override
public void stop() {
}, 3); }
return;
}
player.getPacketSender().sendMessage("You examine the rock for ores...");
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
player.getPacketSender().sendMessage("This rock contains " + itemName + ".");
container.stop();
}
@Override
public void stop() {
} }, 3);
}, 3); return;
} }
player.getPacketSender().sendMessage("You examine the rock for ores...");
CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
player.getPacketSender().sendMessage("This rock contains " + itemName + ".");
container.stop();
}
public static void prospectNothing(final Player c) { @Override
c.getPacketSender().sendMessage("You examine the rock for ores..."); public void stop() {
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
c.getPacketSender().sendMessage("There is no ore left in this rock.");
container.stop();
}
@Override
public void stop() {
} }
}, 2); }, 3);
} }
public static boolean rockExists(int rockID) { public static void prospectNothing(final Player c) {
for (final rockData rock : rockData.values()) { c.getPacketSender().sendMessage("You examine the rock for ores...");
if (rockID == rock.getObject(rockID)) { CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
return true; @Override
} public void execute(CycleEventContainer container) {
} c.getPacketSender().sendMessage("There is no ore left in this rock.");
return false; container.stop();
} }
@Override
public void stop() {
}
}, 2);
}
public static boolean rockExists(int rockID) {
for (final rockData rock : rockData.values()) {
if (rockID == rock.getObject(rockID)) {
return true;
}
}
return false;
}
} }
@@ -1,77 +1,80 @@
package com.rs2.game.items.impl; package com.rs2.game.items.impl;
import com.rs2.game.items.ItemData;
import com.rs2.GameConstants; import com.rs2.GameConstants;
import com.rs2.game.items.ItemAssistant; import com.rs2.game.items.ItemAssistant;
import com.rs2.game.items.ItemData;
import com.rs2.game.players.Player; import com.rs2.game.players.Player;
import static com.rs2.game.content.StaticItemList.*;
/** /**
* Dye.java * Dye.java
*
* @author Andrew (Mr Extremez) * @author Andrew (Mr Extremez)
*/ */
public enum Dye { public enum Dye {
RED_CAPE(1763, 1007), RED_CAPE(RED_DYE, CAPE),
BLUE_CAPE(1767, 1021), BLUE_CAPE(BLUE_DYE, CAPE_1021),
GREEN_CAPE(1771, 1027), GREEN_CAPE(GREEN_DYE, CAPE_1027),
PINK_CAPE(6955, 6959), PINK_CAPE(PINK_DYE, CAPE_6959),
ORANGE_CAPE(1769, 1031), ORANGE_CAPE(ORANGE_DYE, CAPE_1031),
YELLOW_CAPE(1765, 1023), YELLOW_CAPE(YELLOW_DYE, CAPE_1023),
PURPLE_CAPE(1773, 1029); PURPLE_CAPE(PURPLE_DYE, CAPE_1029);
int reward, itemUsed; int reward, itemUsed;
private Dye(int itemUsed, int reward) { private Dye(int itemUsed, int reward) {
this.itemUsed = itemUsed; this.itemUsed = itemUsed;
this.reward = reward; this.reward = reward;
} }
private int getItemUsed() { private int getItemUsed() {
return itemUsed; return itemUsed;
} }
private int getReward() { private int getReward() {
return reward; return reward;
} }
//blue+yellow =green //blue+yellow =green
//red+blue = purple //red+blue = purple
public static final int[][] MAIL_DATA = { public static final int[][] MAIL_DATA = {
{1769, 288, 286}, {ORANGE_DYE, GOBLIN_MAIL, ORANGE_GOBLIN_MAIL},
{1769, 287, 286}, {ORANGE_DYE, BLUE_GOBLIN_MAIL, ORANGE_GOBLIN_MAIL},
{1767, 288, 287}, {BLUE_DYE, GOBLIN_MAIL, BLUE_GOBLIN_MAIL},
{1767, 286, 287}, {BLUE_DYE, ORANGE_GOBLIN_MAIL, BLUE_GOBLIN_MAIL},
{1767, 1765, 1771}, {BLUE_DYE, YELLOW_DYE, GREEN_DYE},
{1763, 1767, 1773} {RED_DYE, BLUE_DYE, PURPLE_DYE}
}; };
public static boolean blockDye(Player player, Dye dye, int itemUsed, int useWith) { public static boolean blockDye(Player player, Dye dye, int itemUsed, int useWith) {
if (itemUsed == dye.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && ItemData.itemIsNote[useWith]) { if (itemUsed == dye.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && ItemData.itemIsNote[useWith]) {
player.getPacketSender().sendMessage("You can't dye a noted cape."); player.getPacketSender().sendMessage("You can't dye a noted cape.");
return true; return true;
} else if (itemUsed == dye.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && useWith == dye.getReward() && !ItemData.itemIsNote[useWith]) { } else if (itemUsed == dye.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && useWith == dye.getReward() && !ItemData.itemIsNote[useWith]) {
player.getPacketSender().sendMessage("That cape is already that color."); player.getPacketSender().sendMessage("That cape is already that color.");
return true; return true;
} else if (itemUsed == dye.getItemUsed() && !ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape")) { } else if (itemUsed == dye.getItemUsed() && !ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape")) {
return true; return true;
} }
return false; return false;
} }
public static void dyeItem(Player player, int itemUsed, int useWith) { public static void dyeItem(Player player, int itemUsed, int useWith) {
for (Dye cape: Dye.values()) { for (Dye cape : Dye.values()) {
if (blockDye(player, cape, itemUsed, useWith)) { if (blockDye(player, cape, itemUsed, useWith)) {
return; return;
} }
if (itemUsed == cape.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && !ItemData.itemIsNote[useWith] && useWith != cape.getReward()) { if (itemUsed == cape.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && !ItemData.itemIsNote[useWith] && useWith != cape.getReward()) {
player.getItemAssistant().deleteItem(itemUsed, 1); player.getItemAssistant().deleteItem(itemUsed, 1);
player.getItemAssistant().deleteItem(useWith, 1); player.getItemAssistant().deleteItem(useWith, 1);
player.getItemAssistant().addItem(cape.getReward(), 1); player.getItemAssistant().addItem(cape.getReward(), 1);
player.getPlayerAssistant().addSkillXP(2.5, GameConstants.CRAFTING); player.getPlayerAssistant().addSkillXP(2.5, GameConstants.CRAFTING);
} }
} }
} }
} }
File diff suppressed because it is too large Load Diff