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:
@@ -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
|
||||
}
|
||||
}
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user