From 13bb64468ef52b641f32db09d95ae6fe6db89783 Mon Sep 17 00:00:00 2001 From: Evan Debenham Date: Thu, 9 Jun 2016 07:09:03 -0400 Subject: [PATCH] v0.4.0: balance changes re: equipment and prison --- .../actors/mobs/Guard.java | 4 ++-- .../actors/mobs/Tengu.java | 2 +- .../levels/painters/CryptPainter.java | 17 ++++++++----- .../levels/painters/PoolPainter.java | 24 +++++++++---------- 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java index 80280fe1d..c0aa98061 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Guard.java @@ -45,7 +45,7 @@ public class Guard extends Mob { { spriteClass = GuardSprite.class; - HP = HT = 30; + HP = HT = 40; defenseSkill = 10; EXP = 6; @@ -131,7 +131,7 @@ public class Guard extends Mob { @Override public int dr() { - return 7; + return 9; } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java index edfaf383d..b0817555c 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/actors/mobs/Tengu.java @@ -76,7 +76,7 @@ public class Tengu extends Mob { @Override public int damageRoll() { - return Random.NormalIntRange( 6, 15 ); + return Random.NormalIntRange( 8, 15 ); } @Override diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/CryptPainter.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/CryptPainter.java index 4e38f486c..6bec9c824 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/CryptPainter.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/CryptPainter.java @@ -24,6 +24,7 @@ import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.Heap.Type; import com.shatteredpixel.shatteredpixeldungeon.items.Item; +import com.shatteredpixel.shatteredpixeldungeon.items.armor.Armor; import com.shatteredpixel.shatteredpixeldungeon.items.keys.IronKey; import com.shatteredpixel.shatteredpixeldungeon.levels.Level; import com.shatteredpixel.shatteredpixeldungeon.levels.Room; @@ -68,13 +69,17 @@ public class CryptPainter extends Painter { } private static Item prize( Level level ) { - - Item prize = Generator.random( Generator.Category.ARMOR ); - for (int i=0; i < 3; i++) { - Item another = Generator.random( Generator.Category.ARMOR ); - if (another.level() > prize.level()) { - prize = another; + //1 floor set higher than normal + Armor prize = Generator.randomArmor( (Dungeon.depth / 5) + 1); + + //if it isn't already cursed, give it a free upgrade + if (!prize.cursed){ + prize.upgrade(); + //curse the armor, unless it has a glyph + if (prize.glyph != null){ + prize.cursed = prize.cursedKnown = true; + prize.inscribe(Armor.Glyph.randomCurse()); } } diff --git a/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/PoolPainter.java b/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/PoolPainter.java index 75b4d8c28..77e4a61b9 100644 --- a/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/PoolPainter.java +++ b/src/com/shatteredpixel/shatteredpixeldungeon/levels/painters/PoolPainter.java @@ -20,6 +20,7 @@ */ package com.shatteredpixel.shatteredpixeldungeon.levels.painters; +import com.shatteredpixel.shatteredpixeldungeon.Dungeon; import com.shatteredpixel.shatteredpixeldungeon.actors.mobs.Piranha; import com.shatteredpixel.shatteredpixeldungeon.items.Generator; import com.shatteredpixel.shatteredpixeldungeon.items.Heap; @@ -86,25 +87,22 @@ public class PoolPainter extends Painter { Item prize; - if (Random.Int(3) != 0){ + if (Random.Int(3) == 0){ prize = level.findPrizeItem(); if (prize != null) return prize; } - prize = Generator.random( Random.oneOf( - Generator.Category.WEAPON, - Generator.Category.ARMOR - ) ); + //1 floor set higher in probability + if (Random.Int(2) == 0){ + prize = Generator.randomWeapon((Dungeon.depth / 5)+1); + } else { + prize = Generator.randomArmor((Dungeon.depth / 5)+1); + } - for (int i=0; i < 4; i++) { - Item another = Generator.random( Random.oneOf( - Generator.Category.WEAPON, - Generator.Category.ARMOR - ) ); - if (another.level() > prize.level()) { - prize = another; - } + //if not cursed, 50% chance for an extra update. + if (!prize.cursed && Random.Int(0) == 1){ + prize.upgrade(); } return prize;