X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=core%2Fsrc%2Fru%2Fdeadsoftware%2Fcavecraft%2Fgame%2FGameProc.java;h=5b497a4ae17b846d794dabf8869940dd48f886d6;hb=d7f5950fc751cec8fa64005dd1886cac4081ee99;hp=14b7015c4d0ba5eb4878cbc937be35044e4685b7;hpb=8c0966b107ebbf261f8aa9c516fb90b0d9d230e5;p=cavedroid.git diff --git a/core/src/ru/deadsoftware/cavecraft/game/GameProc.java b/core/src/ru/deadsoftware/cavecraft/game/GameProc.java index 14b7015..5b497a4 100644 --- a/core/src/ru/deadsoftware/cavecraft/game/GameProc.java +++ b/core/src/ru/deadsoftware/cavecraft/game/GameProc.java @@ -44,10 +44,10 @@ public class GameProc implements Serializable { public int touchDownBtn; public long touchDownTime; - public GameProc() { + public GameProc(int gameMode) { world = new GameWorld(); world.generate(1024, 256); - player = new Player(world.getSpawnPoint()); + player = new Player(world, gameMode); drops = new ArrayList(); mobs = new ArrayList(); for (int i = 0; i < 16; i++) { @@ -410,18 +410,26 @@ public class GameProc implements Serializable { if (isTouchDown && touchDownBtn == Input.Buttons.LEFT) { if ((world.getForeMap(curX, curY) > 0 && GameItems.getBlock(world.getForeMap(curX, curY)).getHp() >= 0) || - world.getBackMap(curX, curY) > 0 && GameItems.getBlock(world.getBackMap(curX, curY)).getHp() >= 0) { - blockDmg++; - if (world.getForeMap(curX, curY) > 0) { - if (blockDmg >= GameItems.getBlock(world.getForeMap(curX, curY)).getHp()) { - world.destroyForeMap(curX, curY, this); - blockDmg = 0; - } - } else if (world.getBackMap(curX, curY) > 0) { - if (blockDmg >= GameItems.getBlock(world.getBackMap(curX, curY)).getHp()) { - world.destroyBackMap(curX, curY, this); - blockDmg = 0; + (world.getForeMap(curX, curY) == 0 && + world.getBackMap(curX, curY) > 0 && + GameItems.getBlock(world.getBackMap(curX, curY)).getHp() >= 0)) { + if (player.gameMode == 0) { + blockDmg++; + if (world.getForeMap(curX, curY) > 0) { + if (blockDmg >= GameItems.getBlock(world.getForeMap(curX, curY)).getHp()) { + world.destroyForeMap(curX, curY, this); + blockDmg = 0; + } + } else if (world.getBackMap(curX, curY) > 0) { + if (blockDmg >= GameItems.getBlock(world.getBackMap(curX, curY)).getHp()) { + world.destroyBackMap(curX, curY, this); + blockDmg = 0; + } } + } else { + if (world.getForeMap(curX, curY) > 0) world.placeToForeground(curX, curY, 0); + else if (world.getBackMap(curX, curY) > 0) world.placeToBackground(curX, curY, 0); + isTouchDown = false; } } }