mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-07 00:32:06 +00:00
Cleanup part 1 (#213)
* Clean up part 1 - Removed lots of dead code - Removed unncessary files not in use - Cleaned up small bits of code - Removed a few warnings - Server.java ---> GameEngine.java - Constants.java ---> GameConstants.java * Cape Dye Rewrote cape dying * Packaging - redone ----> com.rebotted * PacketSender/clean up - ActionSender ---> PacketSender - Moved many more packets to packetsender - Cleaned up more dead code * Merge Client/Player - Merged Client.java with Player.java (both were doing same thing so redundant to have both) - Removed some more dead code - Tidy a few small things up * Quests/more clean up - Removed more dead code - Made quests static in order to clean them up a bit * More cleanup - Removed some more of the dead quest code - Correcting naming of some of the shop variables
This commit is contained in:
committed by
Daniel Ginovker
parent
3d1ae1b288
commit
d876a923b9
@@ -0,0 +1,16 @@
|
||||
package com.rebotted.game.items;
|
||||
|
||||
public class GameItem {
|
||||
|
||||
public int id, amount;
|
||||
public boolean stackable = false;
|
||||
|
||||
public GameItem(int id, int amount) {
|
||||
if (Item.itemStackable[id]) {
|
||||
stackable = true;
|
||||
}
|
||||
this.id = id;
|
||||
this.amount = amount;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.rebotted.game.items;
|
||||
|
||||
public class GroundItem {
|
||||
|
||||
public int itemId, itemX, itemY, itemAmount, itemController, hideTicks, removeTicks;
|
||||
|
||||
public String ownerName;
|
||||
|
||||
public GroundItem(int id, int x, int y, int h, int amount, int controller,
|
||||
int hideTicks, String name) {
|
||||
itemId = id;
|
||||
itemX = x;
|
||||
itemY = y;
|
||||
itemAmount = amount;
|
||||
itemController = controller;
|
||||
this.hideTicks = hideTicks;
|
||||
ownerName = name;
|
||||
}
|
||||
|
||||
public int getItemId() {
|
||||
return itemId;
|
||||
}
|
||||
|
||||
public int getItemX() {
|
||||
return itemX;
|
||||
}
|
||||
|
||||
public int getItemY() {
|
||||
return itemY;
|
||||
}
|
||||
|
||||
public int getItemAmount() {
|
||||
return itemAmount;
|
||||
}
|
||||
|
||||
public int getItemController() {
|
||||
return itemController;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return ownerName;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,374 @@
|
||||
package com.rebotted.game.items;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
import com.rebotted.GameConstants;
|
||||
import com.rebotted.GameEngine;
|
||||
|
||||
public class Item {
|
||||
|
||||
public static int capes[] = { 2731, 2677, 2683, 2680, 2701, 2686, 2689,
|
||||
2692, 2737, 2734, 2716, 2728, 2695, 2713, 2725, 2722, 2707, 2704,
|
||||
2710, 2719, 2737, 2698, 14590, 2701, 8102, 8075, 8044, 8045, 8042,
|
||||
8043, 8037, 8038, 8025, 8026, 8018, 7858, 7994, 7983, 7984, 7985,
|
||||
7986, 7987, 7982, 7978, 3781, 3783, 3785, 3787, 3789, 3777, 3779,
|
||||
3759, 3761, 3763, 3765, 6111, 6570, 6568, 1007, 1019, 1021, 1023,
|
||||
1027, 1029, 1031, 1052, 2412, 2413, 2414, 4304, 4315, 4317, 4319,
|
||||
4321, 4323, 4325, 4327, 4329, 4331, 4333, 4335, 4337, 4339, 4341,
|
||||
4343, 4345, 4347, 4349, 4351, 4353, 4355, 4357, 4359, 4361, 4363,
|
||||
4365, 4367, 4369, 4371, 4373, 4375, 4377, 4379, 4381, 4383, 4385,
|
||||
4387, 4389, 4391, 4393, 4395, 4397, 4399, 4401, 4403, 4405, 4407,
|
||||
4409, 4411, 4413, 4514, 4516, 6070, 6568, 6570, 4304, 3759, 3761,
|
||||
3763, 3765, 3777, 3779, 3781, 3783, 3785, 3787, 3789 };
|
||||
public static int boots[] = { 7596, 8029, 6619, 8017, 7159, 7991, 6666,
|
||||
6061, 6106, 88, 89, 626, 628, 630, 632, 634, 1061, 1837, 1846,
|
||||
2577, 2579, 2894, 2904, 2914, 2924, 2934, 3061, 3105, 3107, 3791,
|
||||
4097, 4107, 4117, 4119, 4121, 4123, 4125, 4127, 4129, 4131, 4310,
|
||||
5064, 5345, 5557, 6069, 6106, 6143, 6145, 6147, 6328, 6920, 6349,
|
||||
6357, 3393 };
|
||||
public static int gloves[] = { 7595, 6629, 8021, 8016, 7964, 2491, 1065,
|
||||
2487, 2489, 3060, 1495, 775, 777, 778, 6708, 1059, 1063, 1065,
|
||||
1580, 2487, 2489, 2491, 2902, 2912, 2922, 2932, 2942, 3060, 3799,
|
||||
4095, 4105, 4115, 4308, 5556, 6068, 6110, 6149, 6151, 6153, 6922,
|
||||
7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 6330, 3391,
|
||||
776 };
|
||||
public static int shields[] = { 7676, 7342, 7348, 7354, 7360, 7334, 7340,
|
||||
7347, 7352, 7358, 7356, 7350, 7344, 8087, 8058, 8059, 8060, 8061,
|
||||
8062, 8063, 6633, 7977, 7976, 7972, 7959, 6591, 7332, 7338, 7336,
|
||||
7360, 1171, 1173, 1175, 1177, 1179, 1181, 1183, 1185, 1187, 1189,
|
||||
1191, 1193, 1195, 1197, 1199, 1201, 1540, 2589, 2597, 2603, 2611,
|
||||
2621, 2629, 2659, 2667, 2675, 2890, 3122, 3488, 3758, 3839, 3840,
|
||||
3841, 3842, 3843, 3844, 4072, 4156, 4224, 4225, 4226, 4227, 4228,
|
||||
4229, 4230, 4231, 4232, 4233, 4234, 4302, 4507, 4512, 6215, 6217,
|
||||
6219, 6221, 6223, 6225, 6227, 6229, 6231, 6233, 6235, 6237, 6239,
|
||||
6241, 6243, 6245, 6247, 6249, 6251, 6253, 6255, 6257, 6259, 6261,
|
||||
6263, 6265, 6267, 6269, 6271, 6273, 6275, 6277, 6279, 6524, 6889,
|
||||
7051, 7053 };
|
||||
public static int hats[] = { 2679, 1025, 2685, 4166, 2682, 2703, 2688,
|
||||
2691, 2691, 2733, 2736, 2718, 2730, 2697, 2715, 2727, 2724, 2709,
|
||||
2706, 2712, 2721, 2739, 2700, 2518, 2524, 2526, 7319, 7321, 7323,
|
||||
7325, 7327, 1167, 8077, 8076, 8074, 4168, 1169, 8034, 8035, 8036,
|
||||
8030, 6623, 8024, 8023, 8022, 8013, 1169, 7594, 7995, 7996, 7997,
|
||||
7998, 7999, 8000, 8001, 7992, 7990, 7975, 7973, 7971, 7967, 7963,
|
||||
6665, 6665, 7321, 6886, 6547, 6548, 2645, 2647, 2649, 4856, 4857,
|
||||
4858, 4859, 4880, 4881, 4882, 4883, 4904, 4905, 4906, 4907, 4928,
|
||||
4929, 4930, 4931, 4952, 4953, 4954, 4955, 4976, 4977, 4978, 4979,
|
||||
4732, 4753, 4611, 6188, 6182, 4511, 4056, 4071, 4724, 2639, 2641,
|
||||
2643, 2665, 6109, 5525, 5527, 5529, 5531, 5533, 5535, 5537, 5539,
|
||||
5541, 5543, 5545, 5547, 5549, 5551, 74, 579, 656, 658, 660, 662,
|
||||
664, 740, 1017, 1037, 1040, 1042, 1044, 1046, 1038, 1048, 1050,
|
||||
1053, 1055, 1057, 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151,
|
||||
1153, 1155, 1157, 1159, 1161, 1163, 1165, 1506, 1949, 2422, 2581,
|
||||
2587, 2595, 2605, 2613, 2619, 2627, 2631, 2633, 2635, 2637, 2651,
|
||||
2657, 2673, 2900, 2910, 2920, 2930, 2940, 2978, 2979, 2980, 2981,
|
||||
2982, 2983, 2984, 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992,
|
||||
2993, 2994, 2995, 3057, 3385, 3486, 3748, 3749, 3751, 3753, 3797,
|
||||
4041, 4042, 4071, 4089, 3755, 4099, 4109, 4164, 4302, 4506, 4511,
|
||||
4513, 4515, 4551, 4567, 4708, 4716, 4724, 4745, 4753, 4857, 4858,
|
||||
4859, 4880, 4881, 4882, 4883, 4904, 4905, 4906, 4907, 4952, 4953,
|
||||
4954, 4955, 4976, 4977, 4978, 4979, 5013, 5014, 5554, 5574, 6109,
|
||||
6128, 6131, 6137, 6182, 6188, 6335, 6337, 6339, 6345, 6355, 6365,
|
||||
6375, 6382, 6392, 6400, 6918, 6656, 2581, 7539, 7394, 7396, 7534,
|
||||
5574, 6885, 6858, 6860, 6862, 6856, 6326, 6128, 6137, 7400, 7323,
|
||||
7325, 7327, 7003, 4168, 7112, 7124, 7130, 7136 };
|
||||
public static int amulets[] = { 1654, 1656, 1658, 1660, 1662, 1664, 8081,
|
||||
8033, 7968, 6585, 86, 87, 295, 421, 552, 589, 1478, 1692, 1694,
|
||||
1696, 1698, 1700, 1702, 1704, 1706, 1708, 1710, 1712, 1725, 1727,
|
||||
1729, 1731, 4021, 4081, 4250, 4677, 6040, 6041, 6208, 1718, 1722,
|
||||
6859, 6863, 6857, 3853, 3855, 3857, 3859, 3861, 3863, 3865, 3867,
|
||||
1718, 4306, 1702 };
|
||||
public static int arrows[] = { 11212, 8052, 9211, 9010, 9209, 9208, 9207,
|
||||
9206, 9205, 9203, 9301, 8065, 7919, 7906, 7988, 7989, 78, 598, 877,
|
||||
878, 879, 880, 881, 882, 883, 884, 885, 886, 887, 888, 889, 890,
|
||||
891, 892, 893, 942, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2539,
|
||||
2540, 2541, 2866, 4160, 4172, 4173, 4174, 4175, 4740, 5616, 5617,
|
||||
5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 6061,
|
||||
6062};
|
||||
public static int rings[] = { 8082, 773, 1635, 1637, 1639, 1641, 1643,
|
||||
1645, 2550, 2552, 2554, 2556, 2558, 2560, 2562, 2564, 2566, 2568,
|
||||
2570, 2572, 4202, 4657, 6465, 6737, 6731, 6735, 6583, 6733 };
|
||||
public static int body[] = { 7608, 2520, 430, 7362, 7364, 636, 638, 640,
|
||||
642, 644, 8064, 426, 430, 1005, 1757, 7592, 8031, 8027, 6617, 8019,
|
||||
8014, 8002, 7376, 544, 7372, 7370, 577, 7974, 7970, 7965, 7961,
|
||||
7960, 3793, 3775, 3773, 3771, 3769, 3767, 6139, 1135, 2499, 2501,
|
||||
1035, 540, 5553, 4757, 1833, 6388, 6384, 4111, 4101, 4091, 6186,
|
||||
6184, 6180, 3058, 4509, 4504, 4069, 4728, 4736, 4712, 6107, 2661,
|
||||
3140, 1101, 1103, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119,
|
||||
1121, 1123, 1125, 1127, 1129, 1131, 1133, 2583, 2591, 2599, 2607,
|
||||
2615, 2623, 2653, 2669, 3481, 4712, 4720, 4728, 4749, 4892, 4893,
|
||||
4894, 4895, 4916, 4917, 4918, 4919, 4964, 4965, 4966, 4967, 6107,
|
||||
6133, 6322, 6322, 6129, 75, 6916, 6916, 4111, 6654, 6654, 75, 7399, 7374, 5575, 2503, 6341, 6351, 3387, 5030, 5032, 5034, 5030,
|
||||
5032, 5034,7390 , 7392, 546, 581 };
|
||||
public static int legs[] = { 7609, 2522, 7378, 7380, 7382, 7368, 7366,
|
||||
7388, 646, 648, 650, 652, 654, 428, 1097, 1095, 7593, 8032, 8028,
|
||||
6625, 8020, 8015, 7384, 7969, 7966, 7962, 6141, 538, 1033, 5555,
|
||||
4759, 6386, 6390, 2497, 2495, 2493, 1099, 4113, 4103, 4093, 6924,
|
||||
6187, 6185, 6181, 3059, 4510, 4505, 4070, 6108, 542, 548, 1011,
|
||||
1013, 1015, 1067, 1069, 1071, 1073, 1075, 1077, 1079, 1081, 1083,
|
||||
1085, 1087, 1089, 1091, 1093, 2585, 2593, 2601, 2609, 2617, 2625,
|
||||
2655, 2663, 2671, 3059, 3389, 3472, 3473, 3474, 3475, 3476, 3477,
|
||||
3478, 3479, 3480, 3483, 3485, 3795, 4087, 4585, 4712, 4714, 4722,
|
||||
4730, 4738, 4751, 4759, 4874, 4875, 4876, 4877, 4898, 4899, 4900,
|
||||
4901, 4922, 4923, 4924, 4925, 4946, 4947, 4948, 4949, 4970, 4971,
|
||||
4972, 4973, 4994, 4995, 4996, 4997, 5048, 5050, 5052, 5576, 6107,
|
||||
6130, 6187, 6390, 6386, 6390, 6394, 6396, 6402, 6404, 6135, 6809, 6916, 4091,
|
||||
4111, 6655, 6654, 7398, 7398, 7386, 6324, 6343, 6353, 6363, 6373, 3387, 5036,
|
||||
5038, 5040, 5042, 5044, 5046, 5050, 5052, 4300, 1835, 7116, 7126, 6752,
|
||||
7132, 7138 };
|
||||
public static int platebody[] = { 10338, 7608, 2520, 430, 636, 638, 640,
|
||||
642, 644, 426, 430, 8031, 8027, 6617, 8019, 8014, 8002, 544, 577,
|
||||
7974, 7970, 7965, 7961, 7960, 3793, 3773, 3775, 3771, 3769, 3767,
|
||||
6139, 1035, 540, 5553, 4757, 1833, 1835, 6388, 6384, 4111, 4101,
|
||||
4868, 4869, 4870, 4871, 4892, 4893, 4894, 4895, 4916, 4917, 4918,
|
||||
4919, 4940, 4941, 4942, 4943, 4964, 4965, 4966, 4967, 4988, 4989,
|
||||
4990, 0x2f9a0eb, 6186, 6184, 6180, 3058, 4509, 4504, 4069, 4728,
|
||||
4736, 4712, 6107, 2661, 3140, 1115, 1117, 1119, 1121, 1123, 1125,
|
||||
1127, 2583, 2591, 2599, 2607, 2615, 6322, 2623, 2653, 2669, 3481,
|
||||
4720, 4728, 4749, 2661, 6129, 6916, 4091, 6654, 6133, 75, 7399, 5575, 6341, 6351, 7390, 7392, 3387, 5024, 5030, 5032, 5034, 7392, 6786, 6788 };
|
||||
|
||||
/* Fullbody is an item that covers your arms. */
|
||||
private static String[] fullbody = {
|
||||
"top", "shirt", "platebody", "Wizard robe (g)", "Wizard robe (t)",
|
||||
"Ahrims robetop", "Karils leathertop", "brassard", "Robe top",
|
||||
"robetop", "platebody (t)", "platebody (g)", "chestplate", "torso",
|
||||
"hauberk", "Dragon chainbody", "gown", "Shade robe", "Wizard robe",
|
||||
"Druid's robe", "Black robe", "Fremennik robe", "Robe of elidinis",
|
||||
"tunic", "blouse", "Wizard robe(g)", "Wizard robe(t)"
|
||||
};
|
||||
/* Fullhat covers your head but not your beard. */
|
||||
private static String[] fullhat = { "med helm", "coif", "Dharok's helm",
|
||||
"hood", "Initiate helm", "Coif", "Helm of neitiznot",
|
||||
"Armadyl helmet", "Berserker helm", "Archer helm", "Farseer helm",
|
||||
"Warrior helm", "Void" };
|
||||
/* Fullmask covers your entire head. */
|
||||
private static String[] fullmask = { "full helm(t)", "full helm(g)", "full helm", "mask", "Verac's helm",
|
||||
"Guthan's helm", "Karil's coif", "mask", "Torag's helm", "Void", "helmet",
|
||||
"sallet", "Facemask" };
|
||||
|
||||
public static boolean isFullBody(int itemId) {
|
||||
String weapon = getItemName(itemId);
|
||||
if (weapon == null) {
|
||||
return false;
|
||||
}
|
||||
for (String element : fullbody) {
|
||||
if (weapon.endsWith(element)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isFullHelm(int itemId) {
|
||||
String weapon = getItemName(itemId);
|
||||
if (weapon == null) {
|
||||
return false;
|
||||
}
|
||||
for (String element : fullhat) {
|
||||
if (weapon.endsWith(element)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isFullMask(int itemId) {
|
||||
String weapon = getItemName(itemId);
|
||||
if (weapon == null) {
|
||||
return false;
|
||||
}
|
||||
for (String element : fullmask) {
|
||||
if (weapon.endsWith(element)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static String getItemName(int id) {
|
||||
for (ItemList element : GameEngine.itemHandler.ItemList) {
|
||||
if (element != null) {
|
||||
if (element.itemId == id) {
|
||||
return element.itemName;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean[] itemStackable = new boolean[GameConstants.ITEM_LIMIT];
|
||||
public static boolean[] itemIsNote = new boolean[GameConstants.ITEM_LIMIT];
|
||||
public static int[] targetSlots = new int[GameConstants.ITEM_LIMIT];
|
||||
static {
|
||||
int counter = 0;
|
||||
int c;
|
||||
|
||||
try {
|
||||
FileInputStream dataIn = new FileInputStream(new File("./data/data/stackable.dat"));
|
||||
while ((c = dataIn.read()) != -1) {
|
||||
if (c == 0) {
|
||||
itemStackable[counter] = false;
|
||||
itemStackable[291] = true;
|
||||
} else {
|
||||
itemStackable[counter] = true;
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
dataIn.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Critical error while loading stackabledata! Trace:");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
counter = 0;
|
||||
try {
|
||||
FileInputStream dataIn = new FileInputStream(new File("./data/data/notes.dat"));
|
||||
while ((c = dataIn.read()) != -1) {
|
||||
itemIsNote[counter] = c == 0;
|
||||
counter++;
|
||||
}
|
||||
dataIn.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Critical error while loading notedata! Trace:");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
counter = 0;
|
||||
try {
|
||||
FileInputStream dataIn = new FileInputStream(new File("./data/data/equipment.dat"));
|
||||
while ((c = dataIn.read()) != -1) {
|
||||
int slot;
|
||||
// rebind item equip slot here
|
||||
switch (counter) {
|
||||
// Legs
|
||||
case 6181:
|
||||
case 428:
|
||||
case 538:
|
||||
case 6343:
|
||||
case 6353:
|
||||
case 6363:
|
||||
case 6396:
|
||||
case 6373:
|
||||
case 6404:
|
||||
case 5044:
|
||||
case 5046:
|
||||
case 5050:
|
||||
case 5052:
|
||||
case 5040:
|
||||
case 5038:
|
||||
case 6752:
|
||||
case 5048:
|
||||
case 5036:
|
||||
case 5042:
|
||||
case 4300:
|
||||
case 1835:
|
||||
case 7116:
|
||||
case 7126:
|
||||
case 7132:
|
||||
case 7138:
|
||||
case 548:
|
||||
case 6185:
|
||||
slot = GameConstants.LEGS;
|
||||
break;
|
||||
// Hats
|
||||
case 4166:
|
||||
case 1167:
|
||||
case 5525:
|
||||
case 4168:
|
||||
case 1025:
|
||||
case 7112:
|
||||
case 7124:
|
||||
case 7130:
|
||||
case 7136:
|
||||
case 4611:
|
||||
case 5527:
|
||||
case 5529:
|
||||
case 5531:
|
||||
case 5533:
|
||||
case 5535:
|
||||
case 5537:
|
||||
case 5539:
|
||||
case 5541:
|
||||
case 5543:
|
||||
case 5545:
|
||||
case 5547:
|
||||
slot = GameConstants.HAT;
|
||||
break;
|
||||
// Cape
|
||||
case 4304:
|
||||
case 3759:
|
||||
case 3761:
|
||||
case 3763:
|
||||
case 3765:
|
||||
case 3777:
|
||||
case 3779:
|
||||
case 3781:
|
||||
case 3783:
|
||||
case 3785:
|
||||
case 3787:
|
||||
case 3789:
|
||||
case 4514:
|
||||
case 4516:
|
||||
slot = GameConstants.CAPE;
|
||||
break;
|
||||
// Shield
|
||||
case 7051:
|
||||
case 7053:
|
||||
slot = GameConstants.SHIELD;
|
||||
break;
|
||||
// Chest
|
||||
case 577:
|
||||
case 426:
|
||||
case 540:
|
||||
case 430:
|
||||
case 6786:
|
||||
case 581:
|
||||
case 5024:
|
||||
case 5030:
|
||||
case 1757:
|
||||
case 5034:
|
||||
case 5032:
|
||||
case 3793:
|
||||
case 1005:
|
||||
case 546:
|
||||
case 6402:
|
||||
case 6788:
|
||||
case 6184:
|
||||
case 7390:
|
||||
case 7392:
|
||||
case 6186:
|
||||
slot = GameConstants.CHEST;
|
||||
break;
|
||||
// Amulet
|
||||
case 3853:
|
||||
case 3855:
|
||||
case 3857:
|
||||
case 3859:
|
||||
case 3861:
|
||||
case 3863:
|
||||
case 1718:
|
||||
case 3865:
|
||||
case 4306:
|
||||
case 3867:
|
||||
case 1702:
|
||||
slot = GameConstants.AMULET;
|
||||
break;
|
||||
// Hands
|
||||
case 776:
|
||||
slot = GameConstants.HANDS;
|
||||
break;
|
||||
default:
|
||||
slot = c;
|
||||
}
|
||||
targetSlots[counter] = slot;
|
||||
counter++;
|
||||
}
|
||||
dataIn.close();
|
||||
} catch (IOException e) {
|
||||
System.out.println("Critical error while loading equipment data! Trace:");
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,344 @@
|
||||
package com.rebotted.game.items;
|
||||
|
||||
import java.io.DataInputStream;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
|
||||
public class ItemDefinitions {
|
||||
|
||||
|
||||
public static ItemDefinitions getDef()[] {
|
||||
return definitions;
|
||||
}
|
||||
|
||||
public ItemDefinitions() {
|
||||
name = null;
|
||||
itemDescription = null;
|
||||
shopValue = 0;
|
||||
lowAlch = 0;
|
||||
highAlch = 0;
|
||||
isStackable = false;
|
||||
isNoteable = false;
|
||||
weight = 0;
|
||||
bonuses = null;
|
||||
stand = -1;
|
||||
walk = -1;
|
||||
run = -1;
|
||||
turn90left = -1;
|
||||
turn90right = -1;
|
||||
turn180 = -1;
|
||||
attack = -1;
|
||||
block = -1;
|
||||
id = -1;
|
||||
}
|
||||
|
||||
private static int id;
|
||||
|
||||
public static int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Reads the definitions from the file.
|
||||
*/
|
||||
public static void read() {
|
||||
try {
|
||||
DataInputStream in = new DataInputStream(new FileInputStream("./data/data/itemdef.gsu"));
|
||||
total = in.readShort();
|
||||
if(definitions == null)
|
||||
definitions = new ItemDefinitions[total];
|
||||
for(int j = 0; j < total; j++) {
|
||||
if(definitions[j] == null) {
|
||||
definitions[j] = new ItemDefinitions();
|
||||
}
|
||||
definitions[j].getValues(in);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads the stream values.
|
||||
* @param in
|
||||
*/
|
||||
private void getValues(DataInputStream in) {
|
||||
try {
|
||||
do {
|
||||
int opcode = in.readByte();
|
||||
if(opcode == 0)
|
||||
return;
|
||||
if(opcode == 1) {
|
||||
name = in.readUTF();
|
||||
} else if(opcode == 2) {
|
||||
itemDescription = in.readUTF();
|
||||
} else if(opcode == 3) {
|
||||
shopValue = in.readInt();
|
||||
} else if(opcode == 4) {
|
||||
lowAlch = in.readInt();
|
||||
} else if(opcode == 5) {
|
||||
highAlch = in.readInt();
|
||||
} else if(opcode == 6) {
|
||||
isStackable = true;
|
||||
} else if(opcode == 7) {
|
||||
isNoteable = true;
|
||||
} else if(opcode == 8) {
|
||||
weight = in.readDouble();
|
||||
} else if(opcode == 9) {
|
||||
int length = in.readShort();
|
||||
bonuses = new double[length];
|
||||
for (int index = 0; index < length; index++) {
|
||||
bonuses[index] = in.readDouble();
|
||||
}
|
||||
} else if(opcode == 10) {
|
||||
stand = in.readShort();
|
||||
} else if(opcode == 11) {
|
||||
walk = in.readShort();
|
||||
} else if(opcode == 12) {
|
||||
run = in.readShort();
|
||||
} else if(opcode == 13) {
|
||||
turn90left = in.readShort();
|
||||
} else if(opcode == 14) {
|
||||
turn90right = in.readShort();
|
||||
} else if(opcode == 15) {
|
||||
turn180 = in.readShort();
|
||||
} else if(opcode == 16) {
|
||||
attack = in.readShort();
|
||||
} else if(opcode == 17) {
|
||||
block = in.readShort();
|
||||
} else {
|
||||
System.out.println("Unrecognized opcode: " + opcode);
|
||||
}
|
||||
} while(true);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The item definition cache.
|
||||
*/
|
||||
public static ItemDefinitions definitions[];
|
||||
|
||||
/**
|
||||
* The total items read from the definitions.
|
||||
*/
|
||||
public static int total;
|
||||
|
||||
/**
|
||||
* Returns the total item number.
|
||||
*/
|
||||
public static int getTotal() {
|
||||
return total;
|
||||
}
|
||||
|
||||
/**
|
||||
* The item name.
|
||||
*/
|
||||
public String name;
|
||||
|
||||
/**
|
||||
* Returns the name of the item.
|
||||
* @return
|
||||
*/
|
||||
public static String getName(int id) {
|
||||
return definitions[id].name;
|
||||
}
|
||||
|
||||
/**
|
||||
* The item description.
|
||||
*/
|
||||
public String itemDescription;
|
||||
|
||||
/**
|
||||
* Returns the description of an item.
|
||||
*/
|
||||
public static String getDescription(int id) {
|
||||
return definitions[id].itemDescription;
|
||||
}
|
||||
|
||||
/**
|
||||
* The item price.
|
||||
*/
|
||||
public int shopValue;
|
||||
|
||||
/**
|
||||
* Returns the price of an item.
|
||||
*/
|
||||
public static int getPrice(int id) {
|
||||
return definitions[id].shopValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* The low alch value.
|
||||
*/
|
||||
public int lowAlch;
|
||||
|
||||
/**
|
||||
* Returns the low alch value of an item.
|
||||
*/
|
||||
public static int getLow(int id) {
|
||||
return definitions[id].lowAlch;
|
||||
}
|
||||
|
||||
/**
|
||||
* The high alch value.
|
||||
*/
|
||||
public int highAlch;
|
||||
|
||||
/**
|
||||
* Returns the high alch value of an item.
|
||||
*/
|
||||
public static int getHigh(int id) {
|
||||
return definitions[id].highAlch;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can the item be stacked?
|
||||
*/
|
||||
public boolean isStackable;
|
||||
|
||||
/**
|
||||
* Returns whether or not the item can be stacked.
|
||||
*/
|
||||
public static boolean canStack(int id) {
|
||||
return definitions[id].isStackable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Can the item be noted?
|
||||
*/
|
||||
public boolean isNoteable;
|
||||
|
||||
/**
|
||||
* Returns whether or not the item can be noted.
|
||||
*/
|
||||
public static boolean canNote(int id) {
|
||||
return definitions[id].isNoteable;
|
||||
}
|
||||
|
||||
/**
|
||||
* The weight of an item.
|
||||
*/
|
||||
public double weight;
|
||||
|
||||
/**
|
||||
* Returns the weight of an item.
|
||||
*/
|
||||
public static double getWeight(int id) {
|
||||
if (id >= 0 && id < definitions.length)
|
||||
return definitions[id].weight;
|
||||
|
||||
System.out.println("WARNING: id " + id + " doesn't have a definition!");
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
/**
|
||||
* The bonuses of an item.
|
||||
*/
|
||||
public double[] bonuses;
|
||||
|
||||
/**
|
||||
* Returns the array of bonuses for an item.
|
||||
*/
|
||||
public double[] getBonuses(int id) {
|
||||
return definitions[id].bonuses;
|
||||
}
|
||||
|
||||
/**
|
||||
* The stand animation of an item.
|
||||
*/
|
||||
public int stand;
|
||||
|
||||
/**
|
||||
* Returns the stand animation of an item.
|
||||
*/
|
||||
public static int getStand(int id) {
|
||||
return definitions[id].stand;
|
||||
}
|
||||
|
||||
/**
|
||||
* The walk animation of an item.
|
||||
*/
|
||||
public int walk;
|
||||
|
||||
/**
|
||||
* Returns the walk animation of an item.
|
||||
*/
|
||||
public static int getWalk(int id) {
|
||||
return definitions[id].walk;
|
||||
}
|
||||
|
||||
/**
|
||||
* The run animation of an item.
|
||||
*/
|
||||
public int run;
|
||||
|
||||
/**
|
||||
* Returns the run animation of an item.
|
||||
*/
|
||||
public static int getRun(int id) {
|
||||
return definitions[id].run;
|
||||
}
|
||||
|
||||
/**
|
||||
* The 90-degree left turn animation of an item.
|
||||
*/
|
||||
public int turn90left;
|
||||
|
||||
/**
|
||||
* Returns the 90-degree left turn animation of an item.
|
||||
*/
|
||||
public static int get90left(int id) {
|
||||
return definitions[id].turn90left;
|
||||
}
|
||||
|
||||
/**
|
||||
* The 90-degree right turn animation of an item.
|
||||
*/
|
||||
public int turn90right;
|
||||
|
||||
/**
|
||||
* Returns the 90-degree right turn animation of an item.
|
||||
*/
|
||||
public static int get90right(int id) {
|
||||
return definitions[id].turn90right;
|
||||
}
|
||||
|
||||
/**
|
||||
* The 180-degree turn animation of an item.
|
||||
*/
|
||||
public int turn180;
|
||||
|
||||
/**
|
||||
* Returns the 180-degree turn animation of an item.
|
||||
*/
|
||||
public static int get180(int id) {
|
||||
return definitions[id].turn180;
|
||||
}
|
||||
|
||||
/**
|
||||
* The attack animation of an item.
|
||||
*/
|
||||
public int attack;
|
||||
|
||||
/**
|
||||
* Returns the attack animation of an item
|
||||
*/
|
||||
public static int getAttack(int id) {
|
||||
return definitions[id].attack;
|
||||
}
|
||||
|
||||
/**
|
||||
* The block animation of an item.
|
||||
*/
|
||||
public int block;
|
||||
|
||||
/**
|
||||
* Returns the block animation of an item
|
||||
*/
|
||||
public static int getBlock(int id) {
|
||||
return definitions[id].block;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.rebotted.game.items;
|
||||
|
||||
public class ItemList {
|
||||
|
||||
public int itemId;
|
||||
public String itemName;
|
||||
public String itemDescription;
|
||||
public double ShopValue;
|
||||
public double LowAlch;
|
||||
public double HighAlch;
|
||||
public int[] Bonuses = new int[100];
|
||||
|
||||
public ItemList(int _itemId) {
|
||||
itemId = _itemId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,377 @@
|
||||
package com.rebotted.game.items;
|
||||
|
||||
import com.rebotted.game.content.skills.cooking.Cooking;
|
||||
import com.rebotted.game.content.skills.crafting.GemCutting;
|
||||
import com.rebotted.game.content.skills.crafting.JewelryMaking;
|
||||
import com.rebotted.game.content.skills.crafting.LeatherMaking;
|
||||
import com.rebotted.game.content.skills.crafting.SoftClay;
|
||||
import com.rebotted.game.content.skills.firemaking.Firemaking;
|
||||
import com.rebotted.game.content.skills.fletching.ArrowMaking;
|
||||
import com.rebotted.game.content.skills.fletching.LogCutting;
|
||||
import com.rebotted.game.content.skills.fletching.LogCuttingInterface;
|
||||
import com.rebotted.game.content.skills.fletching.Stringing;
|
||||
import com.rebotted.game.content.skills.herblore.GrindingAction;
|
||||
import com.rebotted.game.content.skills.herblore.Herblore;
|
||||
import com.rebotted.game.items.impl.CapeDye;
|
||||
import com.rebotted.game.items.impl.WeaponPoison;
|
||||
import com.rebotted.game.npcs.impl.MilkCow;
|
||||
import com.rebotted.game.objects.impl.CrystalChest;
|
||||
import com.rebotted.game.objects.impl.FlourMill;
|
||||
import com.rebotted.game.objects.impl.Webs;
|
||||
import com.rebotted.game.players.Player;
|
||||
import com.rebotted.util.Misc;
|
||||
|
||||
/**
|
||||
* @author Ryan / Lmctruck30
|
||||
*/
|
||||
|
||||
public class UseItem {
|
||||
|
||||
public static void itemOnObject(Player c, int objectID, int objectX, int objectY, int itemId) {
|
||||
final int goodPosXType1 = objectX - 5;
|
||||
final int goodPosXType2 = objectX + 5;
|
||||
final int goodPosYType1 = objectY - 5;
|
||||
final int goodPosYType2 = objectY + 5;
|
||||
if (c.absX >= goodPosXType1 && c.absX <= goodPosXType2 && c.absY >= goodPosYType1 && c.absY <= goodPosYType2) {
|
||||
c.turnPlayerTo(objectX, objectY);
|
||||
} else {
|
||||
c.getPlayerAssistant().playerWalk(objectX, objectY);
|
||||
}
|
||||
if (!c.getItemAssistant().playerHasItem(itemId, 1)) {
|
||||
return;
|
||||
}
|
||||
switch (objectID) {
|
||||
case 733:
|
||||
if (itemId == 946) {
|
||||
Webs.slashWeb(c, objectID, objectX, objectY);
|
||||
}
|
||||
break;
|
||||
case 8689:
|
||||
if (c.milking == false) {
|
||||
MilkCow.milk(c);
|
||||
}
|
||||
break;
|
||||
case 2783:
|
||||
c.getSmithingInt().showSmithInterface(itemId);
|
||||
break;
|
||||
case 2782:
|
||||
if (c.doricQuest >= 3) {
|
||||
c.getSmithingInt().showSmithInterface(itemId);
|
||||
} else {
|
||||
c.getPacketSender().sendMessage(
|
||||
"You need to beat dorics quest to use his anvils");
|
||||
}
|
||||
break;
|
||||
case 879:
|
||||
case 12279:
|
||||
case 14868:
|
||||
if (itemId == SoftClay.CLAY) {
|
||||
SoftClay.makeClay(c);
|
||||
}
|
||||
break;
|
||||
case 2714:
|
||||
FlourMill.grainOnHopper(c, objectID, itemId);
|
||||
break;
|
||||
case 172:
|
||||
if (itemId == CrystalChest.KEY) {
|
||||
CrystalChest.searchChest(c, objectID, objectX, objectY);
|
||||
}
|
||||
break;
|
||||
|
||||
case 364:
|
||||
if (itemId == 1919) {
|
||||
c.getItemAssistant().deleteItem(1919, 1);
|
||||
c.getItemAssistant().addItem(1917, 1);
|
||||
c.getPacketSender().sendMessage(
|
||||
"You refill your beer glass.");
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
if (c.playerRights == 3) {
|
||||
Misc.println("Player At Object id: " + objectID + " objectX: "
|
||||
+ objectX + " objectY: " + objectY + " with Item id: "
|
||||
+ itemId);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static void ItemonItem(Player player, int itemUsed, int useWith) {
|
||||
LogCuttingInterface.handleItemOnItem(player, itemUsed, useWith);
|
||||
ArrowMaking.makeArrow(player, itemUsed, useWith);
|
||||
Stringing.StringBow(player, itemUsed, useWith);
|
||||
WeaponPoison.execute(player, itemUsed, useWith);
|
||||
player.getGlassBlowing().ItemOnItem(itemUsed, useWith);
|
||||
//CapeDye.execute(c, itemUsed, useWith);
|
||||
if (ItemAssistant.getItemName(itemUsed).contains("(")
|
||||
&& ItemAssistant.getItemName(useWith).contains("(")) {
|
||||
player.getPotMixing().mixPotion2(itemUsed, useWith);
|
||||
}
|
||||
GrindingAction.init(player, itemUsed, useWith);
|
||||
CapeDye.dyeItem(player, itemUsed, useWith);
|
||||
if (Herblore.isIngredient(itemUsed) || Herblore.isIngredient(useWith)) {
|
||||
Herblore.setupPotion(player, itemUsed, useWith);
|
||||
}
|
||||
if (itemUsed == 6703 || useWith == 6703) {
|
||||
player.getPTS().handlePotato(itemUsed, useWith);
|
||||
}
|
||||
if (itemUsed == 1755 || useWith == 1755) {
|
||||
GemCutting.cutGem(player, itemUsed, useWith);
|
||||
}
|
||||
if (itemUsed == 1759 || useWith == 1759) {
|
||||
JewelryMaking.stringAmulet(player, itemUsed, useWith);
|
||||
}
|
||||
if (itemUsed == 946 || useWith == 2862) {
|
||||
LogCutting.makeShafts(player);
|
||||
}
|
||||
if (itemUsed == 2862 || useWith == 946) {
|
||||
LogCutting.makeShafts(player);
|
||||
}
|
||||
if (itemUsed == 314 || useWith == 2864) {
|
||||
LogCutting.flightedArrow(player);
|
||||
}
|
||||
if (itemUsed == 2864 || useWith == 314) {
|
||||
LogCutting.flightedArrow(player);
|
||||
}
|
||||
if (itemUsed == 2861 || useWith == 2865) {
|
||||
LogCutting.ogreArrow(player);
|
||||
}
|
||||
if (itemUsed == 2865 || useWith == 2861) {
|
||||
LogCutting.ogreArrow(player);
|
||||
}
|
||||
if (itemUsed == 2859 || useWith == 1755) {
|
||||
LogCutting.wolfBoneArrow(player);
|
||||
}
|
||||
if (itemUsed == 1755 || useWith == 2859) {
|
||||
LogCutting.wolfBoneArrow(player);
|
||||
}
|
||||
if (itemUsed == 771 && useWith == 946
|
||||
&& player.playerLevel[player.playerCrafting] > 30) {
|
||||
player.getItemAssistant().deleteItem(771, 1);
|
||||
player.getItemAssistant().addItem(772, 1);
|
||||
} else if (player.playerLevel[player.playerCrafting] < 31 && itemUsed == 771
|
||||
&& useWith == 946) {
|
||||
player.getPacketSender().sendMessage(
|
||||
"You need 31 crafting to make this.");
|
||||
}
|
||||
if (itemUsed == 946 && useWith == 771
|
||||
&& player.playerLevel[player.playerCrafting] > 30) {
|
||||
player.getItemAssistant().deleteItem(771, 1);
|
||||
player.getItemAssistant().addItem(772, 1);
|
||||
} else if (player.playerLevel[player.playerCrafting] < 31 && itemUsed == 946
|
||||
&& useWith == 771) {
|
||||
player.getPacketSender().sendMessage(
|
||||
"You need 31 crafting to make this.");
|
||||
}
|
||||
if (useWith == 7051 && itemUsed == 590 || itemUsed == 590
|
||||
&& useWith == 7051) {
|
||||
player.getItemAssistant().deleteItem(7051, 1);
|
||||
player.getItemAssistant().addItem(7053, 1);
|
||||
}
|
||||
int firemakingItems[] = {590, 7329, 7330, 7331};
|
||||
for (int i = 0; i < firemakingItems.length; i++) {
|
||||
if (itemUsed == firemakingItems[i] || useWith == firemakingItems[i] && player.isFiremaking == false) {
|
||||
Firemaking.attemptFire(player, itemUsed, useWith, player.absX, player.absY, false);
|
||||
} else if (itemUsed == firemakingItems[i] || useWith == firemakingItems[i] && player.isFiremaking == true) {
|
||||
player.getPacketSender().sendMessage("You can't do that, you are already firemaking.");
|
||||
}
|
||||
}
|
||||
if (itemUsed == 1733 || useWith == 1733) {
|
||||
LeatherMaking.craftLeatherDialogue(player, itemUsed, useWith);
|
||||
}
|
||||
if (itemUsed == 1573 && useWith == 327 || itemUsed == 327 && useWith == 1573) {
|
||||
player.getItemAssistant().deleteItem(1573, 1);
|
||||
player.getItemAssistant().deleteItem(327, 1);
|
||||
player.getItemAssistant().addItem(1552, 1);
|
||||
}
|
||||
if (itemUsed == 38 && useWith == 590 || useWith == 38
|
||||
&& itemUsed == 590) {//
|
||||
player.getItemAssistant().addItem(32, 1);
|
||||
player.getItemAssistant().deleteItem(38, 1);
|
||||
}
|
||||
if (itemUsed == 36 && useWith == 590 || useWith == 36
|
||||
&& itemUsed == 590) {
|
||||
player.getItemAssistant().addItem(33, 1);
|
||||
player.getItemAssistant().deleteItem(36, 1);
|
||||
}
|
||||
if (itemUsed == 596 && useWith == 590 || useWith == 596
|
||||
&& itemUsed == 590) {
|
||||
player.getItemAssistant().addItem(594, 1);
|
||||
player.getItemAssistant().deleteItem(596, 1);
|
||||
}
|
||||
if (itemUsed == 4537 && useWith == 590 || useWith == 4537
|
||||
&& itemUsed == 590) {
|
||||
player.getItemAssistant().addItem(4539, 1);
|
||||
player.getItemAssistant().deleteItem(4537, 1);
|
||||
}
|
||||
if (itemUsed == 4548 && useWith == 590 || useWith == 4548
|
||||
&& itemUsed == 590) {
|
||||
player.getItemAssistant().addItem(4550, 1);
|
||||
player.getItemAssistant().deleteItem(4548, 1);
|
||||
}
|
||||
if (itemUsed == 1095 && useWith == 2370 || itemUsed == 2370
|
||||
&& useWith == 1095 && player.playerLevel[player.playerCrafting] > 43) {// chaps
|
||||
player.getItemAssistant().deleteItem(2370, 1);
|
||||
player.getItemAssistant().deleteItem(1095, 1);
|
||||
player.getItemAssistant().addItem(1097, 1);
|
||||
player.getPlayerAssistant().addSkillXP(42, player.playerCrafting);
|
||||
} else if (itemUsed == 1095 && useWith == 2370 || itemUsed == 2370 && useWith == 1095 && player.playerLevel[player.playerCrafting] < 44) {
|
||||
player.getPacketSender().sendMessage("You need 44 crafting to make this.");
|
||||
}
|
||||
if (itemUsed == 946 && useWith == 1963 || itemUsed == 1963 && useWith == 946) {
|
||||
player.getItemAssistant().deleteItem(1963, 1);
|
||||
player.getItemAssistant().addItem(3162, 1);
|
||||
player.getPacketSender().sendMessage("You slice your banana.");
|
||||
}
|
||||
if (itemUsed == 946 && useWith == 1973 || itemUsed == 1973 && useWith == 946) {
|
||||
player.getItemAssistant().deleteItem(1973, 1);
|
||||
player.getItemAssistant().addItem(1975, 1);
|
||||
player.getPacketSender().sendMessage("You slice your chocolate bar.");
|
||||
}
|
||||
if (itemUsed == 1129 && useWith == 2370 || itemUsed == 2370 && useWith == 1129 && player.playerLevel[player.playerCrafting] > 40) {// body
|
||||
player.getItemAssistant().deleteItem(2370, 1);
|
||||
player.getItemAssistant().deleteItem(1129, 1);
|
||||
player.getItemAssistant().addItem(1133, 1);
|
||||
player.getPlayerAssistant().addSkillXP(40, player.playerCrafting);
|
||||
} else if (itemUsed == 1129 && useWith == 2370 || itemUsed == 2370 && useWith == 1129 && player.playerLevel[player.playerCrafting] < 41) {
|
||||
player.getPacketSender().sendMessage("You need 41 crafting to make this.");
|
||||
}
|
||||
if (itemUsed == 4593 && useWith == 4591 || useWith == 4591 && itemUsed == 4593) {
|
||||
player.getItemAssistant().deleteItem(4591, 1);
|
||||
player.getItemAssistant().deleteItem(4593, 1);
|
||||
player.getItemAssistant().addItem(4611, 1);
|
||||
}
|
||||
if (itemUsed == 985 && useWith == 987 || itemUsed == 987 && useWith == 985) {
|
||||
player.getItemAssistant().deleteItem(985, 1);
|
||||
player.getItemAssistant().deleteItem(987, 1);
|
||||
player.getItemAssistant().addItem(989, 1);
|
||||
}
|
||||
if (itemUsed == 2313 && useWith == 1953 || itemUsed == 1953 && useWith == 2313) {
|
||||
player.getItemAssistant().deleteItem(2313, 1);
|
||||
player.getItemAssistant().deleteItem(1953, 1);
|
||||
player.getItemAssistant().addItem(2315, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Pizza Creation
|
||||
*/
|
||||
if (itemUsed == 1982 && useWith == 2283 || itemUsed == 2283
|
||||
&& useWith == 1982) {
|
||||
Cooking.pastryCreation(player, 1982, 2283, 2285, "");
|
||||
}
|
||||
if (itemUsed == 2285 && useWith == 1985 || itemUsed == 1985
|
||||
&& useWith == 2285) {
|
||||
Cooking.pastryCreation(player, 2285, 1985, 2287, "");
|
||||
}
|
||||
if (itemUsed == 2140 && useWith == 2289 || itemUsed == 2289
|
||||
&& useWith == 2140) {
|
||||
Cooking.cookingAddon(player, 2140, 2289, 2293, 45, 26);
|
||||
}
|
||||
if (itemUsed == 319 && useWith == 2289 || itemUsed == 2289
|
||||
&& useWith == 319) {
|
||||
Cooking.cookingAddon(player, 319, 2289, 2297, 55, 39);
|
||||
}
|
||||
if (itemUsed == 2116 && useWith == 2289 || itemUsed == 2289
|
||||
&& useWith == 2116) {
|
||||
Cooking.cookingAddon(player, 2116, 2289, 2301, 65, 45);
|
||||
}
|
||||
/**
|
||||
* Pie Making
|
||||
*/
|
||||
if (itemUsed == 2313 && useWith == 1953 || itemUsed == 1953
|
||||
&& useWith == 2313) {
|
||||
Cooking.pastryCreation(player, 2313, 1953, 2315,
|
||||
"You put the pastry dough into the pie dish to make a pie shell.");
|
||||
}
|
||||
if (itemUsed == 2315 && useWith == 1955 || itemUsed == 1955
|
||||
&& useWith == 2315) {
|
||||
Cooking.pastryCreation(player, 2315, 1955, 2317,
|
||||
"You fill the pie with cooking apple.");
|
||||
}
|
||||
if (itemUsed == 2315 && useWith == 5504 || itemUsed == 5504
|
||||
&& useWith == 2315) {
|
||||
Cooking.pastryCreation(player, 2315, 5504, 7212, "");
|
||||
}
|
||||
if (itemUsed == 7212 && useWith == 5982 || itemUsed == 5982
|
||||
&& useWith == 7212) {
|
||||
Cooking.pastryCreation(player, 7212, 5982, 7214, "");
|
||||
}
|
||||
if (itemUsed == 1955 && useWith == 7214 || itemUsed == 7214
|
||||
&& useWith == 1955) {
|
||||
Cooking.pastryCreation(player, 1955, 7214, 7216, "");
|
||||
}
|
||||
if (itemUsed == 2315 && useWith == 1951 || itemUsed == 1951 && useWith == 2315) {
|
||||
Cooking.pastryCreation(player, 1951, 2315, 2321, "");
|
||||
}
|
||||
/**
|
||||
* Pitta/ Ugthanki Kebab
|
||||
*/
|
||||
if (itemUsed == 1865 && useWith == 1881 || itemUsed == 1881
|
||||
&& useWith == 1865) {
|
||||
Cooking.cookingAddon(player, 1865, 1881, 1883, 0, 40);
|
||||
}
|
||||
|
||||
if (player.tutorialProgress < 36) {
|
||||
if (itemUsed == 1929 && useWith == 1933 || itemUsed == 1933 && useWith == 1929) {
|
||||
player.getItemAssistant().deleteItem(1929, 1);
|
||||
player.getItemAssistant().deleteItem(1933, 1);
|
||||
player.getItemAssistant().addItem(2307, 1);
|
||||
player.getItemAssistant().addItem(1925, 1);
|
||||
player.getItemAssistant().addItem(1931, 1);
|
||||
if (player.tutorialProgress == 8) {
|
||||
player.getDialogueHandler().sendDialogues(3026, -1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (player.tutorialProgress > 35) {
|
||||
if (itemUsed == 1929 && useWith == 1933 || itemUsed == 1933 && useWith == 1929) {
|
||||
player.getDialogueHandler().sendDialogues(3204, -1);
|
||||
}
|
||||
}
|
||||
|
||||
if (player.tutorialProgress > 35) {
|
||||
if (itemUsed == 1933 && useWith == 1937 || itemUsed == 1937 && useWith == 1933) {
|
||||
player.getDialogueHandler().sendDialogues(3205, -1);
|
||||
}
|
||||
}
|
||||
|
||||
if (itemUsed == 1987 && useWith == 1937 || itemUsed == 1937
|
||||
&& useWith == 1987) {
|
||||
if (player.playerLevel[player.playerCooking] >= 35) {
|
||||
player.getItemAssistant().addItem(1993, 1);
|
||||
player.getItemAssistant().deleteItem(1937, 1);
|
||||
player.getItemAssistant().deleteItem(1987, 1);
|
||||
player.getPlayerAssistant().addSkillXP(200, player.playerCooking);
|
||||
} else {
|
||||
player.getPacketSender().sendMessage(
|
||||
"You need grapes and a jug of water to make wine.");
|
||||
}
|
||||
}
|
||||
|
||||
switch (itemUsed) {
|
||||
|
||||
default:
|
||||
if (player.playerRights == 3) {
|
||||
Misc.println("Player used Item id: " + itemUsed
|
||||
+ " with Item id: " + useWith);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static void itemOnNpc(final Player c, final int itemId, final int npcId, final int slot) {
|
||||
switch (itemId) {
|
||||
|
||||
default:
|
||||
if (c.playerRights == 3) {
|
||||
Misc.println("Player used Item id: " + itemId
|
||||
+ " with Npc id: " + npcId + " With Slot : " + slot);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.rebotted.game.items;
|
||||
|
||||
import com.rebotted.GameEngine;
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
/**
|
||||
* @author somedude, credits to Galkon for item weights
|
||||
*/
|
||||
public class Weight extends ItemDefinitions {
|
||||
|
||||
/**
|
||||
* Calculates the weight when doing actions
|
||||
*
|
||||
* @param c
|
||||
* @param item
|
||||
* @param action
|
||||
* - deleteitem, additem, equip, unequip.
|
||||
*/
|
||||
public static void calcWeight(Player c, int item, String action) {
|
||||
if (action.equalsIgnoreCase("deleteitem")) {
|
||||
if (getWeight(item) > 99.20) {
|
||||
c.weight -= getWeight(item) / 100;
|
||||
if (c.weight < 0) {
|
||||
c.weight = 0.0;
|
||||
}
|
||||
c.getPacketSender().writeWeight((int) c.weight);
|
||||
return;
|
||||
}
|
||||
c.weight -= getWeight(item) / 10;
|
||||
if (c.weight < 0) {
|
||||
c.weight = 0.0;
|
||||
}
|
||||
c.getPacketSender().writeWeight((int) c.weight);
|
||||
} else if (action.equalsIgnoreCase("additem")) {
|
||||
if (getWeight(item) > 99.20) {
|
||||
c.weight += getWeight(item) / 100;
|
||||
c.getPacketSender().writeWeight((int) c.weight);
|
||||
return;
|
||||
}
|
||||
c.weight += getWeight(item) / 10;
|
||||
c.getPacketSender().writeWeight((int) c.weight);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the weight for inventory and equipment.
|
||||
*
|
||||
* @param player
|
||||
*/
|
||||
public static void updateWeight(Player player) {
|
||||
if (player != null) {
|
||||
player.getPacketSender().writeWeight((int) player.weight);
|
||||
// Inventory items
|
||||
for (int playerItem : player.playerItems) {
|
||||
if (playerItem > -1) {// inventory
|
||||
for (ItemList i1 : GameEngine.itemHandler.ItemList) {
|
||||
if (i1 != null) {
|
||||
if (i1.itemId == playerItem) {
|
||||
calcWeight(player, playerItem, "addItem");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Equiped items
|
||||
for (int element : player.playerEquipment) {
|
||||
if (element > -1) {// equipment
|
||||
for (ItemList i1 : GameEngine.itemHandler.ItemList) {
|
||||
if (i1 != null) {
|
||||
if (i1.itemId == element) {
|
||||
calcWeight(player, element, "addItem");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
player.getPacketSender().writeWeight((int) player.weight);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import com.rebotted.game.items.Item;
|
||||
import com.rebotted.game.items.ItemAssistant;
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
/**
|
||||
* Dye.java
|
||||
* @author Andrew (Mr Extremez)
|
||||
*/
|
||||
|
||||
public enum CapeDye {
|
||||
|
||||
RED_CAPE(1763, 1007),
|
||||
BLUE_CAPE(1767, 1021),
|
||||
GREEN_CAPE(1771, 1027),
|
||||
PINK_CAPE(6955, 6959),
|
||||
ORANGE_CAPE(1769, 1031),
|
||||
YELLOW_CAPE(1765, 1023),
|
||||
PURPLE_CAPE(1773, 1029);
|
||||
|
||||
int reward, itemUsed;
|
||||
|
||||
private CapeDye(int itemUsed, int reward) {
|
||||
this.itemUsed = itemUsed;
|
||||
this.reward = reward;
|
||||
}
|
||||
|
||||
private int getItemUsed() {
|
||||
return itemUsed;
|
||||
}
|
||||
|
||||
private int getReward() {
|
||||
return reward;
|
||||
}
|
||||
|
||||
//blue+yellow =green
|
||||
//red+blue = purple
|
||||
|
||||
public static final int[][] MAIL_DATA = {
|
||||
{1769, 288, 286},
|
||||
{1769, 287, 286},
|
||||
{1767, 288, 287},
|
||||
{1767, 286, 287},
|
||||
{1767, 1765, 1771},
|
||||
{1763, 1767, 1773}
|
||||
};
|
||||
|
||||
public static boolean blockDye(Player player, CapeDye dye, int itemUsed, int useWith) {
|
||||
if (itemUsed == dye.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && Item.itemIsNote[useWith]) {
|
||||
player.getPacketSender().sendMessage("You can't dye a noted cape.");
|
||||
return true;
|
||||
} else if (itemUsed == dye.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && useWith == dye.getReward() && !Item.itemIsNote[useWith]) {
|
||||
player.getPacketSender().sendMessage("That cape is already that color.");
|
||||
return true;
|
||||
} else if (itemUsed == dye.getItemUsed() && !ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape")) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void dyeItem(Player player, int itemUsed, int useWith) {
|
||||
for (CapeDye cape: CapeDye.values()) {
|
||||
if (blockDye(player, cape, itemUsed, useWith)) {
|
||||
return;
|
||||
}
|
||||
if (itemUsed == cape.getItemUsed() && ItemAssistant.getItemName(useWith).equalsIgnoreCase("Cape") && !Item.itemIsNote[useWith] && useWith != cape.getReward()) {
|
||||
player.getItemAssistant().deleteItem(itemUsed, 1);
|
||||
player.getItemAssistant().deleteItem(useWith, 1);
|
||||
player.getItemAssistant().addItem(cape.getReward(), 1);
|
||||
player.getPlayerAssistant().addSkillXP(2.5, player.playerCrafting);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
public class ExperienceLamp {
|
||||
|
||||
public static int LAMP = 4447, LAMP_2 = 2528, SKILL_MENU = 2808,
|
||||
skill = -1;
|
||||
|
||||
/**
|
||||
* Handles the actionbuttons
|
||||
*
|
||||
* @param player
|
||||
* @param id
|
||||
*/
|
||||
public static void buttons(Player player, int id) {
|
||||
switch (id) {
|
||||
case 10252:
|
||||
skill = 0;
|
||||
player.getPacketSender().sendMessage("You select Attack.");
|
||||
break;
|
||||
case 10253:
|
||||
skill = 2;
|
||||
player.getPacketSender().sendMessage("You select Strength.");
|
||||
break;
|
||||
case 10254:
|
||||
skill = 4;
|
||||
player.getPacketSender().sendMessage("You select Ranged.");
|
||||
break;
|
||||
case 10255:
|
||||
skill = 6;
|
||||
player.getPacketSender().sendMessage("You select Magic.");
|
||||
break;
|
||||
case 11000:
|
||||
skill = 1;
|
||||
player.getPacketSender().sendMessage("You select Defence.");
|
||||
break;
|
||||
case 11001:
|
||||
skill = 3;
|
||||
player.getPacketSender().sendMessage("You select Hitpoints.");
|
||||
break;
|
||||
case 11002:
|
||||
skill = 5;
|
||||
player.getPacketSender().sendMessage("You select Prayer.");
|
||||
break;
|
||||
case 11003:
|
||||
skill = 16;
|
||||
player.getPacketSender().sendMessage("You select Agility.");
|
||||
break;
|
||||
case 11004:
|
||||
skill = 15;
|
||||
player.getPacketSender().sendMessage("You select Herblore.");
|
||||
break;
|
||||
case 11005:
|
||||
skill = 17;
|
||||
player.getPacketSender().sendMessage("You select Thieving.");
|
||||
break;
|
||||
case 11006:
|
||||
skill = 12;
|
||||
player.getPacketSender().sendMessage("You select Crafting.");
|
||||
break;
|
||||
case 11007:
|
||||
skill = 20;
|
||||
player.getPacketSender().sendMessage("You select Runecrafting.");
|
||||
break;
|
||||
case 47002:
|
||||
skill = 18;
|
||||
player.getPacketSender().sendMessage("You select Slayer.");
|
||||
break;
|
||||
case 54090:
|
||||
skill = -1;
|
||||
player.getPacketSender().sendMessage("You can't select this skill.");
|
||||
break;
|
||||
case 11008:
|
||||
skill = 14;
|
||||
player.getPacketSender().sendMessage("You select Mining.");
|
||||
break;
|
||||
case 11009:
|
||||
skill = 13;
|
||||
player.getPacketSender().sendMessage("You select Smithing.");
|
||||
break;
|
||||
case 11010:
|
||||
skill = 10;
|
||||
player.getPacketSender().sendMessage("You select Fishing.");
|
||||
break;
|
||||
case 11011:
|
||||
skill = 7;
|
||||
player.getPacketSender().sendMessage("You select Cooking.");
|
||||
break;
|
||||
case 11012:
|
||||
skill = 11;
|
||||
player.getPacketSender().sendMessage("You select Firemaking.");
|
||||
break;
|
||||
case 11013:
|
||||
skill = 8;
|
||||
player.getPacketSender().sendMessage("You select Woodcutting.");
|
||||
break;
|
||||
case 11014:
|
||||
skill = 9;
|
||||
player.getPacketSender().sendMessage("You select Fletching.");
|
||||
break;
|
||||
case 11015:
|
||||
if (skill == -1) {
|
||||
player.getPacketSender().closeAllWindows();
|
||||
}
|
||||
if (player.getItemAssistant().playerHasItem(LAMP, 1) && skill > -1) {// normal
|
||||
// lamp
|
||||
int xp = player.getPlayerAssistant()
|
||||
.getLevelForXP(player.playerXP[skill]) * 10;
|
||||
player.getPlayerAssistant().addSkillXP(xp, skill);
|
||||
player.getItemAssistant().deleteItem(LAMP, 1);
|
||||
player.getPacketSender().sendMessage(
|
||||
"@blu@Your wish has been granted!");
|
||||
player.getPacketSender().sendMessage(
|
||||
"@blu@You have been awarded " + xp
|
||||
+ " experience in your selected skill!");
|
||||
player.getPacketSender().closeAllWindows();
|
||||
} else if (player.getItemAssistant().playerHasItem(LAMP_2, 1)
|
||||
&& skill > -1) {// vote
|
||||
// reward
|
||||
player.getItemAssistant().deleteItem(LAMP_2, 1);
|
||||
player.getPacketSender().sendMessage(
|
||||
"@blu@Your wish has been granted!");
|
||||
addExp(player);
|
||||
player.getPacketSender().closeAllWindows();
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
public static void addExp(Player c) {
|
||||
if (c.getPlayerAssistant().getLevelForXP(c.playerXP[skill]) < 20) {
|
||||
c.getPlayerAssistant().addSkillXP(1000, skill);
|
||||
c.getPacketSender()
|
||||
.sendMessage(
|
||||
"@blu@You have been awarded 1000 experience in your selected skill!");
|
||||
} else if (c.getPlayerAssistant().getLevelForXP(c.playerXP[skill]) > 19
|
||||
&& c.getPlayerAssistant().getLevelForXP(c.playerXP[skill]) < 35) {
|
||||
c.getPlayerAssistant().addSkillXP(2000, skill);
|
||||
c.getPacketSender()
|
||||
.sendMessage(
|
||||
"@blu@You have been awarded 2000 experience in your selected skill!");
|
||||
} else {
|
||||
c.getPlayerAssistant().addSkillXP(3000, skill);
|
||||
c.getPacketSender()
|
||||
.sendMessage(
|
||||
"@blu@You have been awarded 3000 experience in your selected skill!");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Rubbing the lamp. ClickItem
|
||||
*
|
||||
* @param c
|
||||
* @param id
|
||||
*/
|
||||
public static void rubLamp(Player c, int id) {
|
||||
c.getPacketSender().sendMessage("You rub the lamp.");
|
||||
c.getPacketSender().showInterface(SKILL_MENU);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
public class Fillables {
|
||||
|
||||
public static boolean canFill(int id, int oid) {
|
||||
return counterpart(id) != -1 && !getObjectName(oid).equals("Error");
|
||||
}
|
||||
|
||||
public static String fillMessage(int id, int oid) {
|
||||
return "You fill the " + getItemName(id) + " from the " + getObjectName(oid) + ".";
|
||||
}
|
||||
|
||||
public static int counterpart(int id) {
|
||||
switch (id) {
|
||||
case 1925: // bucket
|
||||
return 1929;
|
||||
case 1935: // jug
|
||||
return 1937;
|
||||
case 229: // vial
|
||||
return 227;
|
||||
case 1923: // bowl
|
||||
return 1921;
|
||||
case 1980: // cup
|
||||
return 4458;
|
||||
case 5331: // watering can
|
||||
case 5333:
|
||||
case 5334:
|
||||
case 5335:
|
||||
case 5336:
|
||||
case 5337:
|
||||
case 5338:
|
||||
case 5339:
|
||||
return 5340;
|
||||
case 1831: // waterskin
|
||||
case 1825:
|
||||
case 1827:
|
||||
case 1829:
|
||||
return 1823;
|
||||
case 6667:
|
||||
return 6668;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static String getItemName(int id) {
|
||||
switch (id) {
|
||||
case 1925:
|
||||
return "bucket";
|
||||
case 1935:
|
||||
return "jug";
|
||||
case 229:
|
||||
return "vial";
|
||||
case 1923:
|
||||
return "bowl";
|
||||
case 1980:
|
||||
return "cup";
|
||||
case 5331: // watering can
|
||||
case 5333:
|
||||
case 5334:
|
||||
case 5335:
|
||||
case 5336:
|
||||
case 5337:
|
||||
case 5338:
|
||||
case 5339:
|
||||
return "watering can";
|
||||
case 1831:
|
||||
case 1825:
|
||||
case 1827:
|
||||
case 1829:
|
||||
return "waterskin";
|
||||
case 6667:
|
||||
return "fishbowl";
|
||||
}
|
||||
return "There was a problem with your current action, please report this to Mod Andrew.";
|
||||
}
|
||||
|
||||
public static String getObjectName(int id) {
|
||||
switch (id) {
|
||||
case 873:
|
||||
case 874:
|
||||
case 4063:
|
||||
case 6151:
|
||||
case 14917:
|
||||
return "sink";
|
||||
case 14918:
|
||||
return "washbin";
|
||||
case 884:
|
||||
case 878:
|
||||
case 3359:
|
||||
case 3485:
|
||||
case 4004:
|
||||
case 4005:
|
||||
case 5086:
|
||||
case 6097:
|
||||
return "well";
|
||||
case 2654:
|
||||
return "Sinclair Family fountain";
|
||||
case 12809:
|
||||
return "Fairy fountain";
|
||||
case 11661:
|
||||
case 3460:
|
||||
case 6827:
|
||||
return "waterpump";
|
||||
case 879:
|
||||
case 11759:
|
||||
case 153:
|
||||
case 880:
|
||||
case 6232:
|
||||
case 2864:
|
||||
return "fountain";
|
||||
}
|
||||
return "Error";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,185 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import com.rebotted.GameEngine;
|
||||
import com.rebotted.event.CycleEvent;
|
||||
import com.rebotted.event.CycleEventContainer;
|
||||
import com.rebotted.event.CycleEventHandler;
|
||||
import com.rebotted.game.players.Player;
|
||||
import com.rebotted.util.Misc;
|
||||
import com.rebotted.world.clip.Region;
|
||||
|
||||
/**
|
||||
* @author Faris
|
||||
*/
|
||||
|
||||
public class Flowers {
|
||||
|
||||
/**
|
||||
* Constants & boolean checker
|
||||
*/
|
||||
private final int FLOWER_IDS[] = { 2980, 2981, 2982, 2983, 2984, 2985,
|
||||
2986, 2987, 2988 };
|
||||
|
||||
/**
|
||||
* Checks weather user is currently interacting with flower
|
||||
*/
|
||||
public boolean clientFlowering = false;
|
||||
|
||||
/**
|
||||
* Stores temporary variables for each new instance of flower planted
|
||||
*/
|
||||
public static int lastObject;
|
||||
|
||||
/**
|
||||
* algorithm decides which flower to give.
|
||||
*
|
||||
* @param flower
|
||||
* @return
|
||||
*/
|
||||
private static int flowerDecoder(final int flower) {
|
||||
int modifier = flower - 2980;
|
||||
return modifier + 2460;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor creates the place flower event
|
||||
*
|
||||
* @param c
|
||||
*/
|
||||
public Flowers(final Player c) {
|
||||
if (c.checkBusy()) {
|
||||
return;
|
||||
}
|
||||
c.setBusy(true);
|
||||
executeAction(c);
|
||||
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
|
||||
@Override
|
||||
public void execute(CycleEventContainer container) {
|
||||
c.setBusy(false);
|
||||
container.stop();
|
||||
}
|
||||
@Override
|
||||
public void stop() {
|
||||
|
||||
}
|
||||
}, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Main block, Spawns the object & starts animation. Moves player to the
|
||||
* side Clipped
|
||||
*
|
||||
* @param c
|
||||
*/
|
||||
private void executeAction(final Player c) {
|
||||
final int newFlower = getRandom();
|
||||
final int[] coords = new int[2];
|
||||
coords[0] = c.absX;
|
||||
coords[1] = c.absY;
|
||||
updateConstants(newFlower, c);
|
||||
GameEngine.objectHandler.createAnObject(c, newFlower, coords[0], coords[1],
|
||||
1);
|
||||
deleteSeeds(c);
|
||||
sendOptions(c);
|
||||
clientFlowering = true;
|
||||
moveOneStep(c);
|
||||
c.turnPlayerTo(coords[0], coords[1]);
|
||||
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
|
||||
@Override
|
||||
public void execute(CycleEventContainer container) {
|
||||
GameEngine.objectHandler.createAnObject(c, -1, coords[0], coords[1], 1);
|
||||
c.getPacketSender().sendMessage( "Your flower is no longer flourishing.");
|
||||
container.stop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
|
||||
}
|
||||
|
||||
}, 10);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles movement direction.
|
||||
*
|
||||
* @param c
|
||||
*/
|
||||
private static void moveOneStep(Player c) {
|
||||
if (Region.getClipping(c.getX() - 1, c.getY(), c.heightLevel, -1, 0)) {
|
||||
c.getPlayerAssistant().walkTo(-1, 0);
|
||||
} else if (Region.getClipping(c.getX() + 1, c.getY(), c.heightLevel, 1,
|
||||
0)) {
|
||||
c.getPlayerAssistant().walkTo(1, 0);
|
||||
} else if (Region.getClipping(c.getX(), c.getY() - 1, c.heightLevel, 0,
|
||||
-1)) {
|
||||
c.getPlayerAssistant().walkTo(0, -1);
|
||||
} else if (Region.getClipping(c.getX(), c.getY() + 1, c.heightLevel, 0,
|
||||
1)) {
|
||||
c.getPlayerAssistant().walkTo(0, 1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Selects a random flower ID
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
private int getRandom() {
|
||||
return FLOWER_IDS[Misc.random(FLOWER_IDS.length - 1)];
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the client an option to handle flowers
|
||||
*
|
||||
* @param c
|
||||
*/
|
||||
private void sendOptions(Player c) {
|
||||
c.getDialogueHandler().sendOption2("Leave Flowers", "Harvest Flowers");
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the seeds from invent
|
||||
*
|
||||
* @param c
|
||||
*/
|
||||
private static void deleteSeeds(Player c) {
|
||||
c.getItemAssistant().deleteItem(299, 1);
|
||||
}
|
||||
|
||||
private void updateConstants(int objectType, Player c) {
|
||||
lastObject = objectType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Method harvests flower from ground
|
||||
*
|
||||
* @param player
|
||||
* @param object
|
||||
* @param oX
|
||||
* @param oY
|
||||
*/
|
||||
public static void harvestFlower(Player player, int object) {
|
||||
player.getItemAssistant().addItem(flowerDecoder(object), 1);
|
||||
player.getPacketSender().sendMessage("You receive a random flower.");
|
||||
player.startAnimation(827);
|
||||
// c.getPA().checkObjectSpawn(c,-1, c.getX()+1, c.getY(), 1, 10);
|
||||
// c.getPA().object(c,-1, c.getX()+1, c.getY(), 1, 10);
|
||||
GameEngine.objectHandler.createAnObject(player, -1, player.getX() + 1, player.getY(), 1);
|
||||
player.turnPlayerTo(player.getX() + 1, player.getY());
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the option action
|
||||
*
|
||||
* @param option
|
||||
*/
|
||||
public void handleOptions(int option, Player c) {
|
||||
if (option == 0) {
|
||||
return;
|
||||
} else {
|
||||
harvestFlower(c, lastObject);
|
||||
}
|
||||
clientFlowering = false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import com.rebotted.game.content.music.sound.SoundList;
|
||||
import com.rebotted.game.items.ItemAssistant;
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
/**
|
||||
* @author Genesis
|
||||
*/
|
||||
|
||||
public class HandleEmpty {
|
||||
|
||||
public static boolean canEmpty(Player c, int id) {
|
||||
return filledToEmpty(c, id) != -1;
|
||||
}
|
||||
|
||||
public static int filledToEmpty(Player c, int id) {
|
||||
String itemName = ItemAssistant.getItemName(id);
|
||||
if (!itemName.contains("Ring") && !itemName.contains("necklace")) {
|
||||
if (itemName.contains("(3)") || itemName.contains("(4)") || itemName.contains("(2)") || itemName.contains("(1)") || itemName.contains("Weapon poison")) {
|
||||
if (id != 1712 && id != 1710 && id != 1708 && id != 1706) {
|
||||
c.getItemAssistant().deleteItem(id, c.getItemAssistant().getItemSlot(id), 1);
|
||||
c.getItemAssistant().addItem(229, 1);
|
||||
c.getPacketSender().sendMessage("You empty the vial.");
|
||||
}
|
||||
}
|
||||
}
|
||||
switch (id) {
|
||||
case 1937: // Jugs
|
||||
case 1989:
|
||||
case 1991:
|
||||
case 1993:
|
||||
case 3729:
|
||||
return 1935;
|
||||
case 227: // Vial of Water
|
||||
return 229;
|
||||
case 1927: // Buckets
|
||||
case 1929:
|
||||
return 1925;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static void handleEmptyItem(Player c, int itemId, int giveItem) {
|
||||
final String name = ItemAssistant.getItemName(itemId);
|
||||
c.getPacketSender().sendMessage("You empty your " + name + ".");
|
||||
c.getItemAssistant().deleteItem(itemId, 1);
|
||||
c.getItemAssistant().addItem(giveItem, 1);
|
||||
c.getPacketSender().sendSound(SoundList.EMPTY, 100, 0);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
/**
|
||||
* Lightsources
|
||||
* @author Andrew (Mr Extremez)
|
||||
*/
|
||||
|
||||
public class LightSources {
|
||||
|
||||
public static void saveBrightness(Player player) {
|
||||
if (player.brightness == 1) {
|
||||
brightness1(player);
|
||||
} else if (player.brightness == 2) {
|
||||
brightness2(player);
|
||||
} else if (player.brightness == 4) {
|
||||
brightness4(player);
|
||||
} else {
|
||||
brightness3(player);
|
||||
}
|
||||
}
|
||||
|
||||
public static void brightness1(Player player) {
|
||||
player.getPacketSender().sendConfig(505, 1);
|
||||
player.getPacketSender().sendConfig(506, 0);
|
||||
player.getPacketSender().sendConfig(507, 0);
|
||||
player.getPacketSender().sendConfig(508, 0);
|
||||
player.getPacketSender().sendConfig(166, 1);
|
||||
player.brightness = 1;
|
||||
}
|
||||
|
||||
public static void brightness2(Player player) {
|
||||
player.getPacketSender().sendConfig(505, 0);
|
||||
player.getPacketSender().sendConfig(506, 1);
|
||||
player.getPacketSender().sendConfig(507, 0);
|
||||
player.getPacketSender().sendConfig(508, 0);
|
||||
player.getPacketSender().sendConfig(166, 2);
|
||||
player.brightness = 2;
|
||||
}
|
||||
|
||||
public static void brightness3(Player player) {
|
||||
player.getPacketSender().sendConfig(505, 0);
|
||||
player.getPacketSender().sendConfig(506, 0);
|
||||
player.getPacketSender().sendConfig(507, 1);
|
||||
player.getPacketSender().sendConfig(508, 0);
|
||||
player.getPacketSender().sendConfig(166, 3);
|
||||
player.brightness = 3;
|
||||
}
|
||||
|
||||
public static void brightness4(Player player) {
|
||||
player.getPacketSender().sendConfig(505, 0);
|
||||
player.getPacketSender().sendConfig(506, 0);
|
||||
player.getPacketSender().sendConfig(507, 0);
|
||||
player.getPacketSender().sendConfig(508, 1);
|
||||
player.getPacketSender().sendConfig(166, 4);
|
||||
player.brightness = 4;
|
||||
}
|
||||
|
||||
public static void setBrightness(Player c) {
|
||||
if (c.getItemAssistant().playerHasItem(594) || c.getItemAssistant().playerHasItem(32) || c.getItemAssistant().playerHasItem(33)) {
|
||||
brightness2(c);
|
||||
} else if (c.getItemAssistant().playerHasItem(4535) || c.getItemAssistant().playerHasItem(4524)) {
|
||||
brightness3(c);
|
||||
} else if (c.getItemAssistant().playerHasItem(4550)) {
|
||||
brightness4(c);
|
||||
}
|
||||
}
|
||||
|
||||
public static final int[] lightSources = { 594, 32, 33, 4524, 4539, 4550 };
|
||||
|
||||
public static boolean playerHasLightSource(Player client) {
|
||||
for (int lightSource : lightSources) {
|
||||
if (client.getItemAssistant().playerHasItem(lightSource)) {
|
||||
setBrightness(client);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
client.getPacketSender().sendMessage("It's recommended that you get a light source to continue.");
|
||||
brightness1(client);
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import com.rebotted.game.items.ItemAssistant;
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
/**
|
||||
* @author Sanity
|
||||
*/
|
||||
|
||||
public class PotionMixing {
|
||||
|
||||
Player c;
|
||||
|
||||
public PotionMixing(Player player) {
|
||||
this.c = player;
|
||||
}
|
||||
|
||||
public void mixPotion2(int id, int id2) {
|
||||
String id11 = ItemAssistant.getItemName(id);
|
||||
String id22 = ItemAssistant.getItemName(id2);
|
||||
if (id11.substring(0, id11.indexOf("(")).equalsIgnoreCase(
|
||||
id22.substring(0, id22.indexOf("(")))) {
|
||||
try {
|
||||
int amount1 = Integer.parseInt(id11.substring(
|
||||
id11.indexOf("(") + 1, id11.indexOf("(") + 2));
|
||||
int amount2 = Integer.parseInt(id22.substring(
|
||||
id22.indexOf("(") + 1, id22.indexOf("(") + 2));
|
||||
int totalAmount = amount1 + amount2;
|
||||
if (totalAmount > 4) {
|
||||
amount1 = 4;
|
||||
amount2 = totalAmount - 4;
|
||||
String item1 = id11.substring(0, id11.indexOf("(") + 1)
|
||||
+ amount1 + ")";
|
||||
String item2 = id11.substring(0, id11.indexOf("(") + 1)
|
||||
+ amount2 + ")";
|
||||
c.getItemAssistant().deleteItem(id,
|
||||
c.getItemAssistant().getItemSlot(id), 1);
|
||||
c.getItemAssistant().deleteItem(id2,
|
||||
c.getItemAssistant().getItemSlot(id2), 1);
|
||||
c.getItemAssistant().addItem(
|
||||
c.getItemAssistant().getItemId(item1), 1);
|
||||
c.getItemAssistant().addItem(
|
||||
c.getItemAssistant().getItemId(item2), 1);
|
||||
} else {
|
||||
amount1 = totalAmount;
|
||||
String item1 = id11.substring(0, id11.indexOf("(") + 1)
|
||||
+ amount1 + ")";
|
||||
c.getItemAssistant().deleteItem(id,
|
||||
c.getItemAssistant().getItemSlot(id), 1);
|
||||
c.getItemAssistant().deleteItem(id2,
|
||||
c.getItemAssistant().getItemSlot(id2), 1);
|
||||
c.getItemAssistant().addItem(
|
||||
c.getItemAssistant().getItemId(item1), 1);
|
||||
c.getItemAssistant().addItem(229, 1);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private final int[][] potMixing = { { 117, 117, 113, 227 },
|
||||
{ 119, 115, 113, 227 }, { 115, 119, 113, 227 },
|
||||
{ 123, 123, 2428, 227 }, { 121, 125, 2428, 227 },
|
||||
{ 125, 121, 2428, 227 }, { 133, 133, 2432, 227 },
|
||||
{ 133, 137, 2432, 227 }, { 137, 133, 2432, 227 },
|
||||
{ 159, 159, 2440, 227 }, { 157, 161, 2440, 227 },
|
||||
{ 161, 157, 2440, 227 }, { 147, 147, 2436, 227 },
|
||||
{ 149, 145, 2436, 227 }, { 145, 149, 2436, 227 },
|
||||
{ 165, 165, 2442, 227 }, { 163, 167, 2442, 227 },
|
||||
{ 167, 163, 2442, 227 }, { 6689, 6689, 6685, 227 },
|
||||
{ 6687, 6691, 2442, 227 }, { 6691, 6687, 2442, 227 },
|
||||
{ 171, 171, 2444, 227 }, { 169, 173, 2444, 227 },
|
||||
{ 173, 169, 2444, 227 }, { 177, 177, 2446, 227 },
|
||||
{ 179, 175, 2446, 227 }, { 175, 179, 2446, 227 },
|
||||
{ 3028, 3028, 3024, 227 }, { 3030, 3026, 3024, 227 },
|
||||
{ 3026, 3030, 3024, 227 }, { 141, 141, 2434, 227 },
|
||||
{ 139, 143, 2434, 227 }, { 143, 139, 2434, 227 },
|
||||
{ 3044, 3044, 3040, 227 }, { 3042, 3046, 3040, 227 },
|
||||
{ 3046, 3042, 3040, 227 }, { 2456, 2456, 2452, 227 },
|
||||
{ 2454, 2458, 2452, 227 }, { 2458, 2454, 2452, 227 } };
|
||||
|
||||
// use id, use id2, new id1, new id2
|
||||
public void mixPotion(int id, int id2) {
|
||||
for (int[] element : potMixing) {
|
||||
if (element[0] == id && element[1] == id || element[1] == id
|
||||
&& element[0] == id2) {
|
||||
c.getItemAssistant().deleteItem(id,
|
||||
c.getItemAssistant().getItemSlot(id), 1);
|
||||
c.getItemAssistant().deleteItem(id2,
|
||||
c.getItemAssistant().getItemSlot(id2), 1);
|
||||
c.getItemAssistant().addItem(element[2], 1);
|
||||
c.getItemAssistant().addItem(element[3], 1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,75 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
/**
|
||||
* Rare Protection
|
||||
* @author Andrew (Mr Extremez)
|
||||
*/
|
||||
|
||||
public class RareProtection {
|
||||
|
||||
public static final boolean RARES = true, CRACKERS = false;
|
||||
private static final int[] RARE_ITEMS = { 1037, 1038, 1039, 1040, 1041,
|
||||
1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 962, 963, 1959, 1961, 1989 };
|
||||
private static final int[] EDIBLE_RARES = { 1959, 1961, 1989 };
|
||||
|
||||
public static boolean equipItem(Player c) {// check when wearing, removing
|
||||
for (int element : RARE_ITEMS) {
|
||||
if (c.wearId == element && c.playerRights < 3) {
|
||||
c.getPacketSender().sendMessage("You shouldn't have that item!");
|
||||
int amountToDelete = c.getItemAssistant().getItemCount(element);
|
||||
c.getItemAssistant().deleteItem(element, amountToDelete);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean removeItem(Player c, int itemId) {
|
||||
for (int element : RARE_ITEMS) {
|
||||
if (itemId == element && c.playerRights < 3) {
|
||||
c.getPacketSender().sendMessage("You shouldn't have that item!");
|
||||
c.getItemAssistant().deleteEquipment(element, 0);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean hasDupedItem(Player c) {// check on login
|
||||
for (int element : RARE_ITEMS) {
|
||||
if (c.getItemAssistant().playerHasItem(element) && c.playerRights < 3) {
|
||||
c.getPacketSender().sendMessage("You can't have these items!");
|
||||
int amountToDelete = c.getItemAssistant().getItemCount(element);
|
||||
c.getItemAssistant().deleteItem(element, amountToDelete);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean eatDupedItem(Player c, int itemId) {
|
||||
for (int element : EDIBLE_RARES) {
|
||||
if (itemId == element && c.playerRights < 3) {
|
||||
c.getPacketSender().sendMessage("You can't eat that item!");
|
||||
int amountToDelete = c.getItemAssistant().getItemCount(element);
|
||||
c.getItemAssistant().deleteItem(element, amountToDelete);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean doOtherDupe(Player player, int itemId) {
|
||||
for (int element : RARE_ITEMS) {
|
||||
if (player.getItemAssistant().playerHasItem(element) && player.playerRights < 3) {
|
||||
player.getPacketSender().sendMessage("You shouldnt have that item!");
|
||||
int amountToDelete = player.getItemAssistant().getItemCount(element);
|
||||
player.getItemAssistant().deleteItem(element, amountToDelete);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
/**
|
||||
* Teles
|
||||
* @author Andrew (Mr Extremez)
|
||||
*/
|
||||
|
||||
public class Teles {
|
||||
|
||||
public static void useAOG(Player player) {
|
||||
player.getDialogueHandler().sendOption4("Edgeville", "Al Kharid", "Karamja", "Draynor");
|
||||
player.dialogueAction = 51;
|
||||
player.getPacketSender().sendMessage("You rub the Amulet of Glory...");
|
||||
}
|
||||
|
||||
public static void useROD(Player player) {
|
||||
player.getDialogueHandler().sendOption2("Duel Arena", "Castle Wars");
|
||||
player.dialogueAction = 161;
|
||||
player.getPacketSender().sendMessage("You rub the Ring of Dueling...");
|
||||
}
|
||||
|
||||
public static void useGN(Player player) {
|
||||
player.getDialogueHandler().sendOption2("Burthrope Games Room", "Barbarian Outpost");
|
||||
player.dialogueAction = 50;
|
||||
player.getPacketSender().sendMessage("You rub the Games Necklace...");
|
||||
}
|
||||
|
||||
private static final int[][] JEWELERY = {
|
||||
{ 3853, 3855, 7 }, { 3855, 3857, 6 }, { 3857, 3859, 5 }, { 3859, 3861, 4 }, { 3861, 3863, 3 },{ 3863, 3865, 2 }, { 3865, 3867, 1 }, { 3867, 0, 0 }, // gn
|
||||
{ 2552, 2554, 7 }, { 2554, 2556, 6 }, { 2556, 2558, 5 }, { 2558, 2560, 4 }, { 2560, 2562, 3 }, { 2562, 2564, 2 }, { 2564, 2566, 1 }, { 2566, 0, 0 }, // rod
|
||||
{ 1712, 1710, 3 }, { 1710, 1708, 2 }, { 1708, 1706, 1 }, { 1706, 1704, 0 } //aog
|
||||
};
|
||||
|
||||
public static void necklaces(Player player) {
|
||||
for (int[] element : JEWELERY) {
|
||||
if (player.itemUsing == element[0]) {
|
||||
if (player.isOperate) {
|
||||
player.playerEquipment[player.playerAmulet] = element[1];
|
||||
} else {
|
||||
player.getItemAssistant().deleteItem(element[0], 1);
|
||||
player.getItemAssistant().addItem(element[1], 1);
|
||||
}
|
||||
if (element[2] > 1) {
|
||||
player.getPacketSender().sendMessage("You have " + element[2] + " charges left.");
|
||||
} else {
|
||||
player.getPacketSender().sendMessage("You have " + element[2] + " charge left.");
|
||||
}
|
||||
}
|
||||
}
|
||||
player.getItemAssistant().updateSlot(player.playerAmulet);
|
||||
player.isOperate = false;
|
||||
player.itemUsing = -1;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
package com.rebotted.game.items.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import com.rebotted.game.items.ItemAssistant;
|
||||
import com.rebotted.game.players.Player;
|
||||
|
||||
/**
|
||||
* Manages weapon poisoning.
|
||||
* @author Andew added every single weapon to the enum
|
||||
* @author Hybris writing the system
|
||||
*/
|
||||
public class WeaponPoison {
|
||||
|
||||
/**
|
||||
* Represents a weapon that can be poisoned. Stores the initial weapon item
|
||||
* id, the type of poison used on the weapon and the new poisoned weapon
|
||||
* that will be obtained.
|
||||
*/
|
||||
private enum Weapon {
|
||||
BRONZE_DAGGER(1205, new int[][] {{ 5940, 5688 }, { 5937, 5670 }, { 187, 1221 }}),
|
||||
IRON_DAGGER(1203, new int[][] {{ 5940, 5686 }, { 5937, 5668 }, { 187, 1219 }}),
|
||||
STEEL_DAGGER(1207, new int[][] {{ 5940, 5690 }, { 5937, 5672 }, { 187, 1223 }}),
|
||||
BLACK_DAGGER(1217, new int[][] {{ 5940, 5700 }, { 5937, 5682 }, { 187, 1233 }}),
|
||||
MITHRIL_DAGGER(1209, new int[][] {{ 5940, 5692 }, { 5937, 5674 }, { 187, 1225 }}),
|
||||
ADAMANT_DAGGER(1211, new int[][] {{ 5940, 5694 }, { 5937, 5676 }, { 187, 1227 }}),
|
||||
RUNE_DAGGER(1213, new int[][] {{ 5940, 5696 }, { 5937, 5678 }, { 187, 1229 }}),
|
||||
DRAGON_DAGGER(1215, new int[][] {{ 5940, 5698 }, { 5937, 5680 }, { 187, 1231 }}),
|
||||
BRONZE_DART(806, new int[][] {{ 5940, 5635 }, { 5937, 5628 }, { 187, 812 }}),
|
||||
IRON_DART(807, new int[][] {{ 5940, 5636 }, { 5937, 5629 }, { 187, 813 }}),
|
||||
STEEL_DART(808, new int[][] {{ 5940, 5637 }, { 5937, 5630 }, { 187, 814 }}),
|
||||
BLACK_DART(3093, new int[][] {{ 5940, 5638 }, { 5937, 5631 }, { 187, 815 }}),
|
||||
MITHRIL_DART(809, new int[][] {{ 5940, 5639 }, { 5937, 5632 }, { 187, 816 }}),
|
||||
ADAMANT_DART(810, new int[][] {{ 5940, 5640 }, { 5937, 5633 }, { 187, 817 }}),
|
||||
RUNE_DART(811, new int[][] {{ 5940, 5641 }, { 5937, 5634 }, { 187, 818 }}),
|
||||
BRONZE_SPEAR(1237, new int[][] {{ 5940, 5718 }, { 5937, 5704 }, { 187, 1251 }}),
|
||||
IRON_SPEAR(1239, new int[][] {{ 5940, 5720 }, { 5937, 5706 }, { 187, 1253 }}),
|
||||
STEEL_SPEAR(1241, new int[][] {{ 5940, 5722 }, { 5937, 5708 }, { 187, 1255 }}),
|
||||
MITHRIL_SPEAR(1243, new int[][] {{ 5940, 5724 }, { 5937, 5710 }, { 187, 1257 }}),
|
||||
ADAMANT_SPEAR(1245, new int[][] {{ 5940, 5726 }, { 5937, 5712 }, { 187, 1259 }}),
|
||||
RUNE_SPEAR(1247, new int[][] {{ 5940, 5728 }, { 5937, 5714 }, { 187, 1261 }}),
|
||||
DRAGON_SPEAR(1249, new int[][] {{ 5940, 5730 }, { 5937, 5716 }, { 187, 1263 }}),
|
||||
BRONZE_JAVELIN(825, new int[][] { { 5940, 5648 }, { 5937, 5642 }, { 187, 831 }}),
|
||||
IRON_JAVELIN(826, new int[][] { { 5940, 5648 }, { 5937, 5643 }, { 187, 832 }}),
|
||||
STEEL_JAVELIN(827, new int[][] {{ 5940, 5648 }, { 5937, 5644 }, { 187, 833 }}),
|
||||
MITHRIL_JAVELIN(828, new int[][] {{ 5940, 5648 }, { 5937, 5645 }, { 187, 834 }}),
|
||||
ADAMANT_JAVELIN(829, new int[][] {{ 5940, 5648 }, { 5937, 5646 }, { 187, 835 }}),
|
||||
RUNE_JAVELIN(830, new int[][] {{ 5940, 5648 }, { 5937, 5647 }, { 187, 836 }}),
|
||||
BRONZE_ARROW(882, new int[][] {{ 5940, 5622 }, { 5937, 5616 }, { 187, 883 }}),
|
||||
IRON_ARROW(884, new int[][] {{ 5940, 5623 }, { 5937, 5617 }, { 187, 885 }}),
|
||||
STEEL_ARROW(886, new int[][] {{ 5940, 5624 }, { 5937, 5618 }, { 187, 887 }}),
|
||||
MITHRIL_ARROW(888, new int[][] {{ 5940, 5625 }, { 5937, 5619 }, { 187, 889 }}),
|
||||
ADAMANT_ARROW(890, new int[][] {{ 5940, 5626 }, { 5937, 5620 }, { 187, 891 }}),
|
||||
RUNE_ARROW(892, new int[][] {{ 5940, 5627 }, { 5937, 5621 }, { 187, 893 }}),
|
||||
BRONZE_KNIFE(864, new int[][] {{ 5940, 5661 }, { 5937, 5654 }, { 187, 870 }}),
|
||||
IRON_KNIFE(863, new int[][] {{ 5940, 5662 }, { 5937, 5655 }, { 187, 871}}),
|
||||
STEEL_KNIFE(865, new int[][] {{ 5940, 5663 }, { 5937, 5656 }, { 187, 872 }}),
|
||||
BLACK_KNIFE(869, new int[][] {{ 5940, 5665 }, { 5937, 5658 }, { 187, 873 }}),
|
||||
MITHRIL_KNIFE(866, new int[][] {{ 5940, 5664 }, { 5937, 5657 }, { 187, 874 }}),
|
||||
ADAMANT_KNIFE(867, new int[][] {{ 5940, 5666 }, { 5937, 5659 }, { 187, 875 }}),
|
||||
RUNE_KNIFE(868, new int[][] {{ 5940, 5667 }, { 5937, 5660 }, { 187, 876 }});
|
||||
|
||||
/**
|
||||
* Creates the weapon.
|
||||
*
|
||||
* @param itemId
|
||||
* The weapon item id.
|
||||
* @param newItemId
|
||||
* The poisoned weapon item id.
|
||||
*/
|
||||
private Weapon(int itemId, int[][] newItemId) {
|
||||
this.itemId = itemId;
|
||||
this.newItemId = newItemId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the item id.
|
||||
*
|
||||
* @return the itemId
|
||||
*/
|
||||
public int getItemId() {
|
||||
return itemId;
|
||||
}
|
||||
|
||||
/**
|
||||
* The weapon item id.
|
||||
*/
|
||||
private final int itemId;
|
||||
|
||||
/**
|
||||
* The poisoned weapon item id.
|
||||
*/
|
||||
private final int[][] newItemId;
|
||||
|
||||
/**
|
||||
* Represents a map for the weapon item ids.
|
||||
*/
|
||||
public static HashMap<Integer, Weapon> weapon = new HashMap<Integer, Weapon>();
|
||||
|
||||
/**
|
||||
* @return the newItemId
|
||||
*/
|
||||
public int[][] getNewItemId() {
|
||||
return newItemId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Populates a map for the weapons.
|
||||
*/
|
||||
static {
|
||||
for (Weapon w : Weapon.values()) {
|
||||
weapon.put(w.getItemId(), w);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The item id for Vial.
|
||||
*/
|
||||
private final static int VIAL = 229;
|
||||
|
||||
/**
|
||||
* Starts the weapon poison event for each individual weapon item from the
|
||||
* enumeration <code>Weapon</code>.
|
||||
*
|
||||
* @param player
|
||||
* The Player player.
|
||||
* @param itemUse
|
||||
* The first item use.
|
||||
* @param useWith
|
||||
* The second item use.
|
||||
*/
|
||||
public static void execute(final Player player, int itemUse, int useWith) {
|
||||
final Weapon weapon = Weapon.weapon.get(useWith);
|
||||
if (weapon != null) {
|
||||
for (int element[] : weapon.getNewItemId()) {
|
||||
if (itemUse == element[0]) {
|
||||
player.getPacketSender().sendMessage("You make a " + ItemAssistant.getItemName(element[1]) + ".");
|
||||
player.getItemAssistant().deleteItem(element[0], player.getItemAssistant().getItemSlot(element[0]), 1);
|
||||
player.getItemAssistant().deleteItem(weapon.getItemId(), player.getItemAssistant().getItemSlot(weapon.getItemId()), 1);
|
||||
player.getItemAssistant().addItem(VIAL, 1);
|
||||
player.getItemAssistant().addItem(element[1], 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user