diff --git a/core/src/ru/deadsoftware/cavedroid/game/model/item/Item.kt b/core/src/ru/deadsoftware/cavedroid/game/model/item/Item.kt
index b56f068892af48aebac980418468edc02d51196d..7eeb9403a88a636f843998a18b98188bbedaf2c0 100644 (file)
return this is Slab
}
-
fun isTool(): Boolean {
contract { returns(true) implies (this@Item is Tool) }
return this is Tool
}
+ fun isShears(): Boolean {
+ contract { returns(true) implies (this@Item is Shears) }
+ return this is Shears
+ }
+
fun isUsable(): Boolean {
contract { returns(true) implies (this@Item is Placeable) }
return this is Placeable
sealed class Tool : Item() {
abstract val mobDamageMultiplier: Float
abstract val blockDamageMultiplier: Float
+ abstract val level: Int
}
sealed class Usable : Item() {
override val sprite: Sprite,
override val mobDamageMultiplier: Float,
override val blockDamageMultiplier: Float,
+ override val level: Int,
) : Tool()
data class Shovel(
override val sprite: Sprite,
override val mobDamageMultiplier: Float,
override val blockDamageMultiplier: Float,
+ override val level: Int,
+ ) : Tool()
+
+ data class Axe(
+ override val params: CommonItemParams,
+ override val sprite: Sprite,
+ override val mobDamageMultiplier: Float,
+ override val blockDamageMultiplier: Float,
+ override val level: Int,
+ ) : Tool()
+
+ data class Pickaxe(
+ override val params: CommonItemParams,
+ override val sprite: Sprite,
+ override val mobDamageMultiplier: Float,
+ override val blockDamageMultiplier: Float,
+ override val level: Int,
+ ) : Tool()
+
+ data class Shears(
+ override val params: CommonItemParams,
+ override val sprite: Sprite,
+ override val mobDamageMultiplier: Float,
+ override val blockDamageMultiplier: Float,
+ override val level: Int,
) : Tool()
data class Bucket(