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:
Mr Extremez
2019-11-25 11:08:56 -06:00
committed by Daniel Ginovker
parent 3d1ae1b288
commit d876a923b9
379 changed files with 80684 additions and 83170 deletions
@@ -0,0 +1,217 @@
package com.rebotted.game.content.consumables;
import com.rebotted.event.*;
import com.rebotted.game.players.Player;
import com.rebotted.util.Misc;
public class Beverages {
private static final int BEER_GLASS = 1919;
public static enum beverageData {
BEER(1917, BEER_GLASS, 829, true, false, false, false),
BEER1(7740, BEER_GLASS, 829, true, false, false, false),
GROG(1915, BEER_GLASS, 829, true, false, false, false),
BANDITS_BREW(4627, BEER_GLASS, 829, true, false, false, false),
DRAGON_BITTER(1911, BEER_GLASS, 829, true, false, false, false),
CIDER(7752,BEER_GLASS, 829, true, false, false, false),
MATURE_CIDER(5765, BEER_GLASS, 829, true, false, false, false),
MOONLIGHT_MEAD(7750, BEER_GLASS, 829, true, false, false, false),
DWARVEN_STOUT(1913, BEER_GLASS, 829, true, false, false, false),
GREENMANS_ALE(1909, BEER_GLASS, 829, true, false, false, false),
CHEFS_DELIGHT(7754, BEER_GLASS, 829, true, false, false, false),
ASGARNIAN_ALE(1905, BEER_GLASS, 829, true, false, false, false),
WIZARDS_MIND_BOMB(1907, BEER_GLASS, 829, true, false, false, false);
private int bevId, replacement, bevAnim;
private boolean effect1, effect2, effect3, effect4;
private beverageData(final int bevId, final int replacement,
final int bevAnim, final boolean effect1,
final boolean effect2, final boolean effect3,
final boolean effect4) {
this.bevId = bevId;
this.replacement = replacement;
this.bevAnim = bevAnim;
this.effect1 = effect1;
this.effect2 = effect2;
this.effect3 = effect3;
this.effect4 = effect4;
}
public int getBev() {
return bevId;
}
public int getRep() {
return replacement;
}
public int getAnim() {
return bevAnim;
}
public boolean getEffect1() {
return effect1;
}
public boolean getEffect2() {
return effect2;
}
public boolean getEffect3() {
return effect3;
}
public boolean getEffect4() {
return effect4;
}
private final String getName() {
return Misc.optimizeText(toString().toLowerCase().replaceAll("_", " "));
}
}
public static boolean isBeverage(Player c, int beverageId) {
boolean isBeverage = false;
for (final beverageData b : beverageData.values()) {
if (beverageId == b.getBev()) {
isBeverage = true;
}
}
return isBeverage;
}
private static int drunkTimer = 0;
private static void resetDrunk(Player c) {
c.playerStandIndex = 0x328;
c.updateRequired = true;
c.appearanceUpdateRequired = true;
drunkTimer = -1;
}
private static void getBevEffect(final Player c, int bevEffectId) {
switch (bevEffectId) {
case 1:
c.playerStandIndex = 3040;
c.getPacketSender().sendMessage("You start to feel dizzy.");
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
if (c.disconnected) {
container.stop();
return;
}
if (drunkTimer > 0) {
drunkTimer--;
}
if (drunkTimer == 0) {
container.stop();
}
}
public void stop() {
resetDrunk(c);
}
}, 1);
break;
default:
break;
}
c.updateRequired = true;
c.appearanceUpdateRequired = true;
}
public static void foodEffect(Player c, int id) {
switch (id) {
case 1917:
case 7740://beer
double beerEffectStrength = c.getLevelForXP(c.playerXP[2]) * .04 + c.getLevelForXP(c.playerXP[2]);
double beerEffectAttack = c.getLevelForXP(c.playerXP[0]) * .07;
if (c.playerLevel[2] < beerEffectStrength) {
c.playerLevel[2] = (int) beerEffectStrength;
}
if (c.playerLevel[0] > 0) {
c.playerLevel[0] -= beerEffectAttack;
}
if (c.playerLevel[0] <= 0) {
c.playerLevel[0] = 1;
}
c.getPlayerAssistant().refreshSkill(0);
c.getPlayerAssistant().refreshSkill(2);
break;
case 1913: //dwarven stout
c.playerLevel[c.playerMining] = c.getPlayerAssistant().getLevelForXP(c.playerXP[c.playerMining]) + 1;
c.playerLevel[c.playerSmithing] = c.getPlayerAssistant().getLevelForXP(c.playerXP[c.playerSmithing]) + 1;
c.getPlayerAssistant().refreshSkill(c.playerMining);
c.getPlayerAssistant().refreshSkill(c.playerSmithing);
break;
case 1907://wizard's mind bomb
if (c.playerLevel[c.playerMagic] < 50) {
c.playerLevel[c.playerMagic] = c.getPlayerAssistant().getLevelForXP(c.playerXP[c.playerMagic]) + 2;
} else {
c.playerLevel[c.playerMagic] = c.getPlayerAssistant().getLevelForXP(c.playerXP[c.playerMagic]) + 3;
}
c.playerLevel[c.playerStrength] = c.getPlayerAssistant().getLevelForXP(c.playerXP[c.playerStrength]) - 3;
c.playerLevel[c.playerDefence] = c.getPlayerAssistant().getLevelForXP(c.playerXP[c.playerDefence]) - 3;
c.playerLevel[c.playerAttack] = c.getPlayerAssistant().getLevelForXP(c.playerXP[c.playerAttack]) - 4;
c.getPlayerAssistant().refreshSkill(c.playerDefence);
c.getPlayerAssistant().refreshSkill(c.playerMagic);
c.getPlayerAssistant().refreshSkill(c.playerAttack);
c.getPlayerAssistant().refreshSkill(c.playerStrength);
break;
case 1915://grog
c.playerLevel[2] = c.getPlayerAssistant().getLevelForXP(c.playerXP[2]) + 3;
if (c.playerLevel[0] > 0) {
c.playerLevel[0] = c.getPlayerAssistant().getLevelForXP(c.playerXP[0]) - 2;
}
if (c.playerLevel[0] <= 0) {
c.playerLevel[0] = 1;
}
c.getPlayerAssistant().refreshSkill(0);
c.getPlayerAssistant().refreshSkill(2);
break;
}
}
public static void drinkBeverage(final Player player, final int beverageId, int slotId) {
for (final beverageData b : beverageData.values()) {
if (beverageId == b.getBev()) {
if (System.currentTimeMillis() - player.potDelay >= 1500) {
if (player.getItemAssistant().playerHasItem(beverageId)) {
if (b.getEffect1()) {
drunkTimer = 30;
getBevEffect(player, 1);
}
if (b.getEffect2()) {
drunkTimer = 45;
getBevEffect(player, 2);
}
if (b.getEffect3()) {
drunkTimer = 60;
getBevEffect(player, 3);
}
if (b.getEffect4()) {
drunkTimer = 75;
getBevEffect(player, 4);
}
foodEffect(player, beverageId);
player.potDelay = System.currentTimeMillis();
player.foodDelay = player.potDelay;
player.getCombatAssistant().resetPlayerAttack();
player.attackTimer++;
player.startAnimation(b.getAnim());
player.getItemAssistant().resetItems(3214);
player.potDelay = System.currentTimeMillis();
player.getItemAssistant().deleteItem(beverageId, slotId, 1);
player.getItemAssistant().addItem(b.getRep(), 1);
player.forcedChat("Cheers mate!");
player.getPacketSender().sendMessage("You drink the " + b.getName() + ".");
}
}
}
}
}
}
@@ -0,0 +1,254 @@
package com.rebotted.game.content.consumables;
import java.util.HashMap;
import com.rebotted.game.content.music.sound.SoundList;
import com.rebotted.game.items.impl.RareProtection;
import com.rebotted.game.players.Client;
import com.rebotted.game.players.Player;
import com.rebotted.util.Misc;
public class Food {
private final Player c;
public Food(Player player) {
this.c = player;
}
public static enum FoodToEat {
Easter_Egg(1961, 12, "Easter Egg", 0, "Food", false), Pumpkin(1959, 14,
"Pumpkin", 0, "Food", false), Half_Jug_of_Wine(1989, 7,
"Half Full Wine Jug", 1935, "Drink", false),
//GROG(1915, 3, "Grog", 1919, "Drink", true),
CUP_OF_TEA(1978, 2 + Misc.random(1), "Cup of Tea", 1980, "Drink", true), CUP_OF_TEA2(
712, 2 + Misc.random(1), "Cup of Tea", 1980, "Drink", true),
//WIZARD_MIND(1907, 0, "Wizard Mind Bomb", 0, "Drink", true),
LEMON(2102, 2,"Lemon", 0, "Food", false), LIME(2120, 2, "Lime", 0, "Food",
false), PINEAPPLE(2114, 2, "Pineapple", 0, "Food", false), CHOCOLATE_BAR(
1973, 2, "Chocolate Bar", 0, "Food", false), Wine(1993, 11,
"Wine", 1935, "Drink", false), MACKERAL(355, 6, "Mackeral", 0,
"Food", false), MANTA(391, 22, "Manta Ray", 0, "Food", false), SHARK(
385, 20, "Shark", 0, "Food", false), LOBSTER(379, 12,
"Lobster", 0, "Food", false), KARAMBWAN(3144, 2 + Misc.random(4), "Karambwan", 0, "Food", false),
//BEER(1917, 1, "Beer", 1919, "Drink", true),
//GREENMANS_ALE(1909, 1, "Greenman's Ale", 1919, "Drink", true),
TROUT(333, 7, "Trout",
0, "Food", false), SALMON(329, 9, "Salmon", 0, "Food", false), SWORDFISH(
373, 14, "Swordfish", 0, "Food", false), TUNA(361, 10, "Tuna",
0, "Food", false),
//MOONLIGHT_MEAD(2955, 4, "Moonlight mead", 1919, "Drink", false),
MONKFISH(7946, 16, "Monkfish", 0,
"Food", false), SEA_TURTLE(397, 21, "Sea Turtle", 0, "Food",
false), CABBAGE(1965, 1, "Cabbage", 0, "Food", false), SPINACH(
1969, 2, "Spinach Roll", 0, "Food", false), CAKE(1891, 4,
"Cake", 1893, "Food", false), CAKE2(1893, 4, "2/3 Cake", 1895,
"Food", false), SLICE_OF_CAKE(1895, 4, "2/3 Cake", 0, "Food",
false), BASS(365, 13, "Bass", 0, "Food", false), COD(339, 7,
"Cod", 0, "Food", false), POTATO(1942, 1, "Potato", 0, "Food",
false), BAKED_POTATO(6701, 4, "Baked Potato", 0, "Food", false), POTATO_WITH_CHEESE(
6705, 16, "Potato with Cheese", 0, "Food", false), EGG_POTATO(
7056, 16, "Egg Potato", 0, "Food", false), CHILLI_POTATO(7054,
14, "Chilli Potato", 0, "Food", false), MUSHROOM_POTATO(7058,
20, "Mushroom Potato", 0, "Food", false), TUNA_POTATO(7060, 22,
"Tuna Potato", 0, "Food", false), SHRIMPS(315, 3, "Shrimps", 0,
"Food", false), HERRING(347, 5, "Herring", 0, "Food", false), SARDINE(
325, 4, "Sardine", 0, "Food", false), CHOCOLATE_CAKE(1897, 5,
"Chocolate Cake", 1899, "Food", false), HALF_CHOCOLATE_CAKE(
1899, 5, "2/3 Chocolate Cake", 1901, "Food", false), CHOCOLATE_SLICE(
1901, 5, "Chocolate Slice", 0, "Food", false), ANCHOVIES(319,
2, "Anchovies", 0, "Food", false), PLAIN_PIZZA(2289, 7,
"Plain Pizza", 2291, "Food", false), HALF_PLAIN_PIZZA(2291, 7,
"1/2 Plain pizza", 0, "Food", false), MEAT_PIZZA(2293, 8,
"Meat Pizza", 2295, "Food", false), CHICKEN(2140, 3, "Chicken",
0, "Food", false), MEAT(2142, 2, "Meat", 0, "Food", false), HALF_MEAT_PIZZA(
2295, 8, "1/2 Meat Pizza", 0, "Food", false), ANCHOVY_PIZZA(
2297, 9, "Anchovy Pizza", 2299, "Food", false), HALF_ANCHOVY_PIZZA(
2299, 9, "1/2 Anchovy Pizza", 0, "Food", false), PINEAPPLE_PIZZA(
2301, 11, "Pineapple Pizza", 2303, "Food", false), HALF_PINEAPPLE_PIZZA(
2303, 11, "1/2 Pineapple Pizza", 0, "Food", false), BREAD(2309,
5, "Bread", 0, "Food", false), APPLE_PIE(2323, 7, "Apple Pie",
2335, "Food", false), HALF_APPLE_PIE(2335, 7, "Half Apple Pie",
2313, "Food", false), REDBERRY_PIE(2325, 5, "Redberry Pie",
2333, "Food", false), HALF_REDBERRY_PIE(2333, 5,
"Half Redberry Pie", 2313, "Food", false), Ugthanki_kebab(1883,
2, "Ugthanki kebab", 0, "Food", false),
// Kebab(1971, 2, "kebab", 0, "food", false),
SEAWEED(403, 4, "Edible Seaweed", 0, "Food", false),
MEAT_PIE(2327, 6, "Meat Pie", 2331, "Food", false), HALF_MEAT_PIE(2331,
6, "Half Meat Pie", 2313, "Food", false), SUMMER_PIE(7218, 11,
"Summer Pie", 7220, "Food", false), HALF_SUMMER_PIE(7220, 11,
"Half Summer Pie", 2313, "Food", false), PIKE(351, 8, "Pike",
0, "Food", false), POTATO_WITH_BUTTER(6703, 14,
"Potato with Butter", 0, "Food", false),
SLICED_BANANA(3162, 2, "Sliced Banana", 0, "Food", false),
BANANA(1963, 2, "Banana", 0, "Food", false), PEACH(6883, 8, "Peach", 0, "Food",
false), ORANGE(2108, 2, "Orange", 0, "Food", false), PINEAPPLE_RINGS(
2118, 2, "Pineapple Rings", 0, "Food", false), PINEAPPLE_CHUNKS(
2116, 2, "Pineapple Chunks", 0, "Food", false), EASTER_EGG(
7928, 1, "Easter Egg", 0, "Food", false), EASTER_EGG2(7929, 1,
"Easter Egg", 0, "Food", false), EASTER_EGG3(7930, 1,
"Easter Egg", 0, "Food", false), EASTER_EGG4(7931, 1,
"Easter Egg", 0, "Food", false), EASTER_EGG5(7932, 1,
"Easter Egg", 0, "Food", false), EASTER_EGG6(7933, 1,
"Easter Egg", 0, "Food", false), PURPLE_SWEETS(10476, 9,
"Purple Sweets", 0, "Food", false), POT_OF_CREAM(2130, 1,
"Pot of cream", 0, "Food", false),
FILED_RATION(7934, 9, "Field Ration", 0, "Food", false),
STEW(2003, 11, "Stew", 1923, "Food", false),
CURRY(2011, 19, "Curry", 1923, "Drink", false),
BANDAGES(4049, 3, "Bandages", 0, "Food", false);
private int id;
private int heal;
private String name;
private int replace;
private String type;
private boolean foodEffect;
private FoodToEat(int id, int heal, String name, int replaceWith,
String type, boolean foodEffect) {
this.id = id;
this.heal = heal;
this.name = name;
replace = replaceWith;
this.type = type;
this.foodEffect = foodEffect;
}
private boolean hasEffect() {
return foodEffect;
}
private int getId() {
return id;
}
private String getType() {
return type;
}
private int getHeal() {
return heal;
}
public String getName() {
return name;
}
public int replaceWith() {
return replace;
}
public static HashMap<Integer, FoodToEat> food = new HashMap<Integer, FoodToEat>();
static {
for (FoodToEat f : FoodToEat.values()) {
food.put(f.getId(), f);
}
}
}
public int random(int r) {
return Misc.random(r);
}
public void eat(int id, int slot) {
if (c.isDead || c.playerLevel[3] <= 0) {
return;
}
if (c.duelRule[6]) {
c.getPacketSender()
.sendMessage("You may not eat in this duel.");
return;
}
if (!RareProtection.eatDupedItem(c, id)) {
return;
}
if (System.currentTimeMillis() - c.foodDelay >= 1800
&& c.playerLevel[3] > 0) {
c.getCombatAssistant().resetPlayerAttack();
c.attackTimer += 2;
c.startAnimation(829);
c.getItemAssistant().deleteItem(id, slot, 1);
FoodToEat f = FoodToEat.food.get(id);
if (f.hasEffect()) {
foodEffect(id);
}
if (f.replaceWith() > 0) {
c.getItemAssistant().addItem(f.replaceWith(), 1);
}
if (f.getType().equalsIgnoreCase("Food")) {
c.getPacketSender().sendMessage(
"You eat the " + f.getName() + ".");
} else if (f.getType().equalsIgnoreCase("Drink")) {
c.getPacketSender().sendMessage(
"You drink the " + f.getName() + ".");
}
if (id == 1965) {
c.getPacketSender().sendMessage(
"You eat the cabbage. Yuck!");
}
if (id == 2955) {
c.getPacketSender().sendMessage("It tastes like something just died in your mouth.");
}
if (f.getType().equalsIgnoreCase("Food")) {
c.getPacketSender().sendSound(SoundList.FOOD_EAT, 100, 0);
} else if (f.getType().equalsIgnoreCase("Drink")) {
c.getPacketSender().sendSound(SoundList.DRINK, 100, 0);
}
c.foodDelay = System.currentTimeMillis();
if (c.playerLevel[3] < c.getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] += f.getHeal();
c.getPacketSender().sendMessage("It heals some health.");
if (c.playerLevel[3] > c.getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] = c.getLevelForXP(c.playerXP[3]);
}
}
c.getPlayerAssistant().refreshSkill(3);
}
}
public void foodEffect(int id) {
switch (id) {
case 1978:
case 712:
c.forcedChat("Aaah, nothing like a nice cuppa tea!");
break;
case 1907:
if (c.playerLevel[6] < 50) {
c.playerLevel[6] = c.getPlayerAssistant().getLevelForXP(
c.playerXP[6]) + 2;
} else {
c.playerLevel[6] = c.getPlayerAssistant().getLevelForXP(
c.playerXP[6]) + 3;
}
if (c.playerLevel[2] < 4) {
c.playerLevel[2] = 1;
}
if (c.playerLevel[0] < 5) {
c.playerLevel[0] = 1;
} else {
c.playerLevel[0] = c.getPlayerAssistant().getLevelForXP(c.playerXP[0]) - 4;
}
if (c.playerLevel[1] < 4) {
c.playerLevel[1] = 1;
} else {
c.playerLevel[1] = c.getPlayerAssistant().getLevelForXP(c.playerXP[1]) - 3;
}
if (c.playerLevel[2] < 4) {
c.playerLevel[2] = 1;
} else {
c.playerLevel[2] = c.getPlayerAssistant().getLevelForXP(c.playerXP[2]) - 3;
}
c.getPlayerAssistant().refreshSkill(0);
c.getPlayerAssistant().refreshSkill(1);
c.getPlayerAssistant().refreshSkill(2);
c.getPlayerAssistant().refreshSkill(6);
break;
}
}
public boolean isFood(int id) {
return FoodToEat.food.containsKey(id);
}
}
@@ -0,0 +1,136 @@
package com.rebotted.game.content.consumables;
import com.rebotted.game.players.Player;
import com.rebotted.util.Misc;
/**
* @author darkside1222
*/
public class Kebabs {
public static int Kebab = 1971;
float chances = 0.0f;
/**
* Chances(Percents)
*/
public static float chances(String effect) {
float chances = 0.0f;// PERCENT
if (effect.equalsIgnoreCase("Effect1")) {// Nothing
chances = 8.7f;
} else if (effect.equalsIgnoreCase("Effect2")) {// normal heal
chances = 61.2f;
} else if (effect.equalsIgnoreCase("Effect3")) {// better heal
chances = 21.1f;
} else if (effect.equalsIgnoreCase("Effect4")) {// SUPER heal
chances = 3.6f;
} else if (effect.equalsIgnoreCase("Effect5")) {// Damages you.
chances = 6.3f - 0.9f;
;
} else {
chances = Float.parseFloat(effect);
}
return chances; // Equals 100%
}
/**
* Different effects(Healing,lowering,damaging)
*/
public static void effects(Player c) {
float eff1 = chances("effect1");
float eff2 = chances("effect2");
float eff3 = chances("effect3");
float eff4 = chances("effect4");
float eff5 = chances("effect5");
if (Misc.random(100.0f) <= eff1) { // 8.71%
c.getPacketSender().sendMessage(
"That kebab didn't seem to do a lot.");
} else if (Misc.random(100.0f) <= eff2) { // 61.24% heals 10% of HP
c.getPacketSender()
.sendMessage("It restores some life points.");
if (c.playerLevel[3] < c.getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] += c.getLevelForXP(c.playerXP[3]) * 0.10;
if (c.playerLevel[3] > c.getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] = c.getLevelForXP(c.playerXP[3]);
}
}
} else if (Misc.random(100.0f) <= eff3) { // 21.12% + 10-20 HP
c.getPacketSender().sendMessage(
"That was a good kebab. You feel a lot better. ");
if (c.playerLevel[3] < c.getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] += Misc.random(20);
if (c.playerLevel[3] > c.getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] = c.getLevelForXP(c.playerXP[3]);
}
}
} else if (Misc.random(100.0f) <= eff4) {// 3.65% + attk,str,def +
// 2-3 + heal 0-300
c.getPacketSender()
.sendMessage(
"Wow, that was an amazing kebab! You feel really invigorated.");
c.playerLevel[1] += 2 + Misc.random(1); // def
c.playerLevel[2] += 2 + Misc.random(1); // str
c.playerLevel[0] += 2 + Misc.random(1); // atk
c.getPlayerAssistant().refreshSkill(1);
c.getPlayerAssistant().refreshSkill(2);
c.getPlayerAssistant().refreshSkill(3);
if (c.playerLevel[3] < c.getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] += Misc.random(30);
if (c.playerLevel[3] > c.getLevelForXP(c.playerXP[3])) {
c.playerLevel[3] = c.getLevelForXP(c.playerXP[3]);
}
}
} else if (Misc.random(100.0f) <= eff5) {// 6.3%. lower STAT
c.getPacketSender().sendMessage(
"That tasted very dodgy. You feel very ill.");
c.getPacketSender().sendMessage(
"Eating the kebab has done damage to some of your stats.");
for (int j = 0; j < 2; j++) {
c.playerLevel[j] -= 2; // Fix this l0l
c.getPlayerAssistant().refreshSkill(j);
}
}
}
/**
* Eatting the kebab
*/
public static void eat(Player player, int slot) {
if (System.currentTimeMillis() - player.foodDelay >= 1500
&& player.playerLevel[3] > 0) {
if (player.playerLevel[3] == player.getLevelForXP(player.playerXP[3])) { // If
// full
// health,
// does
// nothing
// but
// eat.
player.getCombatAssistant().resetPlayerAttack();
player.getPacketSender().sendMessage("You eat the kebab.");
player.attackTimer += 2;
player.startAnimation(829);
player.getItemAssistant().deleteItem(Kebab, slot, 1);
player.getPacketSender().sendSound(317, 100, 0);
player.foodDelay = System.currentTimeMillis();
player.getPlayerAssistant().refreshSkill(3);
return;
}
player.getCombatAssistant().resetPlayerAttack();
player.getPacketSender().sendMessage("You eat the kebab.");
effects(player);
player.attackTimer += 2;
player.startAnimation(829);
player.getItemAssistant().deleteItem(Kebab, slot, 1);
player.getPacketSender().sendSound(317, 100, 0);
player.foodDelay = System.currentTimeMillis();
player.getPlayerAssistant().refreshSkill(3);
}
}
}
@@ -0,0 +1,473 @@
package com.rebotted.game.content.consumables;
import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.items.Item;
import com.rebotted.game.items.ItemAssistant;
import com.rebotted.game.players.Player;
public class Potions {
private final Player c;
public Potions(Player player) {
this.c = player;
}
public void handlePotion(int itemId, int slot) {
if (c.duelRule[5]) {
c.getPacketSender().sendMessage(
"You may not drink potions in this duel.");
return;
}
if (c.isDead || c.playerLevel[3] <= 0) {
return;
}
if (System.currentTimeMillis() - c.potDelay >= 1200) {
c.potDelay = System.currentTimeMillis();
c.foodDelay = System.currentTimeMillis();
c.getCombatAssistant().resetPlayerAttack();
c.attackTimer++;
c.getPacketSender().sendMessage(
"You drink some of your " + Item.getItemName(itemId) + ".");
c.startAnimation(829);
final String item = Item.getItemName(itemId);
String m = "";
if (item.endsWith("(4)")) {
m = "You have 3 doses of potion left.";
} else if (item.endsWith("(3)")) {
m = "You have 2 doses of potion left.";
} else if (item.endsWith("(2)")) {
m = "You have 1 dose of potion left.";
} else if (item.endsWith("(1)")) {
m = "You have finished your potion.";
}
final String m1 = m;
CycleEventHandler.getSingleton().addEvent(c, new CycleEvent() {
@Override
public void execute(CycleEventContainer container) {
c.getPacketSender().sendMessage(m1);
container.stop();
}
@Override
public void stop() {
}
}, 1);
switch (itemId) {
case 3040:
drinkStatPotion(itemId, 3042, slot, 6, false);
break;
case 3042:
drinkStatPotion(itemId, 3044, slot, 6, false);
break;
case 3044:
drinkStatPotion(itemId, 3046, slot, 6, false);
break;
case 3046:
drinkStatPotion(itemId, 229, slot, 6, false);
break;
case 2450:
doTheBrewzam(itemId, 189, slot);
break;
case 189:
doTheBrewzam(itemId, 191, slot);
break;
case 191:
doTheBrewzam(itemId, 193, slot);
break;
case 193:
doTheBrewzam(itemId, 229, slot);
break;
case 6685: // brews
doTheBrew(itemId, 6687, slot);
break;
case 6687:
doTheBrew(itemId, 6689, slot);
break;
case 6689:
doTheBrew(itemId, 6691, slot);
break;
case 6691:
doTheBrew(itemId, 229, slot);
break;
case 2436:
drinkStatPotion(itemId, 145, slot, 0, true); // sup attack
break;
case 145:
drinkStatPotion(itemId, 147, slot, 0, true);
break;
case 147:
drinkStatPotion(itemId, 149, slot, 0, true);
break;
case 149:
drinkStatPotion(itemId, 229, slot, 0, true);
break;
case 2440:
drinkStatPotion(itemId, 157, slot, 2, true); // sup str
break;
case 157:
drinkStatPotion(itemId, 159, slot, 2, true);
break;
case 159:
drinkStatPotion(itemId, 161, slot, 2, true);
break;
case 161:
drinkStatPotion(itemId, 229, slot, 2, true);
break;
case 2444:
drinkStatPotion(itemId, 169, slot, 4, false); // range pot
break;
case 169:
drinkStatPotion(itemId, 171, slot, 4, false);
break;
case 171:
drinkStatPotion(itemId, 173, slot, 4, false);
break;
case 173:
drinkStatPotion(itemId, 229, slot, 4, false);
break;
case 2432:
drinkStatPotion(itemId, 133, slot, 1, false); // def pot
break;
case 133:
drinkStatPotion(itemId, 135, slot, 1, false);
break;
case 135:
drinkStatPotion(itemId, 137, slot, 1, false);
break;
case 137:
drinkStatPotion(itemId, 229, slot, 1, false);
break;
case 113:
drinkStatPotion(itemId, 115, slot, 2, false); // str pot
break;
case 115:
drinkStatPotion(itemId, 117, slot, 2, false);
break;
case 117:
drinkStatPotion(itemId, 119, slot, 2, false);
break;
case 119:
drinkStatPotion(itemId, 229, slot, 2, false);
break;
case 2428:
drinkStatPotion(itemId, 121, slot, 0, false); // attack
// pot
break;
case 121:
drinkStatPotion(itemId, 123, slot, 0, false);
break;
case 123:
drinkStatPotion(itemId, 125, slot, 0, false);
break;
case 125:
drinkStatPotion(itemId, 229, slot, 0, false);
break;
case 2442:
drinkStatPotion(itemId, 163, slot, 1, true); // super def
// pot
break;
case 163:
drinkStatPotion(itemId, 165, slot, 1, true);
break;
case 165:
drinkStatPotion(itemId, 167, slot, 1, true);
break;
case 167:
drinkStatPotion(itemId, 229, slot, 1, true);
break;
case 3024:
drinkPrayerPot(itemId, 3026, slot, true); // sup restore
break;
case 3026:
drinkPrayerPot(itemId, 3028, slot, true);
break;
case 3028:
drinkPrayerPot(itemId, 3030, slot, true);
break;
case 3030:
drinkPrayerPot(itemId, 229, slot, true);
break;
case 10925:
drinkPrayerPot(itemId, 10927, slot, true); // sanfew
// serums
curePoison(300000);
break;
case 10927:
drinkPrayerPot(itemId, 10929, slot, true);
curePoison(300000);
break;
case 10929:
drinkPrayerPot(itemId, 10931, slot, true);
curePoison(300000);
break;
case 10931:
drinkPrayerPot(itemId, 229, slot, true);
curePoison(300000);
break;
case 2434:
drinkPrayerPot(itemId, 139, slot, false); // pray pot
break;
case 139:
drinkPrayerPot(itemId, 141, slot, false);
break;
case 141:
drinkPrayerPot(itemId, 143, slot, false);
break;
case 143:
drinkPrayerPot(itemId, 229, slot, false);
break;
case 2446:
drinkAntiPoison(itemId, 175, slot, 30000); // anti poisons
break;
case 175:
drinkAntiPoison(itemId, 177, slot, 30000);
break;
case 177:
drinkAntiPoison(itemId, 179, slot, 30000);
break;
case 179:
drinkAntiPoison(itemId, 229, slot, 30000);
break;
case 2448:
drinkAntiPoison(itemId, 181, slot, 300000); // anti
// poisons
break;
case 181:
drinkAntiPoison(itemId, 183, slot, 300000);
break;
case 183:
drinkAntiPoison(itemId, 185, slot, 300000);
break;
case 185:
drinkAntiPoison(itemId, 229, slot, 300000);
break;
/** Energy Potions **/
case 3008:
energyPotion(itemId, 3010, slot);
break;
case 3010:
energyPotion(itemId, 3012, slot);
break;
case 3012:
energyPotion(itemId, 3014, slot);
break;
case 3014:
energyPotion(itemId, 229, slot);
break;
/** Super Energy Potions **/
case 3016:
energyPotion(itemId, 3018, slot);
break;
case 3018:
energyPotion(itemId, 3020, slot);
break;
case 3020:
energyPotion(itemId, 3022, slot);
break;
case 3022:
energyPotion(itemId, 229, slot);
break;
case 2452:
antifirePot(itemId, 2454, slot);
break;
case 2454:
antifirePot(itemId, 2456, slot);
break;
case 2456:
antifirePot(itemId, 2458, slot);
break;
case 2458:
antifirePot(itemId, 229, slot);
break;
}
}
}
private void energyPotion(int itemId, int replaceItem, int slot) {
c.playerItems[slot] = replaceItem + 1;
c.getItemAssistant().resetItems(3214);
if (itemId >= 3008 && itemId <= 3014) {
c.playerEnergy += 20;
} else {
c.playerEnergy += 40;
}
if (c.playerEnergy > 100) {
c.playerEnergy = 100;
}
c.getPacketSender().sendFrame126((int) Math.ceil(c.playerEnergy) + "%", 149);
}
public void drinkAntiPoison(int itemId, int replaceItem, int slot,
long delay) {
// c.startAnimation(829);
c.playerItems[slot] = replaceItem + 1;
c.getItemAssistant().resetItems(3214);
curePoison(delay);
}
public void curePoison(long delay) {
c.poisonDamage = 0;
c.poisonImmune = delay;
c.lastPoisonSip = System.currentTimeMillis();
}
public void drinkStatPotion(int itemId, int replaceItem, int slot,
int stat, boolean sup) {
// c.startAnimation(829);
c.playerItems[slot] = replaceItem + 1;
c.getItemAssistant().resetItems(3214);
enchanceStat(stat, sup);
}
public void drinkPrayerPot(int itemId, int replaceItem, int slot,
boolean rest) {
// c.startAnimation(829);
c.playerItems[slot] = replaceItem + 1;
c.getItemAssistant().resetItems(3214);
c.playerLevel[5] += c.getLevelForXP(c.playerXP[5]) * .33;
if (rest) {
c.playerLevel[5] += 1;
}
if (c.playerLevel[5] > c.getLevelForXP(c.playerXP[5])) {
c.playerLevel[5] = c.getLevelForXP(c.playerXP[5]);
}
c.getPlayerAssistant().refreshSkill(5);
if (rest) {
restoreStats();
}
}
public void restoreStats() {
for (int j = 0; j <= 6; j++) {
if (j == 5 || j == 3) {
continue;
}
if (c.playerLevel[j] < c.getLevelForXP(c.playerXP[j])) {
c.playerLevel[j] += c.getLevelForXP(c.playerXP[j]) * .33;
if (c.playerLevel[j] > c.getLevelForXP(c.playerXP[j])) {
c.playerLevel[j] = c.getLevelForXP(c.playerXP[j]);
}
c.getPlayerAssistant().refreshSkill(j);
c.getPacketSender().setSkillLevel(j, c.playerLevel[j],
c.playerXP[j]);
}
}
}
public void doTheBrewzam(int itemId, int replaceItem, int slot) {
// c.startAnimation(829);
c.playerItems[slot] = replaceItem + 1;
c.getItemAssistant().resetItems(3214);
int[] toDecrease = { 1, 3 };
for (int tD : toDecrease) {
c.playerLevel[tD] -= getBrewStat(tD, .10);
if (c.playerLevel[tD] < 0) {
c.playerLevel[tD] = 1;
}
c.getPlayerAssistant().refreshSkill(tD);
c.getPacketSender().setSkillLevel(tD, c.playerLevel[tD],
c.playerXP[tD]);
}
c.playerLevel[0] += getBrewStat(0, .20);
if (c.playerLevel[0] > c.getLevelForXP(c.playerXP[0]) * 1.2 + 1) {
c.playerLevel[0] = (int) (c.getLevelForXP(c.playerXP[0]) * 1.2);
}
c.playerLevel[2] += getBrewStat(2, .12);
if (c.playerLevel[2] > c.getLevelForXP(c.playerXP[2]) * 1.2 + 1) {
c.playerLevel[2] = (int) (c.getLevelForXP(c.playerXP[2]) * 1.2);
}
c.playerLevel[5] += getBrewStat(5, .10);
if (c.playerLevel[5] > c.getLevelForXP(c.playerXP[5]) * 1.2 + 1) {
c.playerLevel[5] = (int) (c.getLevelForXP(c.playerXP[5]) * 1.2);
}
c.getPlayerAssistant().refreshSkill(0);
c.getPlayerAssistant().refreshSkill(2);
c.getPlayerAssistant().refreshSkill(5);
c.hitUpdateRequired = true;
c.hitDiff = 9;
}
public void doTheBrew(int itemId, int replaceItem, int slot) {
if (c.duelRule[6]) {
c.getPacketSender()
.sendMessage("You may not eat in this duel.");
return;
}
// c.startAnimation(829);
c.playerItems[slot] = replaceItem + 1;
c.getItemAssistant().resetItems(3214);
int[] toDecrease = { 0, 2, 4, 6 };
for (int tD : toDecrease) {
c.playerLevel[tD] -= getBrewStat(tD, .10);
if (c.playerLevel[tD] < 0) {
c.playerLevel[tD] = 1;
}
c.getPlayerAssistant().refreshSkill(tD);
c.getPacketSender().setSkillLevel(tD, c.playerLevel[tD],
c.playerXP[tD]);
}
c.playerLevel[1] += getBrewStat(1, .20);
if (c.playerLevel[1] > c.getLevelForXP(c.playerXP[1]) * 1.2 + 1) {
c.playerLevel[1] = (int) (c.getLevelForXP(c.playerXP[1]) * 1.2);
}
c.getPlayerAssistant().refreshSkill(1);
c.playerLevel[3] += getBrewStat(3, .15);
if (c.playerLevel[3] > c.getLevelForXP(c.playerXP[3]) * 1.17 + 1) {
c.playerLevel[3] = (int) (c.getLevelForXP(c.playerXP[3]) * 1.17);
}
c.getPlayerAssistant().refreshSkill(3);
}
public void enchanceStat(int skillID, boolean sup) {
c.playerLevel[skillID] += getBoostedStat(skillID, sup);
c.getPlayerAssistant().refreshSkill(skillID);
}
public void antifirePot(int itemId, int replaceItem, int slot) {
c.startAnimation(829);
c.playerItems[slot] = replaceItem + 1;
c.antiFirePot = true;
c.antiFirePotion();
c.getPacketSender().sendMessage(
"Your immunity against dragon fire has been increased.");
c.getItemAssistant().resetItems(3214);
}
public int getBrewStat(int skill, double amount) {
return (int) (c.getLevelForXP(c.playerXP[skill]) * amount);
}
public int getBoostedStat(int skill, boolean sup) {
int increaseBy;
if (sup) {
increaseBy = (int) (c.getLevelForXP(c.playerXP[skill]) * .20);
} else {
increaseBy = (int) (c.getLevelForXP(c.playerXP[skill]) * .13) + 1;
}
if (c.playerLevel[skill] + increaseBy > c
.getLevelForXP(c.playerXP[skill]) + increaseBy + 1) {
return c.getLevelForXP(c.playerXP[skill]) + increaseBy
- c.playerLevel[skill];
}
return increaseBy;
}
public boolean isPotion(int itemId) {
String name = ItemAssistant.getItemName(itemId);
return name.contains("(4)") || name.contains("(3)")
|| name.contains("(2)") || name.contains("(1)");
}
public boolean potionNames(int itemId) {
String name = ItemAssistant.getItemName(itemId);
return name.endsWith("potion(4)") || name.endsWith("potion(3)")
|| name.endsWith("potion(2)") || name.endsWith("potion(1)")
|| name.contains("saradomin brew")
|| name.contains("zamorak brew");
}
}