v2.5.0: fixed upgrade window ring stats not accounting for curses

This commit is contained in:
Evan Debenham
2024-06-22 14:08:49 -04:00
committed by Evan Debenham
parent e4085fe445
commit f232a5d1e8
13 changed files with 17 additions and 1 deletions
@@ -47,6 +47,7 @@ public class RingOfAccuracy extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.3f, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.3f, level+1)-1f)) + "%";
} }
@@ -47,6 +47,7 @@ public class RingOfArcana extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.175f, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.175f, level+1)-1f)) + "%";
} }
@@ -59,6 +59,7 @@ public class RingOfElements extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (1f - Math.pow(0.825f, level+1))) + "%"; return Messages.decimalFormat("#.##", 100f * (1f - Math.pow(0.825f, level+1))) + "%";
} }
@@ -51,6 +51,7 @@ public class RingOfEnergy extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.15f, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.15f, level+1)-1f)) + "%";
} }
@@ -47,6 +47,7 @@ public class RingOfEvasion extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.125f, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.125f, level+1)-1f)) + "%";
} }
@@ -133,17 +133,20 @@ public class RingOfForce extends Ring {
@Override @Override
public String upgradeStat1(int level) { public String upgradeStat1(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
float tier = tier(Dungeon.hero != null ? Dungeon.hero.STR() : 10); float tier = tier(Dungeon.hero != null ? Dungeon.hero.STR() : 10);
return min(level+1, tier) + "-" + max(level+1, tier); return min(level+1, tier) + "-" + max(level+1, tier);
} }
@Override @Override
public String upgradeStat2(int level) { public String upgradeStat2(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Integer.toString(level+1); return Integer.toString(level+1);
} }
@Override @Override
public String upgradeStat3(int level) { public String upgradeStat3(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
if (Dungeon.hero != null && Dungeon.hero.heroClass == HeroClass.DUELIST){ if (Dungeon.hero != null && Dungeon.hero.heroClass == HeroClass.DUELIST){
float tier = tier(Dungeon.hero != null ? Dungeon.hero.STR() : 10); float tier = tier(Dungeon.hero != null ? Dungeon.hero.STR() : 10);
int bonus = Math.round(1+tier+((level+1)*((3+tier)/8f))); int bonus = Math.round(1+tier+((level+1)*((3+tier)/8f)));
@@ -47,6 +47,7 @@ public class RingOfFuror extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.09051f, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.09051f, level+1)-1f)) + "%";
} }
@@ -47,6 +47,7 @@ public class RingOfHaste extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.2f, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.2f, level+1)-1f)) + "%";
} }
@@ -90,11 +90,13 @@ public class RingOfMight extends Ring {
@Override @Override
public String upgradeStat1(int level) { public String upgradeStat1(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Integer.toString(level+1); return Integer.toString(level+1);
} }
@Override @Override
public String upgradeStat2(int level) { public String upgradeStat2(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.035, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.035, level+1)-1f)) + "%";
} }
@@ -48,11 +48,13 @@ public class RingOfSharpshooting extends Ring {
@Override @Override
public String upgradeStat1(int level) { public String upgradeStat1(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Integer.toString(level+1); return Integer.toString(level+1);
} }
@Override @Override
public String upgradeStat2(int level) { public String upgradeStat2(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.2, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.2, level+1)-1f)) + "%";
} }
@@ -47,6 +47,7 @@ public class RingOfTenacity extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (1f - Math.pow(0.85f, level+1))) + "%"; return Messages.decimalFormat("#.##", 100f * (1f - Math.pow(0.85f, level+1))) + "%";
} }
@@ -76,6 +76,7 @@ public class RingOfWealth extends Ring {
} }
public String upgradeStat1(int level){ public String upgradeStat1(int level){
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.2f, level+1)-1f)) + "%"; return Messages.decimalFormat("#.##", 100f * (Math.pow(1.2f, level+1)-1f)) + "%";
} }
@@ -103,6 +103,7 @@ public class WndUpgrade extends Window {
// *** Sprites, showing item at current level and with +1 *** // *** Sprites, showing item at current level and with +1 ***
//TODO add a background here too, to better communicate things like ID state and curse state?
ItemSprite i1 = new ItemSprite(); ItemSprite i1 = new ItemSprite();
add(i1); add(i1);
i1.view(toUpgrade); i1.view(toUpgrade);
@@ -254,7 +255,6 @@ public class WndUpgrade extends Window {
} }
//Various ring stats (varies by ring) //Various ring stats (varies by ring)
//TODO cursed ring stats?
if (toUpgrade instanceof Ring){ if (toUpgrade instanceof Ring){
if (((Ring) toUpgrade).upgradeStat1(levelFrom) != null){ if (((Ring) toUpgrade).upgradeStat1(levelFrom) != null){
bottom = fillFields(Messages.get(toUpgrade, "upgrade_stat_name_1"), bottom = fillFields(Messages.get(toUpgrade, "upgrade_stat_name_1"),