From e0ee95229641054f8cd40997ba638979c4dbda52 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Thu, 4 Jun 2020 01:19:00 +0300 Subject: [PATCH 01/45] WIP: try to spawn boss --- .../ru/itmo/roguelike/characters/Player.java | 30 ++++++++++++-- .../itmo/roguelike/characters/mobs/Enemy.java | 14 +++++-- .../roguelike/characters/mobs/PersonX.java | 40 +++++++++++++++++-- .../roguelike/field/AutoGeneratedField.java | 2 +- .../java/ru/itmo/roguelike/field/Chunk.java | 4 +- ...PositionGenerator.java => MobSpawner.java} | 5 ++- .../manager/gamemanager/GameManager.java | 5 +-- .../java/ru/itmo/roguelike/render/Camera.java | 28 ++++++++----- .../roguelike/render/drawable/Drawable.java | 2 +- .../render/drawable/DrawableDescriptor.java | 6 +++ .../ru/itmo/roguelike/utils/BoundingBox.java | 29 ++++++++++++++ 11 files changed, 136 insertions(+), 29 deletions(-) rename src/main/java/ru/itmo/roguelike/field/{MobPositionGenerator.java => MobSpawner.java} (97%) create mode 100644 src/main/java/ru/itmo/roguelike/utils/BoundingBox.java diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index fefe588..9b7ecef 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -6,6 +6,10 @@ import ru.itmo.roguelike.characters.inventory.Droppable; import ru.itmo.roguelike.characters.inventory.Inventory; import ru.itmo.roguelike.characters.inventory.Usable; +import ru.itmo.roguelike.characters.mobs.Enemy; +import ru.itmo.roguelike.characters.mobs.PersonX; +import ru.itmo.roguelike.characters.mobs.strategy.CowardlyBehavior; +import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; import ru.itmo.roguelike.characters.movement.Mover; import ru.itmo.roguelike.field.Field; import ru.itmo.roguelike.field.TileType; @@ -130,7 +134,7 @@ public void dropItem(int i, Field field) { for (int k = 2; ; k++) { for (int j = -k; j < k; j++) { - for (IntCoordinate coordinate : new IntCoordinate[] { + for (IntCoordinate coordinate : new IntCoordinate[]{ new IntCoordinate(x + k * cellSize, y + j * cellSize), new IntCoordinate(x - k * cellSize, y + j * cellSize), new IntCoordinate(x + j * cellSize, y + k * cellSize), @@ -257,10 +261,28 @@ public float getMaxExp() { */ public void addExp(float exp) { this.exp += exp; - if (this.exp >= getMaxExp()) { + + int levelGain = 0; + while (this.exp >= getMaxExp()) { this.exp -= getMaxExp(); - new MovingUpText(position, "LVL +1!", Color.YELLOW); - ++level; + ++levelGain; + } + + if (levelGain > 0) { + if (level + levelGain > 3) { + IntCoordinate bossPosition = new IntCoordinate(position); + bossPosition.add(new IntCoordinate(100, 100)); + + Enemy e = Enemy.builder(PersonX::new) + .setPosition(position) + .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)) + .setRadius(100000) + .setTarget(this) + .build(); + } + + level += levelGain; + new MovingUpText(position, String.format("LVL +%d!", levelGain), Color.YELLOW); } } diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java b/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java index 2fc1e06..d8afc1d 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java @@ -15,8 +15,9 @@ import java.util.function.Supplier; public abstract class Enemy extends Actor implements Collidable { - private Actor target = null; + protected Actor target = null; private MobBehavior strategy = new PassiveBehavior(); + private static final int DEFAULT_MAX_HP = 10; { MobManager.addToRegister(this); @@ -25,17 +26,22 @@ public abstract class Enemy extends Actor implements Collidable { public Enemy() { super(); - this.init(10); + this.init(DEFAULT_MAX_HP); + } + + public Enemy(Drawer drawer) { + super(drawer); + this.init(DEFAULT_MAX_HP); } public Enemy(Actor target) { this.target = target; - this.init(10); + this.init(DEFAULT_MAX_HP); } public Enemy(Actor target, MobBehavior strategy) { super(); - this.init(10); + this.init(DEFAULT_MAX_HP); this.target = target; this.strategy = strategy; } diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java index 3a8eedd..05160da 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java @@ -1,6 +1,11 @@ package ru.itmo.roguelike.characters.mobs; +import ru.itmo.roguelike.Collidable; import ru.itmo.roguelike.characters.Actor; +import ru.itmo.roguelike.render.drawable.DrawableDescriptor; + +import java.awt.*; +import java.util.Random; import static ru.itmo.roguelike.utils.MathUtils.getRandomDouble; @@ -8,11 +13,22 @@ * Like a boss on level */ public class PersonX extends Enemy { - private static final float MIN_BOUND_XP = 3; - private static final float MAX_BOUND_XP = 5; + private static final float MIN_BOUND_XP = 40; + private static final float MAX_BOUND_XP = 70; + + { + drawableDescriptor.setColor(Color.PINK); + damage = 15; + } public PersonX() { - this.maxHp = 30; + super((graphics, x, y) -> { + graphics.setColor(Color.BLACK); + graphics.fillRoundRect(x, y, 32, 32, 5, 5); + graphics.setColor(Color.PINK); + graphics.fillRoundRect(x + 1, y + 1, 30, 30, 5, 5); + }); + init(80); } public PersonX(Actor target) { @@ -24,4 +40,22 @@ protected float getXPInBounds() { return (float) getRandomDouble(MIN_BOUND_XP, MAX_BOUND_XP); } + private static final Random random = new Random(); + + @Override + public Shape getShape() { + return new Rectangle(32, 32); + } + + @Override + public void collide(Collidable c) { + // если настигли цель + if (c.equals(target)) { + if (random.nextFloat() < 0.1) { + target.strike(this.damage); + } + } + + position.set(mover.getLastMove()); + } } diff --git a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java index bdf809b..2361e00 100644 --- a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java +++ b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java @@ -18,7 +18,7 @@ public class AutoGeneratedField implements Field { private int shiftX, shiftY; - public AutoGeneratedField(int screenW, int screenH, int marginX, int marginY, MobPositionGenerator mobGenerator) { + public AutoGeneratedField(int screenW, int screenH, int marginX, int marginY, MobSpawner mobGenerator) { shiftX = 0; shiftY = 0; diff --git a/src/main/java/ru/itmo/roguelike/field/Chunk.java b/src/main/java/ru/itmo/roguelike/field/Chunk.java index 465a3b9..03d9588 100644 --- a/src/main/java/ru/itmo/roguelike/field/Chunk.java +++ b/src/main/java/ru/itmo/roguelike/field/Chunk.java @@ -19,7 +19,7 @@ public class Chunk { private static final float[][] chunkValues = new float[WIDTH_IN_TILES][HEIGHT_IN_TILES]; private final Tile[][] tiles; - private final MobPositionGenerator mobGenerator; + private final MobSpawner mobGenerator; private IntCoordinate position; /** @@ -28,7 +28,7 @@ public class Chunk { * @param generator produces values for Tile creation * @param mobGenerator creates mobs on newly generated tiles */ - public Chunk(int x, int y, NoiseGenerator generator, MobPositionGenerator mobGenerator) { + public Chunk(int x, int y, NoiseGenerator generator, MobSpawner mobGenerator) { this.mobGenerator = mobGenerator; tiles = new Tile[chunkValues.length][chunkValues[0].length]; diff --git a/src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java b/src/main/java/ru/itmo/roguelike/field/MobSpawner.java similarity index 97% rename from src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java rename to src/main/java/ru/itmo/roguelike/field/MobSpawner.java index b32d89d..bace7e1 100644 --- a/src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java +++ b/src/main/java/ru/itmo/roguelike/field/MobSpawner.java @@ -2,6 +2,7 @@ import ru.itmo.roguelike.characters.Player; import ru.itmo.roguelike.characters.mobs.Enemy; +import ru.itmo.roguelike.characters.mobs.PersonX; import ru.itmo.roguelike.characters.mobs.Slime; import ru.itmo.roguelike.characters.mobs.Zombie; import ru.itmo.roguelike.characters.mobs.strategy.CowardlyBehavior; @@ -22,7 +23,7 @@ /** * Mob and Collectible spawner */ -public class MobPositionGenerator { +public class MobSpawner { private static final int SAFE_RADIUS = 150; private static final Map> spawners = new HashMap<>(); @@ -56,7 +57,7 @@ public class MobPositionGenerator { private final Random random; private Player player; - public MobPositionGenerator(Player player) { + public MobSpawner(Player player) { this.player = player; this.random = new Random(); } diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index c95a3ca..e895941 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -4,9 +4,8 @@ import ru.itmo.roguelike.field.AutoGeneratedField; import ru.itmo.roguelike.field.Field; import ru.itmo.roguelike.field.FiniteField; -import ru.itmo.roguelike.field.MobPositionGenerator; +import ru.itmo.roguelike.field.MobSpawner; import ru.itmo.roguelike.input.Event; -import ru.itmo.roguelike.input.EventStatus; import ru.itmo.roguelike.input.InputHandler; import ru.itmo.roguelike.ioc.ManagersModule; import ru.itmo.roguelike.ioc.RenderModule; @@ -88,7 +87,7 @@ private void resetGameState() { public void start() { state.run(); - MobPositionGenerator mobGenerator = new MobPositionGenerator(player); + MobSpawner mobGenerator = new MobSpawner(player); if (GameSettings.FILENAME == null) { field = new AutoGeneratedField(800, 600, 1, 1, mobGenerator); // FIXme: set real w/h } else { diff --git a/src/main/java/ru/itmo/roguelike/render/Camera.java b/src/main/java/ru/itmo/roguelike/render/Camera.java index 5b6adba..b7e2869 100644 --- a/src/main/java/ru/itmo/roguelike/render/Camera.java +++ b/src/main/java/ru/itmo/roguelike/render/Camera.java @@ -1,7 +1,9 @@ package ru.itmo.roguelike.render; +import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.FloatCoordinate; import ru.itmo.roguelike.utils.IntCoordinate; +import ru.itmo.roguelike.utils.Pair; import javax.inject.Singleton; import java.util.Optional; @@ -30,17 +32,25 @@ public class Camera { * @return Position in local camera coordinates. Value Optional.empty() is returned when the object is * outside of camera scope. */ - public Optional transformAndGet(IntCoordinate pos) { - pos = new IntCoordinate(pos); - transform(pos); - if (pos.getX() < minBoundForPos.getX() - || pos.getX() > maxBoundForPos.getX() - || pos.getY() < minBoundForPos.getY() - || pos.getY() > maxBoundForPos.getY() + public Optional transformAndGet(BoundingBox boundingBox) { + IntCoordinate leftTop = new IntCoordinate(boundingBox.getLeftTop()); + IntCoordinate rightBottom = new IntCoordinate(boundingBox.getRightBottom()); + + transform(leftTop); + transform(rightBottom); + + if (rightBottom.getX() > minBoundForPos.getX() + || leftTop.getX() < maxBoundForPos.getX() + || rightBottom.getY() > minBoundForPos.getY() + || leftTop.getY() < maxBoundForPos.getY() ) { - return Optional.empty(); + IntCoordinate center = new IntCoordinate(boundingBox.getCenter()); + transform(center); + + return Optional.of(center); } - return Optional.of(pos); + + return Optional.empty(); } public void moveForce(IntCoordinate position) { diff --git a/src/main/java/ru/itmo/roguelike/render/drawable/Drawable.java b/src/main/java/ru/itmo/roguelike/render/drawable/Drawable.java index f6f88d4..7566326 100644 --- a/src/main/java/ru/itmo/roguelike/render/drawable/Drawable.java +++ b/src/main/java/ru/itmo/roguelike/render/drawable/Drawable.java @@ -77,7 +77,7 @@ public static void unregisterAllForeground() { public void draw(Graphics2D graphics, Camera camera) { graphics.setColor(drawableDescriptor.getColor()); - camera.transformAndGet(drawableDescriptor.getPosition()) + camera.transformAndGet(drawableDescriptor.getBoundingBox()) .ifPresent(p -> drawer.draw(graphics, p.getX(), p.getY())); } diff --git a/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java b/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java index 534d327..2442719 100644 --- a/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java +++ b/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java @@ -1,6 +1,8 @@ package ru.itmo.roguelike.render.drawable; +import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; +import ru.itmo.roguelike.utils.Pair; import java.awt.*; @@ -37,4 +39,8 @@ public DrawableDescriptor setColor(Color color) { this.color = color; return this; } + + public BoundingBox getBoundingBox() { + return new BoundingBox(width, height, position); + } } diff --git a/src/main/java/ru/itmo/roguelike/utils/BoundingBox.java b/src/main/java/ru/itmo/roguelike/utils/BoundingBox.java new file mode 100644 index 0000000..160b970 --- /dev/null +++ b/src/main/java/ru/itmo/roguelike/utils/BoundingBox.java @@ -0,0 +1,29 @@ +package ru.itmo.roguelike.utils; + +public class BoundingBox { + private final IntCoordinate leftTop; + private final IntCoordinate rightBottom; + private final IntCoordinate center; + + public BoundingBox(int width, int height, IntCoordinate center) { + this.leftTop = new IntCoordinate(center); + this.leftTop.substract(new IntCoordinate(width / 2, height / 2)); + + this.rightBottom = new IntCoordinate(center); + this.rightBottom.add(new IntCoordinate(width / 2, height / 2)); + + this.center = new IntCoordinate(center); + } + + public IntCoordinate getCenter() { + return center; + } + + public IntCoordinate getLeftTop() { + return leftTop; + } + + public IntCoordinate getRightBottom() { + return rightBottom; + } +} From 7d6c9cd26776fe9b9b9a47b7930689f494a09e3f Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Thu, 4 Jun 2020 01:58:29 +0300 Subject: [PATCH 02/45] concurrwncy exception fix --- .../roguelike/manager/collidemanager/CollideManager.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/itmo/roguelike/manager/collidemanager/CollideManager.java b/src/main/java/ru/itmo/roguelike/manager/collidemanager/CollideManager.java index b09ddc5..79c8100 100644 --- a/src/main/java/ru/itmo/roguelike/manager/collidemanager/CollideManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/collidemanager/CollideManager.java @@ -7,10 +7,11 @@ public class CollideManager { private static final HashSet collidables = new HashSet<>(); + private static final HashSet toAdd = new HashSet<>(); private static final HashSet toRemove = new HashSet<>(); public static void register(Collidable c) { - collidables.add(c); + toAdd.add(c); } public static void unregister(Collidable c) { @@ -19,6 +20,8 @@ public static void unregister(Collidable c) { public static void collideAll() { collidables.removeAll(toRemove); + collidables.addAll(toAdd); + toAdd.clear(); toRemove.clear(); for (Collidable a : collidables) { @@ -43,6 +46,7 @@ private static boolean intersects(Collidable a, Collidable b) { public static void unregisterAll() { collidables.clear(); toRemove.clear(); + toAdd.clear(); } } From c7d4c522955761aa68beafc43ed1707878c92542 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Fri, 5 Jun 2020 15:37:54 +0300 Subject: [PATCH 03/45] add map file chooser --- .../java/ru/itmo/roguelike/Application.java | 35 ++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/Application.java b/src/main/java/ru/itmo/roguelike/Application.java index b7b7f6c..b5139c5 100644 --- a/src/main/java/ru/itmo/roguelike/Application.java +++ b/src/main/java/ru/itmo/roguelike/Application.java @@ -3,20 +3,24 @@ import com.google.inject.Guice; import com.google.inject.Injector; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import ru.itmo.roguelike.ioc.IOModule; import ru.itmo.roguelike.ioc.ManagersModule; import ru.itmo.roguelike.ioc.RenderModule; import ru.itmo.roguelike.manager.gamemanager.GameManager; import ru.itmo.roguelike.settings.GameSettings; +import javax.swing.*; +import javax.swing.filechooser.FileFilter; +import java.io.File; import java.util.concurrent.*; +import static javax.swing.JFileChooser.APPROVE_OPTION; +import static javax.swing.JFileChooser.FILES_ONLY; + public class Application { public static void main(String[] args) { - if (args.length > 0) { - GameSettings.FILENAME = args[0]; - } - + GameSettings.FILENAME = chooseMapFileName(); Application application = new Application(); application.run(); System.exit(0); @@ -41,6 +45,29 @@ public void run() { } } + public static @Nullable String chooseMapFileName() { + JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); + fc.setFileFilter(new FileFilter() { + @Override + public boolean accept(File file) { + return file.isDirectory() || file.getName().endsWith(".mapfile"); + } + + @Override + public String getDescription() { + return "Map files"; + } + }); + + fc.setFileSelectionMode(FILES_ONLY); + fc.setApproveButtonText("LOAD"); + + if (APPROVE_OPTION == fc.showOpenDialog(null)) { + return fc.getSelectedFile().getAbsolutePath(); + } + return null; + } + private void rescheduleGameLoop( @NotNull ScheduledExecutorService executorService, @NotNull GameManager gameManager From 42f748d5b47a7ebe5b80590ca6462819cbfdebc0 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Fri, 5 Jun 2020 15:54:52 +0300 Subject: [PATCH 04/45] psbl fix --- src/main/java/ru/itmo/roguelike/Application.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/ru/itmo/roguelike/Application.java b/src/main/java/ru/itmo/roguelike/Application.java index b5139c5..c831b08 100644 --- a/src/main/java/ru/itmo/roguelike/Application.java +++ b/src/main/java/ru/itmo/roguelike/Application.java @@ -61,6 +61,7 @@ public String getDescription() { fc.setFileSelectionMode(FILES_ONLY); fc.setApproveButtonText("LOAD"); + fc.setVisible(true); if (APPROVE_OPTION == fc.showOpenDialog(null)) { return fc.getSelectedFile().getAbsolutePath(); From 91f95921904e96e4908060430f4c784cf4672b95 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Fri, 5 Jun 2020 20:14:07 +0300 Subject: [PATCH 05/45] Fix JFrame appearance bug --- src/main/java/ru/itmo/roguelike/Application.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/ru/itmo/roguelike/Application.java b/src/main/java/ru/itmo/roguelike/Application.java index c831b08..cf700b8 100644 --- a/src/main/java/ru/itmo/roguelike/Application.java +++ b/src/main/java/ru/itmo/roguelike/Application.java @@ -20,6 +20,14 @@ public class Application { public static void main(String[] args) { + JFrame frame = new JFrame(GameSettings.WINDOW_TITLE); + + frame.setSize(800, 600); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setLocationRelativeTo(null); + frame.setResizable(false); + frame.setVisible(true); + GameSettings.FILENAME = chooseMapFileName(); Application application = new Application(); application.run(); From 31887d2f968a7cf1ed8797fac51e1f354296f027 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Fri, 5 Jun 2020 20:23:15 +0300 Subject: [PATCH 06/45] Move path constants to `GameSettings` --- .../roguelike/characters/attack/FireballAttack.java | 3 ++- .../roguelike/characters/attack/SwordAttack.java | 3 ++- .../java/ru/itmo/roguelike/items/HeavyArmor.java | 3 ++- .../java/ru/itmo/roguelike/items/LightArmor.java | 3 ++- .../java/ru/itmo/roguelike/items/MediumArmor.java | 3 ++- src/main/java/ru/itmo/roguelike/items/Teleport.java | 5 +++-- .../ru/itmo/roguelike/settings/GameSettings.java | 10 ++++++++++ .../resources/pic/{hvy_armr.png => heavy_armor.png} | Bin .../pic/{light_armr.png => light_armor.png} | Bin .../pic/{med_armr.png => medium_armor.png} | Bin .../resources/pic/{tp_in.png => teleport_in.png} | Bin .../resources/pic/{tp_out.png => teleport_out.png} | Bin 12 files changed, 23 insertions(+), 7 deletions(-) rename src/main/resources/pic/{hvy_armr.png => heavy_armor.png} (100%) rename src/main/resources/pic/{light_armr.png => light_armor.png} (100%) rename src/main/resources/pic/{med_armr.png => medium_armor.png} (100%) rename src/main/resources/pic/{tp_in.png => teleport_in.png} (100%) rename src/main/resources/pic/{tp_out.png => teleport_out.png} (100%) diff --git a/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java b/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java index d62ae04..8a8e355 100644 --- a/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java +++ b/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java @@ -4,6 +4,7 @@ import ru.itmo.roguelike.characters.Player; import ru.itmo.roguelike.characters.projectiles.Fireball; import ru.itmo.roguelike.field.Field; +import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.FileUtils; import ru.itmo.roguelike.utils.FuncUtils; @@ -13,7 +14,7 @@ public class FireballAttack extends Attack { public static final int COOLDOWN_TIME = 10; public final static String SORT = "FRB"; - private static final Image IMAGE = FileUtils.loadImage("pic/fire.png"); + private static final Image IMAGE = FileUtils.loadImage(GameSettings.ImagePath.FIREBALL); public FireballAttack(Actor actor) { super(COOLDOWN_TIME, actor); diff --git a/src/main/java/ru/itmo/roguelike/characters/attack/SwordAttack.java b/src/main/java/ru/itmo/roguelike/characters/attack/SwordAttack.java index c9d347d..3fced79 100644 --- a/src/main/java/ru/itmo/roguelike/characters/attack/SwordAttack.java +++ b/src/main/java/ru/itmo/roguelike/characters/attack/SwordAttack.java @@ -4,6 +4,7 @@ import ru.itmo.roguelike.characters.Player; import ru.itmo.roguelike.characters.projectiles.Sword; import ru.itmo.roguelike.field.Field; +import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.FileUtils; import ru.itmo.roguelike.utils.FuncUtils; import ru.itmo.roguelike.utils.IntCoordinate; @@ -14,7 +15,7 @@ public class SwordAttack extends Attack { public static final int COOLDOWN_TIME = 20; public static final String SORT = "SWD"; - private static final Image IMAGE = FileUtils.loadImage("pic/sword.png"); + private static final Image IMAGE = FileUtils.loadImage(GameSettings.ImagePath.SWORD); private Sword sword; public SwordAttack(Actor actor) { diff --git a/src/main/java/ru/itmo/roguelike/items/HeavyArmor.java b/src/main/java/ru/itmo/roguelike/items/HeavyArmor.java index 13e294b..d1ec0b1 100644 --- a/src/main/java/ru/itmo/roguelike/items/HeavyArmor.java +++ b/src/main/java/ru/itmo/roguelike/items/HeavyArmor.java @@ -1,6 +1,7 @@ package ru.itmo.roguelike.items; import ru.itmo.roguelike.characters.Actor; +import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.FileUtils; import ru.itmo.roguelike.utils.FuncUtils; @@ -8,7 +9,7 @@ public class HeavyArmor extends Armor { private static final int RESIST = 55; - private static Image image = FileUtils.loadImage("pic/hvy_armr.png"); + private static final Image image = FileUtils.loadImage(GameSettings.ImagePath.HEAVY_ARMOR); { bonusSize = RESIST; diff --git a/src/main/java/ru/itmo/roguelike/items/LightArmor.java b/src/main/java/ru/itmo/roguelike/items/LightArmor.java index 5175a98..cfdd81a 100644 --- a/src/main/java/ru/itmo/roguelike/items/LightArmor.java +++ b/src/main/java/ru/itmo/roguelike/items/LightArmor.java @@ -1,13 +1,14 @@ package ru.itmo.roguelike.items; import ru.itmo.roguelike.characters.Actor; +import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.FileUtils; import ru.itmo.roguelike.utils.FuncUtils; import java.awt.*; public class LightArmor extends Armor { - private static final Image image = FileUtils.loadImage("pic/light_armr.png"); + private static final Image image = FileUtils.loadImage(GameSettings.ImagePath.LIGHT_ARMOR); private static final int RESIST = 15; { diff --git a/src/main/java/ru/itmo/roguelike/items/MediumArmor.java b/src/main/java/ru/itmo/roguelike/items/MediumArmor.java index 3dbd03d..1407371 100644 --- a/src/main/java/ru/itmo/roguelike/items/MediumArmor.java +++ b/src/main/java/ru/itmo/roguelike/items/MediumArmor.java @@ -1,6 +1,7 @@ package ru.itmo.roguelike.items; import ru.itmo.roguelike.characters.Actor; +import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.FileUtils; import ru.itmo.roguelike.utils.FuncUtils; @@ -8,7 +9,7 @@ public class MediumArmor extends Armor { private static final int RESIST = 40; - private static Image image = FileUtils.loadImage("pic/med_armr.png"); + private static final Image image = FileUtils.loadImage(GameSettings.ImagePath.MEDIUM_ARMOR); { bonusSize = RESIST; diff --git a/src/main/java/ru/itmo/roguelike/items/Teleport.java b/src/main/java/ru/itmo/roguelike/items/Teleport.java index c69b7d0..4000771 100644 --- a/src/main/java/ru/itmo/roguelike/items/Teleport.java +++ b/src/main/java/ru/itmo/roguelike/items/Teleport.java @@ -5,6 +5,7 @@ import ru.itmo.roguelike.characters.Player; import ru.itmo.roguelike.render.particles.MovingUpText; import ru.itmo.roguelike.render.particles.TextWithPoint; +import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.FileUtils; import ru.itmo.roguelike.utils.FuncUtils; import ru.itmo.roguelike.utils.IntCoordinate; @@ -18,8 +19,8 @@ public class Teleport extends Collectible { public static final String SORT = "TEL"; - private static final Image T_IN = FileUtils.loadImage("pic/tp_in.png"); - private static final Image T_OUT = FileUtils.loadImage("pic/tp_out.png"); + private static final Image T_IN = FileUtils.loadImage(GameSettings.ImagePath.TELEPORT_IN); + private static final Image T_OUT = FileUtils.loadImage(GameSettings.ImagePath.TELEPORT_OUT); private IntCoordinate pos = null; { diff --git a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java index 2a27637..8a93af6 100644 --- a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java +++ b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java @@ -16,6 +16,16 @@ public final class GameSettings { public static String FILENAME = null; + public final static class ImagePath { + public static final String TELEPORT_IN = "pic/teleport_in.png"; + public static final String TELEPORT_OUT = "pic/teleport_out.png"; + public static final String SWORD = "pic/sword.png"; + public static final String FIREBALL = "pic/fire.png"; + public static final String HEAVY_ARMOR = "pic/heavy_armor.png"; + public static final String MEDIUM_ARMOR = "pic/medium_armor.png"; + public static final String LIGHT_ARMOR = "pic/light_armor.png"; + } + private GameSettings() { } diff --git a/src/main/resources/pic/hvy_armr.png b/src/main/resources/pic/heavy_armor.png similarity index 100% rename from src/main/resources/pic/hvy_armr.png rename to src/main/resources/pic/heavy_armor.png diff --git a/src/main/resources/pic/light_armr.png b/src/main/resources/pic/light_armor.png similarity index 100% rename from src/main/resources/pic/light_armr.png rename to src/main/resources/pic/light_armor.png diff --git a/src/main/resources/pic/med_armr.png b/src/main/resources/pic/medium_armor.png similarity index 100% rename from src/main/resources/pic/med_armr.png rename to src/main/resources/pic/medium_armor.png diff --git a/src/main/resources/pic/tp_in.png b/src/main/resources/pic/teleport_in.png similarity index 100% rename from src/main/resources/pic/tp_in.png rename to src/main/resources/pic/teleport_in.png diff --git a/src/main/resources/pic/tp_out.png b/src/main/resources/pic/teleport_out.png similarity index 100% rename from src/main/resources/pic/tp_out.png rename to src/main/resources/pic/teleport_out.png From ffe8665f375f82f3b1d20c93a87050b2dd08bf31 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Fri, 5 Jun 2020 20:27:18 +0300 Subject: [PATCH 07/45] Remove unnecessary `limit(1)` --- .../java/ru/itmo/roguelike/characters/inventory/Inventory.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/inventory/Inventory.java b/src/main/java/ru/itmo/roguelike/characters/inventory/Inventory.java index 274baf3..844157f 100644 --- a/src/main/java/ru/itmo/roguelike/characters/inventory/Inventory.java +++ b/src/main/java/ru/itmo/roguelike/characters/inventory/Inventory.java @@ -74,7 +74,6 @@ public Optional getItem(int i) { public OptionalInt setNextFreeItem(Usable usable) { OptionalInt maybeI = IntStream.range(0, items.length) .filter(i -> items[i] == null) - .limit(1) .findAny(); maybeI.ifPresent(i -> setItem(usable, i)); From 1f2884e385e98af00e25113a506e57a6c9716daf Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Fri, 5 Jun 2020 20:31:27 +0300 Subject: [PATCH 08/45] Replace boolean check with assert --- .../characters/inventory/Inventory.java | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/inventory/Inventory.java b/src/main/java/ru/itmo/roguelike/characters/inventory/Inventory.java index 274baf3..5ecaf91 100644 --- a/src/main/java/ru/itmo/roguelike/characters/inventory/Inventory.java +++ b/src/main/java/ru/itmo/roguelike/characters/inventory/Inventory.java @@ -58,9 +58,7 @@ public void setSelectedItem(Usable usable) { * @return Item by specified index. If there is no item by this index, {@code Optional.empty()} returned. */ public Optional getItem(int i) { - if (isIndexOutOfBounds(i)) { - return Optional.empty(); - } + checkIndex(i); return Optional.ofNullable(items[i]); } @@ -86,9 +84,7 @@ public OptionalInt setNextFreeItem(Usable usable) { * Puts an item to specified position in inventory. */ public void setItem(@NotNull Usable usable, int i) { - if (isIndexOutOfBounds(i)) { - return; - } + checkIndex(i); if (items[i] == null) { size++; @@ -101,9 +97,7 @@ public void setItem(@NotNull Usable usable, int i) { * Removes item at specified position from inventory */ public void removeItem(int i) { - if (isIndexOutOfBounds(i)) { - return; - } + checkIndex(i); if (items[i] != null) { size--; @@ -115,10 +109,7 @@ public void removeItem(int i) { * Sets currently selected as item at specified position. */ public void selectItem(int i) { - if (isIndexOutOfBounds(i)) { - return; - } - + checkIndex(i); selectedItem = i; } @@ -133,8 +124,8 @@ public int getInventoryLength() { return items.length; } - private boolean isIndexOutOfBounds(int i) { - return i < 0 || i >= items.length; + private void checkIndex(int i) { + assert i >= 0 && i < items.length; } public void saveToFile(DataOutputStream outputStream) throws IOException { From 1ea19054b6e58a8ebdf10d95961147602f3baef4 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Fri, 5 Jun 2020 20:48:25 +0300 Subject: [PATCH 09/45] Add fabric method `Splash.createSplashAndRegister()` --- .../ru/itmo/roguelike/characters/Actor.java | 2 +- .../itmo/roguelike/characters/mobs/Slime.java | 7 ++-- .../characters/projectiles/Fireball.java | 11 +++++-- .../roguelike/render/particles/Splash.java | 32 +++++++++++++++++-- 4 files changed, 44 insertions(+), 8 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Actor.java b/src/main/java/ru/itmo/roguelike/characters/Actor.java index 9c3126e..42b9750 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Actor.java +++ b/src/main/java/ru/itmo/roguelike/characters/Actor.java @@ -138,7 +138,7 @@ public void die() { */ public void strike(int damage) { if (damage > 0) { - new Splash(position, 3, drawableDescriptor.getColor()); + Splash.createSplashAndRegister(position, 3, drawableDescriptor.getColor()); } if (armor != null) { this.hp -= this.def * damage * armor.getArmorResistance(); diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java b/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java index 1f5bccf..fbcedc5 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java @@ -35,8 +35,11 @@ public void collide(Collidable c) { Event event = new Event(200, 0, drawableDescriptor.getColor(), i -> { if (i % 3 == 0) { - new Splash(c.getPosition(), 1, - drawableDescriptor.getColor().brighter().brighter()); + Splash.createSplashAndRegister( + c.getPosition(), + 1, + drawableDescriptor.getColor().brighter().brighter() + ); } }); ((Player) c).activateMoveEffect(MoverEmbarrassment.class, event); diff --git a/src/main/java/ru/itmo/roguelike/characters/projectiles/Fireball.java b/src/main/java/ru/itmo/roguelike/characters/projectiles/Fireball.java index 986003e..9c8e07d 100644 --- a/src/main/java/ru/itmo/roguelike/characters/projectiles/Fireball.java +++ b/src/main/java/ru/itmo/roguelike/characters/projectiles/Fireball.java @@ -59,21 +59,26 @@ public void collide(Collidable c) { @Override public void die() { super.die(); - new Splash(position, 1, drawableDescriptor.getColor()); + Splash.createSplashAndRegister(position, 1, drawableDescriptor.getColor()); } @Override public void act(Field field) { lifeTime++; if (lifeTime % 5 == 0) { - new Splash(position, 1, Color.YELLOW, time -> (time % 2) * (5 - Math.abs(time - 5))); + Splash.createSplashAndRegister( + position, + 1, + Color.YELLOW, + time -> (time % 2) * (5 - Math.abs(time - 5)) + ); } for (int i = -10; i < 11; i += 10) { for (int j = -10; j < 11; j += 10) { IntCoordinate pos = new IntCoordinate(position.getX() + i, position.getY() + j); Optional t = field.getTile(pos); if (t.isPresent() && t.get().getType() == TileType.ROCK) { - new Splash(pos, 12, Color.BLACK); + Splash.createSplashAndRegister(pos, 12, Color.BLACK); t.get().reInit(0.5f); die(); } diff --git a/src/main/java/ru/itmo/roguelike/render/particles/Splash.java b/src/main/java/ru/itmo/roguelike/render/particles/Splash.java index bfc8e2f..02670ee 100644 --- a/src/main/java/ru/itmo/roguelike/render/particles/Splash.java +++ b/src/main/java/ru/itmo/roguelike/render/particles/Splash.java @@ -12,11 +12,39 @@ public class Splash extends Particle { private static final int TTL = 10; - public Splash(IntCoordinate spawnPos, int intensity, Color color) { + /** + * Fabric method to create Splash effect and properly register it in internal drawing system. + * + * @param spawnPos position of the effect + * @param intensity how many splash particles will be rendered + * @param color color of the effect + */ + public static void createSplashAndRegister(IntCoordinate spawnPos, int intensity, Color color) { + new Splash(spawnPos, intensity, color); + } + + /** + * Fabric method to create Splash effect and properly register it in internal drawing system. + * + * @param spawnPos position of the effect + * @param intensity how many splash particles will be rendered + * @param color color of the effect + * @param getMaxDelta function that according to amount of game steps passed determines, how wide will particles + */ + public static void createSplashAndRegister( + IntCoordinate spawnPos, + int intensity, + Color color, + IntUnaryOperator getMaxDelta + ) { + new Splash(spawnPos, intensity, color, getMaxDelta); + } + + private Splash(IntCoordinate spawnPos, int intensity, Color color) { this(spawnPos, intensity, color, (int time) -> time + 20); } - public Splash(IntCoordinate spawnPos, int intensity, Color color, IntUnaryOperator getMaxDelta) { + private Splash(IntCoordinate spawnPos, int intensity, Color color, IntUnaryOperator getMaxDelta) { super(spawnPos); drawableDescriptor.setColor(color); setDrawer((Graphics2D graphics, int x, int y) -> { From b9b9e207b0a6ef3034c99507d1c1a6f77aa3d6aa Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Fri, 5 Jun 2020 21:01:48 +0300 Subject: [PATCH 10/45] Move tile symbols to enum --- .../ru/itmo/roguelike/field/FiniteField.java | 61 ++++++++++++++----- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/field/FiniteField.java b/src/main/java/ru/itmo/roguelike/field/FiniteField.java index ac0ffc8..13352a0 100644 --- a/src/main/java/ru/itmo/roguelike/field/FiniteField.java +++ b/src/main/java/ru/itmo/roguelike/field/FiniteField.java @@ -25,10 +25,10 @@ *
* Single integer on the first line --- field WIDTH. * Then lines of length no more than WIDTH, consisting only of characters - * {@link FiniteField#GRASS_C}('-'), {@link FiniteField#WATER_C}('~') - * {@link FiniteField#STONE_C}('#'), {@link FiniteField#BADROCK_C}(' ') - * {@link FiniteField#PLAYER_C}('p'), {@link FiniteField#ZOMBIE_C}('z') - * {@link FiniteField#SLIME_C}('s'). + * {@link TileSymbol#GRASS_C}('-'), {@link TileSymbol#WATER_C}('~') + * {@link TileSymbol#STONE_C}('#'), {@link TileSymbol#BEDROCK_C}(' ') + * {@link TileSymbol#PLAYER_C}('p'), {@link TileSymbol#ZOMBIE_C}('z') + * {@link TileSymbol#SLIME_C}('s'). *

* Example: * @@ -45,13 +45,41 @@ *

*/ public class FiniteField implements Field { - private final static char GRASS_C = '-'; - private final static char WATER_C = '~'; - private final static char STONE_C = '#'; - private final static char BADROCK_C = ' '; - private final static char PLAYER_C = 'p'; - private final static char ZOMBIE_C = 'z'; - private final static char SLIME_C = 's'; + enum TileSymbol { + GRASS_C('-'), + WATER_C('~'), + STONE_C('#'), + BEDROCK_C(' '), + PLAYER_C('p'), + ZOMBIE_C('z'), + SLIME_C('s'); + + TileSymbol(char symbol) { + this.symbol = symbol; + } + + private final char symbol; + + public static TileSymbol fromChar(char symbol) { + switch (symbol) { + case '-': + return GRASS_C; + case '~': + return WATER_C; + case '#': + return STONE_C; + case 'p': + return PLAYER_C; + case 'z': + return ZOMBIE_C; + case 's': + return SLIME_C; + default: + return BEDROCK_C; + } + } + } + private final Player player; private Tile[][] field; private IntCoordinate defaultPlayerPos; @@ -82,7 +110,7 @@ public Tile[] apply(String s) { } for (int i = s.length(); i < width; i++) { - result[i] = createTile(BADROCK_C, row, i); + result[i] = createTile(TileSymbol.BEDROCK_C.symbol, row, i); } row++; @@ -98,8 +126,10 @@ public Tile[] apply(String s) { private static Tile createTile(char c, int x, int y) { Tile result; - switch (c) { - case BADROCK_C: { + TileSymbol symbol = TileSymbol.fromChar(c); + + switch (symbol) { + case BEDROCK_C: { result = new Tile(-1f); break; } @@ -123,8 +153,9 @@ private static Tile createTile(char c, int x, int y) { private void spawnActors(int x, int y, char c) { IntCoordinate coordinate = new IntCoordinate(x, y); + TileSymbol symbol = TileSymbol.fromChar(c); - switch (c) { + switch (symbol) { case PLAYER_C: defaultPlayerPos = coordinate; break; From 0dbd39cf753ff7ceaa01d9bdf15231a4c914d112 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Fri, 5 Jun 2020 21:08:53 +0300 Subject: [PATCH 11/45] Replace `map` with `for` --- .../ru/itmo/roguelike/field/FiniteField.java | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/field/FiniteField.java b/src/main/java/ru/itmo/roguelike/field/FiniteField.java index ac0ffc8..1694a5c 100644 --- a/src/main/java/ru/itmo/roguelike/field/FiniteField.java +++ b/src/main/java/ru/itmo/roguelike/field/FiniteField.java @@ -13,8 +13,11 @@ import java.io.FileReader; import java.io.IOException; import java.nio.file.Path; +import java.util.List; import java.util.Optional; import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** @@ -68,28 +71,26 @@ public FiniteField(Path file, Player player) { final int width = Integer.parseInt(reader.readLine()); - field = reader.lines().map(new Function() { - int row = 0; - @Override - public Tile[] apply(String s) { - Tile[] result = new Tile[width]; + final List lines = reader.lines().collect(Collectors.toList()); + field = new Tile[lines.size()][width]; - for (int column = 0; column < s.length(); column++) { - char c = s.charAt(column); - result[column] = createTile(c, row, column); - spawnActors(result[column].getX(), result[column].getY(), c); - } + for (int row = 0; row < lines.size(); row++) { + Tile[] result = new Tile[width]; - for (int i = s.length(); i < width; i++) { - result[i] = createTile(BADROCK_C, row, i); - } + String s = lines.get(row); + for (int column = 0; column < s.length(); column++) { + char c = s.charAt(column); + result[column] = createTile(c, row, column); + spawnActors(result[column].getX(), result[column].getY(), c); + } - row++; - return result; + for (int i = s.length(); i < width; i++) { + result[i] = createTile(BADROCK_C, row, i); } - }).toArray(Tile[][]::new); + field[row] = result; + } } catch (IOException e) { e.printStackTrace(); System.exit(1); From f047aa5d8589bf0664b49a462c8154f108939c2c Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Fri, 5 Jun 2020 21:22:42 +0300 Subject: [PATCH 12/45] Clear all TODOs --- .../java/ru/itmo/roguelike/characters/Player.java | 3 ++- .../itmo/roguelike/field/AutoGeneratedField.java | 14 ++++++++++++-- .../roguelike/manager/gamemanager/GameManager.java | 8 +++++++- src/main/java/ru/itmo/roguelike/render/Camera.java | 9 +++++++-- 4 files changed, 28 insertions(+), 6 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index d53420b..00b001f 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -195,7 +195,8 @@ public void reborn() { private void resetInventory() { inventory.clear(); - //FIXME: for testing purposes + // Now it fits into gameplay, because player has indicator, which weapon does he hold, and cannot drop those two + // weapons. Then it is not a bug anymore inventory.setItem(new FireballAttack(this), 0); inventory.setItem(new SwordAttack(this), 1); } diff --git a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java index bdf809b..6e10b86 100644 --- a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java +++ b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java @@ -110,10 +110,20 @@ public void process(IntCoordinate centerCoordinate) { } } + private final int MIN_SPAWN_X_COORDINATE = -500_000; + private final int MAX_SPAWN_X_COORDINATE = 500_000; + private final int MIN_SPAWN_Y_COORDINATE = -500_000; + private final int MAX_SPAWN_Y_COORDINATE = 500_000; + + /** + * Spawns {@link Player} in random position of the map. The possible spawn area is inside of + * ({@link AutoGeneratedField#MIN_SPAWN_X_COORDINATE}, {@link AutoGeneratedField#MIN_SPAWN_Y_COORDINATE}) - + * ({@link AutoGeneratedField#MAX_SPAWN_X_COORDINATE}, {@link AutoGeneratedField#MAX_SPAWN_Y_COORDINATE}) + */ @Override public void setDefaultPosToPlayer(Player p) { - int x = MathUtils.getRandomInt(-500_000, 500_000); // FIXME (ノ◕ヮ◕)ノ*:・゚✧ - int y = MathUtils.getRandomInt(-500_000, 500_000); + int x = MathUtils.getRandomInt(-MIN_SPAWN_X_COORDINATE, MAX_SPAWN_X_COORDINATE); + int y = MathUtils.getRandomInt(-MIN_SPAWN_Y_COORDINATE, MAX_SPAWN_Y_COORDINATE); p.setCoordinate(new IntCoordinate(x, y)); } } diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 625ae76..9920ea5 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -92,7 +92,13 @@ public void start() { MobPositionGenerator mobGenerator = new MobPositionGenerator(player); if (GameSettings.FILENAME == null) { - field = new AutoGeneratedField(800, 600, 1, 1, mobGenerator); // FIXme: set real w/h + field = new AutoGeneratedField( + GameSettings.WINDOW_WIDTH, + GameSettings.WINDOW_HEIGHT, + 1, + 1, + mobGenerator + ); } else { field = new FiniteField(Paths.get(GameSettings.FILENAME), player); } diff --git a/src/main/java/ru/itmo/roguelike/render/Camera.java b/src/main/java/ru/itmo/roguelike/render/Camera.java index 5b6adba..d070c34 100644 --- a/src/main/java/ru/itmo/roguelike/render/Camera.java +++ b/src/main/java/ru/itmo/roguelike/render/Camera.java @@ -1,5 +1,6 @@ package ru.itmo.roguelike.render; +import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.FloatCoordinate; import ru.itmo.roguelike.utils.IntCoordinate; @@ -8,8 +9,12 @@ @Singleton public class Camera { - private static final IntCoordinate minBoundForPos = new IntCoordinate(-10, -10); - private static final IntCoordinate maxBoundForPos = new IntCoordinate(810, 610); // FIXME MAGIC + private static final int boundsPadding = 10; + private static final IntCoordinate minBoundForPos = new IntCoordinate(-boundsPadding, -boundsPadding); + private static final IntCoordinate maxBoundForPos = new IntCoordinate( + GameSettings.WINDOW_WIDTH + boundsPadding, + GameSettings.WINDOW_HEIGHT - boundsPadding + ); private static final IntCoordinate centerShift = new IntCoordinate(-400, -300); From 04406e4a63c3bdb353bc81594e2b959c055b6a0f Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Fri, 5 Jun 2020 23:00:16 +0300 Subject: [PATCH 13/45] replace reflection with callback --- .../ru/itmo/roguelike/characters/Player.java | 39 +++++++++---------- .../itmo/roguelike/characters/mobs/Slime.java | 2 +- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index d53420b..b71c443 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -25,6 +25,8 @@ import java.io.IOException; import java.util.Optional; import java.util.Random; +import java.util.function.Function; +import java.util.function.Supplier; import static ru.itmo.roguelike.field.TileType.BADROCK; import static ru.itmo.roguelike.field.TileType.WATER; @@ -208,30 +210,27 @@ public void die() { this.armor = null; } - public void activateMoveEffect(Class effect, Event event) { - if (mover.contains(effect)) { - return; - } + public void activateMoveEffect(Function transformer, Event event) { + Mover newMover = transformer.apply(mover); + Class effect = newMover.getClass(); - long startTime = GameManager.GLOBAL_TIME; + if (!mover.contains(effect)) { + long startTime = GameManager.GLOBAL_TIME; - try { - mover = effect.getConstructor(Mover.class).newInstance(mover); + mover = newMover; eventManager.addDrawableEvent(event); - } catch (Exception e) { - e.printStackTrace(); - } - eventManager.add(() -> { - event.setCurr((int) (GameManager.GLOBAL_TIME - startTime)); - event.run(); - if (event.getCurr() > event.getDuration()) { - Player.this.deactivateMoveEffect(effect); - eventManager.removeDrawableEvent(event); - return false; - } - return true; - }); + eventManager.add(() -> { + event.setCurr((int) (GameManager.GLOBAL_TIME - startTime)); + event.run(); + if (event.getCurr() > event.getDuration()) { + Player.this.deactivateMoveEffect(effect); + eventManager.removeDrawableEvent(event); + return false; + } + return true; + }); + } } public void deactivateMoveEffect(Class effect) { diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java b/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java index 1f5bccf..0d7be85 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java @@ -39,7 +39,7 @@ public void collide(Collidable c) { drawableDescriptor.getColor().brighter().brighter()); } }); - ((Player) c).activateMoveEffect(MoverEmbarrassment.class, event); + ((Player) c).activateMoveEffect(MoverEmbarrassment::new, event); } super.collide(c); } From fd13477019ac01bb7a4b125608d651789806d8dd Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Fri, 5 Jun 2020 23:11:15 +0300 Subject: [PATCH 14/45] remove code duplication in *Behaviour --- .../mobs/strategy/AggressiveBehavior.java | 15 ++--------- .../mobs/strategy/CowardlyBehavior.java | 27 ++----------------- .../mobs/strategy/MobWithTarget.java | 26 +++++++++++++++--- .../mobs/strategy/RandomWalkBehavior.java | 15 +---------- 4 files changed, 28 insertions(+), 55 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/AggressiveBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/AggressiveBehavior.java index 8b43914..ca1332b 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/AggressiveBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/AggressiveBehavior.java @@ -1,11 +1,9 @@ package ru.itmo.roguelike.characters.mobs.strategy; -import ru.itmo.roguelike.characters.Actor; import ru.itmo.roguelike.utils.IntCoordinate; -public class AggressiveBehavior implements MobWithTarget { - private Actor self; - private Actor target; +public class AggressiveBehavior extends MobWithTarget { + @Override public IntCoordinate getPath() { @@ -21,13 +19,4 @@ public IntCoordinate getPath() { return IntCoordinate.getZeroPosition(); } - - public void setTarget(Actor target) { - this.target = target; - } - - @Override - public void setSelf(Actor self) { - this.self = self; - } } diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/CowardlyBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/CowardlyBehavior.java index bec1210..3120909 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/CowardlyBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/CowardlyBehavior.java @@ -1,33 +1,10 @@ package ru.itmo.roguelike.characters.mobs.strategy; -import ru.itmo.roguelike.characters.Actor; import ru.itmo.roguelike.utils.IntCoordinate; -public class CowardlyBehavior implements MobWithTarget { - private Actor self; - private Actor target; - +public class CowardlyBehavior extends AggressiveBehavior { @Override public IntCoordinate getPath() { - if (target == null) { - return IntCoordinate.getZeroPosition(); - } - - final IntCoordinate diff = new IntCoordinate(target.getPosition()); - diff.substract(self.getPosition()); - if (diff.lenL2() < self.getRadius()) { - return diff.signum().inverse(); - } - - return IntCoordinate.getZeroPosition(); - } - - public void setTarget(Actor target) { - this.target = target; - } - - @Override - public void setSelf(Actor self) { - this.self = self; + return super.getPath().inverse(); } } diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/MobWithTarget.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/MobWithTarget.java index 38506de..d42a4ad 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/MobWithTarget.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/MobWithTarget.java @@ -5,13 +5,33 @@ import java.util.function.Supplier; -public interface MobWithTarget extends MobBehavior, WithTarget { +public abstract class MobWithTarget implements MobBehavior, WithTarget { + protected Actor self; + protected Actor target; + + public void setTarget(Actor target) { + this.target = target; + } + + @Override + public void setSelf(Actor self) { + this.self = self; + } + + public Actor getSelf() { + return self; + } + + public Actor getTarget() { + return target; + } + @NotNull - static MobWithTarget.Builder builder(@NotNull Supplier mobWithTargetSupplier) { + public static MobWithTarget.Builder builder(@NotNull Supplier mobWithTargetSupplier) { return new Builder(mobWithTargetSupplier.get()); } - class Builder extends MobBehavior.Builder { + public static class Builder extends MobBehavior.Builder { private final MobWithTarget mobWithTarget; public Builder(MobWithTarget mobWithTarget) { diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java index 0e70dbf..6b22a87 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java @@ -1,17 +1,14 @@ package ru.itmo.roguelike.characters.mobs.strategy; -import ru.itmo.roguelike.characters.Actor; import ru.itmo.roguelike.utils.IntCoordinate; import ru.itmo.roguelike.utils.MathUtils; import java.util.Random; -public class RandomWalkBehavior implements MobWithTarget { +public class RandomWalkBehavior extends MobWithTarget { private static final Random random = new Random(); private static final float PROBABILITY = 0.3f; private static final int STEP = 5; - private Actor self; - private Actor target; private IntCoordinate delta = IntCoordinate.getZeroPosition(); @Override @@ -41,14 +38,4 @@ public IntCoordinate getPath() { return nextCoordinate; } - - @Override - public void setSelf(Actor self) { - this.self = self; - } - - @Override - public void setTarget(Actor target) { - this.target = target; - } } From 3d76b3b643d623d741c2f69e88a564f57d1da0bf Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sat, 6 Jun 2020 01:05:43 +0300 Subject: [PATCH 15/45] fix javadoc and typos --- .../java/ru/itmo/roguelike/Collidable.java | 8 +- .../ru/itmo/roguelike/characters/Actor.java | 2 +- .../ru/itmo/roguelike/characters/Player.java | 5 +- .../java/ru/itmo/roguelike/field/Field.java | 4 +- .../ru/itmo/roguelike/field/FiniteField.java | 81 +++++++------------ .../itmo/roguelike/field/NoiseGenerator.java | 3 +- .../java/ru/itmo/roguelike/field/Tile.java | 8 +- .../ru/itmo/roguelike/field/TileType.java | 8 +- 8 files changed, 50 insertions(+), 69 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/Collidable.java b/src/main/java/ru/itmo/roguelike/Collidable.java index cdb9a75..1e2708a 100644 --- a/src/main/java/ru/itmo/roguelike/Collidable.java +++ b/src/main/java/ru/itmo/roguelike/Collidable.java @@ -47,7 +47,7 @@ default Shape getShape() { } /** - * @return the transformation to be applied to the shape {@see getShape()} after translation + * @return the transformation to be applied to the shape (see {@link Collidable#getShape()}) after translation * Needs since different transformations do not commute */ default AffineTransform getAdditionalTransform() { @@ -55,8 +55,10 @@ default AffineTransform getAdditionalTransform() { } /** - * 1. translates shape {@see getShape()} to current coordinates - * 2. applies additional transformation {@see getAdditionalTransform()} + *
    + *
  1. translates shape (see {@link Collidable#getShape()}) to current coordinates
  2. + *
  3. applies additional transformation (see {@link Collidable#getAdditionalTransform()})
  4. + *
* * @return shape with correct position in world coordinates */ diff --git a/src/main/java/ru/itmo/roguelike/characters/Actor.java b/src/main/java/ru/itmo/roguelike/characters/Actor.java index 9c3126e..df5c25e 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Actor.java +++ b/src/main/java/ru/itmo/roguelike/characters/Actor.java @@ -109,7 +109,7 @@ public IntCoordinate getLastPosition() { } public void act(Field field) { - if (field.getTileType(position) == TileType.BADROCK && !(this instanceof Player)) { + if (field.getTileType(position) == TileType.BEDROCK && !(this instanceof Player)) { this.die(); } } diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index b71c443..e0b7abc 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -26,9 +26,8 @@ import java.util.Optional; import java.util.Random; import java.util.function.Function; -import java.util.function.Supplier; -import static ru.itmo.roguelike.field.TileType.BADROCK; +import static ru.itmo.roguelike.field.TileType.BEDROCK; import static ru.itmo.roguelike.field.TileType.WATER; @Singleton @@ -312,7 +311,7 @@ public void fixPosition(Field field) { TileType type = field.getTileType(position); while (type.isSolid()) { - if (type == BADROCK) { + if (type == BEDROCK) { field.reInit(position); } type = field.getTileType(position); diff --git a/src/main/java/ru/itmo/roguelike/field/Field.java b/src/main/java/ru/itmo/roguelike/field/Field.java index 34a282b..6da27f8 100644 --- a/src/main/java/ru/itmo/roguelike/field/Field.java +++ b/src/main/java/ru/itmo/roguelike/field/Field.java @@ -23,11 +23,11 @@ public interface Field { Optional getTile(IntCoordinate coordinate); /** - * @return tile type a given coordinate. Returns {@link TileType#BADROCK} + * @return tile type a given coordinate. Returns {@link TileType#BEDROCK} * if there is no tile at the given coordinate at the moment. */ default TileType getTileType(IntCoordinate coordinate) { - return getTile(coordinate).map(Tile::getType).orElse(TileType.BADROCK); + return getTile(coordinate).map(Tile::getType).orElse(TileType.BEDROCK); } /** diff --git a/src/main/java/ru/itmo/roguelike/field/FiniteField.java b/src/main/java/ru/itmo/roguelike/field/FiniteField.java index 145f7dc..ebf230f 100644 --- a/src/main/java/ru/itmo/roguelike/field/FiniteField.java +++ b/src/main/java/ru/itmo/roguelike/field/FiniteField.java @@ -15,9 +15,9 @@ import java.nio.file.Path; import java.util.List; import java.util.Optional; -import java.util.function.Function; import java.util.stream.Collectors; -import java.util.stream.Stream; + +import static ru.itmo.roguelike.field.FiniteField.TileSymbol.BEDROCK; /** @@ -28,10 +28,10 @@ *
* Single integer on the first line --- field WIDTH. * Then lines of length no more than WIDTH, consisting only of characters - * {@link TileSymbol#GRASS_C}('-'), {@link TileSymbol#WATER_C}('~') - * {@link TileSymbol#STONE_C}('#'), {@link TileSymbol#BEDROCK_C}(' ') - * {@link TileSymbol#PLAYER_C}('p'), {@link TileSymbol#ZOMBIE_C}('z') - * {@link TileSymbol#SLIME_C}('s'). + * {@link TileSymbol#GRASS}('-'), {@link TileSymbol#WATER}('~') + * {@link TileSymbol#STONE}('#'), {@link TileSymbol#BEDROCK}(' ') + * {@link TileSymbol#PLAYER}('p'), {@link TileSymbol#ZOMBIE}('z') + * {@link TileSymbol#SLIME}('s'). *

* Example: *

@@ -48,37 +48,39 @@ *

*/ public class FiniteField implements Field { - enum TileSymbol { - GRASS_C('-'), - WATER_C('~'), - STONE_C('#'), - BEDROCK_C(' '), - PLAYER_C('p'), - ZOMBIE_C('z'), - SLIME_C('s'); - - TileSymbol(char symbol) { + public enum TileSymbol { + GRASS('-', 0.5f), + WATER('~', 0.2f), + STONE('#', 0.9f), + BEDROCK(' ', -1f), + PLAYER('p', 0.5f), + ZOMBIE('z', 0.5f), + SLIME('s', 0.5f); + + TileSymbol(char symbol, float value) { this.symbol = symbol; + this.value = value; } private final char symbol; + private final float value; public static TileSymbol fromChar(char symbol) { switch (symbol) { case '-': - return GRASS_C; + return GRASS; case '~': - return WATER_C; + return WATER; case '#': - return STONE_C; + return STONE; case 'p': - return PLAYER_C; + return PLAYER; case 'z': - return ZOMBIE_C; + return ZOMBIE; case 's': - return SLIME_C; + return SLIME; default: - return BEDROCK_C; + return BEDROCK; } } } @@ -96,10 +98,8 @@ public FiniteField(Path file, Player player) { try ( BufferedReader reader = new BufferedReader(new FileReader(file.toFile())) ) { - final int width = Integer.parseInt(reader.readLine()); - final List lines = reader.lines().collect(Collectors.toList()); field = new Tile[lines.size()][width]; @@ -114,7 +114,7 @@ public FiniteField(Path file, Player player) { } for (int i = s.length(); i < width; i++) { - result[i] = createTile(BADROCK_C, row, i); + result[i] = createTile(BEDROCK.symbol, row, i); } field[row] = result; @@ -126,28 +126,7 @@ public FiniteField(Path file, Player player) { } private static Tile createTile(char c, int x, int y) { - Tile result; - TileSymbol symbol = TileSymbol.fromChar(c); - - switch (symbol) { - case BEDROCK_C: { - result = new Tile(-1f); - break; - } - case STONE_C: { - result = new Tile(0.9f); - break; - } - case WATER_C: { - result = new Tile(0.2f); - break; - } - case GRASS_C: - default: { - result = new Tile(0.5f); - break; - } - } + Tile result = new Tile(TileSymbol.fromChar(c).value); result.setXY(x, y); return result; } @@ -157,15 +136,15 @@ private void spawnActors(int x, int y, char c) { TileSymbol symbol = TileSymbol.fromChar(c); switch (symbol) { - case PLAYER_C: + case PLAYER: defaultPlayerPos = coordinate; break; - case ZOMBIE_C: + case ZOMBIE: Enemy.builder(Zombie::new).setPosition(coordinate) .setRadius(1000).setTarget(player) .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)).build(); break; - case SLIME_C: + case SLIME: Enemy.builder(Slime::new).setPosition(coordinate) .setRadius(1000).setTarget(player) .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)).build(); diff --git a/src/main/java/ru/itmo/roguelike/field/NoiseGenerator.java b/src/main/java/ru/itmo/roguelike/field/NoiseGenerator.java index f2fa6ec..f8e830f 100644 --- a/src/main/java/ru/itmo/roguelike/field/NoiseGenerator.java +++ b/src/main/java/ru/itmo/roguelike/field/NoiseGenerator.java @@ -2,6 +2,7 @@ /** * Pseudo-random noise generator + * @see "https://habr.com/ru/post/142592/" */ public final class NoiseGenerator { private static final int MARGIN = 8; @@ -102,7 +103,7 @@ private void fill(int x, int y, float[][] map) { } /** - * Generates ValueNoise {@see "https://habr.com/ru/post/142592/"} + * Generates ValueNoise **/ public void generate(int i, int j, float[][] field) { fill(i, j, field); diff --git a/src/main/java/ru/itmo/roguelike/field/Tile.java b/src/main/java/ru/itmo/roguelike/field/Tile.java index aaf0a46..5bf2fd7 100644 --- a/src/main/java/ru/itmo/roguelike/field/Tile.java +++ b/src/main/java/ru/itmo/roguelike/field/Tile.java @@ -29,7 +29,7 @@ public Tile() { /** * Creates empty tile and initialized it. * - * @param value real number in range [0, 1]. Needed to compute {@see TileType}. + * @param value real number in range [0, 1]. Needed to compute (see {@link TileType}). */ public Tile(float value) { super(true); @@ -39,7 +39,7 @@ public Tile(float value) { /** * Reinitializes tile with a new value. Tile type may change. * - * @param value real number in range [0, 1]. Needed to compute {@see TileType}. + * @param value real number in range [0, 1]. Needed to compute (see {@link TileType}). */ public void reInit(float value) { Pair typeAndIntensity = TileType.getTypeAndIntensity(value); @@ -47,7 +47,7 @@ public void reInit(float value) { type = typeAndIntensity.getFirst(); float intens = typeAndIntensity.getSecond(); - if (type == TileType.BADROCK) return; + if (type == TileType.BEDROCK) return; float[] color = {0, 0, 0}; type.getMainColor().getColorComponents(ColorSpace.getInstance(ColorSpace.CS_sRGB), color); @@ -71,7 +71,7 @@ public void setXY(int x, int y) { @Override public void draw(Graphics2D graphics, Camera camera) { - if (type != TileType.BADROCK) { + if (type != TileType.BEDROCK) { super.draw(graphics, camera); } } diff --git a/src/main/java/ru/itmo/roguelike/field/TileType.java b/src/main/java/ru/itmo/roguelike/field/TileType.java index ba84db7..9ea9e68 100644 --- a/src/main/java/ru/itmo/roguelike/field/TileType.java +++ b/src/main/java/ru/itmo/roguelike/field/TileType.java @@ -13,7 +13,7 @@ public enum TileType { GRASS(Color.GREEN, 0.3f, i -> 0.3f + getWithThresh(1f - i, 0.2f, 0.7f)), WATER(Color.BLUE, 0.0f, i -> i), - BADROCK(Color.WHITE, -1, null); + BEDROCK(Color.WHITE, -1, null); private final float threshold; private final Function postprocess; @@ -54,8 +54,8 @@ public static Pair getTypeAndIntensity(float value) { TileType type = TileType.values()[index]; - if (type == BADROCK) { - return new Pair<>(BADROCK, 1f); + if (type == BEDROCK) { + return new Pair<>(BEDROCK, 1f); } float interval = (index > 0 ? TileType.values()[index - 1].threshold : 1f) - type.threshold; @@ -63,7 +63,7 @@ public static Pair getTypeAndIntensity(float value) { } public boolean isSolid() { - return this == ROCK || this == BADROCK; + return this == ROCK || this == BEDROCK; } /** From 3c87d001cee378b26001a828338d5ce5250139e9 Mon Sep 17 00:00:00 2001 From: Ellen Kartysheva Date: Sat, 6 Jun 2020 15:06:09 +0300 Subject: [PATCH 16/45] Updates class diagram --- docs/ClassDiagram.png | Bin 701060 -> 1122800 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/ClassDiagram.png b/docs/ClassDiagram.png index 6037b214e674d4c76e9d3d108697f226c5cd2bdb..1ea446f654181857209b6bea1e0913a025862361 100644 GIT binary patch literal 1122800 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

IcKgUd&}g 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�jt5+kR{Xp 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
=fOn3@apnvPFRJFbipr3m%YBQ@?ZVi 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

6BC$#WOAf+{92Xf7=pE`l0?24D(ijL|M4!1 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 fk2iIHkgZ5R@?=Gg^#YfjrZo-8|l@w@*3sHFqj From d9a5b74295aa5cede98f90a8ec994b7a94e45bf7 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sat, 6 Jun 2020 15:23:45 +0300 Subject: [PATCH 17/45] fix again --- src/main/java/ru/itmo/roguelike/field/Tile.java | 4 ++-- src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/field/Tile.java b/src/main/java/ru/itmo/roguelike/field/Tile.java index 5bf2fd7..fa6f6df 100644 --- a/src/main/java/ru/itmo/roguelike/field/Tile.java +++ b/src/main/java/ru/itmo/roguelike/field/Tile.java @@ -29,7 +29,7 @@ public Tile() { /** * Creates empty tile and initialized it. * - * @param value real number in range [0, 1]. Needed to compute (see {@link TileType}). + * @param value real number in range [0, 1]. Needed to compute {@link TileType}. */ public Tile(float value) { super(true); @@ -39,7 +39,7 @@ public Tile(float value) { /** * Reinitializes tile with a new value. Tile type may change. * - * @param value real number in range [0, 1]. Needed to compute (see {@link TileType}). + * @param value real number in range [0, 1]. Needed to compute {@link TileType}. */ public void reInit(float value) { Pair typeAndIntensity = TileType.getTypeAndIntensity(value); diff --git a/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java b/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java index 448dc02..1a92bcd 100644 --- a/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java +++ b/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java @@ -99,7 +99,7 @@ public String toString() { } /** - * @return L_2 distance + * @return squared L_2 distance */ public int lenL2() { return this.posX * this.posX + this.posY * this.posY; From 8dc9a9c8a23ee818d3787fa97384cb802b4637ed Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sat, 6 Jun 2020 17:11:25 +0300 Subject: [PATCH 18/45] map selector posiible fix --- .../java/ru/itmo/roguelike/Application.java | 48 ++-------- src/main/java/ru/itmo/roguelike/Launcher.java | 88 +++++++++++++++++++ .../ru/itmo/roguelike/characters/Player.java | 2 +- .../mobs/strategy/MobWithTarget.java | 18 ++-- .../ru/itmo/roguelike/field/FiniteField.java | 74 ++++++++-------- .../itmo/roguelike/field/NoiseGenerator.java | 1 + .../manager/gamemanager/GameManager.java | 1 + .../manager/uimanager/UIManager.java | 1 - .../roguelike/render/JexerRenderEngine.java | 4 +- .../itmo/roguelike/settings/GameSettings.java | 14 +-- .../ru/itmo/roguelike/utils/FileUtils.java | 4 - 11 files changed, 153 insertions(+), 102 deletions(-) create mode 100644 src/main/java/ru/itmo/roguelike/Launcher.java diff --git a/src/main/java/ru/itmo/roguelike/Application.java b/src/main/java/ru/itmo/roguelike/Application.java index cf700b8..5120174 100644 --- a/src/main/java/ru/itmo/roguelike/Application.java +++ b/src/main/java/ru/itmo/roguelike/Application.java @@ -3,34 +3,24 @@ import com.google.inject.Guice; import com.google.inject.Injector; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import ru.itmo.roguelike.ioc.IOModule; import ru.itmo.roguelike.ioc.ManagersModule; import ru.itmo.roguelike.ioc.RenderModule; import ru.itmo.roguelike.manager.gamemanager.GameManager; import ru.itmo.roguelike.settings.GameSettings; -import javax.swing.*; -import javax.swing.filechooser.FileFilter; -import java.io.File; import java.util.concurrent.*; -import static javax.swing.JFileChooser.APPROVE_OPTION; -import static javax.swing.JFileChooser.FILES_ONLY; - public class Application { - public static void main(String[] args) { - JFrame frame = new JFrame(GameSettings.WINDOW_TITLE); + public static void main(String[] args) throws ExecutionException, InterruptedException { + Launcher launcher = new Launcher(); + + launcher.getPromise().get().ifPresent(opt -> { + GameSettings.FILENAME = opt.orElse(null); + new Application().run(); - frame.setSize(800, 600); - frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - frame.setLocationRelativeTo(null); - frame.setResizable(false); - frame.setVisible(true); + }); - GameSettings.FILENAME = chooseMapFileName(); - Application application = new Application(); - application.run(); System.exit(0); } @@ -53,30 +43,6 @@ public void run() { } } - public static @Nullable String chooseMapFileName() { - JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); - fc.setFileFilter(new FileFilter() { - @Override - public boolean accept(File file) { - return file.isDirectory() || file.getName().endsWith(".mapfile"); - } - - @Override - public String getDescription() { - return "Map files"; - } - }); - - fc.setFileSelectionMode(FILES_ONLY); - fc.setApproveButtonText("LOAD"); - fc.setVisible(true); - - if (APPROVE_OPTION == fc.showOpenDialog(null)) { - return fc.getSelectedFile().getAbsolutePath(); - } - return null; - } - private void rescheduleGameLoop( @NotNull ScheduledExecutorService executorService, @NotNull GameManager gameManager diff --git a/src/main/java/ru/itmo/roguelike/Launcher.java b/src/main/java/ru/itmo/roguelike/Launcher.java new file mode 100644 index 0000000..193ca83 --- /dev/null +++ b/src/main/java/ru/itmo/roguelike/Launcher.java @@ -0,0 +1,88 @@ +package ru.itmo.roguelike; + +import com.google.common.util.concurrent.SettableFuture; + +import javax.swing.*; +import javax.swing.filechooser.FileNameExtensionFilter; +import java.awt.*; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.util.Optional; + +import static javax.swing.JFileChooser.APPROVE_OPTION; + +public class Launcher extends JFrame { + + private final SettableFuture>> promise = SettableFuture.create(); + + public Launcher() { + super("LAUNCHER"); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent windowEvent) { + promise.set(Optional.empty()); + super.windowClosing(windowEvent); + } + }); + setResizable(false); + + setSize(200, 100); + + add(BorderLayout.PAGE_START, getSelectMapButton()); + add(BorderLayout.PAGE_END, getRandomMapButton()); + + pack(); + setLocationRelativeTo(null); + + setVisible(true); + } + + public static String showDialogAndGetMapFileName() { + JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); + + fc.setAcceptAllFileFilterUsed(false); + FileNameExtensionFilter filter = new FileNameExtensionFilter("MAP FILE", "mapfile"); + fc.addChoosableFileFilter(filter); + fc.setDialogTitle("SELECT MAP FILE"); + + int returnCode = fc.showDialog(null, "LOAD"); + if (returnCode == APPROVE_OPTION) { + return fc.getSelectedFile().getAbsolutePath(); + } + return null; + } + + public JButton getRandomMapButton() { + JButton startRandom = new JButton("Autogenerate map"); + startRandom.setSize(200, 30); + + startRandom.addActionListener(actionEvent -> { + promise.set(Optional.of(Optional.empty())); + Launcher.this.close(); + }); + + return startRandom; + } + + public JButton getSelectMapButton() { + JButton startRandom = new JButton("Select map file"); + startRandom.setSize(200, 30); + + startRandom.addActionListener(actionEvent -> { + promise.set(Optional.ofNullable(showDialogAndGetMapFileName()).map(Optional::of)); + Launcher.this.close(); + }); + + return startRandom; + } + + private void close() { + setVisible(false); + dispose(); + } + + public SettableFuture>> getPromise() { + return promise; + } +} diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index e0b7abc..83bd708 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -48,7 +48,7 @@ public class Player extends Actor { private float exp; private long lastInventoryWarning = GameManager.GLOBAL_TIME; private long lastDroppableWarning = GameManager.GLOBAL_TIME; - private Event armorEventDrawer = new Event(1, 0, Color.LIGHT_GRAY, null, (g, x, y) -> { + private final Event armorEventDrawer = new Event(1, 0, Color.LIGHT_GRAY, null, (g, x, y) -> { if (armor != null) { armor.renderInInventory(g, x - 20, y - 20, 40, 40); } diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/MobWithTarget.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/MobWithTarget.java index d42a4ad..9642985 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/MobWithTarget.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/MobWithTarget.java @@ -9,8 +9,13 @@ public abstract class MobWithTarget implements MobBehavior, WithTarget { protected Actor self; protected Actor target; - public void setTarget(Actor target) { - this.target = target; + @NotNull + public static MobWithTarget.Builder builder(@NotNull Supplier mobWithTargetSupplier) { + return new Builder(mobWithTargetSupplier.get()); + } + + public Actor getSelf() { + return self; } @Override @@ -18,17 +23,12 @@ public void setSelf(Actor self) { this.self = self; } - public Actor getSelf() { - return self; - } - public Actor getTarget() { return target; } - @NotNull - public static MobWithTarget.Builder builder(@NotNull Supplier mobWithTargetSupplier) { - return new Builder(mobWithTargetSupplier.get()); + public void setTarget(Actor target) { + this.target = target; } public static class Builder extends MobBehavior.Builder { diff --git a/src/main/java/ru/itmo/roguelike/field/FiniteField.java b/src/main/java/ru/itmo/roguelike/field/FiniteField.java index ebf230f..f6321f4 100644 --- a/src/main/java/ru/itmo/roguelike/field/FiniteField.java +++ b/src/main/java/ru/itmo/roguelike/field/FiniteField.java @@ -48,47 +48,9 @@ *

*/ public class FiniteField implements Field { - public enum TileSymbol { - GRASS('-', 0.5f), - WATER('~', 0.2f), - STONE('#', 0.9f), - BEDROCK(' ', -1f), - PLAYER('p', 0.5f), - ZOMBIE('z', 0.5f), - SLIME('s', 0.5f); - - TileSymbol(char symbol, float value) { - this.symbol = symbol; - this.value = value; - } - - private final char symbol; - private final float value; - - public static TileSymbol fromChar(char symbol) { - switch (symbol) { - case '-': - return GRASS; - case '~': - return WATER; - case '#': - return STONE; - case 'p': - return PLAYER; - case 'z': - return ZOMBIE; - case 's': - return SLIME; - default: - return BEDROCK; - } - } - } - private final Player player; private Tile[][] field; private IntCoordinate defaultPlayerPos; - /** * Read field from a file */ @@ -176,4 +138,40 @@ public void process(IntCoordinate centerCoordinate) { public void setDefaultPosToPlayer(Player p) { p.setCoordinate(defaultPlayerPos); } + + public enum TileSymbol { + GRASS('-', 0.5f), + WATER('~', 0.2f), + STONE('#', 0.9f), + BEDROCK(' ', -1f), + PLAYER('p', 0.5f), + ZOMBIE('z', 0.5f), + SLIME('s', 0.5f); + + private final char symbol; + private final float value; + TileSymbol(char symbol, float value) { + this.symbol = symbol; + this.value = value; + } + + public static TileSymbol fromChar(char symbol) { + switch (symbol) { + case '-': + return GRASS; + case '~': + return WATER; + case '#': + return STONE; + case 'p': + return PLAYER; + case 'z': + return ZOMBIE; + case 's': + return SLIME; + default: + return BEDROCK; + } + } + } } diff --git a/src/main/java/ru/itmo/roguelike/field/NoiseGenerator.java b/src/main/java/ru/itmo/roguelike/field/NoiseGenerator.java index f8e830f..8140c1c 100644 --- a/src/main/java/ru/itmo/roguelike/field/NoiseGenerator.java +++ b/src/main/java/ru/itmo/roguelike/field/NoiseGenerator.java @@ -2,6 +2,7 @@ /** * Pseudo-random noise generator + * * @see "https://habr.com/ru/post/142592/" */ public final class NoiseGenerator { diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 625ae76..94f76ce 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -261,4 +261,5 @@ public synchronized void process() { } } } + } diff --git a/src/main/java/ru/itmo/roguelike/manager/uimanager/UIManager.java b/src/main/java/ru/itmo/roguelike/manager/uimanager/UIManager.java index b93d04d..e61d4ca 100644 --- a/src/main/java/ru/itmo/roguelike/manager/uimanager/UIManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/uimanager/UIManager.java @@ -11,7 +11,6 @@ import javax.inject.Singleton; import java.awt.*; import java.awt.font.TextLayout; -import java.io.File; import java.io.IOException; @Singleton diff --git a/src/main/java/ru/itmo/roguelike/render/JexerRenderEngine.java b/src/main/java/ru/itmo/roguelike/render/JexerRenderEngine.java index c1e5c65..7961f12 100644 --- a/src/main/java/ru/itmo/roguelike/render/JexerRenderEngine.java +++ b/src/main/java/ru/itmo/roguelike/render/JexerRenderEngine.java @@ -21,6 +21,7 @@ public class JexerRenderEngine implements RenderEngine { private final KeyListener keyListener; private final BufferStrategy bufferStrategy; private final UIManager uiManager; + private JFrame frame; @Inject public JexerRenderEngine(@IOModule.DefaultInputHandler KeyListener keyListener, @@ -43,7 +44,7 @@ public JexerRenderEngine(int width, int height, KeyListener keyListener, Camera * Set up for render */ private BufferStrategy prepareCanvasAndGetBufferStrategy() { - JFrame frame = new JFrame(GameSettings.WINDOW_TITLE); + frame = new JFrame(GameSettings.WINDOW_TITLE); frame.setSize(width, height); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); @@ -94,4 +95,5 @@ public void renderPause() { graphics.dispose(); bufferStrategy.show(); } + } diff --git a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java index 8a93af6..cc68e13 100644 --- a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java +++ b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java @@ -16,6 +16,13 @@ public final class GameSettings { public static String FILENAME = null; + private GameSettings() { + } + + public static String getSaveFileName() { + return (FILENAME == null ? "auto.file" : FILENAME) + "_save"; + } + public final static class ImagePath { public static final String TELEPORT_IN = "pic/teleport_in.png"; public static final String TELEPORT_OUT = "pic/teleport_out.png"; @@ -25,11 +32,4 @@ public final static class ImagePath { public static final String MEDIUM_ARMOR = "pic/medium_armor.png"; public static final String LIGHT_ARMOR = "pic/light_armor.png"; } - - private GameSettings() { - } - - public static String getSaveFileName() { - return (FILENAME == null ? "auto.file" : FILENAME) + "_save"; - } } diff --git a/src/main/java/ru/itmo/roguelike/utils/FileUtils.java b/src/main/java/ru/itmo/roguelike/utils/FileUtils.java index 8f6b853..7a6445a 100644 --- a/src/main/java/ru/itmo/roguelike/utils/FileUtils.java +++ b/src/main/java/ru/itmo/roguelike/utils/FileUtils.java @@ -4,12 +4,8 @@ import javax.imageio.ImageIO; import java.awt.*; -import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.net.URISyntaxException; -import java.net.URL; -import java.nio.file.Paths; import java.util.Objects; public class FileUtils { From ebe760a6744505e435b16a22f1529974b6fcd7cb Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sat, 6 Jun 2020 17:16:52 +0300 Subject: [PATCH 19/45] simplify constructor --- src/main/java/ru/itmo/roguelike/Launcher.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/Launcher.java b/src/main/java/ru/itmo/roguelike/Launcher.java index 193ca83..7731805 100644 --- a/src/main/java/ru/itmo/roguelike/Launcher.java +++ b/src/main/java/ru/itmo/roguelike/Launcher.java @@ -17,6 +17,12 @@ public class Launcher extends JFrame { public Launcher() { super("LAUNCHER"); + selfBuild(); + setLocationRelativeTo(null); + setVisible(true); + } + + private void selfBuild() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); addWindowListener(new WindowAdapter() { @Override @@ -33,9 +39,6 @@ public void windowClosing(WindowEvent windowEvent) { add(BorderLayout.PAGE_END, getRandomMapButton()); pack(); - setLocationRelativeTo(null); - - setVisible(true); } public static String showDialogAndGetMapFileName() { From 614c0c981b2426d1fc64ad4cc2faa3a0304041eb Mon Sep 17 00:00:00 2001 From: Alexander Date: Sun, 7 Jun 2020 12:13:51 +0300 Subject: [PATCH 20/45] Update src/main/java/ru/itmo/roguelike/render/Camera.java Co-authored-by: ZhekehZ --- src/main/java/ru/itmo/roguelike/render/Camera.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/itmo/roguelike/render/Camera.java b/src/main/java/ru/itmo/roguelike/render/Camera.java index d070c34..d875aea 100644 --- a/src/main/java/ru/itmo/roguelike/render/Camera.java +++ b/src/main/java/ru/itmo/roguelike/render/Camera.java @@ -16,7 +16,7 @@ public class Camera { GameSettings.WINDOW_HEIGHT - boundsPadding ); - private static final IntCoordinate centerShift = new IntCoordinate(-400, -300); + private static final IntCoordinate centerShift = new IntCoordinate(-GameSettings.WINDOW_WIDTH / 2, -GameSettings.WINDOW_HEIGHT / 2); private final static float SPEED = 3; private final static float ACCEL = 0.03f; From c525995a432b49b0a79f4b2b0f65914eb56d9cd4 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 12:27:10 +0300 Subject: [PATCH 21/45] Add void method for Enemy builder --- .../java/ru/itmo/roguelike/characters/mobs/Enemy.java | 11 +++++++++++ .../java/ru/itmo/roguelike/field/FiniteField.java | 4 ++-- .../ru/itmo/roguelike/field/MobPositionGenerator.java | 8 ++++---- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java b/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java index e54573c..ad0f1b8 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java @@ -140,9 +140,20 @@ public Builder setRadius(float radius) { return this; } + /** + * Spawns enemy and registers is as mob and renderable object. If you don't need a reference to created object, + * please, use {@link Builder#createAndRegister()}. + */ @NotNull public Enemy build() { return enemy; } + + /** + * Spawns enemy and registers it as mob and renderable object. If you also need to keep a reference to created + * object, please consider using {@link Builder#build()}. + */ + public void createAndRegister() { + } } } diff --git a/src/main/java/ru/itmo/roguelike/field/FiniteField.java b/src/main/java/ru/itmo/roguelike/field/FiniteField.java index f6321f4..7aca3ae 100644 --- a/src/main/java/ru/itmo/roguelike/field/FiniteField.java +++ b/src/main/java/ru/itmo/roguelike/field/FiniteField.java @@ -104,12 +104,12 @@ private void spawnActors(int x, int y, char c) { case ZOMBIE: Enemy.builder(Zombie::new).setPosition(coordinate) .setRadius(1000).setTarget(player) - .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)).build(); + .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)).createAndRegister(); break; case SLIME: Enemy.builder(Slime::new).setPosition(coordinate) .setRadius(1000).setTarget(player) - .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)).build(); + .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)).createAndRegister(); break; default: } diff --git a/src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java b/src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java index f0d119b..14558eb 100644 --- a/src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java +++ b/src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java @@ -26,22 +26,22 @@ public class MobPositionGenerator { static { spawners.put(SpawnClass.ZOMBIE, (player, coordinate) -> { - Enemy e = Enemy.builder(Zombie::new) + Enemy.builder(Zombie::new) .setPosition(coordinate) .setBehavior(MobWithTarget.builder(RandomWalkBehavior::new)) .setRadius(10000) .setTarget(player) - .build(); + .createAndRegister(); } ); spawners.put(SpawnClass.SLIME, (player, coordinate) -> { - Enemy e = Enemy.builder(Slime::new) + Enemy.builder(Slime::new) .setPosition(coordinate) .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)) .setRadius(10000) .setTarget(player) - .build(); + .createAndRegister(); } ); spawners.put(SpawnClass.MED_KIT_S, (p, coordinate) -> new MedKitSmall().setPosition(coordinate)); From 5540fdfe245e902d6af75048c51f0b88404ebe7b Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 14:53:06 +0300 Subject: [PATCH 22/45] Set damage of Slime to 5 --- src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java b/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java index 61624ef..29a8920 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/Slime.java @@ -20,6 +20,7 @@ public class Slime extends Enemy { { drawableDescriptor.setColor(new Color(0x5900FF)); + damage = 5; } public Slime() { From d326e00f8ef70b9c9dd05a49494e9caed6fc09d2 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sun, 7 Jun 2020 15:48:01 +0300 Subject: [PATCH 23/45] fix autogenerated map default pos and armor drawable event --- src/main/java/ru/itmo/roguelike/characters/Player.java | 2 +- src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java | 4 ++-- .../ru/itmo/roguelike/manager/gamemanager/GameManager.java | 4 ++-- src/main/java/ru/itmo/roguelike/utils/MathUtils.java | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index f9a1557..237f254 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -207,7 +207,7 @@ public void die() { mover = new Mover(); resetInventory(); resetExp(); - this.armor = null; + armor = null; } public void activateMoveEffect(Function transformer, Event event) { diff --git a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java index 6e10b86..e60bb97 100644 --- a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java +++ b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java @@ -122,8 +122,8 @@ public void process(IntCoordinate centerCoordinate) { */ @Override public void setDefaultPosToPlayer(Player p) { - int x = MathUtils.getRandomInt(-MIN_SPAWN_X_COORDINATE, MAX_SPAWN_X_COORDINATE); - int y = MathUtils.getRandomInt(-MIN_SPAWN_Y_COORDINATE, MAX_SPAWN_Y_COORDINATE); + int x = MathUtils.getRandomInt(MIN_SPAWN_X_COORDINATE, MAX_SPAWN_X_COORDINATE); + int y = MathUtils.getRandomInt(MIN_SPAWN_Y_COORDINATE, MAX_SPAWN_Y_COORDINATE); p.setCoordinate(new IntCoordinate(x, y)); } } diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 1ec6e2f..4fd14e3 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -69,8 +69,8 @@ public GameManager( public void reset() { player.reborn(); field.setDefaultPosToPlayer(player); - resetGameState(); player.die(); + resetGameState(); } private void resetGameState() { @@ -106,8 +106,8 @@ public void start() { CollideManager.register(player); setUpControls(); - reset(); loadGame(); + reset(); } private void setUpControls() { diff --git a/src/main/java/ru/itmo/roguelike/utils/MathUtils.java b/src/main/java/ru/itmo/roguelike/utils/MathUtils.java index be5bb78..8d2fdcc 100644 --- a/src/main/java/ru/itmo/roguelike/utils/MathUtils.java +++ b/src/main/java/ru/itmo/roguelike/utils/MathUtils.java @@ -3,7 +3,7 @@ import java.util.Random; public class MathUtils { - private static final Random random = new Random(); + private static final Random random = new Random(System.currentTimeMillis()); /** * Sample one double from Uniform([min, max]) From 8b1b212c136d8d6e2781e46fa06c00a95b9cec36 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sun, 7 Jun 2020 16:27:12 +0300 Subject: [PATCH 24/45] MobPositionGenerator -> RandomFieldSpawner --- .../roguelike/field/AutoGeneratedField.java | 7 +++- .../java/ru/itmo/roguelike/field/Chunk.java | 4 +-- ...Generator.java => RandomFieldSpawner.java} | 11 ++++-- .../manager/gamemanager/GameManager.java | 34 ++++++++----------- 4 files changed, 30 insertions(+), 26 deletions(-) rename src/main/java/ru/itmo/roguelike/field/{MobPositionGenerator.java => RandomFieldSpawner.java} (92%) diff --git a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java index 6e10b86..17bd3d8 100644 --- a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java +++ b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java @@ -1,6 +1,7 @@ package ru.itmo.roguelike.field; import ru.itmo.roguelike.characters.Player; +import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.IntCoordinate; import ru.itmo.roguelike.utils.MathUtils; @@ -18,7 +19,11 @@ public class AutoGeneratedField implements Field { private int shiftX, shiftY; - public AutoGeneratedField(int screenW, int screenH, int marginX, int marginY, MobPositionGenerator mobGenerator) { + public AutoGeneratedField(int margins, Player player) { + this(GameSettings.WINDOW_WIDTH, GameSettings.WINDOW_HEIGHT, margins, margins, new RandomFieldSpawner(player)); + } + + public AutoGeneratedField(int screenW, int screenH, int marginX, int marginY, RandomFieldSpawner mobGenerator) { shiftX = 0; shiftY = 0; diff --git a/src/main/java/ru/itmo/roguelike/field/Chunk.java b/src/main/java/ru/itmo/roguelike/field/Chunk.java index 465a3b9..010e24d 100644 --- a/src/main/java/ru/itmo/roguelike/field/Chunk.java +++ b/src/main/java/ru/itmo/roguelike/field/Chunk.java @@ -19,7 +19,7 @@ public class Chunk { private static final float[][] chunkValues = new float[WIDTH_IN_TILES][HEIGHT_IN_TILES]; private final Tile[][] tiles; - private final MobPositionGenerator mobGenerator; + private final RandomFieldSpawner mobGenerator; private IntCoordinate position; /** @@ -28,7 +28,7 @@ public class Chunk { * @param generator produces values for Tile creation * @param mobGenerator creates mobs on newly generated tiles */ - public Chunk(int x, int y, NoiseGenerator generator, MobPositionGenerator mobGenerator) { + public Chunk(int x, int y, NoiseGenerator generator, RandomFieldSpawner mobGenerator) { this.mobGenerator = mobGenerator; tiles = new Tile[chunkValues.length][chunkValues[0].length]; diff --git a/src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java b/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java similarity index 92% rename from src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java rename to src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java index 14558eb..4f75df2 100644 --- a/src/main/java/ru/itmo/roguelike/field/MobPositionGenerator.java +++ b/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java @@ -19,7 +19,7 @@ /** * Mob and Collectible spawner */ -public class MobPositionGenerator { +public class RandomFieldSpawner { private static final int SAFE_RADIUS = 150; private static final Map> spawners = new HashMap<>(); @@ -56,7 +56,7 @@ public class MobPositionGenerator { private final Random random; private Player player; - public MobPositionGenerator(Player player) { + public RandomFieldSpawner(Player player) { this.player = player; this.random = new Random(); } @@ -79,7 +79,12 @@ public void addNewPosition(Tile tile) { int y = tile.getY(); IntCoordinate delta = new IntCoordinate(x, y); delta.substract(player.getPosition()); - if (x % 100 < 50 && y % 100 < 50 && random.nextInt(100) > 98 && delta.lenL2() > SAFE_RADIUS) { + + boolean farEnoughFromPlayer = delta.lenL2() > SAFE_RADIUS; + boolean randomDecision = random.nextInt(100) > 98; + boolean goodGridPosition = x % 100 < 50 && y % 100 < 50; + + if (goodGridPosition && randomDecision && farEnoughFromPlayer) { spawners.get(SpawnClass.getRandom()).accept(player, new IntCoordinate(tile.getX(), tile.getY())); } } diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 1ec6e2f..b636c04 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -4,7 +4,6 @@ import ru.itmo.roguelike.field.AutoGeneratedField; import ru.itmo.roguelike.field.Field; import ru.itmo.roguelike.field.FiniteField; -import ru.itmo.roguelike.field.MobPositionGenerator; import ru.itmo.roguelike.input.Event; import ru.itmo.roguelike.input.EventStatus; import ru.itmo.roguelike.input.InputHandler; @@ -90,19 +89,10 @@ private void resetGameState() { public void start() { state.run(); - MobPositionGenerator mobGenerator = new MobPositionGenerator(player); - if (GameSettings.FILENAME == null) { - field = new AutoGeneratedField( - GameSettings.WINDOW_WIDTH, - GameSettings.WINDOW_HEIGHT, - 1, - 1, - mobGenerator - ); - } else { - field = new FiniteField(Paths.get(GameSettings.FILENAME), player); - } - mobGenerator.setPlayer(player); + field = GameSettings.FILENAME == null + ? new AutoGeneratedField(1, player) + : new FiniteField(Paths.get(GameSettings.FILENAME), player); + CollideManager.register(player); setUpControls(); @@ -247,12 +237,7 @@ public synchronized void process() { case RUNNING: if (player.isDead()) { reset(); - try { - Files.deleteIfExists(Paths.get(GameSettings.getSaveFileName())); - } catch (IOException e) { - e.printStackTrace(); - System.exit(1); - } + deleteSave(); } break; case RESTARTING: @@ -268,4 +253,13 @@ public synchronized void process() { } } + private static void deleteSave() { + try { + Files.deleteIfExists(Paths.get(GameSettings.getSaveFileName())); + } catch (IOException e) { + e.printStackTrace(); + System.exit(1); + } + } + } From e2cf37a1c62e4bef8412ed96181e78532f0c6876 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 17:30:07 +0300 Subject: [PATCH 25/45] Improve random walk AI --- .../java/ru/itmo/roguelike/characters/Player.java | 8 ++++---- .../characters/mobs/strategy/RandomWalkBehavior.java | 12 ++++++++++-- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index b01a7ab..f4a8784 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -288,16 +288,16 @@ public void addExp(float exp) { } if (levelGain > 0) { - if (level + levelGain > 3) { + if (level + levelGain > 2) { IntCoordinate bossPosition = new IntCoordinate(position); bossPosition.add(new IntCoordinate(100, 100)); - Enemy e = Enemy.builder(PersonX::new) - .setPosition(position) + Enemy.builder(PersonX::new) + .setPosition(bossPosition) .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)) .setRadius(100000) .setTarget(this) - .build(); + .createAndRegister(); } level += levelGain; diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java index 6b22a87..cba9483 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java @@ -7,9 +7,11 @@ public class RandomWalkBehavior extends MobWithTarget { private static final Random random = new Random(); - private static final float PROBABILITY = 0.3f; - private static final int STEP = 5; + private static final float PROBABILITY = 0.1f; + private static final int STEP = 15; private IntCoordinate delta = IntCoordinate.getZeroPosition(); + private static final int WAIT_MAX = 10; + private int wait = WAIT_MAX; @Override public IntCoordinate getPath() { @@ -21,6 +23,12 @@ public IntCoordinate getPath() { if (delta.equals(IntCoordinate.getZeroPosition()) || self.getLastPosition().equals(self.getPosition())) { + if (wait > 0) { + wait--; + return IntCoordinate.getZeroPosition(); + } + + wait = WAIT_MAX; delta = new IntCoordinate(MathUtils.getRandomInt(-STEP, STEP), MathUtils.getRandomInt(-STEP, STEP)); } From e600371dadb30495def3f5996d16359129804f95 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sun, 7 Jun 2020 18:31:26 +0300 Subject: [PATCH 26/45] add new save-load logic --- .../java/ru/itmo/roguelike/Application.java | 27 +++- .../java/ru/itmo/roguelike/LaunchWindow.java | 142 ++++++++++++++++++ src/main/java/ru/itmo/roguelike/Launcher.java | 91 ----------- .../java/ru/itmo/roguelike/input/Event.java | 1 + .../ru/itmo/roguelike/input/InputHandler.java | 6 +- .../manager/gamemanager/GameManager.java | 14 +- .../itmo/roguelike/settings/GameSettings.java | 37 ++++- .../itmo/roguelike/utils/NullableRequest.java | 33 ++++ 8 files changed, 245 insertions(+), 106 deletions(-) create mode 100644 src/main/java/ru/itmo/roguelike/LaunchWindow.java delete mode 100644 src/main/java/ru/itmo/roguelike/Launcher.java create mode 100644 src/main/java/ru/itmo/roguelike/utils/NullableRequest.java diff --git a/src/main/java/ru/itmo/roguelike/Application.java b/src/main/java/ru/itmo/roguelike/Application.java index 5120174..83f3d60 100644 --- a/src/main/java/ru/itmo/roguelike/Application.java +++ b/src/main/java/ru/itmo/roguelike/Application.java @@ -9,17 +9,32 @@ import ru.itmo.roguelike.manager.gamemanager.GameManager; import ru.itmo.roguelike.settings.GameSettings; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.concurrent.*; public class Application { - public static void main(String[] args) throws ExecutionException, InterruptedException { - Launcher launcher = new Launcher(); + private static boolean RUN_GAME = false; - launcher.getPromise().get().ifPresent(opt -> { - GameSettings.FILENAME = opt.orElse(null); - new Application().run(); + public static void main(String[] args) throws IOException { + LaunchWindow.createAndShow(GameSettings.MAP_FILE_CHOOSE).getPromiseAsOptional().ifPresent( + opt -> { + GameSettings.MAP_FILE_NAME = opt.orElse(null); + RUN_GAME = true; + LaunchWindow.createAndShow(GameSettings.SAVE_FILE_CHOOSE).getPromiseAsOptional().ifPresent( + saveFileName -> GameSettings.SAVE_FILE_NAME = saveFileName.orElse(null) + ); + } + ); + + if (GameSettings.SAVE_FILE_NAME == null) { + Files.deleteIfExists(Paths.get(GameSettings.getSaveFileName())); + } - }); + if (RUN_GAME) { + new Application().run(); + } System.exit(0); } diff --git a/src/main/java/ru/itmo/roguelike/LaunchWindow.java b/src/main/java/ru/itmo/roguelike/LaunchWindow.java new file mode 100644 index 0000000..5135714 --- /dev/null +++ b/src/main/java/ru/itmo/roguelike/LaunchWindow.java @@ -0,0 +1,142 @@ +package ru.itmo.roguelike; + +import com.google.common.util.concurrent.SettableFuture; +import ru.itmo.roguelike.utils.NullableRequest; + +import javax.swing.*; +import javax.swing.filechooser.FileNameExtensionFilter; +import java.awt.*; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; +import java.util.Optional; +import java.util.concurrent.ExecutionException; + +import static javax.swing.JFileChooser.APPROVE_OPTION; + +public class LaunchWindow extends JFrame { + + private final SettableFuture> promise = SettableFuture.create(); + + public static LaunchWindow createAndShow(Configuration configuration) { + return new LaunchWindow(configuration); + } + + private LaunchWindow(Configuration configuration) { + super("ROGUELIKE"); + selfBuild(configuration); + setLocationRelativeTo(null); + setVisible(true); + } + + private void selfBuild(Configuration configuration) { + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent windowEvent) { + promise.set(new NullableRequest<>()); + super.windowClosing(windowEvent); + } + }); + setResizable(false); + + setSize(200, 100); + + add(BorderLayout.PAGE_START, getOtherButton(configuration)); + add(BorderLayout.PAGE_END, getFileChooserButton(configuration)); + + pack(); + } + + public static String showDialogAndGetFileName(Configuration configuration) { + JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); + + fc.setAcceptAllFileFilterUsed(false); + fc.addChoosableFileFilter(configuration.getFilter()); + fc.setDialogTitle(configuration.getFileChooserCaption()); + + int returnCode = fc.showDialog(null, configuration.getFileChooserAcceptText()); + if (returnCode == APPROVE_OPTION) { + return fc.getSelectedFile().getAbsolutePath(); + } + return null; + } + + public JButton getOtherButton(Configuration configuration) { + JButton startRandom = new JButton(configuration.getOtherBtnText()); + startRandom.setSize(200, 30); + + startRandom.addActionListener(actionEvent -> { + promise.set(new NullableRequest<>(null)); + LaunchWindow.this.close(); + }); + + return startRandom; + } + + public JButton getFileChooserButton(Configuration configuration) { + JButton startRandom = new JButton(configuration.getFileChooserBtnText()); + startRandom.setSize(200, 30); + + startRandom.addActionListener(actionEvent -> { + promise.set(new NullableRequest<>(showDialogAndGetFileName(configuration))); + LaunchWindow.this.close(); + }); + + return startRandom; + } + + private void close() { + setVisible(false); + dispose(); + } + + public Optional> getPromiseAsOptional() { + try { + return promise.get().toOptional(); + } catch (InterruptedException | ExecutionException e) { + return Optional.empty(); + } + } + + public static class Configuration { + private final String otherBtnText; + private final String fileChooserBtnText; + private final String fileChooserCaption; + private final String fileChooserAcceptText; + private final FileNameExtensionFilter filter; + + public Configuration( + String otherBtnText, + String fileChooserBtnText, + String fileChooserCaption, + String fileChooserAcceptText, + FileNameExtensionFilter filter + ) { + this.otherBtnText = otherBtnText; + this.fileChooserBtnText = fileChooserBtnText; + this.fileChooserCaption = fileChooserCaption; + this.fileChooserAcceptText = fileChooserAcceptText; + this.filter = filter; + } + + public String getOtherBtnText() { + return otherBtnText; + } + + public String getFileChooserBtnText() { + return fileChooserBtnText; + } + + public String getFileChooserCaption() { + return fileChooserCaption; + } + + public String getFileChooserAcceptText() { + return fileChooserAcceptText; + } + + public FileNameExtensionFilter getFilter() { + return filter; + } + } +} diff --git a/src/main/java/ru/itmo/roguelike/Launcher.java b/src/main/java/ru/itmo/roguelike/Launcher.java deleted file mode 100644 index 7731805..0000000 --- a/src/main/java/ru/itmo/roguelike/Launcher.java +++ /dev/null @@ -1,91 +0,0 @@ -package ru.itmo.roguelike; - -import com.google.common.util.concurrent.SettableFuture; - -import javax.swing.*; -import javax.swing.filechooser.FileNameExtensionFilter; -import java.awt.*; -import java.awt.event.WindowAdapter; -import java.awt.event.WindowEvent; -import java.util.Optional; - -import static javax.swing.JFileChooser.APPROVE_OPTION; - -public class Launcher extends JFrame { - - private final SettableFuture>> promise = SettableFuture.create(); - - public Launcher() { - super("LAUNCHER"); - selfBuild(); - setLocationRelativeTo(null); - setVisible(true); - } - - private void selfBuild() { - setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - addWindowListener(new WindowAdapter() { - @Override - public void windowClosing(WindowEvent windowEvent) { - promise.set(Optional.empty()); - super.windowClosing(windowEvent); - } - }); - setResizable(false); - - setSize(200, 100); - - add(BorderLayout.PAGE_START, getSelectMapButton()); - add(BorderLayout.PAGE_END, getRandomMapButton()); - - pack(); - } - - public static String showDialogAndGetMapFileName() { - JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); - - fc.setAcceptAllFileFilterUsed(false); - FileNameExtensionFilter filter = new FileNameExtensionFilter("MAP FILE", "mapfile"); - fc.addChoosableFileFilter(filter); - fc.setDialogTitle("SELECT MAP FILE"); - - int returnCode = fc.showDialog(null, "LOAD"); - if (returnCode == APPROVE_OPTION) { - return fc.getSelectedFile().getAbsolutePath(); - } - return null; - } - - public JButton getRandomMapButton() { - JButton startRandom = new JButton("Autogenerate map"); - startRandom.setSize(200, 30); - - startRandom.addActionListener(actionEvent -> { - promise.set(Optional.of(Optional.empty())); - Launcher.this.close(); - }); - - return startRandom; - } - - public JButton getSelectMapButton() { - JButton startRandom = new JButton("Select map file"); - startRandom.setSize(200, 30); - - startRandom.addActionListener(actionEvent -> { - promise.set(Optional.ofNullable(showDialogAndGetMapFileName()).map(Optional::of)); - Launcher.this.close(); - }); - - return startRandom; - } - - private void close() { - setVisible(false); - dispose(); - } - - public SettableFuture>> getPromise() { - return promise; - } -} diff --git a/src/main/java/ru/itmo/roguelike/input/Event.java b/src/main/java/ru/itmo/roguelike/input/Event.java index d09b03f..61d3bed 100644 --- a/src/main/java/ru/itmo/roguelike/input/Event.java +++ b/src/main/java/ru/itmo/roguelike/input/Event.java @@ -21,6 +21,7 @@ public enum Event { USE_8, // Использовать содержимое 8 ячейки инвентаря PAUSE, + SAVE, EXIT, } diff --git a/src/main/java/ru/itmo/roguelike/input/InputHandler.java b/src/main/java/ru/itmo/roguelike/input/InputHandler.java index 978ae0b..b4e3587 100644 --- a/src/main/java/ru/itmo/roguelike/input/InputHandler.java +++ b/src/main/java/ru/itmo/roguelike/input/InputHandler.java @@ -46,8 +46,10 @@ public class InputHandler implements KeyListener { buttonSettings.put(VK_ESCAPE, EXIT); + buttonSettings.put(VK_O, SAVE); + singleEvents.addAll(Arrays.asList( - EXIT, RESTART, PAUSE, + EXIT, RESTART, PAUSE, SAVE, USE_1, USE_2, USE_3, USE_4, USE_5, USE_6, USE_7, USE_8 )); @@ -78,6 +80,8 @@ public class InputHandler implements KeyListener { buttonStatus.put(USE_8, new EventStatus()); buttonStatus.put(PAUSE, new EventStatus()); + buttonStatus.put(SAVE, new EventStatus()); + buttonStatus.put(EXIT, new EventStatus()); } diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 536cb4d..836e6b7 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -89,15 +89,15 @@ private void resetGameState() { public void start() { state.run(); - field = GameSettings.FILENAME == null + field = GameSettings.MAP_FILE_NAME == null ? new AutoGeneratedField(1, player) - : new FiniteField(Paths.get(GameSettings.FILENAME), player); + : new FiniteField(Paths.get(GameSettings.MAP_FILE_NAME), player); CollideManager.register(player); setUpControls(); - loadGame(); reset(); + loadGame(); } private void setUpControls() { @@ -121,6 +121,8 @@ private void setUpControls() { inputHandler.registerEventListener(Event.RESTART, state.runIfNotPaused(s -> state.restart())); + inputHandler.registerEventListener(SAVE, status -> saveGame()); + inputHandler.registerEventListener(Event.PAUSE, s -> { synchronized (state) { if (state.isPaused()) { @@ -187,9 +189,10 @@ public void loadGame() { player.getInventory().reLoadFromFile(input, player); resetGameState(); - new MovingUpText(player.getPosition(), "LOADED SAVE " + filename, Color.RED); + new MovingUpText(player.getPosition(), + "LOADED SAVE\n (" + GameSettings.simplify(filename) + ")", Color.RED); } catch (IOException e) { - new MovingUpText(player.getPosition(), "NEW GAME (SAVE NOT FOUND)", Color.RED); + new MovingUpText(player.getPosition(), "NEW GAME", Color.RED); } } @@ -245,7 +248,6 @@ public synchronized void process() { state = GameState.RUNNING; break; case GAME_OVER: - saveGame(); state = GameState.EXITING; throw new RejectedExecutionException(); default: diff --git a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java index cc68e13..f9fce61 100644 --- a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java +++ b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java @@ -1,5 +1,11 @@ package ru.itmo.roguelike.settings; +import ru.itmo.roguelike.LaunchWindow; + +import javax.swing.filechooser.FileNameExtensionFilter; +import java.nio.file.Path; +import java.nio.file.Paths; + /** * Game characteristics like FPS, Window title */ @@ -14,13 +20,24 @@ public final class GameSettings { public static final int WINDOW_WIDTH = 800; public static final int WINDOW_HEIGHT = 600; - public static String FILENAME = null; + private static final String map_file_extension = "mapfile"; + private static final String save_file_add_extension = "_save"; + + public static String MAP_FILE_NAME = null; + public static String SAVE_FILE_NAME = null; private GameSettings() { } public static String getSaveFileName() { - return (FILENAME == null ? "auto.file" : FILENAME) + "_save"; + if (SAVE_FILE_NAME != null) { + return SAVE_FILE_NAME; + } + return (MAP_FILE_NAME == null ? "auto." + map_file_extension : MAP_FILE_NAME) + save_file_add_extension; + } + + public static String simplify(String path) { + return Paths.get(path).getFileName().toString(); } public final static class ImagePath { @@ -32,4 +49,20 @@ public final static class ImagePath { public static final String MEDIUM_ARMOR = "pic/medium_armor.png"; public static final String LIGHT_ARMOR = "pic/light_armor.png"; } + + public static LaunchWindow.Configuration MAP_FILE_CHOOSE = new LaunchWindow.Configuration( + "AUTO-GENERATE MAP", + "LOAD MAP FROM FILE", + "SELECT MAP FILE", + "LOAD", + new FileNameExtensionFilter("MAP FILE", map_file_extension) + ); + + public static LaunchWindow.Configuration SAVE_FILE_CHOOSE = new LaunchWindow.Configuration( + "NEW GAME", + "LOAD GAME SAVE", + "SELECT SAVE FILE", + "LOAD", + new FileNameExtensionFilter("GAME SAVE FILE", map_file_extension + save_file_add_extension) + ); } diff --git a/src/main/java/ru/itmo/roguelike/utils/NullableRequest.java b/src/main/java/ru/itmo/roguelike/utils/NullableRequest.java new file mode 100644 index 0000000..5917bb0 --- /dev/null +++ b/src/main/java/ru/itmo/roguelike/utils/NullableRequest.java @@ -0,0 +1,33 @@ +package ru.itmo.roguelike.utils; + +import org.jetbrains.annotations.Nullable; + +import java.util.Optional; + +public class NullableRequest { + private final @Nullable T result; + private final boolean exists; + + public NullableRequest() { + result = null; + exists = false; + } + + public NullableRequest(@Nullable T result) { + this.result = result; + exists = true; + } + + public Optional> toOptional() { + return exists ? Optional.of(Optional.ofNullable(result)) : Optional.empty(); + } + + public Status getStatus() { + if (!exists) return Status.FAIL; + return result == null ? Status.NULL : Status.OK; + } + + public enum Status { + FAIL, NULL, OK + } +} From 1fce289900c0cee67d013c5641dbb574204fff82 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 18:34:01 +0300 Subject: [PATCH 27/45] Add sliding --- .../java/ru/itmo/roguelike/Collidable.java | 6 +++- .../ru/itmo/roguelike/characters/Actor.java | 35 +++++++++++++++++-- .../java/ru/itmo/roguelike/field/Field.java | 20 +++++++++++ .../roguelike/render/drawable/Drawable.java | 2 +- .../render/drawable/DrawableDescriptor.java | 6 ++-- .../ru/itmo/roguelike/utils/BoundingBox.java | 14 ++++++++ 6 files changed, 76 insertions(+), 7 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/Collidable.java b/src/main/java/ru/itmo/roguelike/Collidable.java index 1e2708a..7eacf7a 100644 --- a/src/main/java/ru/itmo/roguelike/Collidable.java +++ b/src/main/java/ru/itmo/roguelike/Collidable.java @@ -63,8 +63,12 @@ default AffineTransform getAdditionalTransform() { * @return shape with correct position in world coordinates */ default Shape getShapeAtPosition() { + return getShapeAtPosition(getPosition()); + } + + default Shape getShapeAtPosition(IntCoordinate position) { AffineTransform transform = new AffineTransform(); - transform.translate(getPosition().getX(), getPosition().getY()); + transform.translate(position.getX(), position.getY()); transform.concatenate(getAdditionalTransform()); return transform.createTransformedShape(getShape()); } diff --git a/src/main/java/ru/itmo/roguelike/characters/Actor.java b/src/main/java/ru/itmo/roguelike/characters/Actor.java index d0b2143..01bf482 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Actor.java +++ b/src/main/java/ru/itmo/roguelike/characters/Actor.java @@ -12,11 +12,13 @@ import ru.itmo.roguelike.render.drawable.Drawable; import ru.itmo.roguelike.render.particles.MovingUpText; import ru.itmo.roguelike.render.particles.Splash; +import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; import java.awt.*; import java.time.Duration; import java.time.Instant; +import java.util.Arrays; public abstract class Actor extends Drawable implements Collidable { protected Attack attackMethod = new FireballAttack(this); @@ -116,8 +118,37 @@ public void act(Field field) { public void go(IntCoordinate by, Field field) { IntCoordinate newCoord = mover.move(position, by); - TileType nextTile = field.getTileType(newCoord); - if (!nextTile.isSolid()) { + Shape shape = getShapeAtPosition(newCoord); + + TileType[][] nextTiles = field.getAreaTileType(shape.getBounds2D()); + if (Arrays.stream(nextTiles).flatMap(Arrays::stream).noneMatch(TileType::isSolid)) { + position.set(newCoord); + return; + } + + IntCoordinate direction = by.signum(); + if (direction.getX() == 0 || direction.getY() == 0) { + return; + } + + IntCoordinate sideSlide = new IntCoordinate(by); + sideSlide.setY(0); + newCoord = mover.move(position, sideSlide); + shape = getShapeAtPosition(newCoord); + + nextTiles = field.getAreaTileType(shape.getBounds2D()); + if (Arrays.stream(nextTiles).flatMap(Arrays::stream).noneMatch(TileType::isSolid)) { + position.set(newCoord); + return; + } + + sideSlide = new IntCoordinate(by); + sideSlide.setX(0); + newCoord = mover.move(position, sideSlide); + shape = getShapeAtPosition(newCoord); + + nextTiles = field.getAreaTileType(shape.getBounds2D()); + if (Arrays.stream(nextTiles).flatMap(Arrays::stream).noneMatch(TileType::isSolid)) { position.set(newCoord); } } diff --git a/src/main/java/ru/itmo/roguelike/field/Field.java b/src/main/java/ru/itmo/roguelike/field/Field.java index 6da27f8..d1d35b8 100644 --- a/src/main/java/ru/itmo/roguelike/field/Field.java +++ b/src/main/java/ru/itmo/roguelike/field/Field.java @@ -1,8 +1,11 @@ package ru.itmo.roguelike.field; +import org.jetbrains.annotations.NotNull; import ru.itmo.roguelike.characters.Player; +import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; +import java.awt.geom.Rectangle2D; import java.util.Optional; /** @@ -30,6 +33,23 @@ default TileType getTileType(IntCoordinate coordinate) { return getTile(coordinate).map(Tile::getType).orElse(TileType.BEDROCK); } + default TileType[][] getAreaTileType(@NotNull Rectangle2D boundingBox) { + int width = (int) boundingBox.getWidth(); + int height = (int) boundingBox.getHeight(); + + TileType[][] result = new TileType[height][width]; + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + IntCoordinate coordinate = new IntCoordinate((int) boundingBox.getMinX(), (int) boundingBox.getMinY()); + coordinate.add(new IntCoordinate(i, j)); + + result[i][j] = getTileType(coordinate); + } + } + + return result; + } + /** * Updates field after moving the camera * diff --git a/src/main/java/ru/itmo/roguelike/render/drawable/Drawable.java b/src/main/java/ru/itmo/roguelike/render/drawable/Drawable.java index 7566326..a441254 100644 --- a/src/main/java/ru/itmo/roguelike/render/drawable/Drawable.java +++ b/src/main/java/ru/itmo/roguelike/render/drawable/Drawable.java @@ -77,7 +77,7 @@ public static void unregisterAllForeground() { public void draw(Graphics2D graphics, Camera camera) { graphics.setColor(drawableDescriptor.getColor()); - camera.transformAndGet(drawableDescriptor.getBoundingBox()) + camera.transformAndGet(drawableDescriptor.boundingBox()) .ifPresent(p -> drawer.draw(graphics, p.getX(), p.getY())); } diff --git a/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java b/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java index 2442719..e49a450 100644 --- a/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java +++ b/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java @@ -18,8 +18,8 @@ */ public class DrawableDescriptor { private final IntCoordinate position = IntCoordinate.getZeroPosition(); - public int width; - public int height; + public int width = 10; + public int height = 10; public char pictogram; private Color color; @@ -40,7 +40,7 @@ public DrawableDescriptor setColor(Color color) { return this; } - public BoundingBox getBoundingBox() { + public BoundingBox boundingBox() { return new BoundingBox(width, height, position); } } diff --git a/src/main/java/ru/itmo/roguelike/utils/BoundingBox.java b/src/main/java/ru/itmo/roguelike/utils/BoundingBox.java index 160b970..47ba458 100644 --- a/src/main/java/ru/itmo/roguelike/utils/BoundingBox.java +++ b/src/main/java/ru/itmo/roguelike/utils/BoundingBox.java @@ -5,7 +5,13 @@ public class BoundingBox { private final IntCoordinate rightBottom; private final IntCoordinate center; + private final int width; + private final int height; + public BoundingBox(int width, int height, IntCoordinate center) { + this.width = width; + this.height = height; + this.leftTop = new IntCoordinate(center); this.leftTop.substract(new IntCoordinate(width / 2, height / 2)); @@ -26,4 +32,12 @@ public IntCoordinate getLeftTop() { public IntCoordinate getRightBottom() { return rightBottom; } + + public int getWidth() { + return width; + } + + public int getHeight() { + return height; + } } From d571fd755dc8aafedf45b4d465c2ccbdcaa0b4d4 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sun, 7 Jun 2020 18:56:50 +0300 Subject: [PATCH 28/45] add save dialog on escape --- .../manager/gamemanager/GameManager.java | 8 ++++++++ .../ru/itmo/roguelike/settings/GameSettings.java | 16 ++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 836e6b7..388d256 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -1,5 +1,6 @@ package ru.itmo.roguelike.manager.gamemanager; +import ru.itmo.roguelike.LaunchWindow; import ru.itmo.roguelike.characters.Player; import ru.itmo.roguelike.field.AutoGeneratedField; import ru.itmo.roguelike.field.Field; @@ -30,6 +31,7 @@ import java.util.List; import java.util.concurrent.RejectedExecutionException; import java.util.function.Consumer; +import java.util.function.Function; import static ru.itmo.roguelike.input.Event.*; import static ru.itmo.roguelike.input.EventStatus.PRESSED_CTRL; @@ -249,6 +251,12 @@ public synchronized void process() { break; case GAME_OVER: state = GameState.EXITING; + LaunchWindow.createAndShow(GameSettings.ON_EXIT_SAVE_FILE_CHOOSE) + .getPromiseAsOptional().flatMap(Function.identity()) + .ifPresent(str -> { + GameSettings.SAVE_FILE_NAME = str; + saveGame(); + }); throw new RejectedExecutionException(); default: } diff --git a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java index f9fce61..1f563fc 100644 --- a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java +++ b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java @@ -51,18 +51,26 @@ public final static class ImagePath { } public static LaunchWindow.Configuration MAP_FILE_CHOOSE = new LaunchWindow.Configuration( - "AUTO-GENERATE MAP", - "LOAD MAP FROM FILE", + "Auto-generate map", + "Load map from file", "SELECT MAP FILE", "LOAD", new FileNameExtensionFilter("MAP FILE", map_file_extension) ); public static LaunchWindow.Configuration SAVE_FILE_CHOOSE = new LaunchWindow.Configuration( - "NEW GAME", - "LOAD GAME SAVE", + "New game", + "Load game save", "SELECT SAVE FILE", "LOAD", new FileNameExtensionFilter("GAME SAVE FILE", map_file_extension + save_file_add_extension) ); + + public static LaunchWindow.Configuration ON_EXIT_SAVE_FILE_CHOOSE = new LaunchWindow.Configuration( + "Exit", + "Save and exit", + "SELECT SAVE FILE", + "SAVE", + new FileNameExtensionFilter("GAME SAVE FILE", map_file_extension + save_file_add_extension) + ); } From 39fd77186aa6553726f5529138bd04bd507af202 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 19:00:15 +0300 Subject: [PATCH 29/45] Add first version of boss --- src/main/java/ru/itmo/roguelike/characters/Player.java | 5 +++-- src/main/java/ru/itmo/roguelike/characters/mobs/Boss.java | 4 ++++ src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java | 2 +- .../characters/mobs/strategy/RandomWalkBehavior.java | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 src/main/java/ru/itmo/roguelike/characters/mobs/Boss.java diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index f4a8784..13bc64f 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -8,6 +8,7 @@ import ru.itmo.roguelike.characters.inventory.Usable; import ru.itmo.roguelike.characters.mobs.Enemy; import ru.itmo.roguelike.characters.mobs.PersonX; +import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; import ru.itmo.roguelike.characters.mobs.strategy.CowardlyBehavior; import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; import ru.itmo.roguelike.characters.movement.Mover; @@ -288,13 +289,13 @@ public void addExp(float exp) { } if (levelGain > 0) { - if (level + levelGain > 2) { + if (level <= 2 && level + levelGain > 2) { IntCoordinate bossPosition = new IntCoordinate(position); bossPosition.add(new IntCoordinate(100, 100)); Enemy.builder(PersonX::new) .setPosition(bossPosition) - .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)) + .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)) .setRadius(100000) .setTarget(this) .createAndRegister(); diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/Boss.java b/src/main/java/ru/itmo/roguelike/characters/mobs/Boss.java new file mode 100644 index 0000000..c465d0d --- /dev/null +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/Boss.java @@ -0,0 +1,4 @@ +package ru.itmo.roguelike.characters.mobs; + +public interface Boss { +} diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java index 05160da..244e0de 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java @@ -12,7 +12,7 @@ /** * Like a boss on level */ -public class PersonX extends Enemy { +public class PersonX extends Enemy implements Boss { private static final float MIN_BOUND_XP = 40; private static final float MAX_BOUND_XP = 70; diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java index cba9483..63e2278 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java @@ -28,7 +28,7 @@ public IntCoordinate getPath() { return IntCoordinate.getZeroPosition(); } - wait = WAIT_MAX; + wait = random.nextInt(WAIT_MAX + 1); delta = new IntCoordinate(MathUtils.getRandomInt(-STEP, STEP), MathUtils.getRandomInt(-STEP, STEP)); } From 235fd8ad54b0fdd2dd59505f361da205275f981e Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sun, 7 Jun 2020 20:20:46 +0300 Subject: [PATCH 30/45] fix --- src/main/java/ru/itmo/roguelike/characters/attack/Attack.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/attack/Attack.java b/src/main/java/ru/itmo/roguelike/characters/attack/Attack.java index 5803b2c..9782bc1 100644 --- a/src/main/java/ru/itmo/roguelike/characters/attack/Attack.java +++ b/src/main/java/ru/itmo/roguelike/characters/attack/Attack.java @@ -13,7 +13,7 @@ public abstract class Attack implements Usable { protected final Actor actor; private final int coolDownTime; - protected IntCoordinate direction; + protected IntCoordinate direction = IntCoordinate.getZeroPosition(); protected int coolDown = 0; /** From 0c1595c1656cb132c28c7a90be0c03295a727410 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 20:49:59 +0300 Subject: [PATCH 31/45] Add boss making other mobs aggressive --- .../ru/itmo/roguelike/characters/Player.java | 2 +- .../itmo/roguelike/characters/mobs/Enemy.java | 11 ++++++++++- .../itmo/roguelike/characters/mobs/PersonX.java | 17 ++++++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index 13bc64f..c159f4b 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -296,7 +296,7 @@ public void addExp(float exp) { Enemy.builder(PersonX::new) .setPosition(bossPosition) .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)) - .setRadius(100000) + .setRadius(10000000) .setTarget(this) .createAndRegister(); } diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java b/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java index f56adc9..37d392c 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java @@ -56,6 +56,10 @@ public static Enemy.Builder builder(@NotNull Supplier enemySupplier) { public void setBehaviour(MobBehavior strategy) { this.strategy = strategy; + + if (this.strategy instanceof WithTarget) { + ((WithTarget) this.strategy).setSelf(this); + } } public void setTarget(Actor target) { @@ -68,6 +72,11 @@ public void setTarget(Actor target) { @Override public void collide(Collidable c) { + if (c instanceof Boss) { + position.set(mover.getLastMove()); + return; + } + // если настигли цель if (c instanceof Enemy && strategy instanceof WithTarget) { ((WithTarget) strategy).setTarget((Actor) c); @@ -78,7 +87,7 @@ public void collide(Collidable c) { if (GameManager.GLOBAL_TIME - lastAttack > attackFreq) { target.strike(this.damage); if (((Actor) c).isDead()) { - ((WithTarget) strategy).setTarget(this.target); + ((WithTarget) strategy).setTarget(c == this.target ? null : this.target); } lastAttack = GameManager.GLOBAL_TIME; } diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java index 244e0de..d948831 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java @@ -2,6 +2,10 @@ import ru.itmo.roguelike.Collidable; import ru.itmo.roguelike.characters.Actor; +import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; +import ru.itmo.roguelike.characters.mobs.strategy.MobBehavior; +import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; +import ru.itmo.roguelike.characters.mobs.strategy.WithTarget; import ru.itmo.roguelike.render.drawable.DrawableDescriptor; import java.awt.*; @@ -28,7 +32,7 @@ public PersonX() { graphics.setColor(Color.PINK); graphics.fillRoundRect(x + 1, y + 1, 30, 30, 5, 5); }); - init(80); + init(300); } public PersonX(Actor target) { @@ -47,8 +51,19 @@ public Shape getShape() { return new Rectangle(32, 32); } + /** + * If the Boss collides with enemy, he tells him, who does he need to attack + */ @Override public void collide(Collidable c) { + if (c instanceof Enemy) { + final Enemy enemy = (Enemy) c; + enemy.setBehaviour(MobBehavior.builder(AggressiveBehavior::new).build()); + enemy.setTarget(target); + + position.set(mover.getLastMove()); + } + // если настигли цель if (c.equals(target)) { if (random.nextFloat() < 0.1) { From 502bc9d013107e1d2a485d42df94ad5c7481fb25 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 21:20:22 +0300 Subject: [PATCH 32/45] Create boss manager --- .../ru/itmo/roguelike/characters/Player.java | 23 ++++---- .../manager/actormanager/BossManager.java | 57 +++++++++++++++++++ .../manager/gamemanager/GameManager.java | 11 ++++ 3 files changed, 81 insertions(+), 10 deletions(-) create mode 100644 src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index c159f4b..b1dd0e4 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -1,5 +1,7 @@ package ru.itmo.roguelike.characters; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import ru.itmo.roguelike.Collidable; import ru.itmo.roguelike.characters.attack.FireballAttack; import ru.itmo.roguelike.characters.attack.SwordAttack; @@ -16,6 +18,7 @@ import ru.itmo.roguelike.field.TileType; import ru.itmo.roguelike.items.Armor; import ru.itmo.roguelike.items.Collectible; +import ru.itmo.roguelike.manager.actormanager.BossManager; import ru.itmo.roguelike.manager.eventmanager.Event; import ru.itmo.roguelike.manager.eventmanager.EventManager; import ru.itmo.roguelike.manager.gamemanager.GameManager; @@ -59,9 +62,10 @@ public class Player extends Actor { } }); + private BossManager bossManager; @Inject - public Player(EventManager eventManager) { + public Player(@NotNull EventManager eventManager) { this.eventManager = eventManager; drawableDescriptor.setColor(Color.RED); @@ -73,6 +77,10 @@ public Player(EventManager eventManager) { registerDrawableEvents(); } + public void setBossManager(BossManager bossManager) { + this.bossManager = bossManager; + } + public void registerDrawableEvents() { eventManager.addDrawableEvent(attackEventDrawer); if (armor != null) { @@ -290,15 +298,10 @@ public void addExp(float exp) { if (levelGain > 0) { if (level <= 2 && level + levelGain > 2) { - IntCoordinate bossPosition = new IntCoordinate(position); - bossPosition.add(new IntCoordinate(100, 100)); - - Enemy.builder(PersonX::new) - .setPosition(bossPosition) - .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)) - .setRadius(10000000) - .setTarget(this) - .createAndRegister(); + eventManager.add(() -> { + bossManager.createBoss(); + return false; + }); } level += levelGain; diff --git a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java new file mode 100644 index 0000000..84bed13 --- /dev/null +++ b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java @@ -0,0 +1,57 @@ +package ru.itmo.roguelike.manager.actormanager; + +import org.jetbrains.annotations.NotNull; +import ru.itmo.roguelike.characters.Player; +import ru.itmo.roguelike.characters.mobs.Enemy; +import ru.itmo.roguelike.characters.mobs.PersonX; +import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; +import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; +import ru.itmo.roguelike.field.Field; +import ru.itmo.roguelike.manager.gamemanager.GameManager; +import ru.itmo.roguelike.utils.IntCoordinate; + +public class BossManager { + private final GameManager gameManager; + + public BossManager(GameManager gameManager) { + this.gameManager = gameManager; + } + + public void createBoss() { + Field field = gameManager.getField(); + Player player = gameManager.getPlayer(); + + IntCoordinate bossPosition = getFreeBossCoordinate( + field, + player.getPosition().getX(), + player.getPosition().getY() + ); + + Enemy.builder(PersonX::new) + .setPosition(bossPosition) + .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)) + .setRadius(10000000) + .setTarget(player) + .createAndRegister(); + } + + @NotNull + private IntCoordinate getFreeBossCoordinate(@NotNull Field field, int x, int y) { + final int cellSize = 100; + + for (int k = 2; ; k++) { + for (int j = -k; j < k; j++) { + for (IntCoordinate coordinate : new IntCoordinate[]{ + new IntCoordinate(x + k * cellSize, y + j * cellSize), + new IntCoordinate(x - k * cellSize, y + j * cellSize), + new IntCoordinate(x + j * cellSize, y + k * cellSize), + new IntCoordinate(x + j * cellSize, y - k * cellSize), + }) { + if (!field.getTileType(coordinate).isSolid()) { + return new IntCoordinate(coordinate); + } + } + } + } + } +} diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 388d256..65ffbdb 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -2,6 +2,7 @@ import ru.itmo.roguelike.LaunchWindow; import ru.itmo.roguelike.characters.Player; +import ru.itmo.roguelike.characters.mobs.Boss; import ru.itmo.roguelike.field.AutoGeneratedField; import ru.itmo.roguelike.field.Field; import ru.itmo.roguelike.field.FiniteField; @@ -11,6 +12,7 @@ import ru.itmo.roguelike.ioc.ManagersModule; import ru.itmo.roguelike.ioc.RenderModule; import ru.itmo.roguelike.manager.actormanager.ActorManager; +import ru.itmo.roguelike.manager.actormanager.BossManager; import ru.itmo.roguelike.manager.actormanager.ProjectileManager; import ru.itmo.roguelike.manager.collidemanager.CollideManager; import ru.itmo.roguelike.manager.eventmanager.EventManager; @@ -23,6 +25,7 @@ import ru.itmo.roguelike.utils.IntCoordinate; import javax.inject.Inject; +import javax.inject.Singleton; import java.awt.*; import java.io.*; import java.nio.file.Files; @@ -41,6 +44,7 @@ public class GameManager { private final InputHandler inputHandler; private final RenderEngine renderEngine; private final ActorManager actorManager; + private final BossManager bossManager; private final Camera camera; private final ProjectileManager projectileManager; private final Player player; @@ -65,6 +69,9 @@ public GameManager( this.camera = camera; this.projectileManager = projectileManager; this.eventManager = eventManager; + + bossManager = new BossManager(this); + this.player.setBossManager(bossManager); } public void reset() { @@ -202,6 +209,10 @@ public Player getPlayer() { return player; } + public Field getField() { + return field; + } + private class GameStateHandler { private GameState state = GameState.RUNNING; From 98c574bb2f37e11e95515e19d3546fc454bb8f94 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 21:24:02 +0300 Subject: [PATCH 33/45] Optimize imports --- .../ru/itmo/roguelike/characters/Actor.java | 1 - .../ru/itmo/roguelike/characters/Player.java | 6 ------ .../roguelike/characters/mobs/PersonX.java | 3 --- .../mobs/strategy/AggressiveBehavior.java | 2 -- .../mobs/strategy/BossBehavior.java | 21 +++++++++++++++++++ .../java/ru/itmo/roguelike/field/Field.java | 1 - .../manager/actormanager/BossManager.java | 4 ++-- .../manager/gamemanager/GameManager.java | 2 -- .../java/ru/itmo/roguelike/render/Camera.java | 1 - .../render/drawable/DrawableDescriptor.java | 1 - .../itmo/roguelike/settings/GameSettings.java | 1 - 11 files changed, 23 insertions(+), 20 deletions(-) create mode 100644 src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java diff --git a/src/main/java/ru/itmo/roguelike/characters/Actor.java b/src/main/java/ru/itmo/roguelike/characters/Actor.java index 01bf482..942c834 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Actor.java +++ b/src/main/java/ru/itmo/roguelike/characters/Actor.java @@ -12,7 +12,6 @@ import ru.itmo.roguelike.render.drawable.Drawable; import ru.itmo.roguelike.render.particles.MovingUpText; import ru.itmo.roguelike.render.particles.Splash; -import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; import java.awt.*; diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index b1dd0e4..c5b0c50 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -1,18 +1,12 @@ package ru.itmo.roguelike.characters; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import ru.itmo.roguelike.Collidable; import ru.itmo.roguelike.characters.attack.FireballAttack; import ru.itmo.roguelike.characters.attack.SwordAttack; import ru.itmo.roguelike.characters.inventory.Droppable; import ru.itmo.roguelike.characters.inventory.Inventory; import ru.itmo.roguelike.characters.inventory.Usable; -import ru.itmo.roguelike.characters.mobs.Enemy; -import ru.itmo.roguelike.characters.mobs.PersonX; -import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; -import ru.itmo.roguelike.characters.mobs.strategy.CowardlyBehavior; -import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; import ru.itmo.roguelike.characters.movement.Mover; import ru.itmo.roguelike.field.Field; import ru.itmo.roguelike.field.TileType; diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java index d948831..2cb9644 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java @@ -4,9 +4,6 @@ import ru.itmo.roguelike.characters.Actor; import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; import ru.itmo.roguelike.characters.mobs.strategy.MobBehavior; -import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; -import ru.itmo.roguelike.characters.mobs.strategy.WithTarget; -import ru.itmo.roguelike.render.drawable.DrawableDescriptor; import java.awt.*; import java.util.Random; diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/AggressiveBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/AggressiveBehavior.java index ca1332b..9c7eb46 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/AggressiveBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/AggressiveBehavior.java @@ -3,8 +3,6 @@ import ru.itmo.roguelike.utils.IntCoordinate; public class AggressiveBehavior extends MobWithTarget { - - @Override public IntCoordinate getPath() { if (target == null) { diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java new file mode 100644 index 0000000..8971362 --- /dev/null +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java @@ -0,0 +1,21 @@ +package ru.itmo.roguelike.characters.mobs.strategy; + +import ru.itmo.roguelike.field.Field; +import ru.itmo.roguelike.utils.IntCoordinate; + +public class BossBehavior extends MobWithTarget { + private final Field field; + + public BossBehavior(Field field) { + this.field = field; + } + + @Override + public IntCoordinate getPath() { + if (getTarget() == null) { + return IntCoordinate.getZeroPosition(); + } + + return null; + } +} diff --git a/src/main/java/ru/itmo/roguelike/field/Field.java b/src/main/java/ru/itmo/roguelike/field/Field.java index d1d35b8..18376c7 100644 --- a/src/main/java/ru/itmo/roguelike/field/Field.java +++ b/src/main/java/ru/itmo/roguelike/field/Field.java @@ -2,7 +2,6 @@ import org.jetbrains.annotations.NotNull; import ru.itmo.roguelike.characters.Player; -import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; import java.awt.geom.Rectangle2D; diff --git a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java index 84bed13..c91f8b6 100644 --- a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java @@ -4,7 +4,7 @@ import ru.itmo.roguelike.characters.Player; import ru.itmo.roguelike.characters.mobs.Enemy; import ru.itmo.roguelike.characters.mobs.PersonX; -import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; +import ru.itmo.roguelike.characters.mobs.strategy.BossBehavior; import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; import ru.itmo.roguelike.field.Field; import ru.itmo.roguelike.manager.gamemanager.GameManager; @@ -29,7 +29,7 @@ public void createBoss() { Enemy.builder(PersonX::new) .setPosition(bossPosition) - .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)) + .setBehavior(MobWithTarget.builder(() -> new BossBehavior(field))) .setRadius(10000000) .setTarget(player) .createAndRegister(); diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 65ffbdb..e9d31a1 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -2,7 +2,6 @@ import ru.itmo.roguelike.LaunchWindow; import ru.itmo.roguelike.characters.Player; -import ru.itmo.roguelike.characters.mobs.Boss; import ru.itmo.roguelike.field.AutoGeneratedField; import ru.itmo.roguelike.field.Field; import ru.itmo.roguelike.field.FiniteField; @@ -25,7 +24,6 @@ import ru.itmo.roguelike.utils.IntCoordinate; import javax.inject.Inject; -import javax.inject.Singleton; import java.awt.*; import java.io.*; import java.nio.file.Files; diff --git a/src/main/java/ru/itmo/roguelike/render/Camera.java b/src/main/java/ru/itmo/roguelike/render/Camera.java index 8282ad1..9f3912d 100644 --- a/src/main/java/ru/itmo/roguelike/render/Camera.java +++ b/src/main/java/ru/itmo/roguelike/render/Camera.java @@ -4,7 +4,6 @@ import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.FloatCoordinate; import ru.itmo.roguelike.utils.IntCoordinate; -import ru.itmo.roguelike.utils.Pair; import javax.inject.Singleton; import java.util.Optional; diff --git a/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java b/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java index e49a450..78dfff1 100644 --- a/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java +++ b/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java @@ -2,7 +2,6 @@ import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; -import ru.itmo.roguelike.utils.Pair; import java.awt.*; diff --git a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java index 1f563fc..73ba00b 100644 --- a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java +++ b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java @@ -3,7 +3,6 @@ import ru.itmo.roguelike.LaunchWindow; import javax.swing.filechooser.FileNameExtensionFilter; -import java.nio.file.Path; import java.nio.file.Paths; /** From 2f390e8050345b8a4539b76a4d07a356c3338e15 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Sun, 7 Jun 2020 23:06:50 +0300 Subject: [PATCH 34/45] Add fireball to PersonX --- .../characters/attack/FireballAttack.java | 1 - .../roguelike/characters/mobs/PersonX.java | 24 +++++++++++++++++++ .../mobs/strategy/BossBehavior.java | 10 ++++++-- .../characters/projectiles/Fireball.java | 19 +++++++++------ .../itmo/roguelike/utils/IntCoordinate.java | 5 ++++ 5 files changed, 49 insertions(+), 10 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java b/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java index 8a8e355..edacf72 100644 --- a/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java +++ b/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java @@ -45,5 +45,4 @@ public void renderInInventory(Graphics2D graphics, int x, int y, int width, int public String getSort() { return SORT; } - } diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java index 2cb9644..53c8212 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java @@ -4,6 +4,8 @@ import ru.itmo.roguelike.characters.Actor; import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; import ru.itmo.roguelike.characters.mobs.strategy.MobBehavior; +import ru.itmo.roguelike.field.Field; +import ru.itmo.roguelike.utils.IntCoordinate; import java.awt.*; import java.util.Random; @@ -48,6 +50,28 @@ public Shape getShape() { return new Rectangle(32, 32); } + @Override + public void act(Field field) { + IntCoordinate delta = new IntCoordinate(position); + delta.substract(target.getPosition()); + + if (delta.lenL2() <= radius) { + IntCoordinate lineOfSight = new IntCoordinate(delta); + lineOfSight.abs(); + + if (lineOfSight.getX() <= 32 || lineOfSight.getY() <= 32) { + IntCoordinate direction = new IntCoordinate(delta); + direction = direction.signum().inverse(); + + attackMethod.setDirection(direction); + attackMethod.attack(field); + attackMethod.act(); + } + } + + super.act(field); + } + /** * If the Boss collides with enemy, he tells him, who does he need to attack */ diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java index 8971362..b157ccd 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java @@ -12,10 +12,16 @@ public BossBehavior(Field field) { @Override public IntCoordinate getPath() { - if (getTarget() == null) { + if (target == null) { return IntCoordinate.getZeroPosition(); } - return null; + final IntCoordinate diff = new IntCoordinate(target.getPosition()); + diff.substract(self.getPosition()); + if (diff.lenL2() < self.getRadius()) { + return diff.signum(); + } + + return IntCoordinate.getZeroPosition(); } } diff --git a/src/main/java/ru/itmo/roguelike/characters/projectiles/Fireball.java b/src/main/java/ru/itmo/roguelike/characters/projectiles/Fireball.java index 9c8e07d..51b66eb 100644 --- a/src/main/java/ru/itmo/roguelike/characters/projectiles/Fireball.java +++ b/src/main/java/ru/itmo/roguelike/characters/projectiles/Fireball.java @@ -21,7 +21,7 @@ */ public class Fireball extends Projectile { private static final int SPEED = 10; - private Player actor; + private final Actor actor; private int lifeTime = 0; { @@ -33,8 +33,9 @@ public Fireball(IntCoordinate direction, Actor actor) { super((g, x, y) -> g.fillOval(x, y, 10, 10)); this.drawableDescriptor.setColor(Color.YELLOW); this.direction = direction; + this.actor = actor; + if (actor instanceof Player) { - this.actor = (Player) actor; //increase damage according to player level damage *= ((Player) actor).getLevel() * getRandomDouble(0.7f, 2.f); } @@ -43,16 +44,20 @@ public Fireball(IntCoordinate direction, Actor actor) { /** * Collides with another object and disappears * - * @param c --- object with which this collided + * @param c object with which this collided */ @Override public void collide(Collidable c) { - if (c instanceof Enemy) { - ((Enemy) c).strike(this.damage, actor); - } - if (c instanceof Player) { + if (c != actor) { + if (actor instanceof Player && c instanceof Enemy) { + ((Enemy) c).strike(damage, (Player) actor); + } else if (c instanceof Actor) { + ((Actor) c).strike(damage); + } + } else { return; } + this.die(); } diff --git a/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java b/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java index 1a92bcd..ef7d136 100644 --- a/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java +++ b/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java @@ -72,6 +72,11 @@ public void div(int d) { posX /= d; } + public void abs() { + posX = Math.abs(posX); + posY = Math.abs(posY); + } + /** * @return Component-wise signum. <signum(x), signum(y)> */ From 8098d27654ec4dd69954e32a9617695c26d05cae Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 8 Jun 2020 21:23:38 +0300 Subject: [PATCH 35/45] Update src/main/java/ru/itmo/roguelike/characters/Player.java Co-authored-by: ZhekehZ --- src/main/java/ru/itmo/roguelike/characters/Player.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index c5b0c50..018b501 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -292,10 +292,7 @@ public void addExp(float exp) { if (levelGain > 0) { if (level <= 2 && level + levelGain > 2) { - eventManager.add(() -> { - bossManager.createBoss(); - return false; - }); + bossManager.createBoss(); } level += levelGain; From 3a93f9c993ff04496ffc8b428ccb22db7fa377ff Mon Sep 17 00:00:00 2001 From: Alexander Date: Mon, 8 Jun 2020 21:26:35 +0300 Subject: [PATCH 36/45] Update BossManager.java --- .../ru/itmo/roguelike/manager/actormanager/BossManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java index c91f8b6..db455e3 100644 --- a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java @@ -37,7 +37,7 @@ public void createBoss() { @NotNull private IntCoordinate getFreeBossCoordinate(@NotNull Field field, int x, int y) { - final int cellSize = 100; + final int cellSize = 10; for (int k = 2; ; k++) { for (int j = -k; j < k; j++) { From 98ebedec14f740b9f24088c6a2606be65fa09275 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Mon, 8 Jun 2020 21:50:55 +0300 Subject: [PATCH 37/45] make BossManager singleton --- .../java/ru/itmo/roguelike/characters/Player.java | 9 +++------ .../roguelike/manager/actormanager/BossManager.java | 11 ++++++++--- .../roguelike/manager/gamemanager/GameManager.java | 7 +++---- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index 018b501..99ac64a 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -56,11 +56,12 @@ public class Player extends Actor { } }); - private BossManager bossManager; + private final BossManager bossManager; @Inject - public Player(@NotNull EventManager eventManager) { + public Player(@NotNull EventManager eventManager, @NotNull BossManager bossManager) { this.eventManager = eventManager; + this.bossManager = bossManager; drawableDescriptor.setColor(Color.RED); init(100); @@ -71,10 +72,6 @@ public Player(@NotNull EventManager eventManager) { registerDrawableEvents(); } - public void setBossManager(BossManager bossManager) { - this.bossManager = bossManager; - } - public void registerDrawableEvents() { eventManager.addDrawableEvent(attackEventDrawer); if (armor != null) { diff --git a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java index c91f8b6..e0fb2bd 100644 --- a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java @@ -10,14 +10,19 @@ import ru.itmo.roguelike.manager.gamemanager.GameManager; import ru.itmo.roguelike.utils.IntCoordinate; +import javax.inject.Singleton; + +@Singleton public class BossManager { - private final GameManager gameManager; + private GameManager gameManager; - public BossManager(GameManager gameManager) { + public void setGameManager(GameManager gameManager) { this.gameManager = gameManager; } public void createBoss() { + assert gameManager != null; + Field field = gameManager.getField(); Player player = gameManager.getPlayer(); @@ -36,7 +41,7 @@ public void createBoss() { } @NotNull - private IntCoordinate getFreeBossCoordinate(@NotNull Field field, int x, int y) { + private static IntCoordinate getFreeBossCoordinate(@NotNull Field field, int x, int y) { final int cellSize = 100; for (int k = 2; ; k++) { diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index e9d31a1..ffb307c 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -42,7 +42,6 @@ public class GameManager { private final InputHandler inputHandler; private final RenderEngine renderEngine; private final ActorManager actorManager; - private final BossManager bossManager; private final Camera camera; private final ProjectileManager projectileManager; private final Player player; @@ -58,7 +57,8 @@ public GameManager( @RenderModule.Jexer RenderEngine renderEngine, Camera camera, ProjectileManager projectileManager, - EventManager eventManager + EventManager eventManager, + BossManager bossManager ) { this.player = player; this.actorManager = mobManager; @@ -68,8 +68,7 @@ public GameManager( this.projectileManager = projectileManager; this.eventManager = eventManager; - bossManager = new BossManager(this); - this.player.setBossManager(bossManager); + bossManager.setGameManager(this); } public void reset() { From e391176bbfe816027b9ea052d2e3a19f1131560d Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Mon, 8 Jun 2020 23:14:39 +0300 Subject: [PATCH 38/45] fix attack direction --- .../roguelike/characters/mobs/PersonX.java | 13 ++--- .../itmo/roguelike/utils/FloatCoordinate.java | 17 ++++++ .../itmo/roguelike/utils/IntCoordinate.java | 4 ++ .../roguelike/utils/FloatCoordinateTest.java | 56 +++++++++++++++++++ 4 files changed, 82 insertions(+), 8 deletions(-) create mode 100644 src/test/java/ru/itmo/roguelike/utils/FloatCoordinateTest.java diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java index 53c8212..e86c020 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java @@ -5,6 +5,7 @@ import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; import ru.itmo.roguelike.characters.mobs.strategy.MobBehavior; import ru.itmo.roguelike.field.Field; +import ru.itmo.roguelike.utils.FloatCoordinate; import ru.itmo.roguelike.utils.IntCoordinate; import java.awt.*; @@ -57,16 +58,12 @@ public void act(Field field) { if (delta.lenL2() <= radius) { IntCoordinate lineOfSight = new IntCoordinate(delta); - lineOfSight.abs(); - if (lineOfSight.getX() <= 32 || lineOfSight.getY() <= 32) { - IntCoordinate direction = new IntCoordinate(delta); - direction = direction.signum().inverse(); + direction = FloatCoordinate.fromAngle(lineOfSight.toFloatCoordinate().toAngle()).getSignum(.5f); - attackMethod.setDirection(direction); - attackMethod.attack(field); - attackMethod.act(); - } + attackMethod.setDirection(direction.inverse()); + attackMethod.attack(field); + attackMethod.act(); } super.act(field); diff --git a/src/main/java/ru/itmo/roguelike/utils/FloatCoordinate.java b/src/main/java/ru/itmo/roguelike/utils/FloatCoordinate.java index 7951baf..13d21d8 100644 --- a/src/main/java/ru/itmo/roguelike/utils/FloatCoordinate.java +++ b/src/main/java/ru/itmo/roguelike/utils/FloatCoordinate.java @@ -77,6 +77,17 @@ public float lenL1() { return Math.abs(posX) + Math.abs(posY); } + /** + * @return angle in degrees (in range [-pi, pi]) between {@code new FloatCoordinate(1, 0)} + * */ + public float toAngle() { + return (float) Math.atan2(posY, posX); + } + + public static FloatCoordinate fromAngle(float angle) { + return new FloatCoordinate((float) Math.cos(angle), (float) Math.sin(angle)); + } + @Override public String toString() { return String.format("FCoord[%f, %f]", posX, posY); @@ -92,4 +103,10 @@ public double lenL2() { public IntCoordinate toIntCoordinate() { return new IntCoordinate((int) posX, (int) posY); } + + public IntCoordinate getSignum(float delta) { + int x = posX > delta ? 1 : posX < -delta ? -1 : 0; + int y = posY > delta ? 1 : posY < -delta ? -1 : 0; + return new IntCoordinate(x, y); + } } diff --git a/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java b/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java index ef7d136..e02f6b4 100644 --- a/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java +++ b/src/main/java/ru/itmo/roguelike/utils/IntCoordinate.java @@ -123,4 +123,8 @@ public boolean equals(Object o) { public int hashCode() { return Objects.hash(posX, posY); } + + public FloatCoordinate toFloatCoordinate() { + return new FloatCoordinate(posX, posY); + } } diff --git a/src/test/java/ru/itmo/roguelike/utils/FloatCoordinateTest.java b/src/test/java/ru/itmo/roguelike/utils/FloatCoordinateTest.java new file mode 100644 index 0000000..5a3bfe4 --- /dev/null +++ b/src/test/java/ru/itmo/roguelike/utils/FloatCoordinateTest.java @@ -0,0 +1,56 @@ +package ru.itmo.roguelike.utils; + +import org.junit.Test; + +import java.util.Arrays; +import java.util.List; +import java.util.function.UnaryOperator; + +import static org.junit.Assert.*; + +public class FloatCoordinateTest { + + @Test + public void testAngle() { + FloatCoordinate[] coordinates = { + new FloatCoordinate(1, 0), + new FloatCoordinate(1, 1), + new FloatCoordinate(0, 1), + new FloatCoordinate(-1, 1), + new FloatCoordinate(-1, 0), + new FloatCoordinate(-1, -1), + new FloatCoordinate(0, -1), + new FloatCoordinate(1, -1) + }; + float pi = (float) Math.PI; + + float[] expects = {0, pi/4, pi/2, 3*pi/4, pi, -3*pi/4, -pi/2, -pi/4}; + + for (int i = 0; i < 8; ++i) { + assertEquals(expects[i], coordinates[i].toAngle(), 1e-4); + } + + assertEquals(0, FloatCoordinate.getZeroPosition().toAngle(), 1e-5); + } + + @Test + public void testFromAngle() { + FloatCoordinate[] coordinates = { + new FloatCoordinate(1, 0), + new FloatCoordinate(1, 1), + new FloatCoordinate(0, 1), + new FloatCoordinate(-1, 1), + new FloatCoordinate(-1, 0), + new FloatCoordinate(-1, -1), + new FloatCoordinate(0, -1), + new FloatCoordinate(1, -1) + }; + + UnaryOperator modulo2Pi = f -> f < 0 ? f + 2 * (float) Math.PI : f; + + for (FloatCoordinate coordinate : coordinates) { + assertEquals(modulo2Pi.apply(coordinate.toAngle()), + modulo2Pi.apply(FloatCoordinate.fromAngle(coordinate.toAngle()).toAngle()), 1e-5); + } + } +} \ No newline at end of file From 267bbddb7ab308bb5449d30e9569fe2a611a665a Mon Sep 17 00:00:00 2001 From: Pavel Gromov Date: Tue, 9 Jun 2020 00:13:00 +0300 Subject: [PATCH 39/45] Create custom maps --- .gitignore | 5 -- maps/custom_map.mapfile | 57 ++++++++++++ maps/labyrinth.mapfile | 144 ++++++++++++++++++++++++++++++ test.mapfile => maps/test.mapfile | 0 4 files changed, 201 insertions(+), 5 deletions(-) create mode 100644 maps/custom_map.mapfile create mode 100644 maps/labyrinth.mapfile rename test.mapfile => maps/test.mapfile (100%) diff --git a/.gitignore b/.gitignore index 4976edd..f8ad79b 100644 --- a/.gitignore +++ b/.gitignore @@ -116,8 +116,3 @@ fabric.properties # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* - -# Save files -*.mapfile -*.mapfile_save -*.file_save \ No newline at end of file diff --git a/maps/custom_map.mapfile b/maps/custom_map.mapfile new file mode 100644 index 0000000..d53cdd3 --- /dev/null +++ b/maps/custom_map.mapfile @@ -0,0 +1,57 @@ +184 +####################################-----------------------------------################################################----------------------------#######################-------------- +-#######################################-------------------------------################################################-----------------------------######################-------s------ +-#########################################-----------------------------################################################--------z------------------------###################------------- +-###########################################---------------------------------------------------------------------------------------------------z--------######################---------- +-############################################-----------p-------------------------z---------------z------------------------------------------------------######################----z---- +-###############################################-----------------------------------------z----------------------z-----------------------------------------######################-------- +-################################################-----------------------------------------------------------------------------z----------------------------#####################-------- +##########################---------#################-------------------################################################------------------------------------#####################-------- +#############--------####-------------#############--------------------################################################-----------------s----z---------------###################-------- +##########------------####---s--z------###########---------------------################################################------------------------------------#####################-------- +########----s-----------###------------##########----------------------###############################-------------------------s--------------------------####################------s--- +#######-----s------------##---------#############-----------------------######################-------------zz-----------------------------------------#######################----------- +######---------z---------##-------##----------##--------------------------#########################--------------------z----------------------------########################------------ +######----------------------------#-----------####---------------------s----#########################----------------------------------------------#######################--------z----- +####--------------------------------------------#####------------------------###########################----------------------------s------------########################--------------- +####------------------~~~~~~~---------------------####---------#############################################----------------s------------------######################------------------- +###--------z---------~~~~~~~~~---------------------###############################################################--------------------------######################--------------######## +####-----------------~~~~~~~~~---------------------#################-------~~~~~~~~~~~~~~~~~~~--------################---------------------##################-----------z------######### +#####----------------~~~~~~~~~----------z---------#############------------~~~~~~~~~~~~~~~~~~~------------#################---------------###############-----------s------############# +#######--------------~~~~~~~~~--------------------#######-----s------------~~~~~~~~~~~~~~~~~~~--------------################-------s------#############-----------------################ +#########-------s-----~~~~~~~---------------------#######---------s--------~~~~~~~~s~~~~~~~~~~-----------------##############-------------############----------------################## +###########-------------------------------z---------#########--------------~~~~~~~~~~~~~~~~~~~---------z--------##############------------###########----------------################### +############------------------------------------------###########----------~~~~~~~~~~~~~~~~~~~---------z----------############-------------##########---------s-----#################### +################------------z-----------------------------###########------~~~~~~~~~~~~~~~~~~~---------------------############-------s-----#########---------------#################### +###################---------------z---------------------------###########--~~~~~~~~~~~~~~~~~~~-----------------------#########----------------#######---------------#################### +###------#############-----------------------------------------##############~~~~~~~~~~~~~~~~~-------------------------------------------------######---------------#################### +###-------##############--------------------------s-------------#################~~~~~~~~~~~~~--------z-----------------------------------------#######--------------################### +###---------###############----------------------------------#######--------################----------------------------------------------------#######---------------################## +###-----------#################-----------------------------######------------###############----------------------------------------------------####------------------################# +###-------------#################--------------------------#####-------------------#############------------------s---------------s-------------------------s-----------################ +###-----------------###############-------------z---------#####----z------------------###############----------------------------------------s---------------------------############### +###----zz---------------############-----z---------------#####-------------###----------#################---------------s-------------------------------------------z-----############## +###------------------------#########--------------------####-------------######-----------#################--------------------------z-------------------z-----------------############# +###-------------------------########--------------------#####-----------########-------------####################-------------------------------s---------------------------############ +###---------------------------######-------------------#####------------########--------------######------###########--------------------------------------------------------########### +###------------z-------------###############-----------#####------------########------z-------####-----------###########---------s-------------------------------------------########### +###-------------------------###################--------#####-----s------########--------------#####-----z------#############-------------------------------------------------########### +###------------------------######################------------------------########-------------#####--------------#############----------#####------------------------------############# +####----------------------########################------z-----------------#######------------#######----------------############-------###########---------s-------------############### +####--------s-------------#########################------------------------#######-----------######--------------------#########-------#############-----------z------################## +####----------------------#########---------#######-----z-------------------#######----------######-----------------------######-------################--------------################### +####----------------------########------z----#######-------------------------#######----------######-----------------z------####-------#################------------#################### +####----------------------########--------------#######-----------------------######----------######------z-------###--------###--------################------------#################### +####----------------------########-----------------########------------------#######-----------#####------------######--------##---------###############------------#################### +####-----------------------#######-------------------########--------z------########-----------######-----------#######-------##-----s----#############-------------#################### +####-----------z-----------#######--------s-------------#######-------------#######------------#####------------#######-------###----------###########----------s---#################### +####-----------------------######----------------------------###------------######------------######------------#######--------##-----------#########--------------##################### +####----------------------######--------------------------------------------######------------######-----------########--------###------z----#######--------------###################### +####---------------------######----------------------------------------------######----------########---------##########-------####----------######--------------####################### +####--------------------######------------------z-----------------------------######----z----#########---z----###########-------###---------######--------------######################## +####-------------------#####-----------s----------------s----------------------######--------#########-------############--------################--------------######################### +####-------z-------~~~~~~~~~~~~~~-------------------------------s---------------#####---------#######-------#############---------##############------s-------########################## +####---------------~~~~~~~~~~~~~~----------------------------------------------######----------#####--------##############----------###########-------------############################ +####------------s--~~~~~~~~~~~~~~----------------------------------z---------########-----------###--------################-------------------------z------############################# +####---------------~~~~~~~~~~~~~~------z-----------s------------------------########----------------------##################-------z---------------------############################### +####---------------~~~~~~~~~~~~~~-------------------------------------------#######----------------------####################--------------------------################################# diff --git a/maps/labyrinth.mapfile b/maps/labyrinth.mapfile new file mode 100644 index 0000000..ba200e4 --- /dev/null +++ b/maps/labyrinth.mapfile @@ -0,0 +1,144 @@ +338 + + ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ---------------------------------------------------------------------------------------------------------------------z--------------------------------------- + ----------------------------------z-----------s-----------------------------------------------------------------z------------------------------------------------------- -------------------------------------------------------------------------------z----------------------------------------------------------------------------- + ----------------------------------------------------------------------------------------------s--------------------------------------z----------------------------z----- ----------------------------z---------------------------------------------------------------------------------------------------------------------z---------- + -----------------------------------------------------------------------z------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------------------------------------------- + --------------------------------------------------------------------------------------------------------------------------------------------------z--------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------- + ------------ -------zz----------------------------------------- ---------------------------------------- ----------- + ------------ -------------------------------------------------- ---------------------------------------- ----------- + ------------ -------------------------------------------------- ------------z-------------s------------- -------z--- + -------s---- -------------------------------------------------- ---------------------------------------- ----------- + ------------ -------------------------------------------------- ---------------------------------------- ----------- + ------------ --------------------------z----------------------- ---------------------------------------- ----------- + ------------ -------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------s--------------------------------------------------------------------------------------------------------- ----------- + ------------ -------------------------------------------------------------------------------------------------------------------------------------------------- -------z-------------------------------------------------------------------------------------------------------------------------------- ----------- + -----z------ --------------------s-----------z----------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------- ----------- + ------------ ------------------------------------------------------------------s------------------------------------------------------------------------------- --------------------------z-------------------------z--------------------------------------------------------------z-------------------- ----------- + ------------ -----z------------------------------------------------------------------------------------------------------z------------------------------------- ----------------------------------------------------------------------------------z----------------------------------------------------- ----------- + ------------ -------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------- ----------- + ------------ ----------------- ----------------- ----------- + ------------ ----------------- ----------------- ----------- + ------------ ----------------- ----------------- ----------- + ------------ ----------------- -----------s----- ----------- + ------------ ----------------- ----------------- ----------- + ------------ ----------------- ----------------- ----------- + ------------ ----------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------- -------z--- + ------------ ----------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------- ----------- + ------------ ----------------- -----------------------------------------------------------------------z----------------------------------------------------------------------------------------------s-------------------------------------z--------------------------------- ----------------- ----------- + ------------ ----------------- ------------------------------------------------------------------------------------------------z---------------------------------z--------------------------------------------------------------------------------------------------s-------- ----------------- ----------- + ------------ --------s-------- --------s------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------- ----------- + ------------ ----------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ----------------- ----s------ + -------s---- --------------ss- ---------------- -------------- ---------s------- ----------- + ------------ ----------------- ---------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- ------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- -----------------------------------------------------s------------------------------------------------------------------------------------------- ---------- ------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- ---------------z--------------------------------------------------------------z---------------------------z----------------s--------------------- ---------- ------------- -------------- ----------------- ----------- + ------------ --------z-------- ------s--------- --------------------------------------------------------------------s---------------------------------------------------------------------------- ---------- ------------- -------------- ----------------- ---z------- + ------------ ----------------- ---------------- ----------- ------ -------- ---------- ------------- -------------- ---------s------- ----------- + ------------ ----------------- ---------------- ----------- ------ ----------------------z----- ------------- ----------s--- ----------------- ----------- + ------------ ----------------- ---------------- ----------- ------ -----z---------------------- ------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- ----------- ------ ---------------------------- ------------- -------------- ----------------- ----------- + -----s------ ----------------- ---------------- ----------- ------ ---------------------------- ------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- ----------- ------ ------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- -------------------------------------------------------------------z------------------------------------------- ------ ------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- -------------------------------------------------s------------------------------------------------------------- ------ ------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- --------------------------------------------------------------------------------------------------------------- ------ ------------- -------------- ----------------- -------s--- + ------------ ----------------- ---------------- --------- ---------- ------ ------------- -------------- ----------------- ----------- + ------------ ----------------- ---------------- -----z--- ---------- ------ ------------- --------------------------------s-------- ----------- + ------------ ---------s------- ------s--------- --------- ---------- -------------------------------------------- ------------- ----------------------------------------- ----------- + ------------ ----------------- ---------------- --------- ---------- -------------------------------------------- ------------- ----------------------------------------- ----------- + ------------ ----------------- ---------------- --------- ---------- -------z------------------------------------ ------------- ---------s------------------------------- ----------- + ------------ ----------------- ---------------- --------- ---------- --------------------- ------------- ------------- ----------------------------------------- ----------- + ------------ ----------------- ---------------- --------------------------------------------------------------------------------------------------------------- --------------------- ------------- ------------- ---------------- ----------- + ------------ ----------------- ---------------- ----------------------------------------------------------------------------z---------------------------------- --------------------- ------------- ------------- ---------------- ----------- + ------------ ----------------- ---------------- -----z--------------------------------------z------------------------------------------------------------------ --------------------- ------------- ------------- ---------------- ----------- + ----z------- ----------------- ---------------- --------------------------------------------------------------------------------------------------------------- --------------------- ------------- ------------- ---------------- ----------- + ------------ --------z-------- ---------------- --------------------------------------------------------------------------------------------------------------- --------------------- ------------- ------------- ---------------- ----------- + ------------ ----------------- ---------------- ----------- ------------- ------------- ---------------- ---------z- + ------------ ----------------- ------z--------- ----------- ------------- ------------- ----------------------------------------- ----------- + ------------ ----------------- ---------------- ----------- ------------- ------------- ----------------------------------------- ----------- + ------------ ----------------- ---------------- ----------- ------------- ------------- -------------------zz--z-----z-------z--- ----------- + ------------ -------------------------------------s----- ----------- ------------- ----z-------- ----------------------------------------- ----------- + ------------ --------s---------------------------------- ----------- ------------- ------------- ----------------z---z-----------zz------- ----------- + ------------ ------------------------------------------- -----------------------------------------------------------z---------------------------------------------------------------------------------- ------------- ------------- ----------------------------------------- -------s--- + ------------ ------------------------------------------- ----------------------s-----------------------------------------s----------------------------------------------------------------------------- ------------- ------------- ----------------------------------------- ----------- + ------------ --------------------------------------s------------------------------------------------z------------------------------------------------------ ------------- ------------- ----------- + ------------ ------------------------------------------------------------------------------------------------------------------------z--------------------- ------------- ------------- ----------- + ------------ -------- ------------- ------------- ----------- + ------------ -------- ------------- ------------- ----------- + ------------ ------------------------------------------- -------- ------------- ------------- ------------ ------------------- ----------- + ------------ ------------------------------------------- -------- ------------- ------------- ------------ ------------------- ----------- + ------------ ----------------------------------s-------- -------- ------------- ------------- ------------ ------------------- ----------- + ----s------- --------z---------------------------------- ----s--- ---z--------- ------------- ------------ ------------------- ----------- + ------------ --------------- ------------------ ---------------------------------------------- ------------------------------------------------------------------------------------------------------------- ------------- ------------ ------------------- ----------- + ------------ --------------- ------------------ ---------------------------------------------- -------------------------z----------------------------------------------------------------------------------- ------------- ------------ -------------s----- ----------- + ------------ --------------- ------------------ ---------------------------------------------- -----------s----------------------------------z-------------------------------------------------------------- ------------- ------------ ------------------- -------z--- + ------------ --------------- ------------------ ----s--- ------------ ------------------------------------------------------------------------------------------------------------- ----------------------------------- ------------------- ----------- + ------------ --------------- --------s--------- -------- ------------ ---- ----------z------------------------ -----z------------- ----------- + ------------ --------------- -------------s---- -------- ------------ ---- ----------------------------------- ------------------- ----------- + ------------ --------------- ------------------ -------- ------------ ---- ------------------------------z---- ------------------- ----------- + ------------ -------s------- ------------------ -------- ------------ ---- ----------------------------------- ------------------- ----------- + ------------ --------------- -----s------------ -------- ------------ ---- ------------- ------------ -------------s----- ----------- + ------------ --------------- ------------------ ---------------------------------------------- ---- ------------- ------------ -----s------------- --------s-- + ------------ --------------- ------------------ ---------------------------------------------- ------- --------------- ------------------------------------------------------------------- ------------- ------------ ------------------- ----------- + -------s---- --------------- ------------------ ---------------------------------------------- ------- --------------- ------------------------------------------------------------------- ------------- ------------ ------------------- ----------- + ------------ --------------- -------------z---- ------s--------------------------------------- ------- --------------- ------------------------------------------------------------------- ------------- ------------ ------------------- ----------- + ------------ --------------- -------s---------- --------------------- ------- --------------- --------- ------------- ------------ ------------------- ----------- + ------------ --------------- ------------------ -------------s------- ------- -------z------- --------- ------------- ------------ ------------------- ----------- + ------------ --------------- ------------------ --------------------- ------- --------------- ----z---- ------------- ------------ ------------------- ----------- + ------------ --------------- ------------------ --------------------- ------- --------------- --------- ------z------ ------------ ------z------------ ----------- + ------------ --------------- ------------------ --------------------- ------- --------------- --------- ------------- ------------ ------------------- ------z---- + ------------ --------z------ ------------s----- ----------z---------- ------- --------------- --------- ------------- ------------ ------------------- ----------- + ------------ --------------- ------------------ ---------------------------------------------- ------- --------------- ------------------------------------------------------------------------------------------ ------------ ------------------- ----------- + ------------ --------------- ------------------ ---------------------------------------------- ----------------------------------------------------------------------------------------------------------z------------------------- ------------ ------------------- ----------- + ------------ --------------- ------------------ ---------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------ ------------ --------------s---- ----------- + ------------ --------------- ------------------ -------------------z-------------------------- -----------------------------------------------------------------------z------------------------------------------------------------ ------------ ------------------- ----------- + ----z------- --------------- -----------s------ ---------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------ ------------ ------------------- ----s------ + ------------ --------------- ----s------------- --------- ------z----- ------------------- ----------- + ------------ --------------- ------------------ --------- ------------ ------------------- ----------- + ------------ --------------- ------------------ --------- ------------ ------------------- ----------- + ------------ --------------- ------------------ --------- ------------ ------------------- ----------- + ------------ --------------- ------------------ --------- ------------ ------------------- ----------- + ------------ --------------- ------------------ --------- ------------ ------s------------ -----z----- + ------------ --------------- ---------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------- ------------------- ----------- + ------------ --------------- ---------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------- ---------z--------- ----------- + ------------ --------------- -------------------------------------------------------------s-------------------------------- -----------------------------------ss----------------------------s-------------------------------------s------------------------------ ---------z--------- ----------- + ------------ --------------- -------------------------------------------------------------------------z-------------------- ----------------------------------------------------------------------------------------------------------------------s--------------- ------------------- ----------- + ------------ -------s------- ---------------------------------------------------------------------------------------------- ---------------------------------------------s---------------------------------------------------------------------------------------- ------------------- ----------- + ------------ --------------- ----------s----------------------------------------------------------------------------------- --------z--------------------s---------------------------------------------------------------s----------------z----------------------- ------------------- ------s---- + ------------ --------------- ------------------------------------------s--------------s------------------------------------ --------------------------------------------------------z----------s-------------------------------------------------------------s---- ------------------- ----------- + ------------ --------------- ----------------s----------------------------------------------------------------------------- -----------------------------z--------------------------------------------------zz---------------------------------------------------- ------------------- ----------- + ------------ --------------- ----------------------------------------------------------------------------s----------------- -----------------s-------------------------------------------------------------------------------------------------------------------- --------s---------- ----------- + ------------ --------------- ---------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------- ------------------- ----------- + ------------ --------------- ---------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------- ------------------- -----z----- + ------------ ---------z----- ---------------- ------------------- ----------- + ------------ --------------- ---------------- ------------------- ----------- + ------------ --------------- ---------------- ------------------- ----------- + ------------ --------------- --------s------- ------------------- ----------- + ------------ --------------- ---------------- ------------------- ----------- + ------------ --------------- ---------------- ------------------- ----------- + ------------ ----------------------------------------------------------------------------------------------------------------------- ---------------- ----------------------------------------------------------------------------------------------------------------------------z------------ ----------- + ------------ ----------------------------------------------------------------------------------------------------------------------- ---------------- ----------------------------------------------------------------------------------------------------------------------------------------- ----------- + ------------ ---------------------------------------------s----------s-------------------------------------------------------------- ---------------- ------------s--------------s-----------------------------------------------------------------------s------------------------------------- ----z------ + ------------ -----------------------s------------------------------------------------------------------------------s---------------- ---------------- --------------------------------------------------------------------------------------------------------------------------------s-------- ----------- + ------------ -----------------------------------------------------------------------------s----------------------------------------- ---------------- -----------------------------------------------------------z-----------------------s-----------------------------s--------------s-------- ----------- + ------------ ----------------------------------------------------------------------------------------------------------------------- ------s--------- ----------------------------z--------------------s-------------------------------------------------------z------------------------------- ----------- + ------------ ----------------------------------------------------------------------------------------------------------------------- ---------------- ---------------------------------------------------------------------------s------------------------------------------------------------- ----------- + ------------ ----------------------- ---------------- ----------------------------------------------------------------------------------------------------------------------------------------- ----------- + ------------ ----------------------- ---------------- ----------------------------------------------------------------------------------------------------------------------------------------- ----------- + ------------ ----------------------- ---------------- ----------------------------------------- ----------- + -------z---- ------------s---------- ---------------- -------------z--------------------------- ----------- + ------------ ----------------------- ---------------- ----------------------------------------- ----------- + ------------ ----------------------- ---------------- -------------------------z--------------- ---z------- + --------------------------------------------------------------------------------------------------------------------------------------------- ---------------- ----------------------------------------- ----------- + -----------------------------------------------------------------------------s-------------------------------------s------------------------- ---------------- ----------------------------------------- ----------- + ---------------------------------z----------------------------------------------------------------------------------------------------------- ------p--------- -------------------------------------------------------------------------------------------------------------------------------------------------------------- + --------------------------------------------------------------------------------------------------------------------------------------------- ---------------- --------------------------------------------------z-------------------z------------------------------------------------------------------------z-------------- + --------------------------------------------------------------------------------------------------------------------------------------------- ---------------- ------------------------------------------------------------------------------------------z------------------z------------------z----------------------------- + --------------------------------------------------------------------------------------------------------------------------------------------- ---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------- + \ No newline at end of file diff --git a/test.mapfile b/maps/test.mapfile similarity index 100% rename from test.mapfile rename to maps/test.mapfile From 997dd8c120c01b75229cca2b8d7ad85c5c9e9b5e Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Tue, 9 Jun 2020 00:38:03 +0300 Subject: [PATCH 40/45] add Spawner and others --- .../roguelike/field/AutoGeneratedField.java | 4 + .../java/ru/itmo/roguelike/field/Field.java | 2 + .../ru/itmo/roguelike/field/FiniteField.java | 57 ++++++----- .../roguelike/field/RandomFieldSpawner.java | 97 +++++-------------- .../java/ru/itmo/roguelike/field/Spawner.java | 55 +++++++++++ .../manager/gamemanager/GameManager.java | 1 + test.mapfile | 8 +- 7 files changed, 123 insertions(+), 101 deletions(-) create mode 100644 src/main/java/ru/itmo/roguelike/field/Spawner.java diff --git a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java index fc1272f..d16c83e 100644 --- a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java +++ b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java @@ -131,4 +131,8 @@ public void setDefaultPosToPlayer(Player p) { int y = MathUtils.getRandomInt(MIN_SPAWN_Y_COORDINATE, MAX_SPAWN_Y_COORDINATE); p.setCoordinate(new IntCoordinate(x, y)); } + + @Override + public void resetEntities() { + } } diff --git a/src/main/java/ru/itmo/roguelike/field/Field.java b/src/main/java/ru/itmo/roguelike/field/Field.java index d1d35b8..ec6247b 100644 --- a/src/main/java/ru/itmo/roguelike/field/Field.java +++ b/src/main/java/ru/itmo/roguelike/field/Field.java @@ -61,4 +61,6 @@ default TileType[][] getAreaTileType(@NotNull Rectangle2D boundingBox) { * Change the player’s position to default for this field. */ void setDefaultPosToPlayer(Player p); + + void resetEntities(); } diff --git a/src/main/java/ru/itmo/roguelike/field/FiniteField.java b/src/main/java/ru/itmo/roguelike/field/FiniteField.java index 7aca3ae..a642981 100644 --- a/src/main/java/ru/itmo/roguelike/field/FiniteField.java +++ b/src/main/java/ru/itmo/roguelike/field/FiniteField.java @@ -1,23 +1,17 @@ package ru.itmo.roguelike.field; import ru.itmo.roguelike.characters.Player; -import ru.itmo.roguelike.characters.mobs.Enemy; -import ru.itmo.roguelike.characters.mobs.Slime; -import ru.itmo.roguelike.characters.mobs.Zombie; -import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; -import ru.itmo.roguelike.characters.mobs.strategy.CowardlyBehavior; -import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; import ru.itmo.roguelike.utils.IntCoordinate; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.nio.file.Path; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static ru.itmo.roguelike.field.FiniteField.TileSymbol.BEDROCK; +import static ru.itmo.roguelike.field.FiniteField.TileSymbol.PLAYER; /** @@ -51,6 +45,9 @@ public class FiniteField implements Field { private final Player player; private Tile[][] field; private IntCoordinate defaultPlayerPos; + + private final Map> defaultEntities = new HashMap<>(); + /** * Read field from a file */ @@ -72,7 +69,7 @@ public FiniteField(Path file, Player player) { for (int column = 0; column < s.length(); column++) { char c = s.charAt(column); result[column] = createTile(c, row, column); - spawnActors(result[column].getX(), result[column].getY(), c); + updateActors(result[column].getX(), result[column].getY(), c); } for (int i = s.length(); i < width; i++) { @@ -93,32 +90,31 @@ private static Tile createTile(char c, int x, int y) { return result; } - private void spawnActors(int x, int y, char c) { + private void updateActors(int x, int y, char c) { IntCoordinate coordinate = new IntCoordinate(x, y); TileSymbol symbol = TileSymbol.fromChar(c); - switch (symbol) { - case PLAYER: - defaultPlayerPos = coordinate; - break; - case ZOMBIE: - Enemy.builder(Zombie::new).setPosition(coordinate) - .setRadius(1000).setTarget(player) - .setBehavior(MobWithTarget.builder(AggressiveBehavior::new)).createAndRegister(); - break; - case SLIME: - Enemy.builder(Slime::new).setPosition(coordinate) - .setRadius(1000).setTarget(player) - .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)).createAndRegister(); - break; - default: + if (symbol == PLAYER) { + defaultPlayerPos = coordinate; } + + symbol.getEntityClass().ifPresent( + cls -> { + defaultEntities.putIfAbsent(cls, new ArrayList<>()); + defaultEntities.get(cls).add(coordinate); + } + ); } @Override public void reInit(IntCoordinate coordinate) { } + @Override + public void resetEntities() { + defaultEntities.forEach((cls, poss) -> poss.forEach(pos -> Spawner.spawners.get(cls).accept(player, pos))); + } + @Override public Optional getTile(IntCoordinate coordinate) { int xIdx = coordinate.getX() / Tile.WIDTH_IN_PIX; @@ -155,6 +151,17 @@ public enum TileSymbol { this.value = value; } + public Optional getEntityClass() { + switch (this) { + case ZOMBIE: + return Optional.of(Spawner.EntityClass.ZOMBIE); + case SLIME: + return Optional.of(Spawner.EntityClass.SLIME); + default: + return Optional.empty(); + } + } + public static TileSymbol fromChar(char symbol) { switch (symbol) { case '-': diff --git a/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java b/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java index 4f75df2..fc088cb 100644 --- a/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java +++ b/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java @@ -1,57 +1,22 @@ package ru.itmo.roguelike.field; import ru.itmo.roguelike.characters.Player; -import ru.itmo.roguelike.characters.mobs.Enemy; -import ru.itmo.roguelike.characters.mobs.Slime; -import ru.itmo.roguelike.characters.mobs.Zombie; -import ru.itmo.roguelike.characters.mobs.strategy.CowardlyBehavior; -import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; -import ru.itmo.roguelike.characters.mobs.strategy.RandomWalkBehavior; -import ru.itmo.roguelike.items.*; import ru.itmo.roguelike.utils.IntCoordinate; import ru.itmo.roguelike.utils.MathUtils; import java.util.HashMap; import java.util.Map; import java.util.Random; -import java.util.function.BiConsumer; + +import static ru.itmo.roguelike.field.Spawner.EntityClass.*; /** * Mob and Collectible spawner */ public class RandomFieldSpawner { private static final int SAFE_RADIUS = 150; - private static final Map> spawners = new HashMap<>(); - - static { - spawners.put(SpawnClass.ZOMBIE, - (player, coordinate) -> { - Enemy.builder(Zombie::new) - .setPosition(coordinate) - .setBehavior(MobWithTarget.builder(RandomWalkBehavior::new)) - .setRadius(10000) - .setTarget(player) - .createAndRegister(); - } - ); - spawners.put(SpawnClass.SLIME, - (player, coordinate) -> { - Enemy.builder(Slime::new) - .setPosition(coordinate) - .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)) - .setRadius(10000) - .setTarget(player) - .createAndRegister(); - } - ); - spawners.put(SpawnClass.MED_KIT_S, (p, coordinate) -> new MedKitSmall().setPosition(coordinate)); - spawners.put(SpawnClass.MED_KIT_B, (p, coordinate) -> new MedKitBig().setPosition(coordinate)); - spawners.put(SpawnClass.MED_KIT_M, (p, coordinate) -> new MedKitMedium().setPosition(coordinate)); - spawners.put(SpawnClass.TELEPORT, (p, coordinate) -> new Teleport().setPosition(coordinate)); - spawners.put(SpawnClass.TUNIC, (p, coordinate) -> new HeavyArmor().setPosition(coordinate)); - spawners.put(SpawnClass.JACKET, (p, coordinate) -> new LightArmor().setPosition(coordinate)); - spawners.put(SpawnClass.COWL, (p, coordinate) -> new MediumArmor().setPosition(coordinate)); - } + private static final Map probs = new HashMap<>(); + private static final int sumProbs; private final Random random; private Player player; @@ -85,44 +50,32 @@ public void addNewPosition(Tile tile) { boolean goodGridPosition = x % 100 < 50 && y % 100 < 50; if (goodGridPosition && randomDecision && farEnoughFromPlayer) { - spawners.get(SpawnClass.getRandom()).accept(player, new IntCoordinate(tile.getX(), tile.getY())); + Spawner.spawners.get(getRandomClass()).accept(player, new IntCoordinate(tile.getX(), tile.getY())); } } - private enum SpawnClass { - ZOMBIE(100), - SLIME(80), - MED_KIT_S(20), - MED_KIT_M(10), - MED_KIT_B(5), - TELEPORT(10), - TUNIC(1), - JACKET(5), - COWL(2); - - static int sumAll = 0; - - static { - for (SpawnClass sc : values()) { - sumAll += sc.prob; - } - } - - int prob; - - SpawnClass(int prob) { - this.prob = prob; - } + static { + probs.put(ZOMBIE, 100); + probs.put(SLIME, 80); + probs.put(MED_KIT_S, 20); + probs.put(MED_KIT_M, 10); + probs.put(MED_KIT_B, 5); + probs.put(TELEPORT, 10); + probs.put(TUNIC, 1); + probs.put(JACKET, 5); + probs.put(COWL, 2); + + sumProbs = probs.values().stream().reduce(Integer::sum).orElse(0); + } - public static SpawnClass getRandom() { - int idx = MathUtils.getRandomInt(0, sumAll); - for (SpawnClass sc : values()) { - idx -= sc.prob; - if (idx <= 0) { - return sc; - } + private static Spawner.EntityClass getRandomClass() { + int idx = MathUtils.getRandomInt(0, sumProbs); + for (Map.Entry cls : probs.entrySet()) { + idx -= cls.getValue(); + if (idx <= 0) { + return cls.getKey(); } - return null; } + return null; } } diff --git a/src/main/java/ru/itmo/roguelike/field/Spawner.java b/src/main/java/ru/itmo/roguelike/field/Spawner.java new file mode 100644 index 0000000..23500fd --- /dev/null +++ b/src/main/java/ru/itmo/roguelike/field/Spawner.java @@ -0,0 +1,55 @@ +package ru.itmo.roguelike.field; + +import ru.itmo.roguelike.characters.Player; +import ru.itmo.roguelike.characters.mobs.Enemy; +import ru.itmo.roguelike.characters.mobs.Slime; +import ru.itmo.roguelike.characters.mobs.Zombie; +import ru.itmo.roguelike.characters.mobs.strategy.CowardlyBehavior; +import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; +import ru.itmo.roguelike.characters.mobs.strategy.RandomWalkBehavior; +import ru.itmo.roguelike.items.*; +import ru.itmo.roguelike.utils.IntCoordinate; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiConsumer; + +import static ru.itmo.roguelike.field.Spawner.EntityClass.*; + +public final class Spawner { + public static final Map> spawners = new HashMap<>(); + + static { + spawners.put(ZOMBIE, + (player, coordinate) -> { + Enemy.builder(Zombie::new) + .setPosition(coordinate) + .setBehavior(MobWithTarget.builder(RandomWalkBehavior::new)) + .setRadius(10000) + .setTarget(player) + .createAndRegister(); + } + ); + spawners.put(SLIME, + (player, coordinate) -> { + Enemy.builder(Slime::new) + .setPosition(coordinate) + .setBehavior(MobWithTarget.builder(CowardlyBehavior::new)) + .setRadius(10000) + .setTarget(player) + .createAndRegister(); + } + ); + spawners.put(MED_KIT_S, (p, coordinate) -> new MedKitSmall().setPosition(coordinate)); + spawners.put(MED_KIT_B, (p, coordinate) -> new MedKitBig().setPosition(coordinate)); + spawners.put(MED_KIT_M, (p, coordinate) -> new MedKitMedium().setPosition(coordinate)); + spawners.put(TELEPORT, (p, coordinate) -> new Teleport().setPosition(coordinate)); + spawners.put(TUNIC, (p, coordinate) -> new HeavyArmor().setPosition(coordinate)); + spawners.put(JACKET, (p, coordinate) -> new LightArmor().setPosition(coordinate)); + spawners.put(COWL, (p, coordinate) -> new MediumArmor().setPosition(coordinate)); + } + + public enum EntityClass { + ZOMBIE, SLIME, MED_KIT_S, MED_KIT_M, MED_KIT_B, TELEPORT, TUNIC, JACKET, COWL; + } +} diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 388d256..0f3faa8 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -86,6 +86,7 @@ private void resetGameState() { projectileManager.killAll(); eventManager.clear(); player.registerDrawableEvents(); + field.resetEntities(); } public void start() { diff --git a/test.mapfile b/test.mapfile index b60b498..24411ff 100644 --- a/test.mapfile +++ b/test.mapfile @@ -1,15 +1,15 @@ 12 ############ -#----------# +#---------p# #----####### #----# #----####### -#----------# +#-z--------# ############ ############ -#----------# +#---------s# #-~~--###### #-~~--# #-~~--###### @@ -31,7 +31,7 @@ ##### #---# #---######## -#p---------# +#----------# #---######## #---# ##### From ff93c7da02763f6026ac2124b8e2926809dc5fd4 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Tue, 9 Jun 2020 00:51:20 +0300 Subject: [PATCH 41/45] add medkits and armor --- .../ru/itmo/roguelike/field/FiniteField.java | 43 ++++++++++++------- test.mapfile | 10 ++--- 2 files changed, 32 insertions(+), 21 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/field/FiniteField.java b/src/main/java/ru/itmo/roguelike/field/FiniteField.java index a642981..7772a5d 100644 --- a/src/main/java/ru/itmo/roguelike/field/FiniteField.java +++ b/src/main/java/ru/itmo/roguelike/field/FiniteField.java @@ -142,7 +142,14 @@ public enum TileSymbol { BEDROCK(' ', -1f), PLAYER('p', 0.5f), ZOMBIE('z', 0.5f), - SLIME('s', 0.5f); + SLIME('s', 0.5f), + MEDKIT_SMALL('n', 0.5f), + MEDKIT_MEDIUM('m', 0.5f), + MEDKIT_BIG('M', 0.5f), + ARMOR_SMALL('4', 0.5f), + ARMOR_MEDIUM('a', 0.5f), + ARMOR_HEAVY('A', 0.5f), + TELEPORT('*', 0.5f); private final char symbol; private final float value; @@ -157,28 +164,32 @@ public Optional getEntityClass() { return Optional.of(Spawner.EntityClass.ZOMBIE); case SLIME: return Optional.of(Spawner.EntityClass.SLIME); + case MEDKIT_SMALL: + return Optional.of(Spawner.EntityClass.MED_KIT_S); + case MEDKIT_MEDIUM: + return Optional.of(Spawner.EntityClass.MED_KIT_M); + case MEDKIT_BIG: + return Optional.of(Spawner.EntityClass.MED_KIT_B); + case ARMOR_SMALL: + return Optional.of(Spawner.EntityClass.JACKET); + case ARMOR_MEDIUM: + return Optional.of(Spawner.EntityClass.COWL); + case ARMOR_HEAVY: + return Optional.of(Spawner.EntityClass.TUNIC); + case TELEPORT: + return Optional.of(Spawner.EntityClass.TELEPORT); default: return Optional.empty(); } } public static TileSymbol fromChar(char symbol) { - switch (symbol) { - case '-': - return GRASS; - case '~': - return WATER; - case '#': - return STONE; - case 'p': - return PLAYER; - case 'z': - return ZOMBIE; - case 's': - return SLIME; - default: - return BEDROCK; + for (TileSymbol ts : values()) { + if (ts.symbol == symbol) { + return ts; + } } + return BEDROCK; } } } diff --git a/test.mapfile b/test.mapfile index 24411ff..775b71c 100644 --- a/test.mapfile +++ b/test.mapfile @@ -2,18 +2,18 @@ ############ #---------p# #----####### -#----# -#----####### -#-z--------# +#mMn*# +#-A4a####### +#------z---# ############ ############ -#---------s# +#--m------s# #-~~--###### #-~~--# #-~~--###### -#----------# +#---------z# ############ ############ From 63cb8d50e160e727af591ed4ba59114a6cdc6f94 Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Tue, 9 Jun 2020 01:13:23 +0300 Subject: [PATCH 42/45] add stone respawn --- .../java/ru/itmo/roguelike/LaunchWindow.java | 36 ++++++------- .../ru/itmo/roguelike/characters/Actor.java | 1 - .../ru/itmo/roguelike/characters/Player.java | 13 +++-- .../itmo/roguelike/characters/mobs/Enemy.java | 2 +- .../roguelike/characters/mobs/PersonX.java | 4 +- .../mobs/strategy/RandomWalkBehavior.java | 2 +- .../roguelike/field/AutoGeneratedField.java | 10 ++-- .../java/ru/itmo/roguelike/field/Field.java | 1 - .../ru/itmo/roguelike/field/FiniteField.java | 53 ++++++++++--------- .../roguelike/field/RandomFieldSpawner.java | 50 ++++++++--------- .../java/ru/itmo/roguelike/field/Spawner.java | 2 +- .../manager/gamemanager/GameManager.java | 18 +++---- .../java/ru/itmo/roguelike/render/Camera.java | 1 - .../render/drawable/DrawableDescriptor.java | 1 - .../roguelike/render/particles/Splash.java | 38 ++++++------- .../itmo/roguelike/settings/GameSettings.java | 46 ++++++++-------- test.mapfile | 2 +- 17 files changed, 135 insertions(+), 145 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/LaunchWindow.java b/src/main/java/ru/itmo/roguelike/LaunchWindow.java index 5135714..3e3dfcc 100644 --- a/src/main/java/ru/itmo/roguelike/LaunchWindow.java +++ b/src/main/java/ru/itmo/roguelike/LaunchWindow.java @@ -17,10 +17,6 @@ public class LaunchWindow extends JFrame { private final SettableFuture> promise = SettableFuture.create(); - public static LaunchWindow createAndShow(Configuration configuration) { - return new LaunchWindow(configuration); - } - private LaunchWindow(Configuration configuration) { super("ROGUELIKE"); selfBuild(configuration); @@ -28,6 +24,24 @@ private LaunchWindow(Configuration configuration) { setVisible(true); } + public static LaunchWindow createAndShow(Configuration configuration) { + return new LaunchWindow(configuration); + } + + public static String showDialogAndGetFileName(Configuration configuration) { + JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); + + fc.setAcceptAllFileFilterUsed(false); + fc.addChoosableFileFilter(configuration.getFilter()); + fc.setDialogTitle(configuration.getFileChooserCaption()); + + int returnCode = fc.showDialog(null, configuration.getFileChooserAcceptText()); + if (returnCode == APPROVE_OPTION) { + return fc.getSelectedFile().getAbsolutePath(); + } + return null; + } + private void selfBuild(Configuration configuration) { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); addWindowListener(new WindowAdapter() { @@ -47,20 +61,6 @@ public void windowClosing(WindowEvent windowEvent) { pack(); } - public static String showDialogAndGetFileName(Configuration configuration) { - JFileChooser fc = new JFileChooser(System.getProperty("user.dir")); - - fc.setAcceptAllFileFilterUsed(false); - fc.addChoosableFileFilter(configuration.getFilter()); - fc.setDialogTitle(configuration.getFileChooserCaption()); - - int returnCode = fc.showDialog(null, configuration.getFileChooserAcceptText()); - if (returnCode == APPROVE_OPTION) { - return fc.getSelectedFile().getAbsolutePath(); - } - return null; - } - public JButton getOtherButton(Configuration configuration) { JButton startRandom = new JButton(configuration.getOtherBtnText()); startRandom.setSize(200, 30); diff --git a/src/main/java/ru/itmo/roguelike/characters/Actor.java b/src/main/java/ru/itmo/roguelike/characters/Actor.java index 01bf482..942c834 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Actor.java +++ b/src/main/java/ru/itmo/roguelike/characters/Actor.java @@ -12,7 +12,6 @@ import ru.itmo.roguelike.render.drawable.Drawable; import ru.itmo.roguelike.render.particles.MovingUpText; import ru.itmo.roguelike.render.particles.Splash; -import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; import java.awt.*; diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index 13bc64f..52272f1 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -9,7 +9,6 @@ import ru.itmo.roguelike.characters.mobs.Enemy; import ru.itmo.roguelike.characters.mobs.PersonX; import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; -import ru.itmo.roguelike.characters.mobs.strategy.CowardlyBehavior; import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; import ru.itmo.roguelike.characters.movement.Mover; import ru.itmo.roguelike.field.Field; @@ -47,17 +46,17 @@ public class Player extends Actor { attackMethod.renderInInventory(g, x - 20, y - 20, 40, 40); } }); + private final Event armorEventDrawer = new Event(1, 0, Color.LIGHT_GRAY, null, (g, x, y) -> { + if (armor != null) { + armor.renderInInventory(g, x - 20, y - 20, 40, 40); + } + }); private IntCoordinate moveDirection = IntCoordinate.getZeroPosition(); private boolean doAttack = false; private int level; private float exp; private long lastInventoryWarning = GameManager.GLOBAL_TIME; private long lastDroppableWarning = GameManager.GLOBAL_TIME; - private final Event armorEventDrawer = new Event(1, 0, Color.LIGHT_GRAY, null, (g, x, y) -> { - if (armor != null) { - armor.renderInInventory(g, x - 20, y - 20, 40, 40); - } - }); @Inject @@ -252,7 +251,7 @@ public void attack(IntCoordinate direction) { } public void setCoordinate(IntCoordinate position) { - this.position = position; + this.position.set(position); } public int getLevel() { diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java b/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java index f56adc9..92aff6c 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/Enemy.java @@ -16,10 +16,10 @@ import java.util.function.Supplier; public abstract class Enemy extends Actor implements Collidable { + private static final int DEFAULT_MAX_HP = 10; protected int attackFreq = 10; protected Actor target = null; private MobBehavior strategy = new PassiveBehavior(); - private static final int DEFAULT_MAX_HP = 10; private long lastAttack = -attackFreq; { diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java index 244e0de..12bab14 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/PersonX.java @@ -2,7 +2,6 @@ import ru.itmo.roguelike.Collidable; import ru.itmo.roguelike.characters.Actor; -import ru.itmo.roguelike.render.drawable.DrawableDescriptor; import java.awt.*; import java.util.Random; @@ -15,6 +14,7 @@ public class PersonX extends Enemy implements Boss { private static final float MIN_BOUND_XP = 40; private static final float MAX_BOUND_XP = 70; + private static final Random random = new Random(); { drawableDescriptor.setColor(Color.PINK); @@ -40,8 +40,6 @@ protected float getXPInBounds() { return (float) getRandomDouble(MIN_BOUND_XP, MAX_BOUND_XP); } - private static final Random random = new Random(); - @Override public Shape getShape() { return new Rectangle(32, 32); diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java index 63e2278..4d815c2 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/RandomWalkBehavior.java @@ -9,8 +9,8 @@ public class RandomWalkBehavior extends MobWithTarget { private static final Random random = new Random(); private static final float PROBABILITY = 0.1f; private static final int STEP = 15; - private IntCoordinate delta = IntCoordinate.getZeroPosition(); private static final int WAIT_MAX = 10; + private IntCoordinate delta = IntCoordinate.getZeroPosition(); private int wait = WAIT_MAX; @Override diff --git a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java index d16c83e..a4fecb5 100644 --- a/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java +++ b/src/main/java/ru/itmo/roguelike/field/AutoGeneratedField.java @@ -16,7 +16,10 @@ public class AutoGeneratedField implements Field { private final NoiseGenerator generator; private final Chunk[][] field; - + private final int MIN_SPAWN_X_COORDINATE = -500_000; + private final int MAX_SPAWN_X_COORDINATE = 500_000; + private final int MIN_SPAWN_Y_COORDINATE = -500_000; + private final int MAX_SPAWN_Y_COORDINATE = 500_000; private int shiftX, shiftY; public AutoGeneratedField(int margins, Player player) { @@ -115,11 +118,6 @@ public void process(IntCoordinate centerCoordinate) { } } - private final int MIN_SPAWN_X_COORDINATE = -500_000; - private final int MAX_SPAWN_X_COORDINATE = 500_000; - private final int MIN_SPAWN_Y_COORDINATE = -500_000; - private final int MAX_SPAWN_Y_COORDINATE = 500_000; - /** * Spawns {@link Player} in random position of the map. The possible spawn area is inside of * ({@link AutoGeneratedField#MIN_SPAWN_X_COORDINATE}, {@link AutoGeneratedField#MIN_SPAWN_Y_COORDINATE}) - diff --git a/src/main/java/ru/itmo/roguelike/field/Field.java b/src/main/java/ru/itmo/roguelike/field/Field.java index ec6247b..033983b 100644 --- a/src/main/java/ru/itmo/roguelike/field/Field.java +++ b/src/main/java/ru/itmo/roguelike/field/Field.java @@ -2,7 +2,6 @@ import org.jetbrains.annotations.NotNull; import ru.itmo.roguelike.characters.Player; -import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; import java.awt.geom.Rectangle2D; diff --git a/src/main/java/ru/itmo/roguelike/field/FiniteField.java b/src/main/java/ru/itmo/roguelike/field/FiniteField.java index 7772a5d..1474084 100644 --- a/src/main/java/ru/itmo/roguelike/field/FiniteField.java +++ b/src/main/java/ru/itmo/roguelike/field/FiniteField.java @@ -10,8 +10,7 @@ import java.util.*; import java.util.stream.Collectors; -import static ru.itmo.roguelike.field.FiniteField.TileSymbol.BEDROCK; -import static ru.itmo.roguelike.field.FiniteField.TileSymbol.PLAYER; +import static ru.itmo.roguelike.field.FiniteField.TileSymbol.*; /** @@ -43,11 +42,11 @@ */ public class FiniteField implements Field { private final Player player; + private final Map> defaultEntities = new HashMap<>(); + private final List stones = new ArrayList<>(); private Tile[][] field; private IntCoordinate defaultPlayerPos; - private final Map> defaultEntities = new HashMap<>(); - /** * Read field from a file */ @@ -67,13 +66,16 @@ public FiniteField(Path file, Player player) { String s = lines.get(row); for (int column = 0; column < s.length(); column++) { - char c = s.charAt(column); - result[column] = createTile(c, row, column); - updateActors(result[column].getX(), result[column].getY(), c); + TileSymbol ts = TileSymbol.fromChar(s.charAt(column)); + result[column] = createTile(ts, row, column); + if (ts == STONE) { + stones.add(result[column]); + } + updateActors(result[column].getX(), result[column].getY(), ts); } for (int i = s.length(); i < width; i++) { - result[i] = createTile(BEDROCK.symbol, row, i); + result[i] = createTile(BEDROCK, row, i); } field[row] = result; @@ -84,25 +86,24 @@ public FiniteField(Path file, Player player) { } } - private static Tile createTile(char c, int x, int y) { - Tile result = new Tile(TileSymbol.fromChar(c).value); + private static Tile createTile(TileSymbol ts, int x, int y) { + Tile result = new Tile(ts.value); result.setXY(x, y); return result; } - private void updateActors(int x, int y, char c) { + private void updateActors(int x, int y, TileSymbol symbol) { IntCoordinate coordinate = new IntCoordinate(x, y); - TileSymbol symbol = TileSymbol.fromChar(c); if (symbol == PLAYER) { defaultPlayerPos = coordinate; } symbol.getEntityClass().ifPresent( - cls -> { - defaultEntities.putIfAbsent(cls, new ArrayList<>()); - defaultEntities.get(cls).add(coordinate); - } + cls -> { + defaultEntities.putIfAbsent(cls, new ArrayList<>()); + defaultEntities.get(cls).add(coordinate); + } ); } @@ -113,6 +114,7 @@ public void reInit(IntCoordinate coordinate) { @Override public void resetEntities() { defaultEntities.forEach((cls, poss) -> poss.forEach(pos -> Spawner.spawners.get(cls).accept(player, pos))); + stones.forEach(b -> b.reInit(STONE.value)); } @Override @@ -153,11 +155,21 @@ public enum TileSymbol { private final char symbol; private final float value; + TileSymbol(char symbol, float value) { this.symbol = symbol; this.value = value; } + public static TileSymbol fromChar(char symbol) { + for (TileSymbol ts : values()) { + if (ts.symbol == symbol) { + return ts; + } + } + return BEDROCK; + } + public Optional getEntityClass() { switch (this) { case ZOMBIE: @@ -182,14 +194,5 @@ public Optional getEntityClass() { return Optional.empty(); } } - - public static TileSymbol fromChar(char symbol) { - for (TileSymbol ts : values()) { - if (ts.symbol == symbol) { - return ts; - } - } - return BEDROCK; - } } } diff --git a/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java b/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java index fc088cb..74e48ae 100644 --- a/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java +++ b/src/main/java/ru/itmo/roguelike/field/RandomFieldSpawner.java @@ -18,6 +18,20 @@ public class RandomFieldSpawner { private static final Map probs = new HashMap<>(); private static final int sumProbs; + static { + probs.put(ZOMBIE, 100); + probs.put(SLIME, 80); + probs.put(MED_KIT_S, 20); + probs.put(MED_KIT_M, 10); + probs.put(MED_KIT_B, 5); + probs.put(TELEPORT, 10); + probs.put(TUNIC, 1); + probs.put(JACKET, 5); + probs.put(COWL, 2); + + sumProbs = probs.values().stream().reduce(Integer::sum).orElse(0); + } + private final Random random; private Player player; @@ -26,6 +40,17 @@ public RandomFieldSpawner(Player player) { this.random = new Random(); } + private static Spawner.EntityClass getRandomClass() { + int idx = MathUtils.getRandomInt(0, sumProbs); + for (Map.Entry cls : probs.entrySet()) { + idx -= cls.getValue(); + if (idx <= 0) { + return cls.getKey(); + } + } + return null; + } + public void setPlayer(Player player) { this.player = player; } @@ -53,29 +78,4 @@ public void addNewPosition(Tile tile) { Spawner.spawners.get(getRandomClass()).accept(player, new IntCoordinate(tile.getX(), tile.getY())); } } - - static { - probs.put(ZOMBIE, 100); - probs.put(SLIME, 80); - probs.put(MED_KIT_S, 20); - probs.put(MED_KIT_M, 10); - probs.put(MED_KIT_B, 5); - probs.put(TELEPORT, 10); - probs.put(TUNIC, 1); - probs.put(JACKET, 5); - probs.put(COWL, 2); - - sumProbs = probs.values().stream().reduce(Integer::sum).orElse(0); - } - - private static Spawner.EntityClass getRandomClass() { - int idx = MathUtils.getRandomInt(0, sumProbs); - for (Map.Entry cls : probs.entrySet()) { - idx -= cls.getValue(); - if (idx <= 0) { - return cls.getKey(); - } - } - return null; - } } diff --git a/src/main/java/ru/itmo/roguelike/field/Spawner.java b/src/main/java/ru/itmo/roguelike/field/Spawner.java index 23500fd..6bb1dbd 100644 --- a/src/main/java/ru/itmo/roguelike/field/Spawner.java +++ b/src/main/java/ru/itmo/roguelike/field/Spawner.java @@ -50,6 +50,6 @@ public final class Spawner { } public enum EntityClass { - ZOMBIE, SLIME, MED_KIT_S, MED_KIT_M, MED_KIT_B, TELEPORT, TUNIC, JACKET, COWL; + ZOMBIE, SLIME, MED_KIT_S, MED_KIT_M, MED_KIT_B, TELEPORT, TUNIC, JACKET, COWL } } diff --git a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java index 0f3faa8..a519980 100644 --- a/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/gamemanager/GameManager.java @@ -67,6 +67,15 @@ public GameManager( this.eventManager = eventManager; } + private static void deleteSave() { + try { + Files.deleteIfExists(Paths.get(GameSettings.getSaveFileName())); + } catch (IOException e) { + e.printStackTrace(); + System.exit(1); + } + } + public void reset() { player.reborn(); field.setDefaultPosToPlayer(player); @@ -264,13 +273,4 @@ public synchronized void process() { } } - private static void deleteSave() { - try { - Files.deleteIfExists(Paths.get(GameSettings.getSaveFileName())); - } catch (IOException e) { - e.printStackTrace(); - System.exit(1); - } - } - } diff --git a/src/main/java/ru/itmo/roguelike/render/Camera.java b/src/main/java/ru/itmo/roguelike/render/Camera.java index 8282ad1..9f3912d 100644 --- a/src/main/java/ru/itmo/roguelike/render/Camera.java +++ b/src/main/java/ru/itmo/roguelike/render/Camera.java @@ -4,7 +4,6 @@ import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.FloatCoordinate; import ru.itmo.roguelike.utils.IntCoordinate; -import ru.itmo.roguelike.utils.Pair; import javax.inject.Singleton; import java.util.Optional; diff --git a/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java b/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java index e49a450..78dfff1 100644 --- a/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java +++ b/src/main/java/ru/itmo/roguelike/render/drawable/DrawableDescriptor.java @@ -2,7 +2,6 @@ import ru.itmo.roguelike.utils.BoundingBox; import ru.itmo.roguelike.utils.IntCoordinate; -import ru.itmo.roguelike.utils.Pair; import java.awt.*; diff --git a/src/main/java/ru/itmo/roguelike/render/particles/Splash.java b/src/main/java/ru/itmo/roguelike/render/particles/Splash.java index 02670ee..be8de4c 100644 --- a/src/main/java/ru/itmo/roguelike/render/particles/Splash.java +++ b/src/main/java/ru/itmo/roguelike/render/particles/Splash.java @@ -12,6 +12,25 @@ public class Splash extends Particle { private static final int TTL = 10; + private Splash(IntCoordinate spawnPos, int intensity, Color color) { + this(spawnPos, intensity, color, (int time) -> time + 20); + } + + private Splash(IntCoordinate spawnPos, int intensity, Color color, IntUnaryOperator getMaxDelta) { + super(spawnPos); + drawableDescriptor.setColor(color); + setDrawer((Graphics2D graphics, int x, int y) -> { + for (int i = 0; i < intensity; i++) { + int size = Math.min(TTL + 1 - time, 5); + int delta = getMaxDelta.applyAsInt(time); + graphics.fillOval( + x + MathUtils.getRandomInt(0, 1 + delta * 2) - delta, + y + MathUtils.getRandomInt(0, 1 + delta * 2) - delta, + size, size); + } + }); + } + /** * Fabric method to create Splash effect and properly register it in internal drawing system. * @@ -40,25 +59,6 @@ public static void createSplashAndRegister( new Splash(spawnPos, intensity, color, getMaxDelta); } - private Splash(IntCoordinate spawnPos, int intensity, Color color) { - this(spawnPos, intensity, color, (int time) -> time + 20); - } - - private Splash(IntCoordinate spawnPos, int intensity, Color color, IntUnaryOperator getMaxDelta) { - super(spawnPos); - drawableDescriptor.setColor(color); - setDrawer((Graphics2D graphics, int x, int y) -> { - for (int i = 0; i < intensity; i++) { - int size = Math.min(TTL + 1 - time, 5); - int delta = getMaxDelta.applyAsInt(time); - graphics.fillOval( - x + MathUtils.getRandomInt(0, 1 + delta * 2) - delta, - y + MathUtils.getRandomInt(0, 1 + delta * 2) - delta, - size, size); - } - }); - } - @Override public int getTTL() { return TTL; diff --git a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java index 1f563fc..fe5539b 100644 --- a/src/main/java/ru/itmo/roguelike/settings/GameSettings.java +++ b/src/main/java/ru/itmo/roguelike/settings/GameSettings.java @@ -3,7 +3,6 @@ import ru.itmo.roguelike.LaunchWindow; import javax.swing.filechooser.FileNameExtensionFilter; -import java.nio.file.Path; import java.nio.file.Paths; /** @@ -25,6 +24,27 @@ public final class GameSettings { public static String MAP_FILE_NAME = null; public static String SAVE_FILE_NAME = null; + public static LaunchWindow.Configuration MAP_FILE_CHOOSE = new LaunchWindow.Configuration( + "Auto-generate map", + "Load map from file", + "SELECT MAP FILE", + "LOAD", + new FileNameExtensionFilter("MAP FILE", map_file_extension) + ); + public static LaunchWindow.Configuration SAVE_FILE_CHOOSE = new LaunchWindow.Configuration( + "New game", + "Load game save", + "SELECT SAVE FILE", + "LOAD", + new FileNameExtensionFilter("GAME SAVE FILE", map_file_extension + save_file_add_extension) + ); + public static LaunchWindow.Configuration ON_EXIT_SAVE_FILE_CHOOSE = new LaunchWindow.Configuration( + "Exit", + "Save and exit", + "SELECT SAVE FILE", + "SAVE", + new FileNameExtensionFilter("GAME SAVE FILE", map_file_extension + save_file_add_extension) + ); private GameSettings() { } @@ -49,28 +69,4 @@ public final static class ImagePath { public static final String MEDIUM_ARMOR = "pic/medium_armor.png"; public static final String LIGHT_ARMOR = "pic/light_armor.png"; } - - public static LaunchWindow.Configuration MAP_FILE_CHOOSE = new LaunchWindow.Configuration( - "Auto-generate map", - "Load map from file", - "SELECT MAP FILE", - "LOAD", - new FileNameExtensionFilter("MAP FILE", map_file_extension) - ); - - public static LaunchWindow.Configuration SAVE_FILE_CHOOSE = new LaunchWindow.Configuration( - "New game", - "Load game save", - "SELECT SAVE FILE", - "LOAD", - new FileNameExtensionFilter("GAME SAVE FILE", map_file_extension + save_file_add_extension) - ); - - public static LaunchWindow.Configuration ON_EXIT_SAVE_FILE_CHOOSE = new LaunchWindow.Configuration( - "Exit", - "Save and exit", - "SELECT SAVE FILE", - "SAVE", - new FileNameExtensionFilter("GAME SAVE FILE", map_file_extension + save_file_add_extension) - ); } diff --git a/test.mapfile b/test.mapfile index 775b71c..ed14d6e 100644 --- a/test.mapfile +++ b/test.mapfile @@ -4,7 +4,7 @@ #----####### #mMn*# #-A4a####### -#------z---# +#----zzzz--# ############ From 6e1eed74200b69bc33d5be51b27448012449f0f6 Mon Sep 17 00:00:00 2001 From: Alexander Chori Date: Tue, 9 Jun 2020 19:13:37 +0300 Subject: [PATCH 43/45] Spawn fireball at center of Actor --- .../itmo/roguelike/characters/attack/FireballAttack.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java b/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java index edacf72..d25a448 100644 --- a/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java +++ b/src/main/java/ru/itmo/roguelike/characters/attack/FireballAttack.java @@ -7,8 +7,10 @@ import ru.itmo.roguelike.settings.GameSettings; import ru.itmo.roguelike.utils.FileUtils; import ru.itmo.roguelike.utils.FuncUtils; +import ru.itmo.roguelike.utils.IntCoordinate; import java.awt.*; +import java.awt.geom.Rectangle2D; import java.io.DataInputStream; public class FireballAttack extends Attack { @@ -33,7 +35,11 @@ public static FireballAttack fromFile(DataInputStream inputStream, Player p) { public void runAttack(Field field) { Fireball fireball; fireball = new Fireball(direction, actor); - fireball.setPosition(actor.getPosition()); + + Rectangle2D actorBBox = actor.getShapeAtPosition().getBounds2D(); + IntCoordinate position = new IntCoordinate((int) actorBBox.getCenterX() - 5, (int) actorBBox.getCenterY() - 5); + + fireball.setPosition(position); } @Override From d6097c434141a04b86c83d780a4e313150b0b3ee Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Tue, 16 Jun 2020 20:29:36 +0300 Subject: [PATCH 44/45] fix gitignore --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index f8ad79b..f9ac8a3 100644 --- a/.gitignore +++ b/.gitignore @@ -116,3 +116,6 @@ fabric.properties # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* + +# Save files +*.mapfile_save \ No newline at end of file From b40f969a5051ad700b10d73e5ac0929e9bda054d Mon Sep 17 00:00:00 2001 From: Eugene Kravchenko Date: Sat, 4 Jul 2020 21:15:25 +0300 Subject: [PATCH 45/45] fix duplication --- .../ru/itmo/roguelike/characters/Player.java | 9 +--- .../mobs/strategy/BossBehavior.java | 24 +---------- .../manager/actormanager/BossManager.java | 42 +++++++++---------- .../itmo/roguelike/utils/FloatCoordinate.java | 10 ++--- 4 files changed, 29 insertions(+), 56 deletions(-) diff --git a/src/main/java/ru/itmo/roguelike/characters/Player.java b/src/main/java/ru/itmo/roguelike/characters/Player.java index 94429ab..de4599c 100644 --- a/src/main/java/ru/itmo/roguelike/characters/Player.java +++ b/src/main/java/ru/itmo/roguelike/characters/Player.java @@ -7,10 +7,6 @@ import ru.itmo.roguelike.characters.inventory.Droppable; import ru.itmo.roguelike.characters.inventory.Inventory; import ru.itmo.roguelike.characters.inventory.Usable; -import ru.itmo.roguelike.characters.mobs.Enemy; -import ru.itmo.roguelike.characters.mobs.PersonX; -import ru.itmo.roguelike.characters.mobs.strategy.AggressiveBehavior; -import ru.itmo.roguelike.characters.mobs.strategy.MobWithTarget; import ru.itmo.roguelike.characters.movement.Mover; import ru.itmo.roguelike.field.Field; import ru.itmo.roguelike.field.TileType; @@ -53,6 +49,7 @@ public class Player extends Actor { armor.renderInInventory(g, x - 20, y - 20, 40, 40); } }); + private final BossManager bossManager; private IntCoordinate moveDirection = IntCoordinate.getZeroPosition(); private boolean doAttack = false; private int level; @@ -60,8 +57,6 @@ public class Player extends Actor { private long lastInventoryWarning = GameManager.GLOBAL_TIME; private long lastDroppableWarning = GameManager.GLOBAL_TIME; - private final BossManager bossManager; - @Inject public Player(@NotNull EventManager eventManager, @NotNull BossManager bossManager) { this.eventManager = eventManager; @@ -293,7 +288,7 @@ public void addExp(float exp) { if (levelGain > 0) { if (level <= 2 && level + levelGain > 2) { - bossManager.createBoss(); + bossManager.createBoss(); } level += levelGain; diff --git a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java index b157ccd..a6b241e 100644 --- a/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java +++ b/src/main/java/ru/itmo/roguelike/characters/mobs/strategy/BossBehavior.java @@ -1,27 +1,5 @@ package ru.itmo.roguelike.characters.mobs.strategy; -import ru.itmo.roguelike.field.Field; -import ru.itmo.roguelike.utils.IntCoordinate; +public class BossBehavior extends AggressiveBehavior { -public class BossBehavior extends MobWithTarget { - private final Field field; - - public BossBehavior(Field field) { - this.field = field; - } - - @Override - public IntCoordinate getPath() { - if (target == null) { - return IntCoordinate.getZeroPosition(); - } - - final IntCoordinate diff = new IntCoordinate(target.getPosition()); - diff.substract(self.getPosition()); - if (diff.lenL2() < self.getRadius()) { - return diff.signum(); - } - - return IntCoordinate.getZeroPosition(); - } } diff --git a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java index e0fb2bd..8ad88e6 100644 --- a/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java +++ b/src/main/java/ru/itmo/roguelike/manager/actormanager/BossManager.java @@ -16,6 +16,26 @@ public class BossManager { private GameManager gameManager; + @NotNull + private static IntCoordinate getFreeBossCoordinate(@NotNull Field field, int x, int y) { + final int cellSize = 100; + + for (int k = 2; ; k++) { + for (int j = -k; j < k; j++) { + for (IntCoordinate coordinate : new IntCoordinate[]{ + new IntCoordinate(x + k * cellSize, y + j * cellSize), + new IntCoordinate(x - k * cellSize, y + j * cellSize), + new IntCoordinate(x + j * cellSize, y + k * cellSize), + new IntCoordinate(x + j * cellSize, y - k * cellSize), + }) { + if (!field.getTileType(coordinate).isSolid()) { + return new IntCoordinate(coordinate); + } + } + } + } + } + public void setGameManager(GameManager gameManager) { this.gameManager = gameManager; } @@ -34,29 +54,9 @@ public void createBoss() { Enemy.builder(PersonX::new) .setPosition(bossPosition) - .setBehavior(MobWithTarget.builder(() -> new BossBehavior(field))) + .setBehavior(MobWithTarget.builder(() -> new BossBehavior())) .setRadius(10000000) .setTarget(player) .createAndRegister(); } - - @NotNull - private static IntCoordinate getFreeBossCoordinate(@NotNull Field field, int x, int y) { - final int cellSize = 100; - - for (int k = 2; ; k++) { - for (int j = -k; j < k; j++) { - for (IntCoordinate coordinate : new IntCoordinate[]{ - new IntCoordinate(x + k * cellSize, y + j * cellSize), - new IntCoordinate(x - k * cellSize, y + j * cellSize), - new IntCoordinate(x + j * cellSize, y + k * cellSize), - new IntCoordinate(x + j * cellSize, y - k * cellSize), - }) { - if (!field.getTileType(coordinate).isSolid()) { - return new IntCoordinate(coordinate); - } - } - } - } - } } diff --git a/src/main/java/ru/itmo/roguelike/utils/FloatCoordinate.java b/src/main/java/ru/itmo/roguelike/utils/FloatCoordinate.java index 13d21d8..3a8e9dc 100644 --- a/src/main/java/ru/itmo/roguelike/utils/FloatCoordinate.java +++ b/src/main/java/ru/itmo/roguelike/utils/FloatCoordinate.java @@ -29,6 +29,10 @@ public static FloatCoordinate getZeroPosition() { return new FloatCoordinate(0, 0); } + public static FloatCoordinate fromAngle(float angle) { + return new FloatCoordinate((float) Math.cos(angle), (float) Math.sin(angle)); + } + public float getX() { return posX; } @@ -79,15 +83,11 @@ public float lenL1() { /** * @return angle in degrees (in range [-pi, pi]) between {@code new FloatCoordinate(1, 0)} - * */ + */ public float toAngle() { return (float) Math.atan2(posY, posX); } - public static FloatCoordinate fromAngle(float angle) { - return new FloatCoordinate((float) Math.cos(angle), (float) Math.sin(angle)); - } - @Override public String toString() { return String.format("FCoord[%f, %f]", posX, posY);