31 lines
1.2 KiB
Kotlin
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,
|
|
)
|
|
}
|
|
}
|