rebalancing, more food,
This commit is contained in:
@@ -22,14 +22,14 @@ public class BossRatAi extends GrayRatAi {
|
||||
{
|
||||
super(entity);
|
||||
|
||||
setAttackTime(0.2);
|
||||
setAttackTime(0.3);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected int getAttackStrength()
|
||||
{
|
||||
return Calc.randInt(1, 6);
|
||||
return Calc.randInt(2, 3);
|
||||
}
|
||||
|
||||
|
||||
@@ -52,6 +52,6 @@ public class BossRatAi extends GrayRatAi {
|
||||
@Override
|
||||
protected double getStepTime()
|
||||
{
|
||||
return isIdle() ? 0.6 : 0.37;
|
||||
return isIdle() ? 0.6 : 0.4;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,9 +30,8 @@ public class EntityBrownRat extends Entity {
|
||||
|
||||
setDespawnDelay(1);
|
||||
|
||||
health.setHealthMax(18);
|
||||
health.setHealth(Calc.randInt(12, 18)); // tougher to kill
|
||||
health.setHitCooldownTime(0.35); // a bit longer than gray rat
|
||||
health.setHealthMax(16);
|
||||
health.setHealth(Calc.randInt(10, 16)); // tougher to kill
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -32,7 +32,6 @@ public class EntityGrayRat extends Entity {
|
||||
|
||||
health.setHealthMax(7);
|
||||
health.setHealth(Calc.randInt(4, 7));
|
||||
health.setHitCooldownTime(0.3);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ public class EntityModuleHealth extends EntityModule {
|
||||
|
||||
protected int health = 1;
|
||||
protected int maxHealth = 1;
|
||||
private double hitCooldownTime = 0.3;
|
||||
private double hitCooldownTime = 0.36;
|
||||
protected boolean dead = false;
|
||||
|
||||
private double timeSinceLastDamage = Integer.MAX_VALUE;
|
||||
|
||||
@@ -68,13 +68,13 @@ public class WorldCreator {
|
||||
}
|
||||
|
||||
for (int i = 0; i < Calc.randInt(rand, 2, 4); i++) {
|
||||
final Item item = Calc.pick(rand, weaponsMedium).createItemDamaged(40);
|
||||
final Item item = Calc.pick(rand, weaponsMedium).createItemDamaged(50);
|
||||
final LevelBuilder lb = levelBuilders[-1 + Calc.randInt(3, 5)];
|
||||
lb.addRoom(Rooms.treasure(item), BuildOrder.MIDDLE, true);
|
||||
}
|
||||
|
||||
for (int i = 0; i < Calc.randInt(rand, 2, 4); i++) {
|
||||
final Item item = Calc.pick(rand, weaponsGood).createItemDamaged(50);
|
||||
final Item item = Calc.pick(rand, weaponsGood).createItemDamaged(60);
|
||||
final LevelBuilder lb = levelBuilders[-1 + Calc.randInt(4, 7)];
|
||||
|
||||
lb.addRoom(Rooms.treasure(item), BuildOrder.LAST, true);
|
||||
@@ -87,7 +87,7 @@ public class WorldCreator {
|
||||
|
||||
for (int level = 1; level <= 7; level++) {
|
||||
final LevelBuilder lb = levelBuilders[level - 1];
|
||||
final Range amount = Range.make(1, level+2);
|
||||
final Range amount = Range.make(level/2D, level*2);
|
||||
|
||||
for (int i = 0; i < amount.randInt(rand); i++) {
|
||||
lb.addItem(Calc.pick(rand, randomFood).createItem(), false);
|
||||
@@ -140,15 +140,17 @@ public class WorldCreator {
|
||||
|
||||
lb.addRoom(Rooms.ENTRANCE, BuildOrder.FIRST, true);
|
||||
|
||||
lb.addRoom(Rooms.BASIC, Range.make(floor+1, 2 + floor * 1.5), BuildOrder.MIDDLE, false);
|
||||
lb.addRoom(Rooms.DEAD_END, Range.make(2, 1 + floor*1), BuildOrder.MIDDLE, false);
|
||||
lb.addRoom(Rooms.BASIC, Range.make(floor/2, 2 + floor), BuildOrder.MIDDLE, false);
|
||||
lb.addRoom(Rooms.DEAD_END, Range.make(1, floor), BuildOrder.MIDDLE, false);
|
||||
lb.addRoom(Rooms.STORAGE, Range.make(1, Math.ceil(floor / 3D)), BuildOrder.MIDDLE, false);
|
||||
|
||||
if (lastLevel) lb.addRoom(Rooms.BOSS, BuildOrder.LAST, true);
|
||||
if (!lastLevel) lb.addRoom(Rooms.EXIT, BuildOrder.LAST, true);
|
||||
|
||||
if (floor % 2 == 0) {
|
||||
final RoomBuilder heartRoom = Rooms.shrine(Items.HEART_PIECE.createItem());
|
||||
lb.addRoom(heartRoom, BuildOrder.LAST, true);
|
||||
}
|
||||
|
||||
return lb;
|
||||
}
|
||||
|
||||
@@ -8,19 +8,33 @@ import mightypork.rogue.world.gen.MapTheme;
|
||||
import mightypork.rogue.world.gen.RoomBuilder;
|
||||
import mightypork.rogue.world.gen.RoomEntry;
|
||||
import mightypork.rogue.world.gen.ScratchMap;
|
||||
import mightypork.rogue.world.gen.TileProtectLevel;
|
||||
import mightypork.rogue.world.tile.TileModel;
|
||||
|
||||
|
||||
public class DeadEndRoom implements RoomBuilder {
|
||||
public class DeadEndRoom extends AbstractRectRoom {
|
||||
|
||||
@Override
|
||||
public RoomEntry buildRoom(ScratchMap map, MapTheme theme, Random rand, Coord center)
|
||||
protected Coord getInnerSize(Random rand)
|
||||
{
|
||||
final Coord low = center.add(-1, -1);
|
||||
final Coord high = center.add(1, 1);
|
||||
if (!map.isClear(low, high)) return null;
|
||||
return Coord.make(1,1);
|
||||
}
|
||||
|
||||
map.set(center, theme.floor());
|
||||
@Override
|
||||
protected TileProtectLevel getWallProtectionLevel()
|
||||
{
|
||||
return TileProtectLevel.STRONG;
|
||||
}
|
||||
|
||||
return new RoomEntry(low, high);
|
||||
@Override
|
||||
protected TileModel getDoorType(MapTheme theme, Random rand)
|
||||
{
|
||||
return theme.floor();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getDoorCount(Random rand)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ public abstract class SecretRoom extends AbstractRectRoom {
|
||||
@Override
|
||||
protected TileModel getDoorType(MapTheme theme, Random rand)
|
||||
{
|
||||
return theme.secretDoor();
|
||||
return rand.nextInt(5) == 0 ? theme.passage() : theme.secretDoor();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,13 +15,18 @@ public class StorageRoom extends SecretRoom {
|
||||
@Override
|
||||
protected void buildExtras(ScratchMap map, MapTheme theme, Random rand, Coord min, Coord max)
|
||||
{
|
||||
int maxStuff = Calc.randInt(rand, 2, 5);
|
||||
int maxStuff = Calc.randInt(rand, 3, 5);
|
||||
|
||||
for (int i = 0; i < Calc.randInt(rand, 0, 2); i++) {
|
||||
map.addItemInArea(Items.MEAT.createItem(), min, max, 50);
|
||||
if (--maxStuff == 0) return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < Calc.randInt(rand, 0, 2); i++) {
|
||||
map.addItemInArea(Items.CHEESE.createItem(), min, max, 50);
|
||||
if (--maxStuff == 0) return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < Calc.randInt(rand, 0, 1); i++) {
|
||||
map.addItemInArea(Items.ROCK.createItemDamaged(30), min, max, 50);
|
||||
if (--maxStuff == 0) return;
|
||||
@@ -43,10 +48,5 @@ public class StorageRoom extends SecretRoom {
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < Calc.randInt(rand, 0, 2); i++) {
|
||||
map.addItemInArea(Items.CHEESE.createItem(), min, max, 50);
|
||||
if (--maxStuff == 0) return;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user