Tested and fixed Steam achievements

This commit is contained in:
Anuken
2022-11-03 11:37:37 -04:00
parent b1be360180
commit b8e245f945
8 changed files with 85 additions and 61 deletions

View File

@@ -16,6 +16,7 @@ import mindustry.world.blocks.defense.turrets.Turret.*;
import mindustry.world.blocks.distribution.*;
import mindustry.world.blocks.production.AttributeCrafter.*;
import mindustry.world.blocks.production.SolidPump.*;
import mindustry.world.blocks.storage.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
@@ -54,6 +55,10 @@ public class GameService{
}
public void clearAchievement(String name){
}
public boolean isAchieved(String name){
return false;
}
@@ -80,8 +85,9 @@ public class GameService{
allTransportSerpulo = content.blocks().select(b -> b.category == Category.distribution && b.isVisibleOn(Planets.serpulo) && b.isVanilla() && b.buildVisibility == BuildVisibility.shown).toArray(Block.class);
allTransportErekir = content.blocks().select(b -> b.category == Category.distribution && b.isVisibleOn(Planets.erekir) && b.isVanilla() && b.buildVisibility == BuildVisibility.shown).toArray(Block.class);
allSerpuloBlocks = content.blocks().select(b -> b.synthetic() && b.isVisibleOn(Planets.serpulo) && b.isVanilla() && b.buildVisibility == BuildVisibility.shown).toArray(Block.class);
allErekirBlocks = content.blocks().select(b -> b.synthetic() && b.isVisibleOn(Planets.erekir) && b.isVanilla() && b.buildVisibility == BuildVisibility.shown).toArray(Block.class);
//cores are ignored since they're upgrades and can be skipped
allSerpuloBlocks = content.blocks().select(b -> b.synthetic() && b.isVisibleOn(Planets.serpulo) && b.isVanilla() && !(b instanceof CoreBlock) && b.buildVisibility == BuildVisibility.shown).toArray(Block.class);
allErekirBlocks = content.blocks().select(b -> b.synthetic() && b.isVisibleOn(Planets.erekir) && b.isVanilla() && !(b instanceof CoreBlock) && b.buildVisibility == BuildVisibility.shown).toArray(Block.class);
unitsBuilt = Core.settings.getJson("units-built" , ObjectSet.class, String.class, ObjectSet::new);
blocksBuilt = Core.settings.getJson("blocks-built" , ObjectSet.class, String.class, ObjectSet::new);
@@ -90,6 +96,8 @@ public class GameService{
checkAllBlocks(allBlocksErekir, allErekirBlocks);
checkAllBlocks(allBlocksSerpulo, allSerpuloBlocks);
Log.info(Structs.find(allSerpuloBlocks, b -> !blocksBuilt.contains(b.name)));
//periodically check for various conditions
float updateInterval = 2f;
Timer.schedule(this::checkUpdate, updateInterval, updateInterval);
@@ -528,9 +536,10 @@ public class GameService{
for(var up : Groups.powerGraph){
var graph = up.graph();
if(graph.all.size > 0 && graph.all.first().team == player.team() && graph.hasPowerBalanceSamples()){
if(graph.all.size > 1 && graph.all.first().team == player.team() && graph.hasPowerBalanceSamples()){
float balance = graph.getPowerBalance() * 60f;
if(balance < 10_000) negative10kPower.complete();
if(balance < -10_000) negative10kPower.complete();
if(balance > 100_000) positive100kPower.complete();
if(graph.getBatteryStored() > 1_000_000) store1milPower.complete();
}