DEADSOFTWARE

Implement dependency injection for game classes #13
[cavedroid.git] / core / src / ru / deadsoftware / cavedroid / game / mobs / Pig.java
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.GameWorld;
7 import ru.deadsoftware.cavedroid.misc.Assets;
9 import static ru.deadsoftware.cavedroid.misc.Assets.pigSprite;
11 public class Pig extends Mob {
13 public Pig(float x, float y) {
14 super(x, y, 25, 18, randomDir(), Type.MOB);
15 mMove = new Vector2(looksLeft() ? -1 : 1, 0);
16 }
18 @Override
19 public void changeDir() {
20 switchDir();
21 mMove.x = -1 + 2 * dirMultiplier();
22 }
24 @Override
25 public void ai(GameWorld gameWorld) {
26 if (MathUtils.randomBoolean(.0025f)) {
27 if (mMove.x != 0f) {
28 mMove.x = 0;
29 } else {
30 changeDir();
31 }
32 }
34 if (mMove.x != 0f) {
35 mAnim += mAnimDelta;
36 } else {
37 mAnim = 0;
38 }
40 if (mAnim >= 60 || mAnim <= -60) {
41 mAnimDelta = -mAnimDelta;
42 }
43 }
45 @Override
46 public void draw(SpriteBatch spriteBatch, float x, float y) {
47 pigSprite[0][1].setRotation(getAnim());
48 pigSprite[1][1].setRotation(-getAnim());
49 //back legs
50 pigSprite[1][1].setPosition(x + (9 - dirMultiplier() * 9), y + 12);
51 pigSprite[1][1].draw(spriteBatch);
52 pigSprite[1][1].setPosition(x + 21 - (9 * dirMultiplier()), y + 12);
53 pigSprite[1][1].draw(spriteBatch);
54 //head & body
55 spriteBatch.draw(Assets.pigSprite[dirMultiplier()][0], x, y);
56 //front legs
57 pigSprite[0][1].setPosition(x + (9 - dirMultiplier() * 9), y + 12);
58 pigSprite[0][1].draw(spriteBatch);
59 pigSprite[0][1].setPosition(x + 21 - (9 * dirMultiplier()), y + 12);
60 pigSprite[0][1].draw(spriteBatch);
61 }
62 }