v0.8.0: fixes/tweaks:

- fixed crash/freeze bugs involving spinners, mimics, and DM-300
- fixed ring descriptions to properly consider degraded
- fixed typos in some dart descriptions
This commit is contained in:
Evan Debenham 2020-01-24 15:08:14 -05:00
parent c64c734590
commit b8fb981bfe
15 changed files with 27 additions and 17 deletions

View File

@ -178,7 +178,7 @@ public class Mimic extends Mob {
public void stopHiding(){
state = HUNTING;
if (Dungeon.level.heroFOV[pos] && Actor.chars().contains(this)) {
if (Actor.chars().contains(this) && Dungeon.level.heroFOV[pos]) {
enemy = Dungeon.hero;
target = Dungeon.hero.pos;
enemySeen = true;

View File

@ -263,6 +263,15 @@ public class NewDM300 extends Mob {
return super.act();
}
@Override
protected Char chooseEnemy() {
Char enemy = super.chooseEnemy();
if (supercharged && enemy == null){
enemy = Dungeon.hero;
}
return enemy;
}
@Override
public void move(int step) {
super.move(step);
@ -485,7 +494,7 @@ public class NewDM300 extends Mob {
return true;
}
if (!supercharged || state != HUNTING){
if (!supercharged || state != HUNTING || Dungeon.level.adjacent(pos, target)){
return false;
}

View File

@ -160,7 +160,7 @@ public class Spinner extends Mob {
}
//in case target is at the edge of the map and there are no more cells in the path
if (b.path.size() <= collisionIndex){
if (b.path.size() <= collisionIndex+1){
return -1;
}

View File

@ -30,7 +30,7 @@ public class RingOfAccuracy extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.3f, soloBonus()) - 1f)));
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.3f, soloBuffedBonus()) - 1f)));
} else {
return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(30f));
}

View File

@ -62,7 +62,7 @@ public class RingOfElements extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (1f - Math.pow(0.80f, soloBonus()))));
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (1f - Math.pow(0.80f, soloBuffedBonus()))));
} else {
return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(20f));
}

View File

@ -30,7 +30,7 @@ public class RingOfEnergy extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.30f, soloBonus()) - 1f)));
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.30f, soloBuffedBonus()) - 1f)));
} else {
return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(30f));
}

View File

@ -30,7 +30,7 @@ public class RingOfEvasion extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.15f, soloBonus()) - 1f)));
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.15f, soloBuffedBonus()) - 1f)));
} else {
return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(15f));
}

View File

@ -81,7 +81,8 @@ public class RingOfForce extends Ring {
public String statsInfo() {
float tier = tier(Dungeon.hero.STR());
if (isIdentified()) {
return Messages.get(this, "stats", min(soloBonus(), tier), max(soloBonus(), tier), soloBonus());
int level = soloBuffedBonus();
return Messages.get(this, "stats", min(level, tier), max(level, tier), level);
} else {
return Messages.get(this, "typical_stats", min(1, tier), max(1, tier), 1);
}

View File

@ -30,7 +30,7 @@ public class RingOfFuror extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.105f, soloBonus()) - 1f)));
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.105f, soloBuffedBonus()) - 1f)));
} else {
return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(10.5f));
}

View File

@ -30,7 +30,7 @@ public class RingOfHaste extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.2f, soloBonus()) - 1f)));
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.2f, soloBuffedBonus()) - 1f)));
} else {
return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(20f));
}

View File

@ -72,7 +72,7 @@ public class RingOfMight extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", soloBonus(), new DecimalFormat("#.##").format(100f * (Math.pow(1.035, soloBonus()) - 1f)));
return Messages.get(this, "stats", soloBonus(), new DecimalFormat("#.##").format(100f * (Math.pow(1.035, soloBuffedBonus()) - 1f)));
} else {
return Messages.get(this, "typical_stats", 1, new DecimalFormat("#.##").format(3.5f));
}

View File

@ -30,7 +30,7 @@ public class RingOfSharpshooting extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", soloBonus(), new DecimalFormat("#.##").format(100f * (Math.pow(1.2, soloBonus()) - 1f)));
return Messages.get(this, "stats", soloBuffedBonus(), new DecimalFormat("#.##").format(100f * (Math.pow(1.2, soloBonus()) - 1f)));
} else {
return Messages.get(this, "typical_stats", 1, new DecimalFormat("#.##").format(20f));
}

View File

@ -30,7 +30,7 @@ public class RingOfTenacity extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (1f - Math.pow(0.85f, soloBonus()))));
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (1f - Math.pow(0.85f, soloBuffedBonus()))));
} else {
return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(15f));
}

View File

@ -51,7 +51,7 @@ public class RingOfWealth extends Ring {
public String statsInfo() {
if (isIdentified()){
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.2f, soloBonus()) - 1f)));
return Messages.get(this, "stats", new DecimalFormat("#.##").format(100f * (Math.pow(1.2f, soloBuffedBonus()) - 1f)));
} else {
return Messages.get(this, "typical_stats", new DecimalFormat("#.##").format(20f));
}

View File

@ -1448,7 +1448,7 @@ items.weapon.melee.wornshortsword.desc=A quite short sword, worn down through he
###missile weapons
items.weapon.missiles.darts.adrenalinedart.name=adrenaline dart
items.weapon.missiles.darts.adrenalinedart.desc=These darts are tipped with a swiftthistle-based compound which will give their target a boost in speed. This boost affects both speed of movement and of attacking, though movement is improved more. The dart will itself is still harmful to enemies, but will not harm allies.
items.weapon.missiles.darts.adrenalinedart.desc=These darts are tipped with a swiftthistle-based compound which will give their target a boost in speed. This boost affects both speed of movement and of attacking, though movement is improved more. The dart itself is still harmful to enemies, but will not harm allies.
items.weapon.missiles.darts.blindingdart.name=blinding dart
items.weapon.missiles.darts.blindingdart.desc=These darts are tipped with a blindweed-based compound which will blind their target for a short time. They do not disorient however, so an enemy will still know where they last saw you.
@ -1472,10 +1472,10 @@ items.weapon.missiles.darts.displacingdart.name=displacing dart
items.weapon.missiles.darts.displacingdart.desc=These darts are tipped with a fadeleaf-based compound which will teleport their target a short distance away.
items.weapon.missiles.darts.healingdart.name=healing dart
items.weapon.missiles.darts.healingdart.desc=These darts are tipped with a sungrass-based compound which grants a burst of healing to their target. The dart will itself is still harmful to enemies, but will not harm allies.
items.weapon.missiles.darts.healingdart.desc=These darts are tipped with a sungrass-based compound which grants a burst of healing to their target. The dart itself is still harmful to enemies, but will not harm allies.
items.weapon.missiles.darts.holydart.name=holy dart
items.weapon.missiles.darts.holydart.desc=These darts are tipped with a starflower-based compound which grants a boost in power to their target. The dart will itself is still harmful to enemies, but will not harm allies.
items.weapon.missiles.darts.holydart.desc=These darts are tipped with a starflower-based compound which grants a boost in power to their target. The dart itself is still harmful to enemies, but will not harm allies.
items.weapon.missiles.darts.incendiarydart.name=incendiary dart
items.weapon.missiles.darts.incendiarydart.desc=These darts are tipped with a firebloom-based compound which will burst into brilliant flames on impact.