DEADSOFTWARE

Add player health
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / mobs / Pig.kt
1 package ru.deadsoftware.cavedroid.game.mobs
3 import com.badlogic.gdx.graphics.g2d.SpriteBatch
4 import com.badlogic.gdx.math.MathUtils
5 import com.badlogic.gdx.math.Vector2
6 import ru.deadsoftware.cavedroid.game.world.GameWorld
7 import ru.deadsoftware.cavedroid.misc.utils.drawSprite
8 import ru.deadsoftware.cavedroid.misc.utils.mobs.MobSprites.Pig.getBackgroundLeg
9 import ru.deadsoftware.cavedroid.misc.utils.mobs.MobSprites.Pig.getBody
10 import ru.deadsoftware.cavedroid.misc.utils.mobs.MobSprites.Pig.getForegroundLeg
11 import ru.deadsoftware.cavedroid.misc.utils.mobs.MobSprites.Pig.getLeftLegRelativeX
12 import ru.deadsoftware.cavedroid.misc.utils.mobs.MobSprites.Pig.getLegsRelativeY
13 import ru.deadsoftware.cavedroid.misc.utils.mobs.MobSprites.Pig.getRightLegRelativeX
15 class Pig(x: Float, y: Float) : Mob(x, y, WIDTH, HEIGHT, randomDir(), Type.MOB, MAX_HEALTH) {
17 override fun getSpeed(): Float {
18 return SPEED
19 }
21 override fun changeDir() {
22 switchDir()
23 velocity = Vector2(direction.basis * speed, 0f)
24 }
26 override fun jump() {
27 velocity.y = JUMP_VELOCITY
28 }
30 override fun ai(world: GameWorld, delta: Float) {
31 if (MathUtils.randomBoolean(delta)) {
32 if (velocity.x != 0f) {
33 velocity.x = 0f
34 } else {
35 changeDir()
36 }
37 }
38 }
40 override fun draw(spriteBatch: SpriteBatch, x: Float, y: Float, delta: Float) {
41 updateAnimation(delta)
43 val leftLegX = x + getLeftLegRelativeX(direction)
44 val rightLegX = x + getRightLegRelativeX(direction)
45 val legY = y + getLegsRelativeY()
47 spriteBatch.drawSprite(getBackgroundLeg(), leftLegX, legY, -anim)
48 spriteBatch.drawSprite(getBackgroundLeg(), rightLegX, legY, -anim)
49 spriteBatch.drawSprite(getBody(direction), x, y)
50 spriteBatch.drawSprite(getForegroundLeg(), leftLegX, legY, anim)
51 spriteBatch.drawSprite(getForegroundLeg(), rightLegX, legY, anim)
52 }
55 private companion object {
56 private const val WIDTH = 25f
57 private const val HEIGHT = 18f
58 private const val SPEED = 69.072f
59 private const val JUMP_VELOCITY = -133.332f
60 private const val MAX_HEALTH = 10;
61 }
62 }