From 617bdf99103db9b83db287fca65baee39e3f3da8 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 28 Apr 2019 20:25:41 -0400 Subject: [PATCH] New zone maps / Dark map border / Tweaks --- core/assets/bundles/bundle.properties | 2 + core/assets/maps/overgrowth.mmap | Bin 0 -> 37614 bytes core/assets/maps/ruinousShores.mmap | Bin 18340 -> 18498 bytes core/src/io/anuke/mindustry/Vars.java | 4 - .../src/io/anuke/mindustry/content/Mechs.java | 14 +-- .../src/io/anuke/mindustry/content/Zones.java | 80 ++++++++++++------ core/src/io/anuke/mindustry/core/Logic.java | 10 ++- .../anuke/mindustry/entities/type/Unit.java | 2 +- core/src/io/anuke/mindustry/game/Rules.java | 4 + .../mindustry/graphics/BlockRenderer.java | 10 ++- .../maps/generators/MapGenerator.java | 16 +--- .../mindustry/ui/dialogs/FileChooser.java | 17 ++-- .../ui/fragments/BlockInventoryFragment.java | 2 +- .../anuke/mindustry/server/ServerControl.java | 2 + 14 files changed, 98 insertions(+), 65 deletions(-) create mode 100644 core/assets/maps/overgrowth.mmap diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 0b7b0ab168..b8e85c6ef5 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -328,6 +328,8 @@ zone.ruinousShores.name = Ruinous Shores zone.stainedMountains.name = Stained Mountains zone.desolateRift.name = Desolate Rift zone.nuclearComplex.name = Nuclear Production Complex +zone.overgrowth.name = Overgrowth +zone.tarFields.name = Tar Fields settings.language = Language settings.reset = Reset to Defaults diff --git a/core/assets/maps/overgrowth.mmap b/core/assets/maps/overgrowth.mmap new file mode 100644 index 0000000000000000000000000000000000000000..1bbb742e2f09eb793016db15f8bdf987d60af998 GIT binary patch literal 37614 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

