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.
This commit is contained in:
randy 2024-11-10 18:45:01 -07:00
parent d21452a8bf
commit de4f67832b

View file

@ -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;
}
}
}