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
This commit is contained in:
Ceikry 2022-12-22 10:15:31 +00:00 committed by Ryan
parent c1b1bcc80d
commit c9a6bf2f61
2 changed files with 30 additions and 85 deletions

View file

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

View file

@ -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 requireQuest(player, "Roving Elves", "to equip this.")
}
return@onEquip true
onEquip(dragonSlayerEquipment) {player, _ ->
return@onEquip requireQuest(player, "Dragon Slayer", "to equip this.")
}
}
}