X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=inline;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmodel%2Fitem%2FItem.kt;h=7eeb9403a88a636f843998a18b98188bbedaf2c0;hb=36f78fdd1d4f8b9a1c77f8fbedc05e5675a5c288;hp=b56f068892af48aebac980418468edc02d51196d;hpb=8b34480aaaf0112671d319accff573030079c7b6;p=cavedroid.git 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 b56f068..7eeb940 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/model/item/Item.kt +++ b/core/src/ru/deadsoftware/cavedroid/game/model/item/Item.kt @@ -35,12 +35,16 @@ sealed class Item { 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 @@ -54,6 +58,7 @@ sealed class Item { sealed class Tool : Item() { abstract val mobDamageMultiplier: Float abstract val blockDamageMultiplier: Float + abstract val level: Int } sealed class Usable : Item() { @@ -90,6 +95,7 @@ sealed class Item { override val sprite: Sprite, override val mobDamageMultiplier: Float, override val blockDamageMultiplier: Float, + override val level: Int, ) : Tool() data class Shovel( @@ -97,6 +103,31 @@ sealed class Item { 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(