More mage training arena (#509)

* Fixup points display

* Only allow players to deposit up to 12k at one time

* Apple damage and play animation

* Update order or prices

* Update Telekinetic.java
This commit is contained in:
Danial
2021-10-06 14:22:42 +13:00
committed by GitHub
parent 2d8ae82086
commit ab3b1e9731
4 changed files with 33 additions and 16 deletions
@@ -13,7 +13,8 @@ import com.rs2.world.Boundary;
public class Alchemy {
private Player player;
private Player player;
private boolean warned = false;
public Alchemy(Player c) {
this.player = c;
@@ -41,7 +42,7 @@ public class Alchemy {
}
// Item not found, player trying to alch a different item
if (index < 0) {
player.getPacketSender().sendMessage("You cannot alch that item while here.");
player.getPacketSender().sendMessage("@red@You cannot alch that item while here.");
return;
}
// Check player has requirements for this spell
@@ -65,12 +66,25 @@ public class Alchemy {
}
player.getPacketSender().sendShowTab(6);
player.getPlayerAssistant().refreshSkill(6);
int coins = player.getItemAssistant().getItemAmount(995);
System.out.println(warned + ": " + coins);
if (!warned && coins >= 10000) {
player.getPacketSender().sendMessage("@red@You can only deposit up to 12,000 coins at a time.");
player.getPacketSender().sendMessage("@red@If you try to deposit more than 12,000 coins you won't recieve any rewards.");
warned = true;
}
}
public void collectCoins() {
int coins = player.getItemAssistant().getItemAmount(995);
if (coins < 100) {
player.getPacketSender().sendMessage("You need to deposit at least 100 coins.");
player.getPacketSender().sendMessage("@red@You need to deposit at least 100 coins.");
return;
}
if (coins > 12000) {
player.getPacketSender().sendMessage("@red@We cannot allow you to deposit that many coins.");
return;
}
int points = (int) Math.floor(coins / 100);
@@ -80,6 +94,7 @@ public class Alchemy {
player.alchemyPoints += points;
player.getItemAssistant().addItemToBank(995, toBank);
player.getPlayerAssistant().addSkillXP(bonusExp, GameConstants.MAGIC);
warned = false;
}
public void clearItems() {
@@ -109,16 +109,20 @@ public class Graveyard {
if (!Boundary.isIn(p, Boundary.MAGE_TRAINING_ARENA_GRAVEYARD)) {
return;
}
// TODO: Find falling bones animation/gfx ID
if (random.nextInt(1) == 0) {
p.dealDamage(2);
p.handleHitMask(2);
}
applyDamage(p);
updateInterface(p);
}
}
}
public static void applyDamage(Player player) {
if (random.nextInt(1) == 0) {
player.gfx0(520);
player.dealDamage(2);
player.handleHitMask(2);
}
}
public static void updateInterface(Player player) {
if (!Boundary.isIn(player, Boundary.MAGE_TRAINING_ARENA_GRAVEYARD)) {
return;
@@ -63,8 +63,8 @@ public class MageTrainingArena {
player.getPacketSender().sendString(Integer.toString(player.telekineticPoints), 15955);
player.getPacketSender().sendString(Integer.toString(player.enchantmentPoints), 15956);
player.getPacketSender().sendString(Integer.toString(player.graveyardPoints), 15957);
player.getPacketSender().sendString(Integer.toString(player.alchemyPoints), 15958);
player.getPacketSender().sendString(Integer.toString(player.alchemyPoints), 15957);
player.getPacketSender().sendString(Integer.toString(player.graveyardPoints), 15958);
player.getPacketSender().showInterface(15944);
}
@@ -245,11 +245,11 @@ public class MageTrainingArena {
public void sendItemValue(int itemId) {
player.getPacketSender().sendMessage(
ItemAssistant.getItemName(itemId) + " costs "
+ getGraveyardPointValue(itemId) + " Graveyard points, "
+ getAlchemyPointValue(itemId) + " Alchemy points,");
+ getTelekineticPointValue(itemId) + " Telekinetic points, "
+ getGraveyardPointValue(itemId) + " Graveyard points,");
player.getPacketSender().sendMessage(
"" + getEnchantmentPointValue(itemId) + " Enchantment points, and "
+ getTelekineticPointValue(itemId) + " Telekinetic points.");
getEnchantmentPointValue(itemId) + " Enchantment points and "
+ getAlchemyPointValue(itemId) + " Alchemist points.");
}
public void buyItem(int itemId) {
@@ -219,8 +219,6 @@ public class Telekinetic {
observingStatue = false;
player.getPlayerAssistant().sendCameraReset();
}
// TODO: Figure out how to get this working correctly
// not sure exactly where the camera is supposed to be facing etc
}
public void resetStatue(int itemX, int itemY) {