From c9a6bf2f61f0c351999f02ee72a8155dc1efbd4a Mon Sep 17 00:00:00 2001 From: Ceikry Date: Thu, 22 Dec 2022 10:15:31 +0000 Subject: [PATCH] Removed non-green-d'hide-bodies from the restricted items list for dragon slayer Merged the dragon slayer equip checks into the existing file for quest requirement checks Updated item equip checks to use new api methods --- .../free/dragonslayer/DSEquipListeners.kt | 39 ---------- .../item/ItemQuestRequirementListener.kt | 76 ++++++++----------- 2 files changed, 30 insertions(+), 85 deletions(-) delete mode 100644 Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DSEquipListeners.kt diff --git a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DSEquipListeners.kt b/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DSEquipListeners.kt deleted file mode 100644 index 50565e530..000000000 --- a/Server/src/main/kotlin/rs09/game/content/quest/free/dragonslayer/DSEquipListeners.kt +++ /dev/null @@ -1,39 +0,0 @@ -package rs09.game.content.quest.free.dragonslayer - -import api.* -import org.rs09.consts.Items -import rs09.game.interaction.InteractionListener -import rs09.game.interaction.IntType - -class DSEquipListeners : InteractionListener { - - private val restrictedItems = intArrayOf( - Items.RUNE_PLATEBODY_1127, - Items.RUNE_PLATEBODY_G_10798, - Items.RUNE_PLATEBODY_G_2615, - Items.RUNE_PLATEBODY_G_13800, - Items.RUNE_PLATEBODY_T_10800, - Items.RUNE_PLATEBODY_T_13805, - Items.RUNE_PLATEBODY_T_2623, - Items.ZAMORAK_PLATEBODY_2653, - Items.SARADOMIN_PLATEBODY_2661, - Items.GUTHIX_PLATEBODY_2669, - Items.GREEN_DHIDE_BODY_1135, - Items.DHIDE_BODYG_7370, - Items.DHIDE_BODY_G_7374, - Items.DHIDE_BODY_T_7372, - Items.DHIDE_BODY_T_7376 - ) - - override fun defineListeners() { - for(id in restrictedItems){ - onEquip(id){ player, _ -> - if(!player.questRepository.isComplete("Dragon Slayer")){ - sendMessage(player, "You must have completed Dragon Slayer to equip this.") - return@onEquip false - } - return@onEquip true - } - } - } -} \ No newline at end of file diff --git a/Server/src/main/kotlin/rs09/game/interaction/item/ItemQuestRequirementListener.kt b/Server/src/main/kotlin/rs09/game/interaction/item/ItemQuestRequirementListener.kt index e45e0c8f3..4d0f49d3f 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/item/ItemQuestRequirementListener.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/item/ItemQuestRequirementListener.kt @@ -70,6 +70,22 @@ class ItemQuestRequirementListener : InteractionListener { Items.CRYSTAL_SHIELD_1_10_4234 ) + //As per the source (https://runescape.wiki/w/Dragon_Slayer?oldid=895396), + //dragon slayer should only restrict green d'hide bodies, not the higher tiers. + private val dragonSlayerEquipment = intArrayOf( + Items.RUNE_PLATEBODY_1127, + Items.RUNE_PLATEBODY_G_10798, + Items.RUNE_PLATEBODY_G_2615, + Items.RUNE_PLATEBODY_G_13800, + Items.RUNE_PLATEBODY_T_10800, + Items.RUNE_PLATEBODY_T_13805, + Items.RUNE_PLATEBODY_T_2623, + Items.ZAMORAK_PLATEBODY_2653, + Items.SARADOMIN_PLATEBODY_2661, + Items.GUTHIX_PLATEBODY_2669, + Items.GREEN_DHIDE_BODY_1135 + ) + private val questCapes = intArrayOf(9813,9814) override fun defineListeners() { @@ -93,35 +109,19 @@ class ItemQuestRequirementListener : InteractionListener { */ onEquip(fremennikTrialsEquipment.plus(fremennikIslesEquipment)) { player, _ -> - if (!isQuestComplete(player, "Fremennik Trials")) { - sendMessage(player, "You must have completed The Fremennik Trials to equip this.") - return@onEquip false - } - return@onEquip true + return@onEquip requireQuest(player, "Fremennik Trials", "to equip this.") } onEquip(avasBackpacks){ player, _ -> - if (!isQuestComplete(player, "Animal Magnetism")) { - sendMessage(player, "You must have completed Animal Magnetism to equip this.") - return@onEquip false - } - return@onEquip true + return@onEquip requireQuest(player, "Animal Magnetism", "to equip this.") } onEquip(lostCityWeapons){ player, _ -> - if (!isQuestComplete(player, "Lost City")) { - sendMessage(player, "You must have completed Lost City to equip this.") - return@onEquip false - } - return@onEquip true + return@onEquip requireQuest(player, "Lost City", "to equip this.") } onEquip(Items.CAPE_OF_LEGENDS_1052) { player, _ -> - if(!isQuestComplete(player, "Legends' Quest")) { - player.packetDispatch.sendMessage("You must have completed Legends' Quest to equip this.") - return@onEquip false - } - return@onEquip true + return@onEquip requireQuest(player, "Legends' Quest", "to equip this.") } onEquip(questCapes) { player, _ -> @@ -134,43 +134,27 @@ class ItemQuestRequirementListener : InteractionListener { } onEquip(Items.WOLFBANE_2952){ player, _ -> - if(!isQuestComplete(player, "Priest in Peril")) { - sendMessage(player, "You must have completed Priest in Peril to equip this.") - return@onEquip false - } - return@onEquip true - } + return@onEquip requireQuest(player, "Priest in Peril", "to equip this.") + } onEquip(Items.ANCIENT_MACE_11061){ player, _ -> - if(!isQuestComplete(player, "Another Slice of H.A.M.")) { - sendMessage(player, "You must have completed Another Slice of H.A.M. to equip this.") - return@onEquip false - } - return@onEquip true + return@onEquip requireQuest(player, "Another Slice of H.A.M.", "to equip this.") } onEquip(Items.ANCIENT_STAFF_4675){ player, _ -> - if(!isQuestComplete(player, "Desert Treasure")) { - sendMessage(player, "You must have completed Desert Treasure to equip this.") - return@onEquip false - } - return@onEquip true + return@onEquip requireQuest(player, "Desert Treasure", "to equip this.") } onEquip(Items.ELEMENTAL_SHIELD_2890) { player, _ -> - if (!isQuestComplete(player, "Elemental Workshop I")) { - sendMessage(player, "You must have completed Elemental Workshop I to equip this.") - return@onEquip false - } - return@onEquip true + return@onEquip requireQuest(player, "Elemental Workshop I", "to equip this.") } onEquip(crystalEquipment){ player, _ -> - if (!isQuestComplete(player, "Roving Elves")) { - sendMessage(player, "You must have completed Roving Elves to equip this.") - return@onEquip false - } - return@onEquip true + return@onEquip requireQuest(player, "Roving Elves", "to equip this.") + } + + onEquip(dragonSlayerEquipment) {player, _ -> + return@onEquip requireQuest(player, "Dragon Slayer", "to equip this.") } } }