From b53c005b0f11db5c57e651b47f74bf10febb45ac Mon Sep 17 00:00:00 2001 From: ceikry Date: Tue, 17 Aug 2021 09:36:17 -0500 Subject: [PATCH 1/4] Fixed a bug with bogrog --- .../game/interaction/npc/BogrogPouchSwapper.kt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt b/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt index f334593e9..7896ae212 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt @@ -9,6 +9,7 @@ import core.game.node.entity.skill.summoning.SummoningScroll import core.game.node.item.Item import core.game.world.map.zone.ZoneBorders import kotlin.math.ceil +import kotlin.math.floor /** * Handles swapping pouches/scrolls for shards. @@ -49,21 +50,21 @@ object BogrogPouchSwapper { private fun swap(player: Player, amount: Int, itemID: Int): Boolean{ var amt = amount val value = getValue(itemID) - if(value == 0){ + if(value == 0.0){ return false } val inInventory = player.inventory.getAmount(itemID) if(amount > inInventory) amt = inInventory player.inventory.remove(Item(itemID,amt)) - player.inventory.add(Item(SPIRIT_SHARD,value * amt)) + player.inventory.add(Item(SPIRIT_SHARD, floor(value * amt).toInt())) player.interfaceManager.close(Component(644)) return true } private fun sendValue(itemID: Int, player: Player): Boolean{ val value = getValue(itemID) - if(value == 0){ + if(value == 0.0){ return false } @@ -71,11 +72,14 @@ object BogrogPouchSwapper { return true } - private fun getValue(itemID: Int): Int{ + private fun getValue(itemID: Int): Double{ var item = SummoningPouch.get(itemID) + var isScroll = false if(item == null) item = SummoningPouch.get(Item(itemID).noteChange) - if(item == null) item = SummoningPouch.get(SummoningScroll.forItemId(itemID)?.pouch ?: -1) - item ?: return 0 - return ceil(item.items[item.items.size - 1].amount * 0.7).toInt() + if(item == null) item = SummoningPouch.get(SummoningScroll.forItemId(itemID)?.pouch ?: -1).also { isScroll = true } + item ?: return 0.0 + var shardQuantity = item.items[item.items.size - 1].amount * 0.7 + if(isScroll) shardQuantity /= 10.0 + return shardQuantity } } \ No newline at end of file From f9d4cf83a3a6b418a8834639d1a18be231ad45e8 Mon Sep 17 00:00:00 2001 From: ceikry Date: Tue, 17 Aug 2021 10:08:10 -0500 Subject: [PATCH 2/4] Corrected scroll exchange rate --- .../main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt b/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt index 7896ae212..f2824b973 100644 --- a/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt +++ b/Server/src/main/kotlin/rs09/game/interaction/npc/BogrogPouchSwapper.kt @@ -79,7 +79,7 @@ object BogrogPouchSwapper { if(item == null) item = SummoningPouch.get(SummoningScroll.forItemId(itemID)?.pouch ?: -1).also { isScroll = true } item ?: return 0.0 var shardQuantity = item.items[item.items.size - 1].amount * 0.7 - if(isScroll) shardQuantity /= 10.0 + if(isScroll) shardQuantity /= 20.0 return shardQuantity } } \ No newline at end of file From 7b477b780a1b3693ee98009682969f9592c65577 Mon Sep 17 00:00:00 2001 From: downthecrop Date: Wed, 18 Aug 2021 16:41:08 -0700 Subject: [PATCH 3/4] dialogue accuracy and 'null' npc chatbox --- .../game/content/dialogue/DrezelDialogue.java | 40 +++++++++---------- .../dialogue/DrezelMonumentDialogue.java | 2 +- .../withobject/PriestInPerilUsePlugin.java | 4 +- .../priestinperil/KingRoaldPIPDialogue.kt | 10 ++--- 4 files changed, 26 insertions(+), 30 deletions(-) diff --git a/Server/src/main/java/core/game/content/dialogue/DrezelDialogue.java b/Server/src/main/java/core/game/content/dialogue/DrezelDialogue.java index 3dd359c6c..715e83e49 100644 --- a/Server/src/main/java/core/game/content/dialogue/DrezelDialogue.java +++ b/Server/src/main/java/core/game/content/dialogue/DrezelDialogue.java @@ -69,11 +69,11 @@ public final class DrezelDialogue extends DialoguePlugin { final Quest quest = player.getQuestRepository().getQuest("Priest in Peril"); switch (stage) { case 0: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh! You do not appear to be on of those Zamorkians", "who imprisoned me here! Who are you and why are", "you here?"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh! You do not appear to be on of those Zamorakians", "who imprisoned me here! Who are you and why are", "you here?"); stage = 1; break; case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "My name's " + player.getUsername() + ". King Roald sent me to find out", "what was going on at the temple. I take it you are", "Drezel?"); + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "My name's " + player.getUsername() + ". King Roald sent me to find", "out what was going on at the temple. I take it you are", "Drezel?"); stage = 2; break; case 2: @@ -99,7 +99,7 @@ public final class DrezelDialogue extends DialoguePlugin { case 7: switch (buttonId) { case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Tell me anyway."); + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Tell me anyway. I'd like to know the full facts before","acting any further."); stage = 8; break; case 2: @@ -109,7 +109,7 @@ public final class DrezelDialogue extends DialoguePlugin { } break; case 8: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "d, Saradomin has granted you wisdom I see. Well, the", "story of the river Salve and of how it protects Mithsalin", "is the story of this temple,"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Ah, Saradomin has granted you wisdom I see. Well, the", "story of the river Salve and of how it protects Mithsalin", "is the story of this temple,"); stage = 9; break; case 9: @@ -137,7 +137,7 @@ public final class DrezelDialogue extends DialoguePlugin { stage = 15; break; case 15: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "that he could find, and the seven of them rode here to", "make a final stand. The enemies swarmed across the", "Salve but they did not yield"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "that he could find, and the seven of them rode here to", "make a final stand. The enemies swarmed across the", "Salve but they did not yield."); stage = 16; break; case 16: @@ -145,7 +145,7 @@ public final class DrezelDialogue extends DialoguePlugin { stage = 17; break; case 17: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "On the eleventh day they were to be joined by", "reinforcements from a neighbouring encampment, but", "then those reinforecements arrived all they found"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "On the eleventh day they were to be joined by", "reinforcements from a neighbouring encampment, but", "then those reinforcements arrived all they found"); stage = 18; break; case 18: @@ -153,7 +153,7 @@ public final class DrezelDialogue extends DialoguePlugin { stage = 19; break; case 19: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "The men were saddend at the loss of such pure and", "mighty warriors, yet their sacrifice had not been in", "vain; for the water of the Salve"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "The men were saddened at the loss of such pure and", "mighty warriors, yet their sacrifice had not been in", "vain; for the water of the Salve"); stage = 20; break; case 20: @@ -189,37 +189,33 @@ public final class DrezelDialogue extends DialoguePlugin { stage = 28; break; case 28: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I fear that should those Zamorakians somehow pollute", "the Salve and desecrate his blessing, his power might not", "be able to stop."); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "I fear that should those Zamorakians somehow pollute", "the Salve and desecrate his blessing, his power might not", "be able to stop"); stage = 29; break; case 29: interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "the army of evil that lurks to the east, longing for the", "opportunity to invade and destroy us all!"); stage = 30; break; - case 31: - interpreter.sendOptions("Select an Option", "Yes.", "No."); - stage = 503; - break; case 30: interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "So what do you say adventurer? Will you aid me and", "all of Misthalin in foiling this Zamorakian plot?"); stage = 31; break; + case 31: + interpreter.sendOptions("Select an Option", "Yes.", "No."); + stage = 503; + break; case 500: interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Well, let's just say if we cannot undo whatever damage", "has been done here the entire land is in grave peril!"); stage = 501; break; case 501: interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "So what do you say adventurer? Will you aid me and", "all of Misthalin in foiling this Zamorakian plot?"); - stage = 502; - break; - case 502: - interpreter.sendOptions("Select an Option", "Yes.", "No."); - stage = 503; + stage = 31; break; case 503: switch (buttonId) { case 1: - interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes, ofcourse. Any threat to Misthalin must be", "neutralised immediately. So what can I do to help?"); + interpreter.sendDialogues(player, FacialExpression.HALF_GUILTY, "Yes, of course. Any threat to Misthalin must be", "neutralised immediately. So what can I do to help?"); stage = 506; break; case 2: @@ -236,11 +232,11 @@ public final class DrezelDialogue extends DialoguePlugin { end(); break; case 506: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Well, the immediate problem is that I am trapped in this", "cell. I know that they key to free me is nearby, for none", "of the Zamorakians"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "Well, the immediate problem is that I am trapped in this", "cell. I know that the key to free me is nearby, for none", "of the Zamorakians"); stage = 507; break; case 507: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "who imprisoned me here were ever gone for long", "periods of time, Should you find the key however, as", "you may have noticed,"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "who imprisoned me here were ever gone for long", "periods of time. Should you find the key however, as", "you may have noticed,"); stage = 508; break; case 508: @@ -276,7 +272,7 @@ public final class DrezelDialogue extends DialoguePlugin { stage = 516; break; case 516: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "When you have done both of those I will be able to", "inspect the damage which those Zamorakians have done", "to the purity of the Salve"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "When you have done both of those I will be able to", "inspect the damage which those Zamorakians have done", "to the purity of the Salve."); stage = 517; break; case 517: @@ -352,7 +348,7 @@ public final class DrezelDialogue extends DialoguePlugin { player.getPacketDispatch().sendMessage("The priest blesses the water for you."); break; case 730: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "well, the water of the salve should still have enough", "power to work against the vampie despite what those", "Zamorakians might have done to it..."); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "well, the water of the salve should still have enough", "power to work against the vampire despite what those", "Zamorakians might have done to it..."); stage = 731; break; case 731: diff --git a/Server/src/main/java/core/game/content/dialogue/DrezelMonumentDialogue.java b/Server/src/main/java/core/game/content/dialogue/DrezelMonumentDialogue.java index 6d4f62163..aeb536891 100644 --- a/Server/src/main/java/core/game/content/dialogue/DrezelMonumentDialogue.java +++ b/Server/src/main/java/core/game/content/dialogue/DrezelMonumentDialogue.java @@ -211,7 +211,7 @@ public final class DrezelMonumentDialogue extends DialoguePlugin { stage = 901; break; case 901: - interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "From what I can tell, after you killed the guard dog", "who protected the entrance to the mouments, those", "Zamorakians forced the door into the main chamber"); + interpreter.sendDialogues(npc, FacialExpression.HALF_GUILTY, "From what I can tell, after you killed the guard dog", "who protected the entrance to the monuments, those", "Zamorakians forced the door into the main chamber"); stage = 902; break; case 902: diff --git a/Server/src/main/java/core/game/interaction/item/withobject/PriestInPerilUsePlugin.java b/Server/src/main/java/core/game/interaction/item/withobject/PriestInPerilUsePlugin.java index 902e07fcf..5b7cde83e 100644 --- a/Server/src/main/java/core/game/interaction/item/withobject/PriestInPerilUsePlugin.java +++ b/Server/src/main/java/core/game/interaction/item/withobject/PriestInPerilUsePlugin.java @@ -136,8 +136,8 @@ public class PriestInPerilUsePlugin extends UseWithHandler { Quest quest = player.getQuestRepository().getQuest("Priest in Peril"); quest.setStage(player, 15); player.getPacketDispatch().sendMessage("You have unlocked the cell door."); - NPC npc = NPC.create(1047, player.getLocation()); - npc.setName("Dezel"); + NPC npc = NPC.create(7690, player.getLocation()); + npc.setName("Drezel"); player.getDialogueInterpreter().sendDialogues(npc, FacialExpression.HALF_GUILTY, "Oh! Thank you! You have found the key!"); } } diff --git a/Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/KingRoaldPIPDialogue.kt b/Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/KingRoaldPIPDialogue.kt index fc038424c..e95c640c9 100644 --- a/Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/KingRoaldPIPDialogue.kt +++ b/Server/src/main/kotlin/rs09/game/content/quest/members/priestinperil/KingRoaldPIPDialogue.kt @@ -17,10 +17,10 @@ class KingRoaldPIPDialogue(val questStage: Int) : DialogueFile() { when(stage){ 1 -> player("I am looking for a quest!").also { stage++ } 2 -> npc("A quest you say? Hmm, what an odd request to make", "of the king. It's funny you should mention it though, as", "there is something you can do for me.").also { stage++ } - 3 -> npc("Are you aware of the temple easy of here? It stands on", "the river Salve and guards the entrance to the lands of", "Morytania?").also { stage++ } + 3 -> npc("Are you aware of the temple east of here? It stands on", "the river Salve and guards the entrance to the lands of", "Morytania?").also { stage++ } 4 -> player("No, I don't think I know it...").also { stage++ } 5 -> npc("Hmm, how strange that you don't. Well anyway, it has", "been some days since last I heard from Drezel, the", "priest who lives there.").also { stage++ } - 6 -> npc("Be a sport and go make sure that nothing untoward", "has happend to the silly old codger for me, would you?").also { stage++ } + 6 -> npc("Be a sport and go make sure that nothing untoward", "has happened to the silly old codger for me, would you?").also { stage++ } 7 -> options("Sure.", "No, that sounds boring.").also { stage++ } 8 -> when(buttonID){ 1 -> { @@ -49,11 +49,11 @@ class KingRoaldPIPDialogue(val questStage: Int) : DialogueFile() { when(stage){ 1 -> npc("You have news of Drezel for me?").also { stage++ } 2 -> player("Yeah, I spoke to the guys at the temple and they said", "they were being bothered by that dog in the crypt, so I", "went and killed it for them. No problem.").also { stage++ } - 3 -> npc("YOU DID WHAT??").also { stage++ } + 3 -> npc("YOU DID WHAT???").also { stage++ } 4 -> npc("Are you mentally deficient??? That guard dog was", "protecting the route to Morytania! Without it we could", "be in severe peril of attack!").also { stage++ } 5 -> player("Did I make a mistake?").also { stage++ } - 6 -> npc("YES YOU DID!!!!! You need to get there", "and find out what is happening! Before it is too late for", "us all!").also { stage++ } - 7 -> player("B-but Drezel TOLD me to..!").also { stage++ } + 6 -> npc("YES YOU DID!!!!! You need to get there right now", "and find out what is happening! Before it is too late for", "us all!").also { stage++ } + 7 -> player("B-but Drezel TOLD me to...!").also { stage++ } 8 -> npc("No, you absolute cretin! Obviously some fiend has done", "something to Drezel and tricked your feeble intellect", "into helping them kill that guard dog!").also { stage++ } 9 -> npc("You get back there and do whatever is necessary to", "safeguard my kingdom from attack, or I will see you", "beheaded for high treason!").also { stage++ } 10 -> { From 3af8c85863cc5889679430779e60830bb92d225c Mon Sep 17 00:00:00 2001 From: Woahscam <7430825-woahscam@users.noreply.gitlab.com> Date: Thu, 19 Aug 2021 02:42:28 +0000 Subject: [PATCH 4/4] Turoth drop table corrections --- Server/data/configs/drop_tables.json | 404 +++++++++++++++++---------- 1 file changed, 263 insertions(+), 141 deletions(-) diff --git a/Server/data/configs/drop_tables.json b/Server/data/configs/drop_tables.json index 288dad9d1..92f53c941 100644 --- a/Server/data/configs/drop_tables.json +++ b/Server/data/configs/drop_tables.json @@ -27400,154 +27400,276 @@ ] }, { - "default": [], - "charm": [], + "default": [ + { + "minAmount": "1", + "weight": "1.0", + "id": "526", + "maxAmount": "1" + } + ], + "charm": [ + { + "minAmount": "1", + "weight": "20.0", + "id": "12158", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "70.0", + "id": "12159", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "12160", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "12163", + "maxAmount": "1" + } + ], "ids": "1622,1623,1626,1627,1628,1629,1630", "description": "", "main": [ - { - "minAmount": "5", - "weight": "50.0", - "id": "557", - "maxAmount": "42" - }, { "minAmount": "1", - "weight": "50.0", - "id": "1436", - "maxAmount": "1" - }, - { - "minAmount": "2", - "weight": "25.0", - "id": "562", - "maxAmount": "25" - }, - { - "minAmount": "1", - "weight": "50.0", - "id": "438", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "50.0", - "id": "436", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "50.0", - "id": "2349", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "50.0", - "id": "440", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "50.0", - "id": "2351", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "50.0", - "id": "453", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "25.0", - "id": "447", - "maxAmount": "1" - }, - { - "minAmount": "4", - "weight": "50.0", - "id": "5318", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "50.0", - "id": "5319", - "maxAmount": "4" - }, - { - "minAmount": "4", - "weight": "50.0", - "id": "5324", - "maxAmount": "4" - }, - { - "minAmount": "3", - "weight": "25.0", - "id": "5322", - "maxAmount": "3" - }, - { - "minAmount": "4", - "weight": "25.0", - "id": "5305", - "maxAmount": "4" - }, - { - "minAmount": "3", - "weight": "25.0", - "id": "5320", - "maxAmount": "3" - }, - { - "minAmount": "3", - "weight": "25.0", - "id": "5308", - "maxAmount": "3" - }, - { - "minAmount": "2", - "weight": "5.0", - "id": "5323", - "maxAmount": "2" - }, - { - "minAmount": "2", - "weight": "5.0", - "id": "5321", - "maxAmount": "2" - }, - { - "minAmount": "1", - "weight": "50.0", - "id": "2347", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "50.0", - "id": "1913", - "maxAmount": "1" - }, - { - "minAmount": "23", - "weight": "25.0", - "id": "995", - "maxAmount": "23" - }, - { - "minAmount": "1", - "weight": "5.0", - "id": "4115", - "maxAmount": "1" - }, - { - "minAmount": "1", - "weight": "5.0", + "weight": "1.0", "id": "31", "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "19.0", + "id": "1069", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "8.0", + "id": "1355", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.0", + "id": "1197", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.0", + "id": "1161", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.0", + "id": "1213", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0", + "id": "13290", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0", + "id": "4113", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "17.0", + "id": "563", + "maxAmount": "3" + }, + { + "minAmount": "15", + "weight": "14.0", + "id": "561", + "maxAmount": "15" + }, + { + "minAmount": "37", + "weight": "3.0", + "id": "561", + "maxAmount": "37" + }, + { + "minAmount": "1", + "weight": "22.0", + "id": "199", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "16.0", + "id": "201", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "12.0", + "id": "203", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "9.0", + "id": "205", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "7.0", + "id": "207", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "209", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "4.0", + "id": "211", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "4.0", + "id": "213", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "3.0", + "id": "215", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "2.0", + "id": "2485", + "maxAmount": "3" + }, + { + "minAmount": "1", + "weight": "2.0", + "id": "217", + "maxAmount": "3" + }, + { + "minAmount": "44", + "weight": "77.0", + "id": "995", + "maxAmount": "44" + }, + { + "minAmount": "132", + "weight": "32.0", + "id": "995", + "maxAmount": "132" + }, + { + "minAmount": "440", + "weight": "3.0", + "id": "995", + "maxAmount": "440" + }, + { + "minAmount": "1", + "weight": "10.0", + "id": "5296", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.0", + "id": "5297", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "7.0", + "id": "5281", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "5106", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "5298", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "3.0", + "id": "5299", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.0", + "id": "5300", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "2.0", + "id": "5301", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0", + "id": "5302", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0", + "id": "5303", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "1.0", + "id": "5304", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "19.0", + "id": "225", + "maxAmount": "1" + }, + { + "minAmount": "1", + "weight": "5.0", + "id": "5280", + "maxAmount": "1" + }, + { + "minAmount": "45", + "weight": "1.0", + "id": "561", + "maxAmount": "45" } ] },