v2.0.0: tuned the difficulty of ascent a little bit
This commit is contained in:
+35
-35
@@ -42,12 +42,12 @@ public class AscensionChallenge extends Buff {
|
|||||||
|
|
||||||
private static HashMap<Class<?extends Mob>, Float> modifiers = new HashMap<>();
|
private static HashMap<Class<?extends Mob>, Float> modifiers = new HashMap<>();
|
||||||
static {
|
static {
|
||||||
modifiers.put(Rat.class, 8f);
|
modifiers.put(Rat.class, 10f);
|
||||||
modifiers.put(Snake.class, 7f);
|
modifiers.put(Snake.class, 9f);
|
||||||
modifiers.put(Gnoll.class, 7f);
|
modifiers.put(Gnoll.class, 9f);
|
||||||
modifiers.put(Swarm.class, 6.5f);
|
modifiers.put(Swarm.class, 8.5f);
|
||||||
modifiers.put(Crab.class, 6f);
|
modifiers.put(Crab.class, 8f);
|
||||||
modifiers.put(Slime.class, 6f);
|
modifiers.put(Slime.class, 8f);
|
||||||
|
|
||||||
modifiers.put(Skeleton.class, 5f);
|
modifiers.put(Skeleton.class, 5f);
|
||||||
modifiers.put(Thief.class, 5f);
|
modifiers.put(Thief.class, 5f);
|
||||||
@@ -61,10 +61,10 @@ public class AscensionChallenge extends Buff {
|
|||||||
modifiers.put(Spinner.class, 2f);
|
modifiers.put(Spinner.class, 2f);
|
||||||
modifiers.put(DM200.class, 2f);
|
modifiers.put(DM200.class, 2f);
|
||||||
|
|
||||||
modifiers.put(Ghoul.class, 1.5f);
|
modifiers.put(Ghoul.class, 1.67f);
|
||||||
modifiers.put(Elemental.class, 1.5f);
|
modifiers.put(Elemental.class, 1.67f);
|
||||||
modifiers.put(Warlock.class, 1.33f);
|
modifiers.put(Warlock.class, 1.5f);
|
||||||
modifiers.put(Monk.class, 1.33f);
|
modifiers.put(Monk.class, 1.5f);
|
||||||
modifiers.put(Golem.class, 1.33f);
|
modifiers.put(Golem.class, 1.33f);
|
||||||
|
|
||||||
modifiers.put(RipperDemon.class, 1.2f);
|
modifiers.put(RipperDemon.class, 1.2f);
|
||||||
@@ -95,10 +95,10 @@ public class AscensionChallenge extends Buff {
|
|||||||
return 1;
|
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(){
|
public static void beckonEnemies(){
|
||||||
if (Dungeon.hero.buff(AscensionChallenge.class) != null
|
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){
|
for (Mob m : Dungeon.level.mobs){
|
||||||
if (m.alignment == Char.Alignment.ENEMY && m.distance(Dungeon.hero) > 8) {
|
if (m.alignment == Char.Alignment.ENEMY && m.distance(Dungeon.hero) > 8) {
|
||||||
m.beckon(Dungeon.hero.pos);
|
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){
|
public static float enemySpeedModifier(Mob m){
|
||||||
if (Dungeon.hero.buff(AscensionChallenge.class) != null
|
if (Dungeon.hero.buff(AscensionChallenge.class) != null
|
||||||
&& m.alignment == Char.Alignment.ENEMY
|
&& 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){
|
&& m.state != m.HUNTING && m.state != m.FLEEING){
|
||||||
return 2;
|
return 2;
|
||||||
}
|
}
|
||||||
@@ -119,10 +119,10 @@ public class AscensionChallenge extends Buff {
|
|||||||
return 1;
|
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){
|
public static float modifyHeroSpeed(float speed){
|
||||||
if (Dungeon.hero.buff(AscensionChallenge.class) != null
|
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);
|
return Math.min(speed/2f, 1f);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -158,7 +158,7 @@ public class AscensionChallenge extends Buff {
|
|||||||
chal.stacks -= 1;
|
chal.stacks -= 1;
|
||||||
}
|
}
|
||||||
chal.stacks = Math.max(0, chal.stacks);
|
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"));
|
GLog.p(Messages.get(AscensionChallenge.class, "weaken"));
|
||||||
}
|
}
|
||||||
BuffIndicator.refreshHero();
|
BuffIndicator.refreshHero();
|
||||||
@@ -206,7 +206,7 @@ public class AscensionChallenge extends Buff {
|
|||||||
Dungeon.hero.buff(Hunger.class).satisfy(Hunger.STARVING);
|
Dungeon.hero.buff(Hunger.class).satisfy(Hunger.STARVING);
|
||||||
Buff.affect(Dungeon.hero, Healing.class).setHeal(Dungeon.hero.HT, 0, 20);
|
Buff.affect(Dungeon.hero, Healing.class).setHeal(Dungeon.hero.HT, 0, 20);
|
||||||
} else {
|
} else {
|
||||||
stacks += 2.5f;
|
stacks += 2f;
|
||||||
|
|
||||||
//clears any existing mobs from the level and adds one initial one
|
//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
|
//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 {
|
} else {
|
||||||
if (Dungeon.depth == 1){
|
if (Dungeon.depth == 1){
|
||||||
GLog.n(Messages.get(this, "almost"));
|
GLog.n(Messages.get(this, "almost"));
|
||||||
} else if (stacks >= 10f){
|
} else if (stacks >= 8f){
|
||||||
GLog.n(Messages.get(this, "damage"));
|
GLog.n(Messages.get(this, "damage"));
|
||||||
} else if (stacks >= 7.5f){
|
} else if (stacks >= 6f){
|
||||||
GLog.n(Messages.get(this, "slow"));
|
GLog.n(Messages.get(this, "slow"));
|
||||||
} else if (stacks >= 5f){
|
} else if (stacks >= 4f){
|
||||||
GLog.n(Messages.get(this, "haste"));
|
GLog.n(Messages.get(this, "haste"));
|
||||||
} else if (stacks >= 2.5f){
|
} else if (stacks >= 2f){
|
||||||
GLog.n(Messages.get(this, "beckon"));
|
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"));
|
GLog.h(Messages.get(this, "weaken_info"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -255,9 +255,9 @@ public class AscensionChallenge extends Buff {
|
|||||||
|
|
||||||
beckonEnemies();
|
beckonEnemies();
|
||||||
|
|
||||||
//hero starts progressively taking damage over time at 10+ stacks
|
//hero starts progressively taking damage over time at 8+ stacks
|
||||||
if (stacks >= 10 && !Dungeon.bossLevel()){
|
if (stacks >= 8 && !Dungeon.bossLevel()){
|
||||||
damageInc += (stacks-5)/5f;
|
damageInc += (stacks-4)/4f;
|
||||||
if (damageInc >= 1){
|
if (damageInc >= 1){
|
||||||
target.damage((int)damageInc, this);
|
target.damage((int)damageInc, this);
|
||||||
damageInc -= (int)damageInc;
|
damageInc -= (int)damageInc;
|
||||||
@@ -283,13 +283,13 @@ public class AscensionChallenge extends Buff {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tintIcon(Image icon) {
|
public void tintIcon(Image icon) {
|
||||||
if (stacks < 2.5f){
|
if (stacks < 2){
|
||||||
icon.hardlight(0.5f, 1, 0);
|
icon.hardlight(0.5f, 1, 0);
|
||||||
} else if (stacks < 5) {
|
} else if (stacks < 4) {
|
||||||
icon.hardlight(1, 1, 0);
|
icon.hardlight(1, 1, 0);
|
||||||
} else if (stacks < 7.5f){
|
} else if (stacks < 6){
|
||||||
icon.hardlight(1, 0.67f, 0);
|
icon.hardlight(1, 0.67f, 0);
|
||||||
} else if (stacks < 10){
|
} else if (stacks < 8){
|
||||||
icon.hardlight(1, 0.33f, 0);
|
icon.hardlight(1, 0.33f, 0);
|
||||||
} else {
|
} else {
|
||||||
icon.hardlight(1, 0, 0);
|
icon.hardlight(1, 0, 0);
|
||||||
@@ -300,16 +300,16 @@ public class AscensionChallenge extends Buff {
|
|||||||
public String desc() {
|
public String desc() {
|
||||||
String desc = Messages.get(this, "desc");
|
String desc = Messages.get(this, "desc");
|
||||||
desc += "\n";
|
desc += "\n";
|
||||||
if (stacks < 2.5f){
|
if (stacks < 2){
|
||||||
|
|
||||||
desc += "\n" + Messages.get(this, "desc_clear");
|
desc += "\n" + Messages.get(this, "desc_clear");
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
if (stacks >= 2.5f) desc += "\n" + Messages.get(this, "desc_beckon");
|
if (stacks >= 2) desc += "\n" + Messages.get(this, "desc_beckon");
|
||||||
if (stacks >= 5.0f) desc += "\n" + Messages.get(this, "desc_haste");
|
if (stacks >= 4) desc += "\n" + Messages.get(this, "desc_haste");
|
||||||
if (stacks >= 7.5f) desc += "\n" + Messages.get(this, "desc_slow");
|
if (stacks >= 6) desc += "\n" + Messages.get(this, "desc_slow");
|
||||||
if (stacks >= 10.0f) desc += "\n" + Messages.get(this, "desc_damage");
|
if (stacks >= 8) desc += "\n" + Messages.get(this, "desc_damage");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user