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

31 lines
1.2 KiB
Kotlin

package ru.dbotthepony.kstarbound.defs
import ru.dbotthepony.kstarbound.json.builder.JsonFactory
@JsonFactory
data class ActorMovementModifiers(
val groundMovementModifier: Double = 0.0,
val liquidMovementModifier: Double = 0.0,
val speedModifier: Double = 0.0,
val airJumpModifier: Double = 0.0,
val liquidJumpModifier: Double = 0.0,
val runningSuppressed: Boolean = false,
val jumpingSuppressed: Boolean = false,
val movementSuppressed: Boolean = false,
val facingSuppressed: Boolean = false,
) {
fun combine(other: ActorMovementModifiers): ActorMovementModifiers {
return ActorMovementModifiers(
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,
movementSuppressed = movementSuppressed || other.movementSuppressed,
facingSuppressed = facingSuppressed || other.facingSuppressed,
)
}
}