From de4f67832b2ed7a3a7e582828134e96efa572308 Mon Sep 17 00:00:00 2001 From: randy Date: Sun, 10 Nov 2024 18:45:01 -0700 Subject: [PATCH] Changed crystal equipment to recharge with rune arrows and kiteshields instead of coins New Crystal Bows require 3600 rune arrows, recharging requires 3000. New Shields cost 24 Rune Kite shields, recharging requires 20. --- .../quest/rovingelves/IslwynDialogue.java | 62 ++++++++++++------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/Server/src/main/content/region/tirranwn/quest/rovingelves/IslwynDialogue.java b/Server/src/main/content/region/tirranwn/quest/rovingelves/IslwynDialogue.java index b24862a1f..e1bcd2184 100644 --- a/Server/src/main/content/region/tirranwn/quest/rovingelves/IslwynDialogue.java +++ b/Server/src/main/content/region/tirranwn/quest/rovingelves/IslwynDialogue.java @@ -235,7 +235,7 @@ public class IslwynDialogue extends DialoguePlugin { case 33: switch (buttonId) { case 1: - interpreter.sendDialogues(1680, FacialExpression.HALF_GUILTY, "Ah, very well.", "I will sell you a new bow or shield for 900,000 coins."); + interpreter.sendDialogues(1680, FacialExpression.HALF_GUILTY, "Ah, very well.", "I will make you a new bow from 3,600 Rune Arrows", "or a shield from 24 Rune Kiteshields."); stage = 37; break; case 2: @@ -245,7 +245,7 @@ public class IslwynDialogue extends DialoguePlugin { } break; case 34: - interpreter.sendOptions("Select an Option", "Recharge seed into bow", "Recharge seed into shield"); + interpreter.sendOptions("Select an Option", "Recharge seed into bow with 3000 Rune Arrows", "Recharge seed into shield with 20 Rune Kiteshields"); stage = 35; break; case 35: @@ -266,13 +266,13 @@ public class IslwynDialogue extends DialoguePlugin { stage = 500; } int timesRecharged = player.getAttribute("rovingelves:crystal-equip-recharges", 0); - int price = crystalWeaponPrice(timesRecharged); - if (!player.getInventory().contains(995, price)) { - interpreter.sendDialogue(String.format("You don't have enough coins, you need %d.", price)); + int price = crystalBowPrice(false); + if (!player.getInventory().contains(892, price)) { + interpreter.sendDialogue(String.format("You don't have enough Rune Arrows, you need %d.", price)); stage = 500; } - if (player.getInventory().contains(995, price) && player.getInventory().contains(RovingElves.CRYSTAL_SEED.getId(), 1)) { - if (player.getInventory().remove(RovingElves.CRYSTAL_SEED) && player.getInventory().remove(new Item(995, price))) { + if (player.getInventory().contains(892, price) && player.getInventory().contains(RovingElves.CRYSTAL_SEED.getId(), 1)) { + if (player.getInventory().remove(RovingElves.CRYSTAL_SEED) && player.getInventory().remove(new Item(892, price))) { player.getInventory().add(new Item(4214, 1)); player.incrementAttribute("/save:rovingelves:crystal-equip-recharges", 1); end(); @@ -285,13 +285,13 @@ public class IslwynDialogue extends DialoguePlugin { stage = 500; } timesRecharged = player.getAttribute("rovingelves:crystal-equip-recharges", 0); - price = crystalWeaponPrice(timesRecharged); - if (!player.getInventory().contains(995, price)) { - interpreter.sendDialogue("You don't have enough coins."); + price = crystalShieldPrice(false); + if (!player.getInventory().contains(1201, price)) { + interpreter.sendDialogue(String.format("You don't have enough Rune Kiteshields, you need %d.", price)); stage = 500; } - if (player.getInventory().contains(995, price) && player.getInventory().contains(RovingElves.CRYSTAL_SEED.getId(), 1)) { - if (player.getInventory().remove(RovingElves.CRYSTAL_SEED) && player.getInventory().remove(new Item(995, price))) { + if (player.getInventory().contains(1201, price) && player.getInventory().contains(RovingElves.CRYSTAL_SEED.getId(), 1)) { + if (player.getInventory().remove(RovingElves.CRYSTAL_SEED) && player.getInventory().remove(new Item(1201, price))) { player.getInventory().add(new Item(4225, 1)); player.incrementAttribute("/save:rovingelves:crystal-equip-recharges", 1); end(); @@ -315,13 +315,13 @@ public class IslwynDialogue extends DialoguePlugin { } break; case 39: - price = crystalWeaponPrice(0); - if (!player.getInventory().contains(995, price)) { - interpreter.sendDialogue("You don't have enough coins."); + price = crystalBowPrice(true); + if (!player.getInventory().contains(892, price)) { + interpreter.sendDialogue(String.format("You don't have enough Rune Arrows, you need %d.", price)); stage = 500; } - if (player.getInventory().contains(995, price)) { - if (player.getInventory().remove(new Item(995, price))) { + if (player.getInventory().contains(892, price)) { + if (player.getInventory().remove(new Item(892, price))) { if (!player.getInventory().add(new Item(4212, 1))) { GroundItemManager.create(new Item(4212, 1), player); } @@ -330,13 +330,13 @@ public class IslwynDialogue extends DialoguePlugin { } break; case 40: - price = crystalWeaponPrice(0); - if (!player.getInventory().contains(995, price)) { - interpreter.sendDialogue("You don't have enough coins."); + price = crystalShieldPrice(true); + if (!player.getInventory().contains(1201, price)) { + interpreter.sendDialogue(String.format("You don't have enough Rune Kiteshields, you need %d.", price)); stage = 500; } - if (player.getInventory().contains(995, price)) { - if (player.getInventory().remove(new Item(995, price))) { + if (player.getInventory().contains(1201, price)) { + if (player.getInventory().remove(new Item(1201, price))) { if (!player.getInventory().add(new Item(4224, 1))) { GroundItemManager.create(new Item(4224, 1), player); } @@ -377,7 +377,21 @@ public class IslwynDialogue extends DialoguePlugin { } // 900k for the 0th recharge (or for new bows), decreasing by 180k per recharge down to 180k - public int crystalWeaponPrice(int timesRecharged) { - return Math.max(900000 - 180000 * timesRecharged, 180000); + //public int crystalWeaponPrice(int timesRecharged) { + // return Math.max(900000 - 180000 * timesRecharged, 180000); + //} + public int crystalBowPrice(boolean isNew) { + if (isNew) { + return 3600; + } else { + return 3000; + } + } + public int crystalShieldPrice(boolean isNew) { + if (isNew) { + return 24; + } else { + return 20; + } } }