diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 70d7430557..ea6f0dda6b 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -20,7 +20,7 @@ gameover = Game Over gameover.pvp = The[accent] {0}[] team is victorious! highscore = [accent]New highscore! copied = Copied. -indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- Content is missing\n - Most [scarlet]Unit AI[] does not work properly\n- Many units are unfinished\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. +indev.popup = [accent]v6[] is currently in [accent]alpha[].\n[lightgray]This means:[]\n[scarlet]- The campaign is completely unfinished[]\n- SFX and music are unfinished/missing\n- Everything you see is subject to change or removal.\n\nReport bugs or crashes on [accent]Github[]. indev.notready = This part of the game isn't ready yet load.sound = Sounds diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index f98676f156..7474168ef6 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -1544,7 +1544,7 @@ public class UnitTypes implements ContentList{ xRand = 8f; shotDelay = 1f; - bullet = new MissileBulletType(4.2f, 25){{ + bullet = new MissileBulletType(4.2f, 30){{ homingPower = 0.12f; width = 8f; height = 8f; @@ -1552,8 +1552,8 @@ public class UnitTypes implements ContentList{ drag = -0.003f; homingRange = 80f; keepVelocity = false; - splashDamageRadius = 25f; - splashDamage = 25f; + splashDamageRadius = 30f; + splashDamage = 35f; lifetime = 56f; trailColor = Pal.bulletYellowBack; backColor = Pal.bulletYellowBack; diff --git a/core/src/mindustry/ctype/UnlockableContent.java b/core/src/mindustry/ctype/UnlockableContent.java index 56e9c31146..f6e6d0a2dc 100644 --- a/core/src/mindustry/ctype/UnlockableContent.java +++ b/core/src/mindustry/ctype/UnlockableContent.java @@ -22,7 +22,7 @@ public abstract class UnlockableContent extends MappableContent{ /** Whether this content is always unlocked in the tech tree. */ public boolean alwaysUnlocked = false; /** Icons by Cicon ID.*/ - protected TextureRegion[] cicons = new TextureRegion[mindustry.ui.Cicon.all.length]; + protected TextureRegion[] cicons = new TextureRegion[Cicon.all.length]; /** Unlock state. Loaded from settings. Do not modify outside of the constructor. */ protected boolean unlocked; diff --git a/core/src/mindustry/game/DefaultWaves.java b/core/src/mindustry/game/DefaultWaves.java index e21b13ca8c..bc03b29e0f 100644 --- a/core/src/mindustry/game/DefaultWaves.java +++ b/core/src/mindustry/game/DefaultWaves.java @@ -339,6 +339,14 @@ public class DefaultWaves{ shieldScaling = shieldsPerWave; }}); + //shift back waves on higher difficulty for a harder start + int shift = Math.max((int)(difficulty * 15 - 5), 0); + + for(SpawnGroup group : out){ + group.begin -= shift; + group.end -= shift; + } + return out; } } diff --git a/core/src/mindustry/ui/dialogs/ResearchDialog.java b/core/src/mindustry/ui/dialogs/ResearchDialog.java index b1dbea2528..9c5e6fd3ed 100644 --- a/core/src/mindustry/ui/dialogs/ResearchDialog.java +++ b/core/src/mindustry/ui/dialogs/ResearchDialog.java @@ -400,7 +400,8 @@ public class ResearchDialog extends BaseDialog{ } } - return false; + //can always spend when locked + return node.content.locked(); } void spend(TechNode node){ @@ -414,7 +415,7 @@ public class ResearchDialog extends BaseDialog{ ItemStack completed = node.finishedRequirements[i]; //amount actually taken from inventory - int used = Math.min(req.amount - completed.amount, items.get(req.item)); + int used = Math.max(Math.min(req.amount - completed.amount, items.get(req.item)), 0); items.remove(req.item, used); completed.amount += used;