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, ) } }