9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-02 22:02:19 +00:00

Added magic cost argument

This commit is contained in:
Auxilor
2023-05-13 12:44:09 +01:00
parent 96273289b8
commit d95a794d9c
2 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
package com.willfp.ecoskills.libreforge
import com.willfp.ecoskills.mana.MagicType
import com.willfp.ecoskills.mana.magic
import com.willfp.libreforge.ConfigurableElement
import com.willfp.libreforge.NoCompileData
import com.willfp.libreforge.effects.arguments.EffectArgument
import com.willfp.libreforge.getIntFromExpression
import com.willfp.libreforge.triggers.DispatchedTrigger
class EffectArgumentMagicCost(private val type: MagicType) : EffectArgument<NoCompileData>("${type.id}_cost") {
override fun isMet(element: ConfigurableElement, trigger: DispatchedTrigger, compileData: NoCompileData): Boolean {
val cost = element.config.getIntFromExpression("${type.id}_cost", trigger.data)
val player = trigger.player
return player.magic[type] >= cost
}
override fun ifMet(element: ConfigurableElement, trigger: DispatchedTrigger, compileData: NoCompileData) {
val cost = element.config.getIntFromExpression("${type.id}_cost", trigger.data)
val player = trigger.player
player.magic[type] -= cost
}
}

View File

@@ -10,6 +10,8 @@ import com.willfp.eco.util.evaluateExpression
import com.willfp.eco.util.toNiceString
import com.willfp.eco.util.toNumeral
import com.willfp.ecoskills.EcoSkillsPlugin
import com.willfp.ecoskills.libreforge.EffectArgumentMagicCost
import com.willfp.libreforge.effects.arguments.EffectArguments
import org.bukkit.entity.Player
class MagicType(
@@ -41,6 +43,7 @@ class MagicType(
override fun onRegister() {
Prices.registerPriceFactory(PriceFactoryMagic(this))
EffectArguments.register(EffectArgumentMagicCost(this))
}
fun getLimit(player: Player) = evaluateExpression(