Files
Mindustry/core/src/mindustry/game/Difficulty.java
2025-04-12 11:36:49 -04:00

45 lines
1.6 KiB
Java

package mindustry.game;
import arc.*;
public enum Difficulty{
//TODO these need tweaks
casual(0.75f, 0.5f, 2f),
easy(1f, 0.75f, 1.5f),
normal(1f, 1f, 1f),
hard(1.25f, 1.5f, 0.8f),
eradication(1.5f, 2f, 0.6f);
public static final Difficulty[] all = values();
//TODO add more fields
public float enemyHealthMultiplier, enemySpawnMultiplier, waveTimeMultiplier;
Difficulty(float enemyHealthMultiplier, float enemySpawnMultiplier, float waveTimeMultiplier){
this.enemySpawnMultiplier = enemySpawnMultiplier;
this.waveTimeMultiplier = waveTimeMultiplier;
this.enemyHealthMultiplier = enemyHealthMultiplier;
}
public String info(){
String res =
(enemyHealthMultiplier == 1f ? "" : Core.bundle.format("difficulty.enemyHealthMultiplier", percentStat(enemyHealthMultiplier)) + "\n") +
(enemySpawnMultiplier == 1f ? "" : Core.bundle.format("difficulty.enemySpawnMultiplier", percentStat(enemySpawnMultiplier)) + "\n") +
(waveTimeMultiplier == 1f ? "" : Core.bundle.format("difficulty.waveTimeMultiplier", percentStatNeg(waveTimeMultiplier)) + "\n");
return res.isEmpty() ? Core.bundle.get("difficulty.nomodifiers") : res;
}
public String localized(){
return Core.bundle.get("difficulty." + name());
}
static String percentStat(float val){
return ((int)(val * 100 - 100) > 0 ? "[negstat]+" : "[stat]") + (int)(val * 100 - 100) + "%[]";
}
static String percentStatNeg(float val){
return ((int)(val * 100 - 100) > 0 ? "[stat]+" : "[negstat]") + (int)(val * 100 - 100) + "%[]";
}
}