From 80001246ef9ca43ae9722aa08149897d831586a9 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 6 Aug 2018 11:19:44 -0400 Subject: [PATCH] Added sector wave difficulty / ita bundle updated --- core/assets/bundles/bundle_ita.properties | 48 ++++++++++++++++--- core/assets/bundles/bundle_ru.properties | 12 ++--- core/src/io/anuke/mindustry/Vars.java | 2 +- core/src/io/anuke/mindustry/core/World.java | 1 + core/src/io/anuke/mindustry/maps/Sectors.java | 23 +++++---- .../maps/missions/BattleMission.java | 7 +++ .../mindustry/maps/missions/Mission.java | 2 + .../maps/missions/ResourceMission.java | 7 +++ .../mindustry/maps/missions/WaveMission.java | 18 +++++-- 9 files changed, 89 insertions(+), 31 deletions(-) diff --git a/core/assets/bundles/bundle_ita.properties b/core/assets/bundles/bundle_ita.properties index d290c38c7b..35852c79d8 100644 --- a/core/assets/bundles/bundle_ita.properties +++ b/core/assets/bundles/bundle_ita.properties @@ -245,7 +245,6 @@ block.liquidjunction.name=Incrocio per condotti block.sorter.name=Filtro block.smelter.name=fonderia text.web.unsupported=La vcersione web non supporta questa funzione! Sacrica il gioco per utilizzarla. -text.host.web=La versione web non supporta l'hoting di server! Scarica il gioco per sfruttare questa funzione. text.map.delete=Sei sicuro di voler eliminare questa mappa"[orange]{0}[]"? text.construction.title=Guida blocchi da costruzione text.construction=Hai appena selezzionato la [accent]modalità di distruzione blocchi[].\n\nPer iniziare a piazzare, clicca in intorno appa tua navicella\nUna volta che sei soddisfatto del posizionamento, premi il conferma(✔), e la tua navicella inizierà a costruire il tutto.\n\n- [accentRimuovi i blocck[] dalla selezione cliccandoci sopra.\n- [accent]Sposta la selezione[] tenendo premuto e trascinando il tutto sullo schermo\n- [accent]Piazza i blocchi in linea[] Tenendo premuto nel punto d'inizio e poi trascinando il tutto nella direzione desiderata.\n- [accent]Cancella la selezione[] premendo la X in basso a sinistra. @@ -261,7 +260,6 @@ text.sector=Settori Selezionati: [LIGHT_GRAY]{0} text.sector.time=Tempo: [LIGHT_GRAY]{0} text.sector.deploy=Schiera text.sector.resume=Riprendi -text.sector.unlocked=Settore completato! text.sector.locked=[scarlet][[Incomplete] text.sector.unexplored=[accent][[Unexplored] text.close=Chiuso @@ -440,7 +438,6 @@ block.water-extractor.name=Estrattore d'acqua block.cultivator.name=Coltivatore block.dart-ship-factory.name=Fabbriche di navi proiettile block.delta-mech-factory.name=Fabbrica di mech -block.dronefactory.name=Fabbrica di droni block.repairpoint.name=Punto di riparazione block.resupplypoint.name=Punto di rifornimento block.liquidtank.name=Tanica @@ -468,8 +465,6 @@ block.solar-panel.name=Pannello solare block.solar-panel-large.name=Pannrllo solare 3x3 block.oil-extractor.name=Estrattore petrolio block.javelin-ship-factory.name=Fabbrica ni navi -block.drone-factory.name=Fabbrica di droni -block.fabricator-factory.name=Fabbriche di droni avanzati block.repair-point.name=Punto di riparazione block.resupply-point.name=Punto di rifornimento block.pulse-conduit.name=Condotta attiva @@ -479,4 +474,45 @@ block.liquid-tank.name=Tanica d'acqua block.liquid-junction.name=Giunzione liquida block.bridge-conduit.name=Condotta forzata sopraelevata block.rotary-pump.name=Pompa a turbina -block.nuclear-reactor.name=Reattore nucleare \ No newline at end of file +block.nuclear-reactor.name=Reattore nucleare +text.credits.text=Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[]\n\n[GRAY](In case you can't tell, this text is currently unfinished.\nTranslators, don't edit it yet!) +text.sector.gameover=This sector has been lost. Re-deploy? +text.sector.retry=Retry +text.wave.lasted=You lasted until wave [accent]{0}[]. +text.mission=Mission:[LIGHT_GRAY] {0} +text.mission.complete=Mission complete! +text.mission.complete.body=Sector {0},{1} has been conquered. +text.mission.wave=Survive [accent]{0}[] waves. +text.mission.battle=Destroy the enemy base. +text.mission.resource=Obtain {0} x{1} +text.none= +text.sector.corrupted=[orange]A save file for this sector was found, but loading failed.\nA new one has been created. +setting.fpscap.name=Max FPS +setting.fpscap.none=None +setting.fpscap.text={0} FPS +mode.sandbox.warning=Note that blocks cannot be used in sandbox mode until they are unlocked in other modes.\n\n[LIGHT_GRAY]If you have not unlocked any blocks, none will appear. +text.unit.health=[LIGHT_GRAY]Health: {0} +text.unit.speed=[LIGHT_GRAY]Speed: {0} +block.drone-pad.name=Drone Pad +block.fabricator-pad.name=Fabricator Pad +block.interceptor-pad.name=Interceptor Pad +block.monsoon-pad.name=Monsoon Pad +block.command-center.name=Command Center +block.mass-driver.name=Mass Driver +block.blast-drill.name=Blast Drill +block.thermal-pump.name=Thermal Pump +block.dagger-pad.name=Dagger Pad +block.titan-pad.name=Titan Pad +block.thermal-generator.name=Thermal Generator +unit.drone.name=Drone +unit.drone.description=The starter drone unit. Spawns in the core by default. Automatically mines ores, collects items and repairs blocks. +unit.fabricator.name=Fabricator +unit.fabricator.description=An advanced drone unit. Automatically mines ores, collects items and repairs blocks. Significantly more effective than a drone. +unit.scout.name=Scout +unit.scout.description=A basic ground unit. Uses lead as ammo. +unit.titan.name=Titan +unit.titan.description=An advanced armored ground unit. Uses carbide as ammo. Attacks both ground and air targets. +unit.monsoon.name=Monsoon +unit.monsoon.description=A heavy carpet bomber. Uses blast compound or pyratite as ammo. +unit.interceptor.name=Interceptor +unit.interceptor.description=A fast, hit-and-run strike unit. Uses lead as ammo. diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index d71d768572..3fd67817e4 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -500,10 +500,10 @@ block.nuclear-reactor.name=Ядерный реактор block.command-center.name=Командный центр block.mass-driver.name=Электромагнитная катапульта block.blast-drill.name=Буровая установка -block.thermal-pump.name=Тепловой насос -block.dagger-pad.name=Стартовая площадка "Кинжал" -block.titan-pad.name=Стартовая площадка титанов -block.thermal-generator.name=Термальный генератор +block.thermal-pump.name=Thermal Pump +block.dagger-pad.name=Dagger Pad +block.titan-pad.name=Titan Pad +block.thermal-generator.name=Thermal Generator unit.drone.name=Дрон unit.drone.description=Начальный дрон. По умолчанию появляется из ядра. Автоматически добывает руды, собирает предметы, ремонтирует блоки. unit.fabricator.name=Сборщик @@ -516,7 +516,3 @@ unit.monsoon.name=Муссон unit.monsoon.description=Тяжелый ковровый бомбардировщик. Использует взрывоопасное соединение или пиратит в качестве боеприпасов. unit.interceptor.name=Истребитель-перехватчик unit.interceptor.description=Быстрая и ударная боевая единица, которая использует набег с отскоком. Использует свинец как боеприпасы. -block.thermal-pump.name=Thermal Pump -block.dagger-pad.name=Dagger Pad -block.titan-pad.name=Titan Pad -block.thermal-generator.name=Thermal Generator diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index b1759ce794..1ac28ece7a 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -31,7 +31,7 @@ public class Vars{ //respawn time in frames public static final float respawnduration = 60 * 4; //time between waves in frames (on normal mode) - public static final float wavespace = 60 * 60 * 2f; + public static final float wavespace = 60 * 60 * 1.5f; //set ridiculously high for now public static final float coreBuildRange = 800999f; //discord group URL diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index d436f01771..eb7a69b46c 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -220,6 +220,7 @@ public class World extends Module{ public void loadSector(Sector sector){ currentSector = sector; state.mode = sector.missions.peek().getMode(); + state.difficulty = sector.missions.peek().getDifficulty(sector); Timers.mark(); Timers.mark(); diff --git a/core/src/io/anuke/mindustry/maps/Sectors.java b/core/src/io/anuke/mindustry/maps/Sectors.java index 7202057ee1..03648ad0ed 100644 --- a/core/src/io/anuke/mindustry/maps/Sectors.java +++ b/core/src/io/anuke/mindustry/maps/Sectors.java @@ -38,22 +38,21 @@ public class Sectors{ sector.saveID = control.getSaves().addSave("sector-" + sector.packedPosition()).index; world.sectors().save(); world.setSector(sector); - }else{ - try{ - sector.getSave().load(); - world.setSector(sector); - state.set(State.playing); - }catch(Exception e){ - Log.err(e); - sector.getSave().delete(); + }else try{ + sector.getSave().load(); + world.setSector(sector); + state.set(State.playing); + }catch(Exception e){ + Log.err(e); + sector.getSave().delete(); - playSector(sector); + playSector(sector); - if(!headless){ - threads.runGraphics(() -> ui.showError("$text.sector.corrupted")); - } + if(!headless){ + threads.runGraphics(() -> ui.showError("$text.sector.corrupted")); } } + } /**If a sector is not yet unlocked, returns null.*/ diff --git a/core/src/io/anuke/mindustry/maps/missions/BattleMission.java b/core/src/io/anuke/mindustry/maps/missions/BattleMission.java index 68a7218351..0cfd895e9b 100644 --- a/core/src/io/anuke/mindustry/maps/missions/BattleMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/BattleMission.java @@ -3,8 +3,10 @@ package io.anuke.mindustry.maps.missions; import com.badlogic.gdx.math.GridPoint2; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.Vars; +import io.anuke.mindustry.game.Difficulty; import io.anuke.mindustry.game.GameMode; import io.anuke.mindustry.game.Team; +import io.anuke.mindustry.maps.Sector; import io.anuke.mindustry.maps.generation.FortressGenerator; import io.anuke.mindustry.maps.generation.Generation; import io.anuke.ucore.scene.ui.layout.Table; @@ -13,6 +15,11 @@ import io.anuke.ucore.util.Bundles; public class BattleMission implements Mission{ private final static int coreX = 60, coreY = 60; + @Override + public Difficulty getDifficulty(Sector sector){ + return Difficulty.normal; + } + @Override public void display(Table table){ table.add("$text.mission.battle"); diff --git a/core/src/io/anuke/mindustry/maps/missions/Mission.java b/core/src/io/anuke/mindustry/maps/missions/Mission.java index 5c20056d27..86d0a5887e 100644 --- a/core/src/io/anuke/mindustry/maps/missions/Mission.java +++ b/core/src/io/anuke/mindustry/maps/missions/Mission.java @@ -3,6 +3,7 @@ package io.anuke.mindustry.maps.missions; import com.badlogic.gdx.math.GridPoint2; import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.blocks.StorageBlocks; +import io.anuke.mindustry.game.Difficulty; import io.anuke.mindustry.game.GameMode; import io.anuke.mindustry.game.SpawnGroup; import io.anuke.mindustry.game.Team; @@ -14,6 +15,7 @@ public interface Mission{ boolean isComplete(); String displayString(); GameMode getMode(); + Difficulty getDifficulty(Sector sector); void display(Table table); default Array getWaves(Sector sector){ diff --git a/core/src/io/anuke/mindustry/maps/missions/ResourceMission.java b/core/src/io/anuke/mindustry/maps/missions/ResourceMission.java index b8f6ff7ca8..ba9197fcf5 100644 --- a/core/src/io/anuke/mindustry/maps/missions/ResourceMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/ResourceMission.java @@ -1,7 +1,9 @@ package io.anuke.mindustry.maps.missions; import io.anuke.mindustry.Vars; +import io.anuke.mindustry.game.Difficulty; import io.anuke.mindustry.game.GameMode; +import io.anuke.mindustry.maps.Sector; import io.anuke.mindustry.type.Item; import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.ucore.util.Bundles; @@ -15,6 +17,11 @@ public class ResourceMission implements Mission{ this.amount = amount; } + @Override + public Difficulty getDifficulty(Sector sector){ + return Difficulty.normal; + } + @Override public void display(Table table){ diff --git a/core/src/io/anuke/mindustry/maps/missions/WaveMission.java b/core/src/io/anuke/mindustry/maps/missions/WaveMission.java index f31bbc49af..9843f3b01e 100644 --- a/core/src/io/anuke/mindustry/maps/missions/WaveMission.java +++ b/core/src/io/anuke/mindustry/maps/missions/WaveMission.java @@ -2,10 +2,7 @@ package io.anuke.mindustry.maps.missions; import com.badlogic.gdx.math.GridPoint2; import com.badlogic.gdx.utils.Array; -import io.anuke.mindustry.game.GameMode; -import io.anuke.mindustry.game.SpawnGroup; -import io.anuke.mindustry.game.Team; -import io.anuke.mindustry.game.Waves; +import io.anuke.mindustry.game.*; import io.anuke.mindustry.maps.Sector; import io.anuke.mindustry.maps.generation.Generation; import io.anuke.ucore.scene.ui.layout.Table; @@ -20,6 +17,19 @@ public class WaveMission implements Mission{ this.target = target; } + @Override + public Difficulty getDifficulty(Sector sector){ + if(sector.difficulty == 0){ + return Difficulty.easy; + }else if(sector.difficulty < 4){ + return Difficulty.normal; + }else if(sector.difficulty < 9){ + return Difficulty.hard; + }else{ + return Difficulty.insane; + } + } + @Override public Array getWaves(Sector sector){ Array spawns = new Array<>();