diff --git a/2006Redone Server/src/redone/game/content/skills/slayer/Slayer.java b/2006Redone Server/src/redone/game/content/skills/slayer/Slayer.java index dfbb0a01..2aa029c4 100644 --- a/2006Redone Server/src/redone/game/content/skills/slayer/Slayer.java +++ b/2006Redone Server/src/redone/game/content/skills/slayer/Slayer.java @@ -8,10 +8,17 @@ import redone.util.Misc; public class Slayer { - public static final int VERY_EASY_TASK = 0, EASY_TASK = 1, MEDIUM_TASK = 2, - HARD_TASK = 3, VERY_HARD_TASK = 4, VERY_EASY_AMOUNT = 15 + r(25), - EASY_AMOUNT = 25 + r(25), MEDIUM_AMOUNT = 50 + r(25), - HARD_AMOUNT = 100 + r(50), VERY_HARD_AMOUNT = 130 + r(70), + public static final int + VERY_EASY_TASK = 0, + EASY_TASK = 1, + MEDIUM_TASK = 2, + HARD_TASK = 3, + VERY_HARD_TASK = 4, + VERY_EASY_AMOUNT = 15 + r(25), + EASY_AMOUNT = 25 + r(25), + MEDIUM_AMOUNT = 50 + r(25), + HARD_AMOUNT = 100 + r(50), + VERY_HARD_AMOUNT = 130 + r(70), DRAGON_AMOUNT = 10 + r(40); public static ArrayList veryEasyTask = new ArrayList(); @@ -27,18 +34,19 @@ public class Slayer { } public enum SlayerMasters { - TURAEL(70, 1, "Taverly", "Turael"), MAZCHNA(1596, 20, "Canifis", - "Mazchna"), VANNAKA(1597, 40, "Edgeville", "Vannaka"), CHAELDAR( - 1598, 70, "Zanaris", "Chaeldar"), DURADEL(1599, 100, - "Shilo Village", "Duradel"); + TURAEL(70, 1, VERY_EASY_TASK,"Taverly", "Turael"), + MAZCHNA(1596, 20, EASY_TASK, "Canifis", "Mazchna"), + VANNAKA(1597, 40, MEDIUM_TASK, "Edgeville", "Vannaka"), + CHAELDAR(1598, 70, HARD_TASK, "Zanaris", "Chaeldar"), + DURADEL(1599, 100, VERY_HARD_TASK, "Shilo Village", "Duradel"); - private int masterId, combatReq; + private int masterId, combatReq, diffuculty; private String masterLocation, masterName; - private SlayerMasters(int masterId, int combatReq, - String masterLocation, String masterName) { + private SlayerMasters(int masterId, int combatReq, int diffuculty, String masterLocation, String masterName) { this.masterId = masterId; this.combatReq = combatReq; + this.diffuculty = diffuculty; this.masterLocation = masterLocation; this.masterName = masterName; } @@ -59,13 +67,17 @@ public class Slayer { return masterName; } + public int getDifficulty() { + return diffuculty; + } + } //dark beast, red dragon, skeleton public enum Task { ABERRANT_SPECTRE(1604, 60, 90, 3, "Slayer Tower"), ABYSSAL_DEMON(1615, 85, 150, 4, "Slayer Tower"), - BANSHEE(1612, 15, 22, 0 + r(2), "Slayer Tower"), + BANSHEE(1612, 15, 22, 0 + r(1), "Slayer Tower"), BASILISK(1616, 40, 75, 2, "Fremennik Slayer Dungeon"), BAT(412, 1, 8, 1, "Road to Paterdomus"), BLACK_DEMON(84, 1, 157, 3, "Taverly Dungeon"), @@ -74,10 +86,10 @@ public class Slayer { BLUE_DRAGON(55, 1, 107, 3, "Taverly Dungeon"), BRONZE_DRAGON(1590, 1, 125, 3, "Brimhaven Dungeon"), CAVE_CRAWLER(1600, 10, 22, 1, "Fremennik Slayer Dungeon"), - COCKATRICE(1620, 25, 37, 2, "Fremennik Slayer Dungeon"), + COCKATRICE(1620, 25, 37, 2, "Fremennik Slayer Dungeon"), CRAWLING_HAND(1648, 5, 16 + r(3), 1 + r(1), "Slayer Tower"), DAGANNOTH_74(1338, 1, 70 + r(50), 3, "Lighthouse Basement"), - DAGANNOTH_92(1342, 1, 70 + r(50), 3, "Lighthouse Basement"), + DAGANNOTH_92(1342, 1, 80 + r(50), 3, "Lighthouse Basement"), DARK_BEAST(2783, 90, 180, 4, "Slayer Tower"), DUST_DEVIL(1624, 65, 105, 2, "Slayer Tower"), EARTH_WARRIOR(124, 1, 54, 2, "Edgeville Dungeon"), @@ -92,7 +104,7 @@ public class Slayer { ICE_WARRIOR(125, 1, 59, 2, "Asgarnian Ice Caves or the Wilderness"), SKELETAL_WYVERN(3068, 72, 210, 4, "Asgarnian Ice Caves"), INFERNAL_MAGE(1643, 45, 60, 2, "Slayer Tower"), - IRON_DRAGON(1591, 1, (int) 173.2, 4, "Brimhaven Dungeon"), + IRON_DRAGON(1591, 1, 174, 4, "Brimhaven Dungeon"), JELLY(1637, 52, 75, 2, "Fremennik Slayer Dungeon"), KALPHITE_WORKER(1156, 1, 40, 1 + r(1), "Kalphite Lair"), KALPHITE_SOLDIER(1154, 1, 90, 3, "Kalphite Lair"), @@ -103,12 +115,12 @@ public class Slayer { NECHRYAELS(1613, 80, 1, 3, "Slayer Tower"), PYREFIEND(1633, 30, 1, 1, "Fremennik Slayer Dungeon"), RED_DRAGON(53, 1, 120, 3, "Brimhaven Dungeon"), - ROCKSLUG(1622, 20, 27, 1, "Fremennik Slayer Dungeon"), - SKELETON(90, 1, 30, 0 + r(2), "Edgeville Dungeon or Taverly Dungeon"), + ROCKSLUG(1622, 20, 27, 1, "Fremennik Slayer Dungeon"), + SKELETON(90, 1, 30, 0 + r(2), "Edgeville Dungeon or Taverly Dungeon"), KARAMAJA_SKELETON(91, 1, 30, 0 + r(2), "Karamaja"), - WILDERNESS_SKELETON(92, 1, 30, 0 + r(2), "Wilderness"), - STEEL_DRAGON(1592, 1, 221, 4, "Brimhaven Dungeon"), - GRIZZLY_BEAR(105, 1, 27, 0, "Goblin Village"), + WILDERNESS_SKELETON(92, 1, 30, 0 + r(2), "Wilderness"), + STEEL_DRAGON(1592, 1, 221, 4, "Brimhaven Dungeon"), + BEAR(105, 1, 27, 0, "Goblin Village"), GREEN_GOBLIN(298, 1, 6, 0, "Goblin Village"), RED_GOBLIN(299, 1, 6, 0, "Goblin Village"), SCORPION(107, 1, 17, 0, "Goblin Village"), @@ -122,7 +134,7 @@ public class Slayer { this.exp = exp; this.levelReq = levelReq; this.location = location; - diff = difficulty; + this.diff = difficulty; } public int getNpcId() { @@ -198,13 +210,11 @@ public class Slayer { } } - public boolean getMasterRequirment(int id) { + public static boolean getMasterRequirment(Client c, int id) { for (SlayerMasters slayermasters : SlayerMasters.values()) { if (c.combatLevel < slayermasters.getCombatRequirement() && slayermasters.getId() == id) { - c.getActionSender().sendMessage( - "You need " + slayermasters.getCombatRequirement() - + " combat to use this slayer master."); + c.getActionSender().sendMessage("You need " + slayermasters.getCombatRequirement() + " combat to use this slayer master."); return false; } } @@ -309,8 +319,7 @@ public class Slayer { public void generateTask() { if (hasTask() && !c.needsNewTask) { - c.getDialogueHandler().sendDialogues(1226, c.npcType);// already have - // task + c.getDialogueHandler().sendDialogues(1226, c.npcType);// already have task return; } if (hasTask() && c.needsNewTask) {// assigning new task @@ -331,7 +340,7 @@ public class Slayer { */ } } - int taskLevel = getSlayerDifficulty(); + int taskLevel = getSlayerDifficulty(c); // System.out.println("EASY :" + easyTask + "\nMEDIUM: " + mediumTask+ // "\nHARD: " + hardTask + ""); for (Task slayerTask : Task.values()) { @@ -342,8 +351,7 @@ public class Slayer { int task = getRandomTask(taskLevel); for (int removedTask : c.removedTasks) { if (task == removedTask) { - c.getActionSender().sendMessage( - "Unavailable task: " + task); + c.getActionSender().sendMessage("Unavailable task: " + task); generateTask(); return; } @@ -354,8 +362,7 @@ public class Slayer { int task = getRandomTask(getDifficulty(taskLevel - 1)); for (int removedTask : c.removedTasks) { if (task == removedTask) { - c.getActionSender().sendMessage( - "Unavailable task: " + task); + c.getActionSender().sendMessage("Unavailable task: " + task); generateTask(); return; } @@ -364,12 +371,8 @@ public class Slayer { c.taskAmount = getTaskAmount(getDifficulty(c.slayerTask) - 1); c.needsNewTask = false; } - c.getDialogueHandler().sendDialogues(1237, c.npcType);// assign - // task - c.getActionSender().sendMessage( - "You have been assigned " + c.taskAmount + " " - + getTaskName(c.slayerTask) - + ", good luck " + c.playerName + "."); + c.getDialogueHandler().sendDialogues(1237, c.npcType);// assign task + c.getActionSender().sendMessage("You have been assigned " + c.taskAmount + " " + getTaskName(c.slayerTask) + ", good luck " + c.playerName + "."); return; } } @@ -392,18 +395,11 @@ public class Slayer { return EASY_AMOUNT; } - public int getSlayerDifficulty() { - if (c.combatLevel > 0 && c.combatLevel < 20) { - return VERY_EASY_TASK; - } else if (c.combatLevel >= 20 && c.combatLevel < 40) { - return EASY_TASK; - } else if (c.combatLevel >= 40 && c.combatLevel < 70) { - return MEDIUM_TASK; - } else if (c.combatLevel >= 70 && c.combatLevel < 100) { - return HARD_TASK; - } else if (c.combatLevel >= 100) { - return VERY_HARD_TASK; - } + public int getSlayerDifficulty(Client c) { + for(SlayerMasters master : SlayerMasters.values()){ + if (master.getId() == c.SlayerMaster) + return master.getDifficulty(); + } return EASY_TASK; } @@ -424,16 +420,13 @@ public class Slayer { public void handleInterface(String shop) { if (shop.equalsIgnoreCase("buy")) { - c.getPlayerAssistant().sendFrame126( - "Slayer Points: " + c.slayerPoints, 41011); + c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, 41011); c.getPlayerAssistant().showInterface(41000); } else if (shop.equalsIgnoreCase("learn")) { - c.getPlayerAssistant().sendFrame126( - "Slayer Points: " + c.slayerPoints, 41511); + c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, 41511); c.getPlayerAssistant().showInterface(41500); } else if (shop.equalsIgnoreCase("assignment")) { - c.getPlayerAssistant().sendFrame126( - "Slayer Points: " + c.slayerPoints, 42011); + c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, 42011); updateCurrentlyRemoved(); c.getPlayerAssistant().showInterface(42000); } @@ -441,24 +434,18 @@ public class Slayer { public void cancelTask() { if (!hasTask()) { - c.getActionSender().sendMessage( - "You must have a task to cancel first."); + c.getActionSender().sendMessage("You must have a task to cancel first."); return; } if (c.slayerPoints < 30) { - c.getActionSender() - .sendMessage( - "This requires atleast 30 slayer points, which you don't have."); - c.getDialogueHandler() - .sendNpcChat1( - "This requires atleast 30 slayer points, which you don't have.", - c.npcType, NpcHandler.getNpcListName(c.talkingNpc)); + c.getActionSender().sendMessage("This requires atleast 30 slayer points, which you don't have."); + c.getDialogueHandler().sendNpcChat1("This requires atleast 30 slayer points, which you don't have.", + c.npcType, + NpcHandler.getNpcListName(c.talkingNpc)); c.nextChat = 0; return; } - c.getActionSender().sendMessage( - "You have cancelled your current task of " + c.taskAmount + " " - + getTaskName(c.slayerTask) + "."); + c.getActionSender().sendMessage("You have cancelled your current task of " + c.taskAmount + " " + getTaskName(c.slayerTask) + "."); c.slayerTask = -1; c.taskAmount = 0; c.slayerPoints -= 30; @@ -467,18 +454,14 @@ public class Slayer { public void removeTask() { int counter = 0; if (!hasTask()) { - c.getActionSender().sendMessage( - "You must have a task to remove first."); + c.getActionSender().sendMessage("You must have a task to remove first."); return; } if (c.slayerPoints < 100) { - c.getActionSender() - .sendMessage( - "This requires atleast 100 slayer points, which you don't have."); - c.getDialogueHandler() - .sendNpcChat1( - "This requires atleast 100 slayer points, which you don't have.", - c.npcType, NpcHandler.getNpcListName(c.talkingNpc)); + c.getActionSender().sendMessage("This requires atleast 100 slayer points, which you don't have."); + c.getDialogueHandler().sendNpcChat1("This requires atleast 100 slayer points, which you don't have.", + c.npcType, + NpcHandler.getNpcListName(c.talkingNpc)); c.nextChat = 0; return; } @@ -487,8 +470,7 @@ public class Slayer { counter++; } if (counter == 4) { - c.getActionSender().sendMessage( - "You don't have any open slots left to remove tasks."); + c.getActionSender().sendMessage("You don't have any open slots left to remove tasks."); return; } if (c.removedTasks[i] == -1) { @@ -496,9 +478,7 @@ public class Slayer { c.slayerPoints -= 100; c.slayerTask = -1; c.taskAmount = 0; - c.getActionSender() - .sendMessage( - "Your current slayer task has been removed, you can't obtain this task again."); + c.getActionSender().sendMessage("Your current slayer task has been removed, you can't obtain this task again."); updateCurrentlyRemoved(); return; } @@ -506,12 +486,9 @@ public class Slayer { } public void updatePoints() { - c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, - 41011); - c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, - 41511); - c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, - 42011); + c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, 41011); + c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, 41511); + c.getPlayerAssistant().sendFrame126("Slayer Points: " + c.slayerPoints, 42011); } public void updateCurrentlyRemoved() { @@ -531,17 +508,13 @@ public class Slayer { return; } if (c.slayerPoints < 50) { - c.getActionSender() - .sendMessage( - "You need at least 50 slayer points to gain 32,500 Experience."); + c.getActionSender().sendMessage( "You need at least 50 slayer points to gain 32,500 Experience."); return; } c.buySlayerTimer = System.currentTimeMillis(); c.slayerPoints -= 50; - c.getPlayerAssistant().addSkillXP(16250, 18); - c.getActionSender() - .sendMessage( - "You spend 50 slayer points and gain 16,250 experience in slayer."); + c.getPlayerAssistant().addSkillXP(32500, 18); + c.getActionSender().sendMessage("You spend 50 slayer points and gain 32,500 experience in slayer."); updatePoints(); } @@ -550,23 +523,19 @@ public class Slayer { return; } if (c.slayerPoints < 35) { - c.getActionSender().sendMessage( - "You need at least 35 slayer points to buy Slayer darts."); + c.getActionSender().sendMessage("You need at least 35 slayer points to buy Slayer darts."); return; } if (c.getItemAssistant().freeSlots() < 2 && !c.getItemAssistant().playerHasItem(560) && !c.getItemAssistant().playerHasItem(558)) { - c.getActionSender().sendMessage( - "You need at least 2 free lots to purchase this."); + c.getActionSender().sendMessage("You need at least 2 free lots to purchase this."); return; } c.buySlayerTimer = System.currentTimeMillis(); c.slayerPoints -= 35; - c.getActionSender() - .sendMessage( - "You spend 35 slayer points and aquire 250 casts of Slayer darts."); + c.getActionSender().sendMessage("You spend 35 slayer points and aquire 250 casts of Slayer darts."); c.getItemAssistant().addItem(558, 1000); c.getItemAssistant().addItem(560, 250); updatePoints(); @@ -577,20 +546,17 @@ public class Slayer { return; } if (c.slayerPoints < 25) { - c.getActionSender().sendMessage( - "You need at least 25 slayer points to buy Broad arrows."); + c.getActionSender().sendMessage("You need at least 25 slayer points to buy Broad arrows."); return; } if (c.getItemAssistant().freeSlots() < 1 && !c.getItemAssistant().playerHasItem(4160)) { - c.getActionSender().sendMessage( - "You need at least 1 free lot to purchase this."); + c.getActionSender().sendMessage("You need at least 1 free lot to purchase this."); return; } c.buySlayerTimer = System.currentTimeMillis(); c.slayerPoints -= 25; - c.getActionSender().sendMessage( - "You spend 35 slayer points and aquire 250 Broad arrows."); + c.getActionSender().sendMessage("You spend 35 slayer points and aquire 250 Broad arrows."); c.getItemAssistant().addItem(4160, 250); updatePoints(); } @@ -600,16 +566,12 @@ public class Slayer { return; } if (c.slayerPoints < 25) { - c.getActionSender() - .sendMessage( - "You need at least 25 slayer points to buy Slayer's respite."); + c.getActionSender().sendMessage("You need at least 25 slayer points to buy Slayer's respite."); return; } c.buySlayerTimer = System.currentTimeMillis(); c.slayerPoints -= 25; - c.getActionSender() - .sendMessage( - "You spend 25 slayer points and aquire a useful Slayer's respite."); + c.getActionSender().sendMessage("You spend 25 slayer points and aquire a useful Slayer's respite."); c.getItemAssistant().addItem(5841, 1); updatePoints(); } diff --git a/2006Redone Server/src/redone/game/dialogues/DialogueHandler.java b/2006Redone Server/src/redone/game/dialogues/DialogueHandler.java index 7d97e264..591e50cb 100644 --- a/2006Redone Server/src/redone/game/dialogues/DialogueHandler.java +++ b/2006Redone Server/src/redone/game/dialogues/DialogueHandler.java @@ -6,6 +6,7 @@ import redone.game.content.quests.QuestRewards; import redone.game.content.randomevents.FreakyForester; import redone.game.content.randomevents.RandomEventHandler; import redone.game.content.skills.SkillHandler; +import redone.game.content.skills.slayer.Slayer; import redone.game.content.traveling.Sailing; import redone.game.globalworldobjects.PassDoor; import redone.game.items.ItemAssistant; @@ -4221,6 +4222,7 @@ public class DialogueHandler { sendNpcChat1("Hummph.", player.talkingNpc, "Saniboch"); player.nextChat = 0; break; + // Slayer masters case 1226: sendNpcChat2("You already have a slayer task", "please finish it talk to me again.", player.talkingNpc, @@ -4235,10 +4237,13 @@ public class DialogueHandler { player.nextChat = 0; break; case 1228: - sendNpcChat1("'Ello and what are you after then?", - player.talkingNpc, - NpcHandler.getNpcListName(player.talkingNpc)); - player.nextChat = 1229; + if (!Slayer.getMasterRequirment(player, player.talkingNpc)) { + sendNpcChat1("Increase your combat level then come back.", player.talkingNpc, NpcHandler.getNpcListName(player.talkingNpc)); + player.nextChat = 0; + } else { + sendNpcChat1("'Ello and what are you after then?", player.talkingNpc, NpcHandler.getNpcListName(player.talkingNpc)); + player.nextChat = 1229; + } break; case 1229: sendOption4("I need another assignement.", @@ -4267,14 +4272,11 @@ public class DialogueHandler { break; case 1235: if (player.getSlayer().hasTask()) { - sendNpcChat1("Your Slayer Task is located at " - + player.getSlayer().getLocation(player.slayerTask) - + ".", player.talkingNpc, - NpcHandler.getNpcListName(player.talkingNpc)); + sendNpcChat1("Your Slayer Task is located at " + player.getSlayer().getLocation(player.slayerTask) + ".", player.talkingNpc, NpcHandler.getNpcListName(player.talkingNpc)); player.nextChat = 0; } else { sendNpcChat2("You don't have a slayer task", - "if you wish to get one talk to a slayer mask.", + "if you wish to get one talk to a slayer master.", player.talkingNpc, NpcHandler.getNpcListName(player.talkingNpc)); player.nextChat = 0; @@ -4285,9 +4287,9 @@ public class DialogueHandler { player.nextChat = 0; break; case 1237: - sendNpcChat2("You have been assigned " + player.taskAmount + " " - + player.getSlayer().getTaskName(player.slayerTask) + ",", - "Good luck " + player.playerName + ".", player.talkingNpc, + sendNpcChat2("You have been assigned " + player.taskAmount + " " + player.getSlayer().getTaskName(player.slayerTask) + ",", + "Good luck " + player.playerName + ".", + player.talkingNpc, NpcHandler.getNpcListName(player.talkingNpc)); player.nextChat = 0; break;