mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Fixed bug where All Fired Up beacons could be repaired with insufficient items
Fixed bug where All Fired Up beacons would consider boosted/dynamic skill level instead of actual skill level Removed random inauthentic needle break when repairing All Fired Up beacon
This commit is contained in:
parent
a6eb6f5af6
commit
d09bdacf94
1 changed files with 14 additions and 18 deletions
|
|
@ -13,7 +13,6 @@ import org.rs09.consts.Items
|
||||||
import core.game.interaction.InteractionListener
|
import core.game.interaction.InteractionListener
|
||||||
import core.game.interaction.IntType
|
import core.game.interaction.IntType
|
||||||
import core.api.*
|
import core.api.*
|
||||||
import java.util.*
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles repairing and climbing of the 3 beacon shortcuts needed to access them
|
* Handles repairing and climbing of the 3 beacon shortcuts needed to access them
|
||||||
|
|
@ -55,8 +54,8 @@ class AFURepairClimbHandler : InteractionListener {
|
||||||
private fun repair(player: Player,rco: RepairClimbObject){
|
private fun repair(player: Player,rco: RepairClimbObject){
|
||||||
if (rco == RepairClimbObject.TEMPLE){
|
if (rco == RepairClimbObject.TEMPLE){
|
||||||
// You can do this 2 different ways
|
// You can do this 2 different ways
|
||||||
val hasSmithingLevel = getDynLevel(player, Skills.SMITHING) >= 70
|
val hasSmithingLevel = getStatLevel(player, Skills.SMITHING) >= 70
|
||||||
val hasConstructionLevel = getDynLevel(player, Skills.CONSTRUCTION) >= 59
|
val hasConstructionLevel = getStatLevel(player, Skills.CONSTRUCTION) >= 59
|
||||||
|
|
||||||
if (!hasConstructionLevel && !hasSmithingLevel){
|
if (!hasConstructionLevel && !hasSmithingLevel){
|
||||||
sendDialogue(player, "You need level 70 smithing or 59 construction for this.")
|
sendDialogue(player, "You need level 70 smithing or 59 construction for this.")
|
||||||
|
|
@ -93,8 +92,8 @@ class AFURepairClimbHandler : InteractionListener {
|
||||||
}
|
}
|
||||||
val skill = rco.levelRequirement?.first ?: 0
|
val skill = rco.levelRequirement?.first ?: 0
|
||||||
val level = rco.levelRequirement?.second ?: 0
|
val level = rco.levelRequirement?.second ?: 0
|
||||||
if(player.skills.getLevel(skill) < level){
|
if(getStatLevel(player, skill) < level){
|
||||||
player.dialogueInterpreter.sendDialogue("You need level $level ${Skills.SKILL_NAME[skill]} for this.")
|
sendDialogue(player, "You need level $level ${Skills.SKILL_NAME[skill]} for this.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -102,40 +101,37 @@ class AFURepairClimbHandler : InteractionListener {
|
||||||
|
|
||||||
val requiredItems = when(rco){
|
val requiredItems = when(rco){
|
||||||
RepairClimbObject.DEATH_PLATEAU -> {
|
RepairClimbObject.DEATH_PLATEAU -> {
|
||||||
arrayOf(Item(Items.PLANK_960,2))
|
Item(Items.PLANK_960,2)
|
||||||
}
|
}
|
||||||
|
|
||||||
RepairClimbObject.BURTHORPE -> {
|
RepairClimbObject.BURTHORPE -> {
|
||||||
arrayOf(Item(Items.IRON_BAR_2351,2))
|
Item(Items.IRON_BAR_2351,2)
|
||||||
}
|
}
|
||||||
|
|
||||||
RepairClimbObject.GWD -> {
|
RepairClimbObject.GWD -> {
|
||||||
requiresNeedle = true
|
requiresNeedle = true
|
||||||
arrayOf(Item(Items.JUTE_FIBRE_5931,3))
|
Item(Items.JUTE_FIBRE_5931,3)
|
||||||
}
|
}
|
||||||
else -> return
|
else -> return
|
||||||
}
|
}
|
||||||
|
|
||||||
if(requiresNeedle){
|
if(requiresNeedle){
|
||||||
if(player.inventory.containsItem(Item(Items.NEEDLE_1733)) && player.inventory.containItems(*requiredItems.map { it.id }.toIntArray())) {
|
if (!inInventory(player, Items.NEEDLE_1733) || !removeItem(player, requiredItems)) {
|
||||||
player.inventory.remove(*requiredItems)
|
sendDialogue(player, "You need a needle and ${requiredItems.amount} ${requiredItems.name.lowercase()}s for this.")
|
||||||
if (Random().nextBoolean()) player.inventory.remove(Item(Items.NEEDLE_1733))
|
|
||||||
} else {
|
|
||||||
player.dialogueInterpreter.sendDialogue("You need a needle and ${requiredItems.map { "${it.amount} ${it.name.lowercase()}s" }.toString().replace("[","").replace("]","")} for this.")
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if(player.inventory.containsItem(Item(Items.HAMMER_2347)) && player.inventory.containItems(*requiredItems.map { it.id }.toIntArray())) {
|
if(inInventory(player, Items.HAMMER_2347) && inInventory(player, requiredItems.id, requiredItems.amount)) {
|
||||||
val nails = NailType.get(player,4)
|
val nails = NailType.get(player,4)
|
||||||
if(nails == null && rco == RepairClimbObject.DEATH_PLATEAU){
|
if(nails == null && rco == RepairClimbObject.DEATH_PLATEAU){
|
||||||
player.dialogueInterpreter.sendDialogue("You need 4 nails for this.")
|
sendDialogue(player, "You need 4 nails for this.")
|
||||||
return
|
return
|
||||||
} else if (rco == RepairClimbObject.DEATH_PLATEAU){
|
} else if (rco == RepairClimbObject.DEATH_PLATEAU){
|
||||||
player.inventory.remove(Item(nails.itemId,4))
|
removeItem(player, Item(nails.itemId,4))
|
||||||
}
|
}
|
||||||
player.inventory.remove(*requiredItems)
|
removeItem(player, requiredItems)
|
||||||
} else {
|
} else {
|
||||||
player.dialogueInterpreter.sendDialogue("You need a hammer and ${requiredItems.map { "${it.amount} ${it.name.lowercase()}s" }.toString().replace("[","").replace("]","")} for this.")
|
sendDialogue(player, "You need a hammer and ${requiredItems.amount} ${requiredItems.name.lowercase()}s for this.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue