diff --git a/core/assets-raw/sprites_replacement/items/item-copper.png b/core/assets-raw/sprites_replacement/items/item-copper.png index 50742d5643..664c9cc6f3 100644 Binary files a/core/assets-raw/sprites_replacement/items/item-copper.png and b/core/assets-raw/sprites_replacement/items/item-copper.png differ diff --git a/core/assets-raw/sprites_replacement/items/item-lead.png b/core/assets-raw/sprites_replacement/items/item-lead.png index 040918a394..ce09ac6185 100644 Binary files a/core/assets-raw/sprites_replacement/items/item-lead.png and b/core/assets-raw/sprites_replacement/items/item-lead.png differ diff --git a/core/assets-raw/sprites_replacement/items/item-plastanium.png b/core/assets-raw/sprites_replacement/items/item-plastanium.png index 454afb274a..6ce75034f3 100644 Binary files a/core/assets-raw/sprites_replacement/items/item-plastanium.png and b/core/assets-raw/sprites_replacement/items/item-plastanium.png differ diff --git a/core/assets-raw/sprites_replacement/items/item-sand.png b/core/assets-raw/sprites_replacement/items/item-sand.png index 0acb132b0d..ac94898030 100644 Binary files a/core/assets-raw/sprites_replacement/items/item-sand.png and b/core/assets-raw/sprites_replacement/items/item-sand.png differ diff --git a/core/assets-raw/sprites_replacement/items/item-scrap.png b/core/assets-raw/sprites_replacement/items/item-scrap.png index e0a70317e0..0de9f03656 100644 Binary files a/core/assets-raw/sprites_replacement/items/item-scrap.png and b/core/assets-raw/sprites_replacement/items/item-scrap.png differ diff --git a/core/assets-raw/sprites_replacement/items/item-thorium.png b/core/assets-raw/sprites_replacement/items/item-thorium.png index 709a4a1046..2cd39c8f49 100644 Binary files a/core/assets-raw/sprites_replacement/items/item-thorium.png and b/core/assets-raw/sprites_replacement/items/item-thorium.png differ diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 269f9dbcc3..71da20b99c 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites_fallback4.png b/core/assets/sprites/sprites_fallback4.png index bd67d3d902..5bbf265a48 100644 Binary files a/core/assets/sprites/sprites_fallback4.png and b/core/assets/sprites/sprites_fallback4.png differ diff --git a/core/assets/sprites/sprites_fallback5.png b/core/assets/sprites/sprites_fallback5.png index 832b117667..46781d2e93 100644 Binary files a/core/assets/sprites/sprites_fallback5.png and b/core/assets/sprites/sprites_fallback5.png differ diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index 6b1a09e6fc..db737c9608 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -1110,7 +1110,7 @@ public class Blocks implements ContentList{ size = 4; health = 900; powerProduction = 130f; - itemDuration = 80f; + itemDuration = 90f; consumes.power(25f); consumes.item(Items.blastCompound); consumes.liquid(Liquids.cryofluid, 0.25f); @@ -1151,7 +1151,7 @@ public class Blocks implements ContentList{ }}; blastDrill = new Drill("blast-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 130, Items.silicon, 120, Items.titanium, 100, Items.thorium, 90)); + requirements(Category.production, ItemStack.with(Items.copper, 130, Items.silicon, 120, Items.titanium, 100, Items.thorium, 100)); drillTime = 200; size = 4; drawRim = true; diff --git a/core/src/io/anuke/mindustry/content/Mechs.java b/core/src/io/anuke/mindustry/content/Mechs.java index 050ff47c16..d19aaae610 100644 --- a/core/src/io/anuke/mindustry/content/Mechs.java +++ b/core/src/io/anuke/mindustry/content/Mechs.java @@ -9,6 +9,7 @@ import io.anuke.arc.math.Mathf; import io.anuke.arc.util.Time; import io.anuke.mindustry.entities.Effects; import io.anuke.mindustry.entities.Units; +import io.anuke.mindustry.entities.bullet.BombBulletType; import io.anuke.mindustry.entities.effect.Lightning; import io.anuke.mindustry.entities.type.Player; import io.anuke.mindustry.game.ContentList; @@ -307,11 +308,11 @@ public class Mechs implements ContentList{ trident = new Mech("trident-ship", true){ { drillPower = 2; - speed = 0.14f; + speed = 0.15f; drag = 0.034f; mass = 2.5f; turnCursor = false; - health = 220f; + health = 250f; itemCapacity = 30; engineColor = Color.valueOf("84f491"); cellTrnsY = 1f; @@ -319,14 +320,22 @@ public class Mechs implements ContentList{ weapon = new Weapon("bomber"){{ length = 0f; width = 2f; - reload = 8f; + reload = 25f; shots = 2; + shotDelay = 1f; + shots = 8; roundrobin = true; ejectEffect = Fx.none; velocityRnd = 1f; - inaccuracy = 40f; + inaccuracy = 20f; ignoreRotation = true; - bullet = Bullets.bombExplosive; + bullet = new BombBulletType(14f, 25f, "shell"){{ + bulletWidth = 10f; + bulletHeight = 14f; + hitEffect = Fx.flakExplosion; + shootEffect = Fx.none; + smokeEffect = Fx.none; + }}; }}; } diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index 61f4a07ccd..c68727da15 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -637,7 +637,12 @@ public class Player extends Unit implements BuilderTrait, ShooterTrait{ protected void updateShooting(){ if(!state.isEditor() && isShooting() && mech.canShoot(this)){ - mech.weapon.update(this, pointerX, pointerY); + if(!mech.turnCursor){ + //shoot forward ignoring cursor + mech.weapon.update(this, x + Angles.trnsx(rotation, 1f), y + Angles.trnsy(rotation, 1f)); + }else{ + mech.weapon.update(this, pointerX, pointerY); + } } } diff --git a/core/src/io/anuke/mindustry/type/Weapon.java b/core/src/io/anuke/mindustry/type/Weapon.java index fceb8d22fc..7d2a22c98f 100644 --- a/core/src/io/anuke/mindustry/type/Weapon.java +++ b/core/src/io/anuke/mindustry/type/Weapon.java @@ -88,13 +88,14 @@ public class Weapon{ public static void shootDirect(ShooterTrait shooter, float offsetX, float offsetY, float rotation, boolean left){ float x = shooter.getX() + offsetX; float y = shooter.getY() + offsetY; + float baseX = shooter.getX(), baseY = shooter.getY(); Weapon weapon = shooter.getWeapon(); sequenceNum = 0; if(weapon.shotDelay > 0.01f){ Angles.shotgun(weapon.shots, weapon.spacing, rotation, f -> { - Time.run(sequenceNum * weapon.shotDelay, () -> weapon.bullet(shooter, x, y, f + Mathf.range(weapon.inaccuracy))); + Time.run(sequenceNum * weapon.shotDelay, () -> weapon.bullet(shooter, x + shooter.getX() - baseX, y + shooter.getY() - baseY, f + Mathf.range(weapon.inaccuracy))); sequenceNum++; }); }else{ diff --git a/core/src/io/anuke/mindustry/ui/ItemsDisplay.java b/core/src/io/anuke/mindustry/ui/ItemsDisplay.java index a4ca3d6d07..684cc07aa1 100644 --- a/core/src/io/anuke/mindustry/ui/ItemsDisplay.java +++ b/core/src/io/anuke/mindustry/ui/ItemsDisplay.java @@ -13,6 +13,7 @@ import java.util.Locale; import static io.anuke.mindustry.Vars.content; import static io.anuke.mindustry.Vars.data; +/** Displays a list of items, e.g. launched items.*/ public class ItemsDisplay extends Table{ private static final NumberFormat format = NumberFormat.getNumberInstance(Locale.getDefault()); diff --git a/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java b/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java index f2c9edac07..fe9e0a17d4 100644 --- a/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java +++ b/core/src/io/anuke/mindustry/world/consumers/ConsumeItemFilter.java @@ -1,6 +1,5 @@ package io.anuke.mindustry.world.consumers; -import io.anuke.arc.collection.Array; import io.anuke.arc.function.Predicate; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.mindustry.entities.type.TileEntity; @@ -33,9 +32,8 @@ public class ConsumeItemFilter extends Consume{ @Override public void build(Tile tile, Table table){ - Array list = content.items().select(filter); MultiReqImage image = new MultiReqImage(); - list.each(item -> image.add(new ReqImage(new ItemImage(item.icon(Icon.large), 1), () -> tile.entity != null && tile.entity.items != null && tile.entity.items.has(item)))); + content.items().each(filter, item -> image.add(new ReqImage(new ItemImage(item.icon(Icon.large), 1), () -> tile.entity != null && tile.entity.items != null && tile.entity.items.has(item)))); table.add(image).size(8 * 4); } diff --git a/tools/build.gradle b/tools/build.gradle index 16781d2917..23dfbcf530 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -168,7 +168,7 @@ task swapColors(){ task scaleSprites4x(){ doLast{ fileTree(dir: '../core/assets-raw/sprites_out/', include: "**/*.png").visit{ file -> - if(file.isDirectory() || file.toString().contains("/ui/")) return + if(file.isDirectory() || file.toString().replace("\\", "/").contains("/ui/")) return scaleImage(file.file) antialias(file.file) @@ -205,7 +205,7 @@ task pack(){ doLast{ fileTree(dir: '../core/assets-raw/sprites_out/', include: "**/*.png").visit{ file -> - if(file.isDirectory() || file.toString().contains("/ui/")) return + if(file.isDirectory() || file.toString().replace("\\", "/").contains("/ui/")) return antialias(file.file) }