Mage Training Arena and stuff (#504)

* Fixup door/stairs in mage training arena

* Fixup bedsheets, should be worn on head, not weapon slot

* [Mage Training Arena] spawn rewards guardian

* [Mage Training Arena] Add arena teleports (non functioning)

* Just adding some comments

* [Mage Training Arena] Basic mage training arena stuff

* [Mage Training Arena] Allow shop to open and show items correctly

* [Mage Training Arena] Show shop prices when clicked

* noclip

* [Mage Training Arena] Add 2nd option handler (filler)

* [Mage Training Arena] Be able to purchase stuff, lock bones to peaches

* Update MageArena.java

* [Mage Training Arena] setup boundary

* Readability

* Tidy up enchanting

* MageArena -> MageTrainingArena

* Create Alchemy.java

* Update RSInterface.java

* [Mage Training Arena] Spawn entrance npcs

* [Mage Training Arena] Initial Alchemy

* [Mage Training Arena]  Add comments

* [Mage Training Arena] Handle alchemy while in arena

* [Mage Training Arena] Show interface for alchemy room

* [Mage Training Arena] Display values, Search cupboards

* [Mage Training Arena] Don't allow the player to wear items from the Alchemy game

* [Mage Training Arena] Announce when items are changing

* Don't allow the player to bring any coins with them

* Sort by values

* [Mage Training Arena] Allow alching items etc

* Update method name

* Show magic tab after using alch even if can't alch

* [Mage Training Arena] Coin collector - temp

* [Mage Training Arena] Give player points, take items, add bonus xp, add bank items

* [Mage Training Arena] Remove items when player leaves the alchemy training area

* Fixup staffs for runes, Tidy up checks

Was missing all Mystic staff
This commit is contained in:
Danial
2021-10-01 10:25:48 +13:00
committed by GitHub
parent 8589277ece
commit bbe1587e20
23 changed files with 821 additions and 418 deletions
@@ -845,7 +845,6 @@ public class PlayerAssistant {
public void processTeleport() {
player.teleportToX = player.teleX;
player.teleportToY = player.teleY;
player.heightLevel = player.teleHeight;
if (player.teleEndAnimation > 0) {
player.startAnimation(player.teleEndAnimation);
}
@@ -859,7 +858,7 @@ public class PlayerAssistant {
if(player.heightLevel != h) {
player.refresh = true;
}
player.heightLevel = h;
player.teleHeight = h;
player.getPlayerAssistant().requestUpdates();
}
@@ -1165,53 +1164,60 @@ public class PlayerAssistant {
|| itemId == 995) {
return;
}
boolean canAlch = true;
switch (spellId) {
case 1162: // low alch
player.getPacketSender().sendShowTab(6);
if (player.inTrade) {
player.getPacketSender().sendMessage("You can't alch while in a trade!");
return;
}
if (System.currentTimeMillis() - player.alchDelay > 1000) {
if (!player.getCombatAssistant().checkMagicReqs(49)) {
break;
if (System.currentTimeMillis() - player.alchDelay <= 1000) {
return;
}
if (!player.getCombatAssistant().checkMagicReqs(49)) {
return;
}
if (Boundary.isIn(player, Boundary.MAGE_TRAINING_ARENA)) {
player.getMageTrainingArena().alchItem(itemId, spellId);
return;
}
canAlch = true;
for (int i : ItemConstants.ITEM_UNALCHABLE) {
if (itemId == i) {
player.getPacketSender().sendMessage("You can't alch that item!");
canAlch = false;
return;
}
boolean canAlch = true;
for (int i : ItemConstants.ITEM_UNALCHABLE) {
if (itemId == i) {
player.getPacketSender().sendMessage("You can't alch that item!");
canAlch = false;
return;
}
}
if (canAlch) {
int value = (int) Math.floor(player.getShopAssistant().getItemShopValue(itemId) * 0.4);
String itemName = ItemAssistant.getItemName(itemId).toLowerCase();
if (player.getPlayerAssistant().isPlayer()) {
GameLogger.writeLog(player.playerName, "alchemy", player.playerName + " cast Low Alchemy on " + itemName + " for " + GameLogger.formatCurrency(value) + " coins");
}
if (canAlch) {
int value = (int) Math.floor(player.getShopAssistant().getItemShopValue(itemId) * 0.4);
String itemName = ItemAssistant.getItemName(itemId).toLowerCase();
if (player.getPlayerAssistant().isPlayer()) {
GameLogger.writeLog(player.playerName, "alchemy", player.playerName + " cast Low Alchemy on " + itemName + " for " + GameLogger.formatCurrency(value) + " coins");
}
player.getItemAssistant().deleteItem(itemId, slot, 1);
//855 - 858
if (itemId > 854 && itemId < 857) {
player.getItemAssistant().addItem(995, 512);
} else if (itemId > 856 && itemId < 859) {
player.getItemAssistant().addItem(995, 320);
} else if (itemId > 860 && itemId < 863) {
player.getItemAssistant().addItem(995, 640);
} else if (itemId > 858 && itemId < 861) {
player.getItemAssistant().addItem(995, 1024);
} else {
player.getItemAssistant().addItem(995, value);
}
player.startAnimation(MagicData.MAGIC_SPELLS[49][2]);
player.gfx100(MagicData.MAGIC_SPELLS[49][3]);
player.alchDelay = System.currentTimeMillis();
player.getPacketSender().sendFrame106(6);
addSkillXP(31, 6);
player.getPacketSender().sendSound(
SoundList.LOW_ALCHEMY, 100, 0);
RandomEventHandler.addRandom(player);
refreshSkill(6);
player.getItemAssistant().deleteItem(itemId, slot, 1);
//855 - 858
if (itemId > 854 && itemId < 857) {
player.getItemAssistant().addItem(995, 512);
} else if (itemId > 856 && itemId < 859) {
player.getItemAssistant().addItem(995, 320);
} else if (itemId > 860 && itemId < 863) {
player.getItemAssistant().addItem(995, 640);
} else if (itemId > 858 && itemId < 861) {
player.getItemAssistant().addItem(995, 1024);
} else {
player.getItemAssistant().addItem(995, value);
}
player.startAnimation(MagicData.MAGIC_SPELLS[49][2]);
player.gfx100(MagicData.MAGIC_SPELLS[49][3]);
player.alchDelay = System.currentTimeMillis();
player.getPacketSender().sendShowTab(6);
addSkillXP(31, 6);
player.getPacketSender().sendSound(
SoundList.LOW_ALCHEMY, 100, 0);
RandomEventHandler.addRandom(player);
refreshSkill(6);
}
break;
@@ -1227,54 +1233,64 @@ public class PlayerAssistant {
case 1180: // Lvl-4 enchant diamond
case 1187: // Lvl-5 enchant dragonstone
case 6003: // Lvl-6 enchant onyx
player.getEnchanting().enchantItem(itemId, spellId);
if (Boundary.isIn(player, Boundary.MAGE_TRAINING_ARENA)) {
player.getMageTrainingArena().enchantItem(itemId, spellId);
} else {
player.getEnchanting().enchantItem(itemId, spellId);
}
break;
case 1178: // high alch
player.getPacketSender().sendShowTab(6);
if (player.inTrade) {
player.getPacketSender().sendMessage("You can't alch while in a trade!");
return;
}
if (System.currentTimeMillis() - player.alchDelay > 1000) {
if (!player.getCombatAssistant().checkMagicReqs(50)) {
break;
if (System.currentTimeMillis() - player.alchDelay <= 1000) {
return;
}
if (!player.getCombatAssistant().checkMagicReqs(50)) {
break;
}
if (Boundary.isIn(player, Boundary.MAGE_TRAINING_ARENA)) {
player.getMageTrainingArena().alchItem(itemId, spellId);
return;
}
canAlch = true;
for (int i : ItemConstants.ITEM_UNALCHABLE) {
if (itemId == i) {
player.getPacketSender().sendMessage("You can't alch that item!");
canAlch = false;
return;
}
boolean canAlch = true;
for (int i : ItemConstants.ITEM_UNALCHABLE) {
if (itemId == i) {
player.getPacketSender().sendMessage("You can't alch that item!");
canAlch = false;
return;
}
}
if (canAlch) {
int value = (int) Math.floor(player.getShopAssistant().getItemShopValue(itemId) * 0.75);
String itemName = ItemAssistant.getItemName(itemId).toLowerCase();
if (player.getPlayerAssistant().isPlayer()) {
GameLogger.writeLog(player.playerName, "alchemy", player.playerName + " cast High Alchemy on " + itemName + " for" + GameLogger.formatCurrency(value) + " coins");
}
if (canAlch) {
int value = (int) Math.floor(player.getShopAssistant().getItemShopValue(itemId) * 0.75);
String itemName = ItemAssistant.getItemName(itemId).toLowerCase();
if (player.getPlayerAssistant().isPlayer()) {
GameLogger.writeLog(player.playerName, "alchemy", player.playerName + " cast High Alchemy on " + itemName + " for" + GameLogger.formatCurrency(value) + " coins");
}
player.getItemAssistant().deleteItem(itemId, slot, 1);
if (itemId > 854 && itemId < 857) {
player.getItemAssistant().addItem(995, 768);
} else if (itemId > 856 && itemId < 859) {
player.getItemAssistant().addItem(995, 480);
} else if (itemId > 858 && itemId < 861) {
player.getItemAssistant().addItem(995, 1536);
} else if (itemId > 860 && itemId < 863) {
player.getItemAssistant().addItem(995, 960);
} else {
player.getItemAssistant().addItem(995, (int) (player.getShopAssistant().getItemShopValue(itemId) * .75));
}
player.startAnimation(MagicData.MAGIC_SPELLS[50][2]);
player.gfx100(MagicData.MAGIC_SPELLS[50][3]);
player.alchDelay = System.currentTimeMillis();
player.getPacketSender().sendFrame106(6);
RandomEventHandler.addRandom(player);
addSkillXP(65, 6);
player.getPacketSender().sendSound(
SoundList.HIGH_ALCHEMY, 100, 0);
refreshSkill(6);
player.getItemAssistant().deleteItem(itemId, slot, 1);
if (itemId > 854 && itemId < 857) {
player.getItemAssistant().addItem(995, 768);
} else if (itemId > 856 && itemId < 859) {
player.getItemAssistant().addItem(995, 480);
} else if (itemId > 858 && itemId < 861) {
player.getItemAssistant().addItem(995, 1536);
} else if (itemId > 860 && itemId < 863) {
player.getItemAssistant().addItem(995, 960);
} else {
player.getItemAssistant().addItem(995, (int) (player.getShopAssistant().getItemShopValue(itemId) * .75));
}
player.startAnimation(MagicData.MAGIC_SPELLS[50][2]);
player.gfx100(MagicData.MAGIC_SPELLS[50][3]);
player.alchDelay = System.currentTimeMillis();
player.getPacketSender().sendShowTab(6);
RandomEventHandler.addRandom(player);
addSkillXP(65, 6);
player.getPacketSender().sendSound(
SoundList.HIGH_ALCHEMY, 100, 0);
refreshSkill(6);
}
break;
}