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

View File

@@ -47,6 +47,7 @@ public class RingOfAccuracy extends Ring {
}
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)) + "%";
}

View File

@@ -47,6 +47,7 @@ public class RingOfArcana extends Ring {
}
public String upgradeStat1(int level){
if (cursed) level = Math.min(-1, level-3);
return Messages.decimalFormat("#.##", 100f * (Math.pow(1.175f, level+1)-1f)) + "%";
}

View File

@@ -59,6 +59,7 @@ public class RingOfElements extends Ring {
}
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))) + "%";
}

View File

@@ -51,6 +51,7 @@ public class RingOfEnergy extends Ring {
}
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)) + "%";
}

View File

@@ -47,6 +47,7 @@ public class RingOfEvasion extends Ring {
}
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)) + "%";
}

View File

@@ -133,17 +133,20 @@ public class RingOfForce extends Ring {
@Override
public String upgradeStat1(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
float tier = tier(Dungeon.hero != null ? Dungeon.hero.STR() : 10);
return min(level+1, tier) + "-" + max(level+1, tier);
}
@Override
public String upgradeStat2(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Integer.toString(level+1);
}
@Override
public String upgradeStat3(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
if (Dungeon.hero != null && Dungeon.hero.heroClass == HeroClass.DUELIST){
float tier = tier(Dungeon.hero != null ? Dungeon.hero.STR() : 10);
int bonus = Math.round(1+tier+((level+1)*((3+tier)/8f)));

View File

@@ -47,6 +47,7 @@ public class RingOfFuror extends Ring {
}
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)) + "%";
}

View File

@@ -47,6 +47,7 @@ public class RingOfHaste extends Ring {
}
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)) + "%";
}

View File

@@ -90,11 +90,13 @@ public class RingOfMight extends Ring {
@Override
public String upgradeStat1(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Integer.toString(level+1);
}
@Override
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)) + "%";
}

View File

@@ -48,11 +48,13 @@ public class RingOfSharpshooting extends Ring {
@Override
public String upgradeStat1(int level) {
if (cursed && cursedKnown) level = Math.min(-1, level-3);
return Integer.toString(level+1);
}
@Override
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)) + "%";
}

View File

@@ -47,6 +47,7 @@ public class RingOfTenacity extends Ring {
}
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))) + "%";
}

View File

@@ -76,6 +76,7 @@ public class RingOfWealth extends Ring {
}
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)) + "%";
}

View File

@@ -103,6 +103,7 @@ public class WndUpgrade extends Window {
// *** 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();
add(i1);
i1.view(toUpgrade);
@@ -254,7 +255,6 @@ public class WndUpgrade extends Window {
}
//Various ring stats (varies by ring)
//TODO cursed ring stats?
if (toUpgrade instanceof Ring){
if (((Ring) toUpgrade).upgradeStat1(levelFrom) != null){
bottom = fillFields(Messages.get(toUpgrade, "upgrade_stat_name_1"),