Merge branch 'master' into 'master'

Fix: Blue Partyhat from the credits shop should be the correct item

See merge request 2009scape/2009scape!287
This commit is contained in:
Ceikry 2021-10-02 21:57:11 +00:00
commit e0086c8e80

View file

@ -1,80 +1,80 @@
package rs09.game.interaction.inter package rs09.game.interaction.inter
import api.ContentAPI import api.ContentAPI
import core.game.node.entity.player.Player import core.game.node.entity.player.Player
import core.game.node.item.Item import core.game.node.item.Item
import org.rs09.consts.Components import org.rs09.consts.Components
import org.rs09.consts.Items import org.rs09.consts.Items
import rs09.game.interaction.InterfaceListener import rs09.game.interaction.InterfaceListener
class CreditShopInterface : InterfaceListener() { class CreditShopInterface : InterfaceListener() {
val CREDIT_SHOP = Components.CREDIT_SHOP val CREDIT_SHOP = Components.CREDIT_SHOP
val TEXT_CHILD = 39 val TEXT_CHILD = 39
override fun defineListeners() { override fun defineListeners() {
on(CREDIT_SHOP){player, component, opcode, buttonID, slot, itemID -> on(CREDIT_SHOP){player, component, opcode, buttonID, slot, itemID ->
val item = getItem(buttonID) val item = getItem(buttonID)
if(opcode == 155){ if(opcode == 155){
ContentAPI.sendDialogue(player, "This item costs ${item.price} credits.") ContentAPI.sendDialogue(player, "This item costs ${item.price} credits.")
return@on true return@on true
} }
if(buttonID == 14 || buttonID == 21){ if(buttonID == 14 || buttonID == 21){
val specific = when(opcode){ val specific = when(opcode){
196 -> if(buttonID == 14) Items.RED_PARTYHAT_1038 else Items.RED_HWEEN_MASK_1057 196 -> if(buttonID == 14) Items.RED_PARTYHAT_1038 else Items.RED_HWEEN_MASK_1057
124 -> if(buttonID == 14) Items.GREEN_PARTYHAT_1044 else Items.GREEN_HWEEN_MASK_1053 124 -> if(buttonID == 14) Items.GREEN_PARTYHAT_1044 else Items.GREEN_HWEEN_MASK_1053
199 -> if(buttonID == 14) Items.BLUE_PARTYHAT_2422 else Items.BLUE_HWEEN_MASK_1055 199 -> if(buttonID == 14) Items.BLUE_PARTYHAT_1042 else Items.BLUE_HWEEN_MASK_1055
234 -> Items.YELLOW_PARTYHAT_1040 234 -> Items.YELLOW_PARTYHAT_1040
168 -> Items.PURPLE_PARTYHAT_1046 168 -> Items.PURPLE_PARTYHAT_1046
166 -> Items.WHITE_PARTYHAT_1048 166 -> Items.WHITE_PARTYHAT_1048
else -> Items.DWARF_WEED_SEED_5303 else -> Items.DWARF_WEED_SEED_5303
} }
attemptPurchase(player,specific,item.price) attemptPurchase(player,specific,item.price)
} else { } else {
attemptPurchase(player,item.id,item.price) attemptPurchase(player,item.id,item.price)
} }
return@on true return@on true
} }
onOpen(CREDIT_SHOP){player, component -> onOpen(CREDIT_SHOP){player, component ->
sendCredits(player) sendCredits(player)
return@onOpen true return@onOpen true
} }
} }
private fun getItem(buttonID: Int): ShopItem{ private fun getItem(buttonID: Int): ShopItem{
return when(buttonID){ return when(buttonID){
14 -> ShopItem(Items.BLUE_PARTYHAT_2422,75) 14 -> ShopItem(Items.BLUE_PARTYHAT_1042,75)
18 -> ShopItem(Items.SCYTHE_1419,100) 18 -> ShopItem(Items.SCYTHE_1419,100)
20 -> ShopItem(Items.JANGLES_THE_MONKEY_14648,200) 20 -> ShopItem(Items.JANGLES_THE_MONKEY_14648,200)
17 -> ShopItem(Items.CHRISTMAS_CRACKER_962,65) 17 -> ShopItem(Items.CHRISTMAS_CRACKER_962,65)
21 -> ShopItem(Items.BLUE_HWEEN_MASK_1055,65) 21 -> ShopItem(Items.BLUE_HWEEN_MASK_1055,65)
16 -> ShopItem(Items.SANTA_HAT_1050,65) 16 -> ShopItem(Items.SANTA_HAT_1050,65)
19 -> ShopItem(Items.BUNNY_EARS_1037,150) 19 -> ShopItem(Items.BUNNY_EARS_1037,150)
15 -> ShopItem(Items.EASTER_RING_7927,100) 15 -> ShopItem(Items.EASTER_RING_7927,100)
else -> ShopItem(0,0) else -> ShopItem(0,0)
} }
} }
fun sendCredits(player: Player){ fun sendCredits(player: Player){
ContentAPI.setInterfaceText(player, "You have ${player.details.credits} credits to spend.", CREDIT_SHOP, TEXT_CHILD) ContentAPI.setInterfaceText(player, "You have ${player.details.credits} credits to spend.", CREDIT_SHOP, TEXT_CHILD)
} }
fun attemptPurchase(player: Player, item: Int, price: Int){ fun attemptPurchase(player: Player, item: Int, price: Int){
if(player.details.credits < price){ if(player.details.credits < price){
ContentAPI.sendDialogue(player, "You don't have enough credits for that.") ContentAPI.sendDialogue(player, "You don't have enough credits for that.")
return return
} }
if(player.inventory.add(Item(item))){ if(player.inventory.add(Item(item))){
player.details.credits -= price player.details.credits -= price
} else { } else {
ContentAPI.sendDialogue(player, "You don't have enough inventory space for that.") ContentAPI.sendDialogue(player, "You don't have enough inventory space for that.")
} }
sendCredits(player) sendCredits(player)
} }
internal class ShopItem(val id: Int, val price: Int) internal class ShopItem(val id: Int, val price: Int)
} }