WIP campaign difficulty dialog
This commit is contained in:
15
core/src/mindustry/game/CampaignRules.java
Normal file
15
core/src/mindustry/game/CampaignRules.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package mindustry.game;
|
||||
|
||||
public class CampaignRules{
|
||||
public Difficulty difficulty = Difficulty.normal;
|
||||
public boolean fog;
|
||||
public boolean showSpawns;
|
||||
public boolean sectorInvasion;
|
||||
|
||||
public void apply(Rules rules){
|
||||
rules.staticFog = rules.fog = fog;
|
||||
rules.showSpawns = showSpawns;
|
||||
rules.teams.get(rules.waveTeam).blockHealthMultiplier = difficulty.enemyHealthMultiplier;
|
||||
rules.teams.get(rules.waveTeam).unitHealthMultiplier = difficulty.enemyHealthMultiplier;
|
||||
}
|
||||
}
|
||||
26
core/src/mindustry/game/Difficulty.java
Normal file
26
core/src/mindustry/game/Difficulty.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package mindustry.game;
|
||||
|
||||
import arc.*;
|
||||
|
||||
public enum Difficulty{
|
||||
//TODO these need tweaks
|
||||
easy(1f, 0.75f, 1.5f),
|
||||
normal(1f, 1f, 1f),
|
||||
hard(1.25f, 1.5f, 0.6f),
|
||||
eradication(1.5f, 2f, 0.4f);
|
||||
|
||||
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 localized(){
|
||||
return Core.bundle.get("difficulty." + name());
|
||||
}
|
||||
}
|
||||
@@ -252,7 +252,7 @@ public class Universe{
|
||||
}
|
||||
|
||||
//queue random invasions
|
||||
if(!sector.isAttacked() && sector.planet.allowSectorInvasion && sector.info.minutesCaptured > invasionGracePeriod && sector.info.hasSpawns){
|
||||
if(!sector.isAttacked() && sector.planet.campaignRules.sectorInvasion && sector.info.minutesCaptured > invasionGracePeriod && sector.info.hasSpawns){
|
||||
int count = sector.near().count(s -> s.hasEnemyBase() && !s.hasBase());
|
||||
|
||||
//invasion chance depends on # of nearby bases
|
||||
|
||||
Reference in New Issue
Block a user