You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
30 lines
811 B
30 lines
811 B
6 months ago
|
package model
|
||
|
|
||
|
import korlibs.time.*
|
||
|
|
||
|
sealed interface HistoryEntry: Comparable<HistoryEntry> {
|
||
|
val timestamp: TimeSpan
|
||
|
val pendingEffects: List<BattleEffect>
|
||
|
val battlers: List<Battler.Saved>
|
||
|
|
||
|
override fun compareTo(other: HistoryEntry): Int {
|
||
|
return timestamp.compareTo(other.timestamp)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
data class ActionHistoryEntry(
|
||
|
val action: BattleAction,
|
||
|
override val pendingEffects: List<BattleEffect>,
|
||
|
override val battlers: List<Battler.Saved>,
|
||
|
): HistoryEntry {
|
||
|
override val timestamp: TimeSpan get() = action.timestamp
|
||
|
}
|
||
|
|
||
|
data class EffectHistoryEntry(
|
||
|
val effect: BattleEffect,
|
||
|
override val pendingEffects: List<BattleEffect>,
|
||
|
override val battlers: List<Battler.Saved>,
|
||
|
): HistoryEntry {
|
||
|
override val timestamp: TimeSpan get() = effect.timestamp
|
||
|
}
|