X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2Fmobs%2FMob.java;h=0f3610b61c36d0d516c744d7158abfa348a5fbd5;hb=76a3b56287b1262f78f3b43a4aac5660338d67ad;hp=62ddc50d4df7a6e00217a3a1f161cee8e745cb44;hpb=f42029ab3edd3d0f04ebf1910cef834abb16ed0b;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java index 62ddc50..0f3610b 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java +++ b/core/src/ru/deadsoftware/cavedroid/game/mobs/Mob.java @@ -8,15 +8,21 @@ import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.utils.Timer; import ru.deadsoftware.cavedroid.game.GameItemsHolder; +import ru.deadsoftware.cavedroid.game.model.dto.SaveDataDto; +import ru.deadsoftware.cavedroid.game.model.item.InventoryItem; +import ru.deadsoftware.cavedroid.game.model.item.Item; import ru.deadsoftware.cavedroid.game.world.GameWorld; +import ru.deadsoftware.cavedroid.misc.Saveable; import javax.annotation.CheckForNull; import java.io.Serializable; +import java.util.Collections; +import java.util.List; /** * Mob class. */ -public abstract class Mob extends Rectangle implements Serializable { +public abstract class Mob extends Rectangle implements Serializable, Saveable { private static final float DAMAGE_TINT_TIMEOUT_S = 0.5f; private static final Color DAMAGE_TINT_COLOR = new Color(0xff8080ff); @@ -27,8 +33,7 @@ public abstract class Mob extends Rectangle implements Serializable { public enum Type { MOB, - SAND, - GRAVEL + FALLING_BLOCK } public enum Direction { @@ -72,13 +77,13 @@ public abstract class Mob extends Rectangle implements Serializable { protected int mAnimDelta = ANIMATION_SPEED; protected float mAnim; - private Direction mDirection; + protected Direction mDirection; protected boolean mDead; - private boolean mCanJump; - private boolean mFlyMode; + protected boolean mCanJump; + protected boolean mFlyMode; - private final int mMaxHealth; - private int mHealth; + protected int mMaxHealth; + protected int mHealth; private transient boolean mTakingDamage = false; @CheckForNull private transient ResetTakeDamageTask mResetTakeDamageTask = null; @@ -210,7 +215,7 @@ public abstract class Mob extends Rectangle implements Serializable { /** * Set's mob's dead variable to true and nothing else. It doesn't delete the */ - public final void kill() { + public void kill() { mDead = true; } @@ -260,6 +265,10 @@ public abstract class Mob extends Rectangle implements Serializable { return mHealth; } + public final int getMaxHealth() { + return mMaxHealth; + } + public final void attachToController(MobsController controller) { controller.addMob(this); } @@ -324,6 +333,10 @@ public abstract class Mob extends Rectangle implements Serializable { return isTakingDamage() ? DAMAGE_TINT_COLOR : Color.WHITE; } + public List getDrop(GameItemsHolder gameItemsHolder) { + return Collections.emptyList(); + } + public abstract void draw(SpriteBatch spriteBatch, float x, float y, float delta); public abstract void ai(GameWorld gameWorld, GameItemsHolder gameItemsHolder, MobsController mobsController, float delta); @@ -333,4 +346,11 @@ public abstract class Mob extends Rectangle implements Serializable { public abstract float getSpeed(); public abstract void jump(); + + @Override + public abstract SaveDataDto.MobSaveDataDto getSaveData(); + + public static Mob fromSaveData(SaveDataDto.MobSaveDataDto saveData) { + return MobSaveDataMapperKt.fromSaveData(saveData); + } }