KStarbound/src/main/kotlin/ru/dbotthepony/kstarbound/defs/MovementModifiers.kt

31 lines
1.2 KiB
Kotlin

package ru.dbotthepony.kstarbound.defs
import ru.dbotthepony.kstarbound.io.json.builder.JsonFactory
@JsonFactory
class MovementModifiers(
val groundMovementModifier: Double = 1.0,
val liquidMovementModifier: Double = 1.0,
val speedModifier: Double = 1.0,
val airJumpModifier: Double = 1.0,
val liquidJumpModifier: Double = 1.0,
val runningSuppressed: Boolean = false,
val jumpingSuppressed: Boolean = false,
val facingSuppressed: Boolean = false,
val movementSuppressed: Boolean = false,
) {
fun combine(other: MovementModifiers): MovementModifiers {
return MovementModifiers(
groundMovementModifier = groundMovementModifier * other.groundMovementModifier,
liquidMovementModifier = liquidMovementModifier * other.liquidMovementModifier,
speedModifier = speedModifier * other.speedModifier,
airJumpModifier = airJumpModifier * other.airJumpModifier,
liquidJumpModifier = liquidJumpModifier * other.liquidJumpModifier,
runningSuppressed = runningSuppressed || other.runningSuppressed,
jumpingSuppressed = jumpingSuppressed || other.jumpingSuppressed,
facingSuppressed = facingSuppressed || other.facingSuppressed,
movementSuppressed = movementSuppressed || other.movementSuppressed,
)
}
}