=h)!#q5=xUZld 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 J{{a$E`<(!ij-~(r literal 0 HcmV?d00001 diff --git a/core/assets/maps/ruinousShores.mmap b/core/assets/maps/ruinousShores.mmap index 8723b5daad051cb785174b904644996e95cd3139..f863ac1f6f78fd55d537abb4410895d28fa0e81e 100644 GIT binary patch delta 18104 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 Uf)6eE?AxOQy3f!5KS_s6!oDg new Rules(){{ waves = true; waveTimer = true; - waveSpacing = 60 * 60 * 1.5f; + launchWaveMultiplier = 3f; + waveSpacing = 60 * 30f; + spawns = Array.with( + new SpawnGroup(UnitTypes.crawler){{ + unitScaling = 3f; + }}, + new SpawnGroup(UnitTypes.dagger){{ + unitScaling = 4f; + begin = 2; + spacing = 2; + }}, + new SpawnGroup(UnitTypes.wraith){{ + unitScaling = 3f; + begin = 11; + spacing = 3; + }}, + new SpawnGroup(UnitTypes.ghoul){{ + unitScaling = 3f; + begin = 22; + unitAmount = 1; + spacing = 3; + }}, + new SpawnGroup(UnitTypes.lich){{ + unitScaling = 2f; + effect = StatusEffects.boss; + begin = 41; + spacing = 20; + }} + ); }}; }}; + //to be implemented as an attack map + /* saltFlats = new Zone("saltFlats", new DesertWastesGenerator(260, 260)){{ startingItems = ItemStack.list(Items.copper, 200); conditionWave = 10; @@ -57,20 +88,7 @@ public class Zones implements ContentList{ waveTimer = true; waveSpacing = 60 * 60 * 1.5f; }}; - }}; - - overgrowth = new Zone("overgrowth", new OvergrowthGenerator(320, 320)){{ - startingItems = ItemStack.list(Items.copper, 200); - conditionWave = 10; - zoneRequirements = ZoneRequirement.with(craters, 15); - blockRequirements = new Block[]{Blocks.router}; - resources = new Item[]{Items.copper, Items.lead, Items.coal}; - rules = () -> new Rules(){{ - waves = true; - waveTimer = true; - waveSpacing = 60 * 60 * 1.5f; - }}; - }}; + }};*/ craters = new Zone("craters", new MapGenerator("craters", 1).dist(0).decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.01))){{ startingItems = ItemStack.list(Items.copper, 200); @@ -100,13 +118,28 @@ public class Zones implements ContentList{ }}; }}; + overgrowth = new Zone("overgrowth", new MapGenerator("overgrowth")){{ + startingItems = ItemStack.list(Items.copper, 3000, Items.lead, 2000, Items.silicon, 1000, Items.metaglass, 500); + conditionWave = 12; + launchPeriod = 4; + loadout = Loadouts.basicNucleus; + zoneRequirements = ZoneRequirement.with(frozenForest, 40); + blockRequirements = new Block[]{Blocks.router}; + resources = new Item[]{Items.copper, Items.lead, Items.coal, Items.titanium, Items.sand, Items.thorium, Items.scrap}; + rules = () -> new Rules(){{ + waves = true; + waveTimer = true; + waveSpacing = 60 * 100f; + }}; + }}; + ruinousShores = new Zone("ruinousShores", new MapGenerator("ruinousShores", 1).dist(3f, true)){{ loadout = Loadouts.basicFoundation; baseLaunchCost = ItemStack.with(); startingItems = ItemStack.list(Items.copper, 400); conditionWave = 20; launchPeriod = 20; - zoneRequirements = ZoneRequirement.with(desertWastes, 10, craters, 15); + zoneRequirements = ZoneRequirement.with(desertWastes, 30, craters, 15); blockRequirements = new Block[]{Blocks.graphitePress, Blocks.combustionGenerator}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.sand}; rules = () -> new Rules(){{ @@ -155,7 +188,7 @@ public class Zones implements ContentList{ conditionWave = 15; launchPeriod = 10; zoneRequirements = ZoneRequirement.with(ruinousShores, 20); - blockRequirements = new Block[]{Blocks.pneumaticDrill}; + blockRequirements = new Block[]{Blocks.coalCentrifuge}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.sand}; rules = () -> new Rules(){{ waves = true; @@ -181,14 +214,13 @@ public class Zones implements ContentList{ }}; nuclearComplex = new Zone("nuclearComplex", new MapGenerator("nuclearProductionComplex", 1) - .drops(ItemStack.with(Items.copper, 2000, Items.lead, 1500, Items.silicon, 1000, Items.graphite, 1000, Items.thorium, 200, Items.titanium, 2000, Items.metaglass, 1000)) .decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.01))){{ loadout = Loadouts.basicNucleus; baseLaunchCost = ItemStack.with(); startingItems = ItemStack.list(Items.copper, 2500, Items.lead, 3000, Items.silicon, 800, Items.metaglass, 400); conditionWave = 30; launchPeriod = 15; - zoneRequirements = ZoneRequirement.with(frozenForest, 20); + zoneRequirements = ZoneRequirement.with(stainedMountains, 20); blockRequirements = new Block[]{Blocks.thermalGenerator}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.thorium, Items.sand}; rules = () -> new Rules(){{ diff --git a/core/src/io/anuke/mindustry/core/Logic.java b/core/src/io/anuke/mindustry/core/Logic.java index f698bd8da5..a81d3c2702 100644 --- a/core/src/io/anuke/mindustry/core/Logic.java +++ b/core/src/io/anuke/mindustry/core/Logic.java @@ -58,7 +58,11 @@ public class Logic implements ApplicationListener{ public void play(){ state.set(State.playing); state.wavetime = state.rules.waveSpacing * 2; //grace period of 2x wave time before game starts - state.rules.spawns = world.getMap().getWaves(); + + //sometimes a map has no waves defined, they're defined in the zone rules + if(world.getMap().getWaves() != DefaultWaves.get() || !world.isZone()){ + state.rules.spawns = world.getMap().getWaves(); + } Events.fire(new PlayEvent()); } @@ -81,8 +85,8 @@ public class Logic implements ApplicationListener{ public void runWave(){ world.spawner.spawnEnemies(); state.wave++; - state.wavetime = world.isZone() && world.getZone().isBossWave(state.wave) ? state.rules.waveSpacing * bossWaveMultiplier : - world.isZone() && world.getZone().isLaunchWave(state.wave) ? state.rules.waveSpacing * launchWaveMultiplier : state.rules.waveSpacing; + state.wavetime = world.isZone() && world.getZone().isBossWave(state.wave) ? state.rules.waveSpacing * state.rules.bossWaveMultiplier : + world.isZone() && world.getZone().isLaunchWave(state.wave) ? state.rules.waveSpacing * state.rules.launchWaveMultiplier : state.rules.waveSpacing; Events.fire(new WaveEvent()); } diff --git a/core/src/io/anuke/mindustry/entities/type/Unit.java b/core/src/io/anuke/mindustry/entities/type/Unit.java index 43a46b5911..8bb69e72e1 100644 --- a/core/src/io/anuke/mindustry/entities/type/Unit.java +++ b/core/src/io/anuke/mindustry/entities/type/Unit.java @@ -354,7 +354,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ } public void drawStats(){ - Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Time.time(), healthf() * 5f, 1f - healthf())); + Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Time.time(), Math.max(healthf() * 5f, 1f), 1f - healthf())); Draw.rect(getPowerCellRegion(), x, y, rotation - 90); Draw.color(); } diff --git a/core/src/io/anuke/mindustry/game/Rules.java b/core/src/io/anuke/mindustry/game/Rules.java index bc610088f9..95faf1c90a 100644 --- a/core/src/io/anuke/mindustry/game/Rules.java +++ b/core/src/io/anuke/mindustry/game/Rules.java @@ -43,6 +43,10 @@ public class Rules{ public float respawnTime = 60 * 4; /** Time between waves in ticks. */ public float waveSpacing = 60 * 60 * 2; + /** How many times longer a boss wave takes. */ + public float bossWaveMultiplier = 3f; + /** How many times longer a launch wave takes. */ + public float launchWaveMultiplier = 2f; /** Zone ID, -1 for invalid zone. */ public byte zone = -1; /** Spawn layout. Should be assigned on save load based on map or zone. */ diff --git a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java index 053deef1ed..cafd2fb798 100644 --- a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java @@ -77,8 +77,14 @@ public class BlockRenderer implements Disposable{ for(int x = 0; x < world.width(); x++){ for(int y = 0; y < world.height(); y++){ Tile tile = world.rawTile(x, y); - if(tile.getRotation() > 0 && tile.block().solid && tile.block().fillsTile && !tile.block().synthetic()){ - Draw.color(0f, 0f, 0f, Math.min((tile.getRotation() + 0.5f) / 4f, 1f)); + int edgeBlend = 2; + float rot = tile.getRotation(); + int edgeDst = Math.min(x, Math.min(y, Math.min(Math.abs(x - (world.width() - 1)), Math.abs(y - (world.height() - 1))))); + if(edgeDst <= edgeBlend){ + rot = Math.max((edgeBlend - edgeDst) * (4f / edgeBlend), rot); + } + if(rot > 0 && ((tile.block().solid && tile.block().fillsTile && !tile.block().synthetic()) || edgeDst <= edgeBlend)){ + Draw.color(0f, 0f, 0f, Math.min((rot + 0.5f) / 4f, 1f)); Fill.rect(tile.x + 0.5f, tile.y + 0.5f, 1, 1); } } diff --git a/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java b/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java index 9f244d01de..93bd2e6bdb 100644 --- a/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java +++ b/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java @@ -6,10 +6,9 @@ import io.anuke.arc.math.geom.Point2; import io.anuke.arc.util.Structs; import io.anuke.arc.util.noise.Simplex; import io.anuke.mindustry.content.Blocks; -import io.anuke.mindustry.content.Items; import io.anuke.mindustry.io.MapIO; import io.anuke.mindustry.maps.Map; -import io.anuke.mindustry.type.ItemStack; +import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Loadout; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; @@ -35,8 +34,6 @@ public class MapGenerator extends Generator{ public int enemySpawns = -1; /** Whether floor is distorted along with blocks. */ public boolean distortFloor = false; - /** Items randomly added to containers and vaults. */ - public ItemStack[] storageDrops = ItemStack.with(Items.copper, 300, Items.lead, 300, Items.silicon, 200, Items.graphite, 200, Items.blastCompound, 200); public MapGenerator(String mapName){ this.mapName = mapName; @@ -47,11 +44,6 @@ public class MapGenerator extends Generator{ this.enemySpawns = enemySpawns; } - public MapGenerator drops(ItemStack[] drops){ - this.storageDrops = drops; - return this; - } - public MapGenerator decor(Decoration... decor){ this.decorations.addAll(decor); return this; @@ -140,10 +132,10 @@ public class MapGenerator extends Generator{ } } - if(tile.block() instanceof StorageBlock && !(tile.block() instanceof CoreBlock)){ - for(ItemStack stack : storageDrops){ + if(tile.block() instanceof StorageBlock && !(tile.block() instanceof CoreBlock) && world.getZone() != null){ + for(Item item : world.getZone().resources){ if(Mathf.chance(0.3)){ - tile.entity.items.add(stack.item, Math.min(Mathf.random(stack.amount), tile.block().itemCapacity)); + tile.entity.items.add(item, Math.min(Mathf.random(500), tile.block().itemCapacity)); } } } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java b/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java index 2bb98b5cd9..38a27083f6 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java @@ -13,20 +13,16 @@ import io.anuke.arc.scene.ui.layout.Unit; import io.anuke.arc.scene.utils.UIUtils; import io.anuke.arc.util.*; import io.anuke.arc.util.pooling.Pools; -import io.anuke.mindustry.Vars; import io.anuke.mindustry.core.Platform; import java.util.Arrays; public class FileChooser extends FloatingDialog{ - public static Predicate pngFilter = file -> file.extension().equalsIgnoreCase("png"); - public static Predicate mapFilter = file -> file.extension().equalsIgnoreCase(Vars.mapExtension); - public static Predicate jpegFilter = file -> file.extension().equalsIgnoreCase("png") || file.extension().equalsIgnoreCase("jpg") || file.extension().equalsIgnoreCase("jpeg"); - public static Predicate defaultFilter = file -> true; + private static final FileHandle homeDirectory = Core.files.absolute(OS.isMac ? OS.getProperty("user.home") + "/Downloads/" : Core.files.getExternalStoragePath()); + private static FileHandle lastDirectory = homeDirectory; + private Table files; - private FileHandle homeDirectory = Core.files.absolute(OS.isMac ? OS.getProperty("user.home") + "/Downloads/" : - Core.files.getExternalStoragePath()); - private FileHandle directory = homeDirectory; + private FileHandle directory = lastDirectory; private ScrollPane pane; private TextField navigation, filefield; private TextButton ok; @@ -117,6 +113,7 @@ public class FileChooser extends FloatingDialog{ home.resizeImage(isize); home.clicked(() -> { directory = homeDirectory; + lastDirectory = directory; updateFiles(true); }); @@ -198,6 +195,7 @@ public class FileChooser extends FloatingDialog{ TextButton upbutton = new TextButton(".." + directory.toString(), "clear-toggle"); upbutton.clicked(() -> { directory = directory.parent(); + lastDirectory = directory; updateFiles(true); }); @@ -226,6 +224,7 @@ public class FileChooser extends FloatingDialog{ updateFileFieldStatus(); }else{ directory = directory.child(filename); + lastDirectory = directory; updateFiles(true); } }); @@ -296,12 +295,14 @@ public class FileChooser extends FloatingDialog{ if(!canBack()) return; index--; directory = history.get(index - 1); + lastDirectory = directory; updateFiles(false); } public void forward(){ if(!canForward()) return; directory = history.get(index); + lastDirectory = directory; index++; updateFiles(false); } diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java index 3f7fcc2fe3..71a633707b 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlockInventoryFragment.java @@ -116,7 +116,7 @@ public class BlockInventoryFragment extends Fragment{ int row = 0; table.margin(6f); - table.defaults().size(8 * 5).space(6f); + table.defaults().size(8 * 5).space(8f); if(tile.block().hasItems){ diff --git a/server/src/io/anuke/mindustry/server/ServerControl.java b/server/src/io/anuke/mindustry/server/ServerControl.java index 939eac3aa2..91d5211133 100644 --- a/server/src/io/anuke/mindustry/server/ServerControl.java +++ b/server/src/io/anuke/mindustry/server/ServerControl.java @@ -136,6 +136,8 @@ public class ServerControl implements ApplicationListener{ Map map = previous; if(maps.size > 1){ while(map == previous) map = maps.random(); + }else if(!previous.custom && !world.maps.customMaps().isEmpty()){ + map = maps.first(); } Call.onInfoMessage((state.rules.pvp