v2.0.0: tuned the difficulty of ascent a little bit

This commit is contained in:
Evan Debenham
2023-01-26 13:04:33 -05:00
parent b1534ce659
commit 8ec9ca98f0

View File

@@ -42,12 +42,12 @@ public class AscensionChallenge extends Buff {
private static HashMap<Class<?extends Mob>, Float> modifiers = new HashMap<>();
static {
modifiers.put(Rat.class, 8f);
modifiers.put(Snake.class, 7f);
modifiers.put(Gnoll.class, 7f);
modifiers.put(Swarm.class, 6.5f);
modifiers.put(Crab.class, 6f);
modifiers.put(Slime.class, 6f);
modifiers.put(Rat.class, 10f);
modifiers.put(Snake.class, 9f);
modifiers.put(Gnoll.class, 9f);
modifiers.put(Swarm.class, 8.5f);
modifiers.put(Crab.class, 8f);
modifiers.put(Slime.class, 8f);
modifiers.put(Skeleton.class, 5f);
modifiers.put(Thief.class, 5f);
@@ -61,10 +61,10 @@ public class AscensionChallenge extends Buff {
modifiers.put(Spinner.class, 2f);
modifiers.put(DM200.class, 2f);
modifiers.put(Ghoul.class, 1.5f);
modifiers.put(Elemental.class, 1.5f);
modifiers.put(Warlock.class, 1.33f);
modifiers.put(Monk.class, 1.33f);
modifiers.put(Ghoul.class, 1.67f);
modifiers.put(Elemental.class, 1.67f);
modifiers.put(Warlock.class, 1.5f);
modifiers.put(Monk.class, 1.5f);
modifiers.put(Golem.class, 1.33f);
modifiers.put(RipperDemon.class, 1.2f);
@@ -95,10 +95,10 @@ public class AscensionChallenge extends Buff {
return 1;
}
//distant mobs get constantly beckoned to the hero at 2.5+ stacks
//distant mobs get constantly beckoned to the hero at 2+ stacks
public static void beckonEnemies(){
if (Dungeon.hero.buff(AscensionChallenge.class) != null
&& Dungeon.hero.buff(AscensionChallenge.class).stacks >= 2.5f){
&& Dungeon.hero.buff(AscensionChallenge.class).stacks >= 2f){
for (Mob m : Dungeon.level.mobs){
if (m.alignment == Char.Alignment.ENEMY && m.distance(Dungeon.hero) > 8) {
m.beckon(Dungeon.hero.pos);
@@ -107,11 +107,11 @@ public class AscensionChallenge extends Buff {
}
}
//mobs move at 2x speed when not hunting/fleeing at 5 stacks or higher
//mobs move at 2x speed when not hunting/fleeing at 4 stacks or higher
public static float enemySpeedModifier(Mob m){
if (Dungeon.hero.buff(AscensionChallenge.class) != null
&& m.alignment == Char.Alignment.ENEMY
&& Dungeon.hero.buff(AscensionChallenge.class).stacks >= 5f
&& Dungeon.hero.buff(AscensionChallenge.class).stacks >= 4f
&& m.state != m.HUNTING && m.state != m.FLEEING){
return 2;
}
@@ -119,10 +119,10 @@ public class AscensionChallenge extends Buff {
return 1;
}
//hero speed is halved and capped at 1x at 7.5+ stacks
//hero speed is halved and capped at 1x at 6+ stacks
public static float modifyHeroSpeed(float speed){
if (Dungeon.hero.buff(AscensionChallenge.class) != null
&& Dungeon.hero.buff(AscensionChallenge.class).stacks >= 7.5f){
&& Dungeon.hero.buff(AscensionChallenge.class).stacks > 6f){
return Math.min(speed/2f, 1f);
}
@@ -158,7 +158,7 @@ public class AscensionChallenge extends Buff {
chal.stacks -= 1;
}
chal.stacks = Math.max(0, chal.stacks);
if (chal.stacks < 10f && (int)(chal.stacks/2.5) != (int)(oldStacks/2.5f)){
if (chal.stacks < 8f && (int)(chal.stacks/2) != (int)(oldStacks/2f)){
GLog.p(Messages.get(AscensionChallenge.class, "weaken"));
}
BuffIndicator.refreshHero();
@@ -206,7 +206,7 @@ public class AscensionChallenge extends Buff {
Dungeon.hero.buff(Hunger.class).satisfy(Hunger.STARVING);
Buff.affect(Dungeon.hero, Healing.class).setHeal(Dungeon.hero.HT, 0, 20);
} else {
stacks += 2.5f;
stacks += 2f;
//clears any existing mobs from the level and adds one initial one
//this helps balance difficulty between levels with lots of mobs left, and ones with few
@@ -235,16 +235,16 @@ public class AscensionChallenge extends Buff {
} else {
if (Dungeon.depth == 1){
GLog.n(Messages.get(this, "almost"));
} else if (stacks >= 10f){
} else if (stacks >= 8f){
GLog.n(Messages.get(this, "damage"));
} else if (stacks >= 7.5f){
} else if (stacks >= 6f){
GLog.n(Messages.get(this, "slow"));
} else if (stacks >= 5f){
} else if (stacks >= 4f){
GLog.n(Messages.get(this, "haste"));
} else if (stacks >= 2.5f){
} else if (stacks >= 2f){
GLog.n(Messages.get(this, "beckon"));
}
if (stacks > 10 || stacks > 5 && Dungeon.depth > 20){
if (stacks > 8 || stacks > 4 && Dungeon.depth > 20){
GLog.h(Messages.get(this, "weaken_info"));
}
}
@@ -255,9 +255,9 @@ public class AscensionChallenge extends Buff {
beckonEnemies();
//hero starts progressively taking damage over time at 10+ stacks
if (stacks >= 10 && !Dungeon.bossLevel()){
damageInc += (stacks-5)/5f;
//hero starts progressively taking damage over time at 8+ stacks
if (stacks >= 8 && !Dungeon.bossLevel()){
damageInc += (stacks-4)/4f;
if (damageInc >= 1){
target.damage((int)damageInc, this);
damageInc -= (int)damageInc;
@@ -283,13 +283,13 @@ public class AscensionChallenge extends Buff {
@Override
public void tintIcon(Image icon) {
if (stacks < 2.5f){
if (stacks < 2){
icon.hardlight(0.5f, 1, 0);
} else if (stacks < 5) {
} else if (stacks < 4) {
icon.hardlight(1, 1, 0);
} else if (stacks < 7.5f){
} else if (stacks < 6){
icon.hardlight(1, 0.67f, 0);
} else if (stacks < 10){
} else if (stacks < 8){
icon.hardlight(1, 0.33f, 0);
} else {
icon.hardlight(1, 0, 0);
@@ -300,16 +300,16 @@ public class AscensionChallenge extends Buff {
public String desc() {
String desc = Messages.get(this, "desc");
desc += "\n";
if (stacks < 2.5f){
if (stacks < 2){
desc += "\n" + Messages.get(this, "desc_clear");
} else {
if (stacks >= 2.5f) desc += "\n" + Messages.get(this, "desc_beckon");
if (stacks >= 5.0f) desc += "\n" + Messages.get(this, "desc_haste");
if (stacks >= 7.5f) desc += "\n" + Messages.get(this, "desc_slow");
if (stacks >= 10.0f) desc += "\n" + Messages.get(this, "desc_damage");
if (stacks >= 2) desc += "\n" + Messages.get(this, "desc_beckon");
if (stacks >= 4) desc += "\n" + Messages.get(this, "desc_haste");
if (stacks >= 6) desc += "\n" + Messages.get(this, "desc_slow");
if (stacks >= 8) desc += "\n" + Messages.get(this, "desc_damage");
}