From bb8cd6a2319bcd05bdd3894a6597de657012b1db Mon Sep 17 00:00:00 2001 From: Auxilor Date: Sat, 18 Dec 2021 14:03:42 +0000 Subject: [PATCH] Fixed stat multipliers --- .../com/willfp/ecoskills/EcoSkillsPlayer.kt | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt index 843e737..94479f9 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/ecoskills/EcoSkillsPlayer.kt @@ -13,8 +13,9 @@ import org.bukkit.OfflinePlayer import org.bukkit.entity.Entity import org.bukkit.entity.Player import org.bukkit.entity.Projectile -import java.util.UUID +import java.util.* import kotlin.math.abs +import kotlin.math.ceil private val expMultiplierCache = mutableMapOf() private val plugin: EcoSkillsPlugin = EcoSkillsPlugin.getInstance() @@ -142,22 +143,27 @@ fun OfflinePlayer.getStatLevel(stat: Stat): Int { } fun Player.getBonusStatLevel(stat: Stat): Int { - var i = 0.0 + var added = 0.0 for (modifier in this.getStatModifiers()) { if (modifier.stat == stat) { if (modifier.operation == ModifierOperation.ADD) { - i += modifier.amount + added += modifier.amount } } } + val base = this.getBaseStatLevel(stat) + var toMultiply = base + added + for (modifier in this.getStatModifiers()) { if (modifier.stat == stat) { if (modifier.operation == ModifierOperation.MULTIPLY) { - i *= modifier.amount + toMultiply *= modifier.amount } } } - return i.toInt() + toMultiply -= base + + return ceil(toMultiply).toInt() } fun OfflinePlayer.getBaseStatLevel(stat: Stat): Int {