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..1e6755ab7c367b8886301e3173c0664df038e3ec 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
fun toInventoryItem(amount: Int = 1): InventoryItem {
return InventoryItem(this, amount)
}
-
+
+ data class Normal(
+ override val params: CommonItemParams,
+ override val sprite: Sprite
+ ) : Item()
+
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(