diff --git a/android/release/android-release.apk b/android/release/android-release.apk new file mode 100644 index 0000000..81d3c38 Binary files /dev/null and b/android/release/android-release.apk differ diff --git a/android/release/output.json b/android/release/output.json new file mode 100644 index 0000000..5ee0ee2 --- /dev/null +++ b/android/release/output.json @@ -0,0 +1,20 @@ +{ + "version": 1, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.dungeoncrawler.control", + "variantName": "release", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "properties": [], + "versionCode": 1, + "versionName": "1", + "enabled": true, + "outputFile": "android-release.apk" + } + ] +} \ No newline at end of file diff --git a/build.gradle b/build.gradle index 338c25e..639a925 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ buildscript { google() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:4.0.0' } diff --git a/core/src/com/dungeoncrawler/control/Controller.java b/core/src/com/dungeoncrawler/control/Controller.java index 6f1504e..e69b779 100644 --- a/core/src/com/dungeoncrawler/control/Controller.java +++ b/core/src/com/dungeoncrawler/control/Controller.java @@ -1019,13 +1019,70 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ d.getPlayer().setMovementX(-d.getPlayer().getMovementSpeed()); break; case 1: - d.getPlayer().setMovementX(d.getPlayer().getMovementSpeed()); + d.getPlayer().setMovementY(d.getPlayer().getMovementSpeed()); break; case 2: - d.getPlayer().setMovementY(-d.getPlayer().getMovementSpeed()); + d.getPlayer().setMovementX(d.getPlayer().getMovementSpeed()); break; case 3: - d.getPlayer().setMovementY(d.getPlayer().getMovementSpeed()); + d.getPlayer().setMovementY(-d.getPlayer().getMovementSpeed()); + break; + case 4: + if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos()); + + for(int k = 5; k < d.getCurrentEntities().length; k++){ + if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } + break; + + case 5: + if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1); + + for(int k = 5; k < d.getCurrentEntities().length; k++){ + if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } + break; + case 6: + if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos()); + + for(int k = 5; k < d.getCurrentEntities().length; k++){ + if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } + break; + case 7: + if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1); + + for(int k = 5; k < d.getCurrentEntities().length; k++){ + if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } break; } } @@ -1060,7 +1117,7 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public boolean touchUp(int screenX, int screenY, int i2, int i3) { if(gs != null){ - if(click(screenX,screenY) == 0 || click(screenX,screenY) == 1 || click(screenX,screenY) == 2 || click(screenX,screenY) == 3){ + if(gs.click(screenX,screenY) == 0 || gs.click(screenX,screenY) == 1 || gs.click(screenX,screenY) == 2 || gs.click(screenX,screenY) == 3){ d.getPlayer().setMovementX(0); d.getPlayer().setMovementY(0); d.getPlayer().setMovementX(0); @@ -1072,10 +1129,10 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ @Override public boolean touchDragged(int screenX, int screenY, int i2) { - d.getPlayer().setMovementX(0); - d.getPlayer().setMovementY(0); - d.getPlayer().setMovementX(0); - d.getPlayer().setMovementY(0); + //d.getPlayer().setMovementX(0); + //d.getPlayer().setMovementY(0); + //d.getPlayer().setMovementX(0); + //d.getPlayer().setMovementY(0); switch(click(screenX, screenY)){ // -1: nix, 0: left, 1: up, 2: right, 3: down, 4: attackLeft, 5: attackUp, 6: attackRight, 7: attackDown case 0: if(!d.getPlayer().isToDelete()){ @@ -1097,6 +1154,63 @@ public class Controller extends ApplicationAdapter implements InputProcessor{ d.getPlayer().setMovementY(d.getPlayer().getMovementSpeed()); } break; + case 4: + if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() - 1, (int) d.getPlayer().getyPos()); + + for(int k = 5; k < d.getCurrentEntities().length; k++){ + if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } + break; + + case 5: + if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() + 1); + + for(int k = 5; k < d.getCurrentEntities().length; k++){ + if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } + break; + case 6: + if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos() + 1, (int) d.getPlayer().getyPos()); + + for(int k = 5; k < d.getCurrentEntities().length; k++){ + if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } + break; + case 7: + if(!gs.getIsLoading() && !d.getPlayer().isToDelete()){ + Entity lol = d.getPlayer().shoot((int) d.getPlayer().getxPos(), (int) d.getPlayer().getyPos() - 1); + + for(int k = 5; k < d.getCurrentEntities().length; k++){ + if(d.getCurrentEntities()[k] == null && gs.player.getSecondaryAttackState() != 1){ + d.getCurrentEntities()[k] = lol; + gs.generateNewEntitySprite(lol, k); + gs.player.startSecondaryAttack(); + break; + } + } + } + break; } return false; } diff --git a/core/src/com/dungeoncrawler/view/GameScreen.java b/core/src/com/dungeoncrawler/view/GameScreen.java index c55ded7..4e3bc7e 100644 --- a/core/src/com/dungeoncrawler/view/GameScreen.java +++ b/core/src/com/dungeoncrawler/view/GameScreen.java @@ -9,6 +9,7 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.graphics.glutils.ShapeRenderer; import com.badlogic.gdx.maps.tiled.TiledMap; import com.badlogic.gdx.maps.tiled.TiledMapRenderer; import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; @@ -18,6 +19,8 @@ import com.badlogic.gdx.utils.Timer; import com.dungeoncrawler.model.Dungeon; import com.dungeoncrawler.model.Entity; import com.dungeoncrawler.model.entities.*; + +import java.awt.Shape; import java.util.ArrayList; import java.util.Arrays; @@ -68,6 +71,8 @@ public class GameScreen { // CONTROLS ArrayList