X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavedroid%2Fgame%2FGamePhysics.java;h=cece8e2c625ebe9e8823f9a5b347f063e5485e4b;hb=76a3b56287b1262f78f3b43a4aac5660338d67ad;hp=aebf8eb654eb03b7865162b6ec721557c1eddb5c;hpb=c447b95aeb883113ff1d53a3178828929c1eb92f;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavedroid/game/GamePhysics.java b/core/src/ru/deadsoftware/cavedroid/game/GamePhysics.java index aebf8eb..cece8e2 100644 --- a/core/src/ru/deadsoftware/cavedroid/game/GamePhysics.java +++ b/core/src/ru/deadsoftware/cavedroid/game/GamePhysics.java @@ -9,6 +9,7 @@ import ru.deadsoftware.cavedroid.game.mobs.Mob; import ru.deadsoftware.cavedroid.game.mobs.MobsController; import ru.deadsoftware.cavedroid.game.mobs.player.Player; import ru.deadsoftware.cavedroid.game.model.block.Block; +import ru.deadsoftware.cavedroid.game.model.item.InventoryItem; import ru.deadsoftware.cavedroid.game.objects.drop.Drop; import ru.deadsoftware.cavedroid.game.objects.drop.DropController; import ru.deadsoftware.cavedroid.game.world.GameWorld; @@ -118,7 +119,7 @@ public class GamePhysics { private Rectangle getShiftedMagnetingPlayerRect(Drop drop) { final Player player = mMobsController.getPlayer(); - if (!player.inventory.canPickItem(drop.getItem())) { + if (!player.inventory.canPickItem(drop)) { return null; } @@ -354,16 +355,24 @@ public class GamePhysics { for (Iterator it = mMobsController.getMobs().iterator(); it.hasNext(); ) { Mob mob = it.next(); - mob.ai(mGameWorld, mGameItemsHolder, delta); + mob.ai(mGameWorld, mGameItemsHolder, mMobsController, delta); mobPhy(mob, delta); if (mob.isDead()) { + for (InventoryItem invItem : mob.getDrop(mGameItemsHolder)) { + mDropController.addDrop(mob.x, mob.y, invItem); + } + it.remove(); } } playerPhy(player, delta); - player.ai(mGameWorld, mGameItemsHolder, delta); + player.ai(mGameWorld, mGameItemsHolder, mMobsController, delta); if (player.isDead()) { + for (InventoryItem invItem : player.inventory.getItems()) { + mDropController.addDrop(player.x, player.y, invItem); + } + player.inventory.clear(); player.respawn(mGameWorld, mGameItemsHolder); } }