Fixed drill sergeant completion reward drop bug

This commit is contained in:
LostMyPhat
2023-11-02 08:26:48 +00:00
committed by Ryan
parent 70a47aeb5d
commit 2ab3c34402
2 changed files with 24 additions and 18 deletions
@@ -1,6 +1,7 @@
package content.global.ame.events.drilldemon package content.global.ame.events.drilldemon
import core.api.* import core.api.*
import core.game.interaction.QueueStrength
import core.game.node.entity.player.Player import core.game.node.entity.player.Player
import core.game.world.map.Location import core.game.world.map.Location
import core.game.world.map.zone.ZoneBorders import core.game.world.map.zone.ZoneBorders
@@ -18,26 +19,26 @@ object DrillDemonUtils {
val DD_SIGN_JUMP = 3 val DD_SIGN_JUMP = 3
val DD_CORRECT_OFFSET = "/save:drilldemon:offset" val DD_CORRECT_OFFSET = "/save:drilldemon:offset"
val DD_CORRECT_COUNTER = "/save:drilldemon:numcorrect" val DD_CORRECT_COUNTER = "/save:drilldemon:numcorrect"
val DD_AREA = ZoneBorders(3158,4817, 3168, 4823) val DD_AREA = ZoneBorders(3158, 4817, 3168, 4823)
val DD_NPC = NPCs.SERGEANT_DAMIEN_2790 val DD_NPC = NPCs.SERGEANT_DAMIEN_2790
fun teleport(player: Player){ fun teleport(player: Player) {
setAttribute(player, DD_KEY_RETURN_LOC,player.location) setAttribute(player, DD_KEY_RETURN_LOC, player.location)
teleport(player, Location.create(3163, 4819, 0)) teleport(player, Location.create(3163, 4819, 0))
player.interfaceManager.closeDefaultTabs() player.interfaceManager.closeDefaultTabs()
setComponentVisibility(player, 548, 69, true) setComponentVisibility(player, 548, 69, true)
setComponentVisibility(player, 746, 12, true) setComponentVisibility(player, 746, 12, true)
} }
fun changeSignsAndAssignTask(player: Player){ fun changeSignsAndAssignTask(player: Player) {
setVarp(player, DD_SIGN_VARP, 0) setVarp(player, DD_SIGN_VARP, 0)
val tempList = arrayListOf(DD_SIGN_JOG, DD_SIGN_JUMP, DD_SIGN_PUSHUP, DD_SIGN_SITUP).shuffled().toMutableList() val tempList = arrayListOf(DD_SIGN_JOG, DD_SIGN_JUMP, DD_SIGN_PUSHUP, DD_SIGN_SITUP).shuffled().toMutableList()
val tempOffsetList = arrayListOf(1335, 1336, 1337, 1338).shuffled().toMutableList() val tempOffsetList = arrayListOf(1335, 1336, 1337, 1338).shuffled().toMutableList()
val task = tempList.random() val task = tempList.random()
val taskOffset = tempOffsetList.random() val taskOffset = tempOffsetList.random()
setAttribute(player, DD_KEY_TASK,task) setAttribute(player, DD_KEY_TASK, task)
setAttribute(player, DD_CORRECT_OFFSET,taskOffset) setAttribute(player, DD_CORRECT_OFFSET, taskOffset)
tempList.remove(task) tempList.remove(task)
tempOffsetList.remove(taskOffset) tempOffsetList.remove(taskOffset)
@@ -47,7 +48,7 @@ object DrillDemonUtils {
} }
} }
fun getVarbitForId(id: Int): Int{ fun getVarbitForId(id: Int): Int {
return when (id) { return when (id) {
10076 -> 1335 10076 -> 1335
10077 -> 1336 10077 -> 1336
@@ -57,7 +58,7 @@ object DrillDemonUtils {
} }
} }
fun getMatTask(id: Int, player: Player): Int{ fun getMatTask(id: Int, player: Player): Int {
return getVarbit(player, getVarbitForId(id)) return getVarbit(player, getVarbitForId(id))
} }
@@ -85,14 +86,18 @@ object DrillDemonUtils {
} }
fun reward(player: Player) { fun reward(player: Player) {
val hasHat = hasAnItem(player, Items.CAMO_HELMET_6656).container != null queueScript(player, 2, QueueStrength.SOFT) {
val hasShirt = hasAnItem(player, Items.CAMO_TOP_6654).container != null val hasHat = hasAnItem(player, Items.CAMO_HELMET_6656).container != null
val hasPants = hasAnItem(player, Items.CAMO_BOTTOMS_6655).container != null val hasShirt = hasAnItem(player, Items.CAMO_TOP_6654).container != null
when { val hasPants = hasAnItem(player, Items.CAMO_BOTTOMS_6655).container != null
!hasHat -> addItemOrDrop(player, Items.CAMO_HELMET_6656) when {
!hasShirt -> addItemOrDrop(player, Items.CAMO_TOP_6654) !hasHat -> addItemOrDrop(player, Items.CAMO_HELMET_6656)
!hasPants -> addItemOrDrop(player, Items.CAMO_BOTTOMS_6655) !hasShirt -> addItemOrDrop(player, Items.CAMO_TOP_6654)
else -> addItemOrDrop(player, Items.COINS_995, 500) !hasPants -> addItemOrDrop(player, Items.CAMO_BOTTOMS_6655)
else -> addItemOrDrop(player, Items.COINS_995, 500)
}
return@queueScript stopExecuting(player)
} }
} }
} }
@@ -1,10 +1,11 @@
package content.global.ame.events.drilldemon package content.global.ame.events.drilldemon
import core.api.* import core.api.getAttribute
import core.api.sendItemDialogue
import core.api.unlock
import core.game.dialogue.DialogueFile import core.game.dialogue.DialogueFile
import core.game.dialogue.FacialExpression import core.game.dialogue.FacialExpression
import core.game.node.entity.npc.NPC import core.game.node.entity.npc.NPC
import core.tools.END_DIALOGUE import core.tools.END_DIALOGUE
import org.rs09.consts.Items import org.rs09.consts.Items
import org.rs09.consts.NPCs import org.rs09.consts.NPCs