From 1fe86701693afcfd924f77d8b26b8f557efd228c Mon Sep 17 00:00:00 2001 From: josua Date: Mon, 21 Oct 2019 09:17:45 +1100 Subject: [PATCH] Made portals unbreakable, made the boss immune to knockback, fixed support/crashing issues with other controllers. --- src/shootergame/display/bossbar/BossBars.java | 4 ++++ src/shootergame/entity/EntityBoss.java | 1 - src/shootergame/entity/player/EntityPlayer.java | 3 ++- src/shootergame/input/JoystickCallback.java | 12 ++++++------ src/shootergame/input/KeyCallback.java | 16 +++++++++++++++- src/shootergame/menu/MenuRespawn.java | 2 ++ src/shootergame/tiles/TileBossPortal.java | 5 ++++- 7 files changed, 33 insertions(+), 10 deletions(-) diff --git a/src/shootergame/display/bossbar/BossBars.java b/src/shootergame/display/bossbar/BossBars.java index e0b4d52..5698e2e 100644 --- a/src/shootergame/display/bossbar/BossBars.java +++ b/src/shootergame/display/bossbar/BossBars.java @@ -14,6 +14,10 @@ public class BossBars bossbars.add(bossbar); } + public static void clear() { + bossbars.clear(); + } + public static void render() { TextureReference health_fg = Textures.UI_HEALTH_FG; diff --git a/src/shootergame/entity/EntityBoss.java b/src/shootergame/entity/EntityBoss.java index 8090db4..fd3a43b 100644 --- a/src/shootergame/entity/EntityBoss.java +++ b/src/shootergame/entity/EntityBoss.java @@ -228,6 +228,5 @@ public class EntityBoss extends EntityVertical implements IBossBar @Override public void push(double amount, double angle) { - super.push(amount, angle / 10.0); } } diff --git a/src/shootergame/entity/player/EntityPlayer.java b/src/shootergame/entity/player/EntityPlayer.java index 4a6db2b..2406fc6 100644 --- a/src/shootergame/entity/player/EntityPlayer.java +++ b/src/shootergame/entity/player/EntityPlayer.java @@ -62,6 +62,7 @@ public class EntityPlayer extends EntityVertical implements EntityAlive, EntityI crossUnWalkable = false; emitsLight = true; + // Create the inventory inventory = new Inventory(6); } @@ -100,7 +101,7 @@ public class EntityPlayer extends EntityVertical implements EntityAlive, EntityI @Override public boolean MainLoopDelay(long millis) { - return millis > 5000; + return millis > 2500; } }); } diff --git a/src/shootergame/input/JoystickCallback.java b/src/shootergame/input/JoystickCallback.java index 9f126eb..da26255 100644 --- a/src/shootergame/input/JoystickCallback.java +++ b/src/shootergame/input/JoystickCallback.java @@ -137,16 +137,16 @@ public class JoystickCallback implements GLFWJoystickCallbackI, IMainloopTask button_home = buttons.get(8) == 1 || button_home; left_stick_button = buttons.get(9) == 1 || left_stick_button; right_stick_button = buttons.get(10) == 1 || right_stick_button; - dpad_left = buttons.get(11) == 1 || buttons.get(18) == 1 || dpad_left; - dpad_right = buttons.get(12) == 1 || buttons.get(16) == 1 || dpad_right; - dpad_up = buttons.get(13) == 1 || buttons.get(15) == 1 || dpad_up; - dpad_down = buttons.get(14) == 1 || buttons.get(17) == 1 || dpad_down; + dpad_left = buttons.get(11) == 1 || dpad_left; + dpad_right = buttons.get(12) == 1 || dpad_right; + dpad_up = buttons.get(13) == 1 || dpad_up; + dpad_down = buttons.get(14) == 1 || dpad_down; } } - catch(NullPointerException e) { + catch(Exception e) { connections.remove((Object) jid2); - System.err.println("Removed controller "+jid2+" due to NullPointerException"); + System.err.println("Removed controller "+jid2+" due to "+e.toString()); } Input input = Main.menu.input; diff --git a/src/shootergame/input/KeyCallback.java b/src/shootergame/input/KeyCallback.java index 800db0a..aa8b69c 100644 --- a/src/shootergame/input/KeyCallback.java +++ b/src/shootergame/input/KeyCallback.java @@ -1,6 +1,20 @@ package shootergame.input; -import static org.lwjgl.glfw.GLFW.*; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_1; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_2; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_3; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_4; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_5; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_6; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_A; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_D; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_E; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_ESCAPE; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_F11; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_Q; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_S; +import static org.lwjgl.glfw.GLFW.GLFW_KEY_W; +import static org.lwjgl.glfw.GLFW.GLFW_RELEASE; import static shootergame.input.GameInput.fireGun; import static shootergame.input.GameInput.moveDown; import static shootergame.input.GameInput.moveLeft; diff --git a/src/shootergame/menu/MenuRespawn.java b/src/shootergame/menu/MenuRespawn.java index 0cb21f0..3c8bcd8 100644 --- a/src/shootergame/menu/MenuRespawn.java +++ b/src/shootergame/menu/MenuRespawn.java @@ -3,6 +3,7 @@ package shootergame.menu; import java.util.Random; import shootergame.Main; +import shootergame.display.bossbar.BossBars; import shootergame.entity.player.EntityPlayer; import shootergame.init.Layers; import shootergame.text.Text; @@ -31,6 +32,7 @@ class MenuRespawn Main.menu = new MenuGame(); Main.game_paused = false; GameTimer.resetTime(); + BossBars.clear(); } } diff --git a/src/shootergame/tiles/TileBossPortal.java b/src/shootergame/tiles/TileBossPortal.java index 0f25503..62ea4a2 100644 --- a/src/shootergame/tiles/TileBossPortal.java +++ b/src/shootergame/tiles/TileBossPortal.java @@ -5,6 +5,7 @@ import java.util.Random; import mainloop.task.IMainloopTask; import shootergame.Main; import shootergame.entity.Entity; +import shootergame.entity.particle.ParticleBreak; import shootergame.entity.player.EntityPlayer; import shootergame.init.Textures; import shootergame.util.math.TileState; @@ -25,6 +26,7 @@ public class TileBossPortal extends TileVertical this.opaqueTile = true; this.tileHitbox = 0.4; this.tileSolid = true; + this.unbreakable = true; } @Override @@ -45,7 +47,8 @@ public class TileBossPortal extends TileVertical // Create the boss arena LayerGenBossArena layergen = new LayerGenBossArena(); layergen.spawnPlayer(ep); - layer.breakFrontTile(tpos); + layer.setFrontTile(TileState.EMPTY, tpos); + layer.spawnEntity(new ParticleBreak(new Vec2d(tpos.x+0.5, tpos.y+0.5), state)); Main.world.setLayer(new Layer(rand, layergen, rand.nextInt())); // Do the arena falling animation