From a4ccee71ed11366b530df626c6904af5cee4e97b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Tue, 13 May 2014 02:36:17 +0200 Subject: [PATCH] Balancing, mob self.-walk --- build/Makefile | 7 ++++++- build/stub.jar | Bin 3123672 -> 3124613 bytes src/mightypork/gamecore/util/math/Calc.java | 11 +++++++---- src/mightypork/gamecore/util/math/Range.java | 6 ++---- .../gamecore/util/math/algo/Sides.java | 8 ++++++++ .../rogue/screens/game/ScreenGame.java | 6 +++--- src/mightypork/rogue/world/entity/Entity.java | 2 -- .../rogue/world/entity/EntityModule.java | 1 - .../rogue/world/entity/impl/BossRatAi.java | 7 ++++--- .../rogue/world/entity/impl/BrownRatAi.java | 7 ++++--- .../world/entity/impl/EntityBossRat.java | 2 +- .../world/entity/impl/EntityBrownRat.java | 15 +++++---------- .../world/entity/impl/EntityGrayRat.java | 12 ++++++------ .../rogue/world/entity/impl/GrayRatAi.java | 7 ++++--- .../rogue/world/entity/impl/MonsterAi.java | 10 ++++++++-- .../rogue/world/gen/LevelGenerator.java | 16 ++++++++++++---- .../rogue/world/gen/ScratchMap.java | 2 +- .../rogue/world/gen/WorldCreator.java | 2 +- .../rogue/world/gen/rooms/TreasureRoom.java | 2 +- src/mightypork/rogue/world/item/Item.java | 2 -- .../rogue/world/item/ItemModel.java | 4 +--- src/mightypork/rogue/world/level/Level.java | 9 ++++----- src/mightypork/rogue/world/tile/Tile.java | 3 --- .../world/tile/impl/TileBaseSecretDoor.java | 3 ++- 24 files changed, 80 insertions(+), 64 deletions(-) diff --git a/build/Makefile b/build/Makefile index fa12864..1a089a4 100644 --- a/build/Makefile +++ b/build/Makefile @@ -22,7 +22,9 @@ $(OUT): $(IN) $(STUB) unzip $(STUB) -d $(TMP_DIR) - # export + find $(TMP_DIR) -name "*.xcf" -type f -delete + + # export (cd $(TMP_DIR); zip -r9 ./pack.zip .) mv -f $(TMP_DIR)/pack.zip $(OUT) chmod +x $(OUT) @@ -34,5 +36,8 @@ $(OUT): $(IN) $(STUB) run: $(OUT) java -jar $(OUT) +clean: + rm -rf $(OUT) + deploy: $(OUT) cp -f $(OUT) /home/ondra/Dokumenty/Dropbox/Public/Rogue diff --git a/build/stub.jar b/build/stub.jar index 066fcacca653f89dec6d314326043025989b6e09..35b8602eee79c6c889390dbb130e97c8c68048b8 100644 GIT binary patch delta 1074 zcmV-21kL-{)4lGgaw2Kga?EOgb9QSgbRcWgbjoagb#!egb{=i zgcF1mgcXDqgcpPugc*bygd2n$gdKz)gdc<;gdv0?gd>C`ge8O~geQb3gein7ge!zB zv@KfVe****000080LBchMEkN-x*G!k0Bi*S00{sb08&LkL`_95ZDdtc2>=6QTX9ok zTX9o$cnbgl1n2_*00ig*003oF+iu%P41L#E5C~8>+Soy|`_wnrm#hnCok}qR^vSeD z%d;NM2y?0He*KaoC7YlRzKqB@X*v57 zJkw8Ua0q*83cb=7;OAt#+A~=x2?xj8ovk|!^d9*5fnGtV$3gK^tdekJc$B`#4P8!G z{AgyirYfM|DyaygGhxSxH*m1Fz7`}jf3pQ)S6gI-ZvaJ&f&F#XyZ>doTF+PiJixNpJVLqI z7PCc`-A!QeQxE~+Uvxbuo&eajsyT)Whfb4x$EsH+o-Pl}qK~scJ0_>OAh1Uke|D4G zeN?)>Ri^(lVZdE>KY`i&W5zD~a{@&)Tm(%_2M|vN5w@O5WSMM7BUUR96_1P)|7zG@ptX@vgye}X zdyB4~^bW1eINcc1lSlcqC^j!;e-7+uJ}u`jIj`s$^{Jond?9D%1-?Zt;6oY)iF}vH zvuzrt)?&w>#;Aj;P-YB9zpQP=;{5Slo~Yg`qc~qet9Kz~Waq5AfbaKe)FJcm>5jCW zz{;oTY?0qU{*=C^+cGtnQh5{E(Ad)3l|*n&hXDH+0(W&}uU`p@7m`>jVn?rgkry&C zP{~+Ip6qDaR&hd-c~prPgC~l|NP7zm`q&e?e%(K9_ozRLJPS_$k%agf+fKk*eknjp zCccHgN%&h-LBjJ*DS_pEQb^_j2VMNph7`KHd#B!kUtxWmyZ8^6jrA=Ymzel14u^u` zEw_T=E<(qbVDv2pHUIz!0LBchMEkN-x*G!k0Bi*S00{sX00000009610JMQv;w=DD sML|SOMJ{b*Ra6B417lm4kr4zF6a@wV0000h1Sk delta 142 zcmWN^xebC)0DxhhKJdm1FT8Jk`W(U)Y>Xo~g~e|ifkjO0Xc@r9#DH>v zi`UZ^7X&HNNK7m;WXX}IK#>wQWhzvuQOBV{lNN0{xOC~!XTXpVVAh5 lws(Dsyu(Mk-uI{NTNvv{81MFhV_HT+NhQyLFpiN<_6MOpFV6q~ diff --git a/src/mightypork/gamecore/util/math/Calc.java b/src/mightypork/gamecore/util/math/Calc.java index 3022ba8..024f857 100644 --- a/src/mightypork/gamecore/util/math/Calc.java +++ b/src/mightypork/gamecore/util/math/Calc.java @@ -382,7 +382,7 @@ public class Calc { } } - private static Random rand = new Random(); + public static final Random rand = new Random(); public static double sphereSurface(double radius) @@ -670,11 +670,14 @@ public class Calc { public static int randInt(Random rand, int low, int high) { - int range = high - low + 1; - if (range < 1) range = 1; + int range = Math.abs(high - low) + 1; return low + rand.nextInt(range); } - + + public static int randInt(int low, int high) + { + return randInt(rand, low, high); + } /** * Get ordinal version of numbers (1 = 1st, 5 = 5th etc.) diff --git a/src/mightypork/gamecore/util/math/Range.java b/src/mightypork/gamecore/util/math/Range.java index c56149c..d0acf4f 100644 --- a/src/mightypork/gamecore/util/math/Range.java +++ b/src/mightypork/gamecore/util/math/Range.java @@ -19,8 +19,6 @@ public class Range { private double min = 0; private double max = 1; - private static Random rand = new Random(); - /** * Implicit range constructor 0-1 @@ -76,7 +74,7 @@ public class Range { */ public int randInt() { - return (int) (Math.round(min) + rand.nextInt((int) (Math.round(max) - Math.round(min)) + 1)); + return Calc.randInt(Calc.rand, (int)Math.round(min), (int)Math.round(min)); } @@ -87,7 +85,7 @@ public class Range { */ public double randDouble() { - return min + rand.nextDouble() * (max - min); + return min + Calc.rand.nextDouble() * (max - min); } diff --git a/src/mightypork/gamecore/util/math/algo/Sides.java b/src/mightypork/gamecore/util/math/algo/Sides.java index 93e773f..391e932 100644 --- a/src/mightypork/gamecore/util/math/algo/Sides.java +++ b/src/mightypork/gamecore/util/math/algo/Sides.java @@ -1,5 +1,7 @@ package mightypork.gamecore.util.math.algo; +import mightypork.gamecore.util.math.Calc; + public class Sides { @@ -67,4 +69,10 @@ public class Sides { { return (byte) (1 << (7 - i)); } + + + public static Step randomCardinal() + { + return CARDINAL_SIDES[Calc.randInt(0, 3)]; + } } diff --git a/src/mightypork/rogue/screens/game/ScreenGame.java b/src/mightypork/rogue/screens/game/ScreenGame.java index d89cf9e..327ac47 100644 --- a/src/mightypork/rogue/screens/game/ScreenGame.java +++ b/src/mightypork/rogue/screens/game/ScreenGame.java @@ -9,6 +9,7 @@ import mightypork.gamecore.gui.ActionGroup; import mightypork.gamecore.gui.screens.LayeredScreen; import mightypork.gamecore.input.KeyStroke; import mightypork.gamecore.input.Keys; +import mightypork.gamecore.util.math.Calc; import mightypork.rogue.Config; import mightypork.rogue.world.PlayerFacade; import mightypork.rogue.world.WorldProvider; @@ -28,7 +29,6 @@ public class ScreenGame extends LayeredScreen { WORLD, INV; } - private final Random rand = new Random(); private InvLayer invLayer; private HudLayer hudLayer; @@ -44,7 +44,7 @@ public class ScreenGame extends LayeredScreen { public void execute() { final PlayerFacade pl = WorldProvider.get().getPlayer(); - if (pl.isDead()) return; + if (pl.isDead() || pl.getWorld().isPaused()) return; pl.tryToEatSomeFood(); } }; @@ -147,7 +147,7 @@ public class ScreenGame extends LayeredScreen { @Override public void run() { - WorldProvider.get().createWorld(rand.nextLong()); + WorldProvider.get().createWorld(Calc.rand.nextLong()); } }); diff --git a/src/mightypork/rogue/world/entity/Entity.java b/src/mightypork/rogue/world/entity/Entity.java index 5a6bc5b..f398eec 100644 --- a/src/mightypork/rogue/world/entity/Entity.java +++ b/src/mightypork/rogue/world/entity/Entity.java @@ -34,8 +34,6 @@ public abstract class Entity implements IonObjBundled, Updateable, DelegatingCli private Level level; private final EntityModel model; - protected final Random rand = new Random(); - /** Entity ID */ private int entityId = -1; diff --git a/src/mightypork/rogue/world/entity/EntityModule.java b/src/mightypork/rogue/world/entity/EntityModule.java index aa3e523..20da1c1 100644 --- a/src/mightypork/rogue/world/entity/EntityModule.java +++ b/src/mightypork/rogue/world/entity/EntityModule.java @@ -18,7 +18,6 @@ import mightypork.gamecore.util.ion.IonObjBundled; public abstract class EntityModule implements IonObjBundled, Updateable { protected final Entity entity; - protected static final Random rand = new Random(); public EntityModule(Entity entity) diff --git a/src/mightypork/rogue/world/entity/impl/BossRatAi.java b/src/mightypork/rogue/world/entity/impl/BossRatAi.java index 3618f07..e1addde 100644 --- a/src/mightypork/rogue/world/entity/impl/BossRatAi.java +++ b/src/mightypork/rogue/world/entity/impl/BossRatAi.java @@ -1,6 +1,7 @@ package mightypork.rogue.world.entity.impl; +import mightypork.gamecore.util.math.Calc; import mightypork.rogue.world.entity.AiTimer; import mightypork.rogue.world.entity.Entity; @@ -21,21 +22,21 @@ public class BossRatAi extends GrayRatAi { { super(entity); - setAttackTime(0.6); + setAttackTime(0.7); } @Override protected int getAttackStrength() { - return 5 + rand.nextInt(4); + return Calc.randInt(5, 11); } @Override protected int getPreyAbandonDistance() { - return 15 + rand.nextInt(4); + return Calc.randInt(15, 18); } diff --git a/src/mightypork/rogue/world/entity/impl/BrownRatAi.java b/src/mightypork/rogue/world/entity/impl/BrownRatAi.java index ebc0bea..f86553c 100644 --- a/src/mightypork/rogue/world/entity/impl/BrownRatAi.java +++ b/src/mightypork/rogue/world/entity/impl/BrownRatAi.java @@ -1,6 +1,7 @@ package mightypork.rogue.world.entity.impl; +import mightypork.gamecore.util.math.Calc; import mightypork.rogue.world.entity.Entity; @@ -18,20 +19,20 @@ public class BrownRatAi extends GrayRatAi { @Override protected double getScanRadius() { - return isSleeping() ? 3 + rand.nextInt(3) : 5 + rand.nextInt(3); + return isSleeping() ? Calc.randInt(3, 5) : Calc.randInt(5, 8); } @Override protected int getAttackStrength() { - return 2 + rand.nextInt(3); + return Calc.randInt(2, 5); } @Override protected int getPreyAbandonDistance() { - return 11 + rand.nextInt(4); + return Calc.randInt(11, 14); } } diff --git a/src/mightypork/rogue/world/entity/impl/EntityBossRat.java b/src/mightypork/rogue/world/entity/impl/EntityBossRat.java index 2c24999..9459315 100644 --- a/src/mightypork/rogue/world/entity/impl/EntityBossRat.java +++ b/src/mightypork/rogue/world/entity/impl/EntityBossRat.java @@ -32,7 +32,7 @@ public class EntityBossRat extends Entity { health.setHealthMax(80); health.setHealth(80); - health.setHitCooldownTime(0.35); + health.setHitCooldownTime(0.33); } diff --git a/src/mightypork/rogue/world/entity/impl/EntityBrownRat.java b/src/mightypork/rogue/world/entity/impl/EntityBrownRat.java index 5b2e3b7..091e17e 100644 --- a/src/mightypork/rogue/world/entity/impl/EntityBrownRat.java +++ b/src/mightypork/rogue/world/entity/impl/EntityBrownRat.java @@ -28,11 +28,11 @@ public class EntityBrownRat extends Entity { addModule("ai", ai); pos.addMoveListener(ai); - pos.setStepTime(0.39); // faster than gray rat + pos.setStepTime(0.38); // faster than gray rat setDespawnDelay(1); - health.setHealthMax(14); - health.setHealth(Calc.randInt(rand, 8, 14)); // tougher to kill + health.setHealthMax(20); + health.setHealth(Calc.randInt(12, 20)); // tougher to kill health.setHitCooldownTime(0.35); // a bit longer than gray rat } @@ -67,17 +67,12 @@ public class EntityBrownRat extends Entity { { // drop rat stuff - if (rand.nextInt(7) == 0) { - getLevel().dropNear(getCoord(), Items.BONE.createItemDamaged(10)); - return; - } - - if (rand.nextInt(3) == 0) { + if (Calc.rand.nextInt(2) == 0) { getLevel().dropNear(getCoord(), Items.MEAT.createItem()); return; } - if (rand.nextInt(6) == 0) { + if (Calc.rand.nextInt(4) == 0) { getLevel().dropNear(getCoord(), Items.CHEESE.createItem()); return; } diff --git a/src/mightypork/rogue/world/entity/impl/EntityGrayRat.java b/src/mightypork/rogue/world/entity/impl/EntityGrayRat.java index 1181391..aaf79bc 100644 --- a/src/mightypork/rogue/world/entity/impl/EntityGrayRat.java +++ b/src/mightypork/rogue/world/entity/impl/EntityGrayRat.java @@ -32,7 +32,7 @@ public class EntityGrayRat extends Entity { setDespawnDelay(1); health.setHealthMax(6); - health.setHealth(Calc.randInt(rand, 4, 6)); + health.setHealth(Calc.randInt(4, 6)); health.setHitCooldownTime(0.3); } @@ -67,18 +67,18 @@ public class EntityGrayRat extends Entity { { // drop rat stuff - if (rand.nextInt(4) == 0) { + if (Calc.rand.nextInt(6) == 0) { getLevel().dropNear(getCoord(), Items.BONE.createItemDamaged(40)); return; } - if (rand.nextInt(6) == 0) { - getLevel().dropNear(getCoord(), Items.MEAT.createItem()); + if (Calc.rand.nextInt(3) == 0) { + getLevel().dropNear(getCoord(), Items.CHEESE.createItem()); return; } - if (rand.nextInt(3) == 0) { - getLevel().dropNear(getCoord(), Items.CHEESE.createItem()); + if (Calc.rand.nextInt(3) == 0) { + getLevel().dropNear(getCoord(), Items.MEAT.createItem()); return; } } diff --git a/src/mightypork/rogue/world/entity/impl/GrayRatAi.java b/src/mightypork/rogue/world/entity/impl/GrayRatAi.java index 30d43b6..000d38d 100644 --- a/src/mightypork/rogue/world/entity/impl/GrayRatAi.java +++ b/src/mightypork/rogue/world/entity/impl/GrayRatAi.java @@ -1,6 +1,7 @@ package mightypork.rogue.world.entity.impl; +import mightypork.gamecore.util.math.Calc; import mightypork.rogue.world.entity.Entity; @@ -19,7 +20,7 @@ public class GrayRatAi extends MonsterAi { @Override protected double getScanRadius() { - return isSleeping() ? 2 + rand.nextInt(3) : 4 + rand.nextInt(3); + return isSleeping() ? Calc.randInt(2, 4) : Calc.randInt(4, 6); } @@ -33,14 +34,14 @@ public class GrayRatAi extends MonsterAi { @Override protected int getAttackStrength() { - return 1 + (rand.nextInt(5) == 0 ? 1 : 0); + return 1 + (Calc.rand.nextInt(5) == 0 ? 1 : 0); } @Override protected int getPreyAbandonDistance() { - return 8 + rand.nextInt(4); + return Calc.randInt(8, 11); } diff --git a/src/mightypork/rogue/world/entity/impl/MonsterAi.java b/src/mightypork/rogue/world/entity/impl/MonsterAi.java index f31caf6..14c4921 100644 --- a/src/mightypork/rogue/world/entity/impl/MonsterAi.java +++ b/src/mightypork/rogue/world/entity/impl/MonsterAi.java @@ -6,7 +6,9 @@ import java.util.List; import mightypork.gamecore.util.annot.DefaultImpl; import mightypork.gamecore.util.ion.IonBundle; +import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.algo.Coord; +import mightypork.gamecore.util.math.algo.Sides; import mightypork.gamecore.util.math.algo.Step; import mightypork.gamecore.util.math.algo.pathfinding.PathFinder; import mightypork.gamecore.util.math.algo.pathfinding.PathFinderProxy; @@ -205,6 +207,10 @@ public class MonsterAi extends EntityModule implements EntityMoveListener { if (noDoorPath == null) return; // cant reach, give up startChasing(prey); + } else { + if(Calc.rand.nextBoolean()) { + entity.pos.addStep(Sides.randomCardinal()); + } } } @@ -317,14 +323,14 @@ public class MonsterAi extends EntityModule implements EntityMoveListener { @DefaultImpl protected double getScanRadius() { - return sleeping ? 1 + rand.nextInt(3) : 4 + rand.nextInt(4); // For override + return sleeping ? Calc.randInt(1, 3) : Calc.randInt(4, 8); // For override } @DefaultImpl protected int getPreyAbandonDistance() { - return 5 + rand.nextInt(4); // For override + return Calc.randInt(5, 8); // For override } diff --git a/src/mightypork/rogue/world/gen/LevelGenerator.java b/src/mightypork/rogue/world/gen/LevelGenerator.java index cdd6961..8a7fa91 100644 --- a/src/mightypork/rogue/world/gen/LevelGenerator.java +++ b/src/mightypork/rogue/world/gen/LevelGenerator.java @@ -43,7 +43,7 @@ public class LevelGenerator { if (rand.nextInt(6) > 0) map.addRoom(Rooms.DEAD_END, false); } - for (int i = 0; i < Calc.randInt(rand, 1, level / 3); i++) { + for (int i = 0; i < Calc.randInt(rand, 1, (int)Math.ceil(level / 2D)); i++) { map.addRoom(Rooms.TREASURE, false); } @@ -86,13 +86,13 @@ public class LevelGenerator { } if (level == 4) { - map.putItemInMap(Items.HAMMER.createItemDamaged(60), 100); + map.putItemInMap(Items.HAMMER.createItemDamaged(40), 100); } // entities - random rats - for (int i = 0; i < Calc.randInt(rand, (int) (3 + level * 1.5), 3 + level * 3); i++) { + for (int i = 0; i < Calc.randInt(rand, 2 + level * 2, 5 + level * 3); i++) { Entity e; if (level > 2 && rand.nextInt(level - 2 + 1) != 0) { @@ -101,7 +101,15 @@ public class LevelGenerator { e = Entities.RAT_GRAY.createEntity(); } - map.putEntityInMap(e, 20); + map.putEntityInMap(e, 30); + + if(rand.nextInt(6+level/2)==0) { + map.putItemInMap(Items.CHEESE.createItem(), 10); + } + + if(rand.nextInt(6)==0) { + map.putItemInMap(Items.MEAT.createItem(), 10); + } } diff --git a/src/mightypork/rogue/world/gen/ScratchMap.java b/src/mightypork/rogue/world/gen/ScratchMap.java index e3fb033..733781e 100644 --- a/src/mightypork/rogue/world/gen/ScratchMap.java +++ b/src/mightypork/rogue/world/gen/ScratchMap.java @@ -639,7 +639,7 @@ public class ScratchMap { { if (!isIn(pos)) return false; - if (pos.dist(enterPoint) < 5) return false; // protected distance. + if (pos.dist(enterPoint) < 4) return false; // protected distance. final Tile t = getTile(pos); if (!t.isWalkable()) return false; diff --git a/src/mightypork/rogue/world/gen/WorldCreator.java b/src/mightypork/rogue/world/gen/WorldCreator.java index 3f0c9fd..9b2f0b8 100644 --- a/src/mightypork/rogue/world/gen/WorldCreator.java +++ b/src/mightypork/rogue/world/gen/WorldCreator.java @@ -8,7 +8,7 @@ import mightypork.rogue.world.World; public class WorldCreator { - public static final Random rand = new Random(); + public static Random rand = new Random(); public static World createWorld(long seed) diff --git a/src/mightypork/rogue/world/gen/rooms/TreasureRoom.java b/src/mightypork/rogue/world/gen/rooms/TreasureRoom.java index 49fb4fc..49875b0 100644 --- a/src/mightypork/rogue/world/gen/rooms/TreasureRoom.java +++ b/src/mightypork/rogue/world/gen/rooms/TreasureRoom.java @@ -27,7 +27,7 @@ public class TreasureRoom extends SecretRoom { map.putItemInArea(Items.ROCK.createItemDamaged(30), min, max, 50); } - for (int i = 0; i < Calc.randInt(rand, 0, 2); i++) { + for (int i = 0; i < Calc.randInt(rand, 0, 3); i++) { map.putItemInArea(Items.MEAT.createItem(), min, max, 50); } diff --git a/src/mightypork/rogue/world/item/Item.java b/src/mightypork/rogue/world/item/Item.java index e3dc59b..93edba7 100644 --- a/src/mightypork/rogue/world/item/Item.java +++ b/src/mightypork/rogue/world/item/Item.java @@ -21,8 +21,6 @@ public abstract class Item implements IonObjBlob { private int amount = 1; private int uses = 1; - protected static final Random rand = new Random(); - public Item(ItemModel model) { diff --git a/src/mightypork/rogue/world/item/ItemModel.java b/src/mightypork/rogue/world/item/ItemModel.java index 86774da..81f45eb 100644 --- a/src/mightypork/rogue/world/item/ItemModel.java +++ b/src/mightypork/rogue/world/item/ItemModel.java @@ -20,8 +20,6 @@ public final class ItemModel { public final int id; public final Class itemClass; - public static final Random rand = new Random(); - public ItemModel(int id, Class item) { @@ -68,7 +66,7 @@ public final class ItemModel { public Item createItemDamaged(int minimalHealthPercent) { final Item item = createItem(); - item.setRemainingUses(Calc.randInt(rand, (int) Math.ceil(item.getMaxUses() * (minimalHealthPercent / 100D)), item.getMaxUses())); + item.setRemainingUses(Calc.randInt((int) Math.ceil(item.getMaxUses() * (minimalHealthPercent / 100D)), item.getMaxUses())); return item; } } diff --git a/src/mightypork/rogue/world/level/Level.java b/src/mightypork/rogue/world/level/Level.java index 17a15cd..bcdaffc 100644 --- a/src/mightypork/rogue/world/level/Level.java +++ b/src/mightypork/rogue/world/level/Level.java @@ -14,6 +14,7 @@ import mightypork.gamecore.util.ion.IonBundle; import mightypork.gamecore.util.ion.IonInput; import mightypork.gamecore.util.ion.IonObjBinary; import mightypork.gamecore.util.ion.IonOutput; +import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.algo.Coord; import mightypork.gamecore.util.math.algo.Sides; import mightypork.gamecore.util.math.algo.Step; @@ -98,8 +99,6 @@ public class Level implements BusAccess, Updateable, DelegatingClient, Toggleabl } }; - private static final Random rand = new Random(); - public static final int ION_MARK = 53; private static final Comparator ENTITY_RENDER_CMP = new EntityRenderComparator(); @@ -361,13 +360,13 @@ public class Level implements BusAccess, Updateable, DelegatingClient, Toggleabl // closer for (int i = 0; i < 20; i++) { - final Coord c = pos.add(-1 + rand.nextInt(3), -1 + rand.nextInt(3)); + final Coord c = pos.add(Calc.randInt(-1, 1), Calc.randInt(-1, 1)); if (addEntity(entity, c)) return true; } // further for (int i = 0; i < 20; i++) { - final Coord c = pos.add(-2 + rand.nextInt(5), -2 + rand.nextInt(5)); + final Coord c = pos.add(Calc.randInt(-2, 2),Calc.randInt(-2, 2)); if (addEntity(entity, c)) return true; } @@ -699,7 +698,7 @@ public class Level implements BusAccess, Updateable, DelegatingClient, Toggleabl if (getTile(coord).dropItem(itm)) return true; for (int i = 0; i < 6; i++) { - final Coord c = coord.add(-1 + rand.nextInt(3), -1 + rand.nextInt(3)); + final Coord c = coord.add(Calc.randInt(-1, 1), Calc.randInt(-1, 1)); if (getTile(c).dropItem(itm)) return true; } diff --git a/src/mightypork/rogue/world/tile/Tile.java b/src/mightypork/rogue/world/tile/Tile.java index a5dc18e..1c93c47 100644 --- a/src/mightypork/rogue/world/tile/Tile.java +++ b/src/mightypork/rogue/world/tile/Tile.java @@ -29,9 +29,6 @@ public abstract class Tile implements BusAccess, IonObjBlob { // tmp extras public final TileGenData genData = new TileGenData(); - /** RNG for random stuff in tiles */ - protected static final Random rand = new Random(); - public final TileModel model; // temporary flag for map. diff --git a/src/mightypork/rogue/world/tile/impl/TileBaseSecretDoor.java b/src/mightypork/rogue/world/tile/impl/TileBaseSecretDoor.java index d85cc41..6935fa6 100644 --- a/src/mightypork/rogue/world/tile/impl/TileBaseSecretDoor.java +++ b/src/mightypork/rogue/world/tile/impl/TileBaseSecretDoor.java @@ -6,6 +6,7 @@ import java.io.IOException; import mightypork.gamecore.resources.textures.TxSheet; import mightypork.gamecore.util.ion.IonInput; import mightypork.gamecore.util.ion.IonOutput; +import mightypork.gamecore.util.math.Calc; import mightypork.gamecore.util.math.color.Color; import mightypork.gamecore.util.math.color.pal.RGB; import mightypork.rogue.world.tile.TileModel; @@ -14,7 +15,7 @@ import mightypork.rogue.world.tile.TileType; public abstract class TileBaseSecretDoor extends TileBaseDoor { - private int clicks = 2 + rand.nextInt(2); + private int clicks = Calc.randInt(2, 3); public TileBaseSecretDoor(TileModel model, TxSheet secret, TxSheet closed, TxSheet open)