summaryrefslogtreecommitdiff
path: root/src/main/java/at/hannibal2/skyhanni/data
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/data')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt b/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt
index 35e664cd7..7db58cd62 100644
--- a/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt
+++ b/src/main/java/at/hannibal2/skyhanni/data/SackAPI.kt
@@ -10,12 +10,14 @@ import at.hannibal2.skyhanni.features.fishing.trophy.TrophyFishManager.getFillet
import at.hannibal2.skyhanni.features.fishing.trophy.TrophyRarity
import at.hannibal2.skyhanni.features.inventory.SackDisplay
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName
+import at.hannibal2.skyhanni.utils.ItemUtils.getInternalName_old
import at.hannibal2.skyhanni.utils.ItemUtils.getLore
import at.hannibal2.skyhanni.utils.ItemUtils.name
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.LorenzUtils.editCopy
import at.hannibal2.skyhanni.utils.NEUInternalName
import at.hannibal2.skyhanni.utils.NEUInternalName.Companion.asInternalName
+import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NEUItems.getNpcPriceOrNull
import at.hannibal2.skyhanni.utils.NEUItems.getPrice
import at.hannibal2.skyhanni.utils.NumberUtil.formatNumber
@@ -153,15 +155,24 @@ object SackAPI {
item.colorCode = group("color")
item.stored = stored
item.total = group("total")
+
if (savingSacks) setSackItem(item.internalName, item.stored.formatNumber())
- item.price = if (isTrophySack) {
- val trophyName =
- internalName.asString().lowercase().substringBeforeLast("_").replace("_", "")
- val filletValue =
- TrophyFishManager.getInfoByName(trophyName)?.getFilletValue(sackRarity!!) ?: 0
- val storedNumber = stored.formatNumber()
- "MAGMA_FISH".asInternalName().sackPrice((filletValue * storedNumber).toString())
- } else internalName.sackPrice(stored).coerceAtLeast(0)
+ val price: Long
+ if (isTrophySack) {
+ val internal = stack.getInternalName_old()
+ val trophyFishName = internal.substringBeforeLast("_")
+ .replace("_", "").lowercase()
+ val trophyRarityName = internal.substringAfterLast("_")
+ val info = TrophyFishManager.getInfo(trophyFishName)
+ val rarity = TrophyRarity.getByName(trophyRarityName) ?: TrophyRarity.BRONZE
+ val filletValue = (info?.getFilletValue(rarity) ?: 0) * stored.toLong()
+ price = "MAGMA_FISH".asInternalName().sackPrice(filletValue.toString())
+ item.magmaFish = filletValue.toString()
+ } else {
+ price = internalName.sackPrice(stored).coerceAtLeast(0)
+ }
+ item.price = price
+
if (isRuneSack) {
val level = group("level")
@@ -320,6 +331,7 @@ object SackAPI {
var stored: String = "0",
var total: String = "0",
var price: Long = 0,
+ var magmaFish: String = "0",
)
}
@@ -331,6 +343,7 @@ data class SackItem(
fun getStatus() = status ?: SackStatus.MISSING
}
+
private val gemstoneMap = mapOf(
"Jade Gemstones" to "ROUGH_JADE_GEM".asInternalName(),
"Amber Gemstones" to "ROUGH_AMBER_GEM".asInternalName(),