BattleSessionCaptureResourceUsage.kt

package io.github.lishangbu.avalon.game.battle.engine.core.session

/**
 * 捕捉动作资源账本条目。
 *
 * @property playerId 发起捕捉的玩家标识。
 * @property sourceUnitId 扔球单位标识。
 * @property ballItemId 使用的球类道具标识。
 * @property targetUnitId 被捕捉的目标单位标识。
 * @property quantity 本次消耗的球数量。
 * @property success 本次捕捉是否成功。
 * @property shakes 本次捕捉的摇晃次数。
 * @property reason 本次捕捉结果原因。
 * @property finalRate 本次捕捉的最终概率。
 */
data class BattleSessionCaptureResourceUsage(
    val playerId: String,
    val sourceUnitId: String,
    val ballItemId: String,
    val targetUnitId: String,
    val quantity: Int = 1,
    val success: Boolean,
    val shakes: Int,
    val reason: String,
    val finalRate: Double,
) : BattleSessionResourceUsage {
    /**
     * 当前账本条目的业务种类。
     */
    override val kind: BattleSessionResourceUsageKind = BattleSessionResourceUsageKind.CAPTURE
}