diff --git a/core/assets-raw/sprites/units/precept-weapon-heat.png b/core/assets-raw/sprites/units/precept-weapon-heat.png new file mode 100644 index 0000000000..07c80972db Binary files /dev/null and b/core/assets-raw/sprites/units/precept-weapon-heat.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 9cae7ab7dc..ca2ff96520 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1942,12 +1942,12 @@ block.cyanogen-synthesizer.name = Cyanogen Synthesizer block.phase-synthesizer.name = Phase Synthesizer block.heat-reactor.name = Heat Reactor block.beryllium-wall.name = Beryllium Wall -block.beryllium-wall-large.name = Beryllium Wall Large +block.beryllium-wall-large.name = Large Beryllium Wall block.tungsten-wall.name = Tungsten Wall -block.tungsten-wall-large.name = Tungsten Wall Large +block.tungsten-wall-large.name = Large Tungsten Wall block.blast-door.name = Blast Door block.carbide-wall.name = Carbide Wall -block.carbide-wall-large.name = Carbide Wall Large +block.carbide-wall-large.name = Large Carbide Wall block.radar.name = Radar block.build-tower.name = Build Tower block.regen-projector.name = Regen Projector @@ -2002,6 +2002,12 @@ block.small-deconstructor.name = Small Deconstructor block.canvas.name = Canvas block.world-processor.name = World Processor block.world-cell.name = World Cell +block.shield-breaker.name = Shield Breaker +block.tank-fabricator.name = Tank Fabricator +block.mech-fabricator.name = Mech Fabricator +block.ship-fabricator.name = Ship Fabricator +block.basic-reconstructor.name = Basic Reconstructor +block.unit-repair-tower.name = Unit Repair Tower status.slow.name = Slow status.shielded.name = Shielded status.corroded.name = Corroded @@ -2015,15 +2021,18 @@ unit.bulwark.name = Bulwark unit.krepost.name = Krepost unit.avert.name = Avert unit.quell.name = Quell -unit.quell-missile.name = Quell Missile unit.disrupt.name = Disrupt -unit.disrupt-missile.name = Disrupt Missile unit.evoke.name = Evoke unit.incite.name = Incite unit.emanate.name = Emanate unit.manifold.name = Manifold unit.assembly-drone.name = Assembly Drone unit.effect-drone.name = Effect Drone +unit.precept.name = Precept +unit.merui.name = Merui +unit.anthicus.name = Anthicus +unit.osc.name = Osc +unit.obviate.name = Obviate sector.two.name = Two sector.three.name = Three sector.four.name = Four diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 6f918c4c95..628157fad8 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -824,12 +824,6 @@ public class Fx{ Drawf.light(e.x, e.y, 23f, e.color, e.fout() * 0.7f); }), - hitYellowLaser = new Effect(8, e -> { - color(Color.white, Pal.lightTrail, e.fin()); - stroke(0.5f + e.fout()); - Lines.circle(e.x, e.y, e.fin() * 5f); - }), - despawn = new Effect(12, e -> { color(Pal.lighterOrange, Color.gray, e.fin()); stroke(e.fout()); diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 35fb04c44c..420fa33d28 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -2589,18 +2589,18 @@ public class UnitTypes{ hitSize = 26f; treadPullOffset = 5; speed = 0.64f; - rotateSpeed = 2f; - health = 2100; - armor = 8f; + rotateSpeed = 1.5f; + health = 4500; + armor = 10f; itemCapacity = 0; treadRects = new Rect[]{new Rect(16, 38, 30, 75), new Rect(44, 7, 17, 60)}; researchCostMultiplier = 0f; weapons.add(new Weapon("precept-weapon"){{ layerOffset = 0.0001f; - reload = 30f; - shootY = 18f; - recoil = 1f; + reload = 85f; + shootY = 16f; + recoil = 3f; rotate = true; rotateSpeed = 1.3f; mirror = false; @@ -2609,24 +2609,44 @@ public class UnitTypes{ y = -1f; heatColor = Color.valueOf("f9350f"); cooldownTime = 30f; - bullet = new BasicBulletType(8f, 130){{ + bullet = new BasicBulletType(7f, 90){{ sprite = "missile-large"; - width = 9.5f; - height = 15f; - lifetime = 30f; + width = 7.5f; + height = 13f; + lifetime = 28f; hitSize = 6f; - shootEffect = Fx.shootTitan; - smokeEffect = Fx.shootSmokeTitan; pierceCap = 2; pierce = true; pierceBuilding = true; hitColor = backColor = trailColor = Color.valueOf("feb380"); frontColor = Color.white; - trailWidth = 3.1f; + trailWidth = 2.8f; trailLength = 8; hitEffect = despawnEffect = Fx.blastExplosion; + shootEffect = Fx.shootTitan; + smokeEffect = Fx.shootSmokeTitan; splashDamageRadius = 20f; splashDamage = 50f; + + trailEffect = Fx.hitSquaresColor; + trailRotation = true; + trailInterval = 3f; + + fragBullets = 4; + + fragBullet = new BasicBulletType(5f, 25){{ + sprite = "missile-large"; + width = 5f; + height = 7f; + lifetime = 15f; + hitSize = 4f; + hitColor = backColor = trailColor = Color.valueOf("feb380"); + frontColor = Color.white; + trailWidth = 1.7f; + trailLength = 3; + drag = 0.01f; + despawnEffect = hitEffect = Fx.hitBulletColor; + }}; }}; }}); }}; @@ -2643,7 +2663,7 @@ public class UnitTypes{ weapons.add(new Weapon("vanquish-weapon"){{ layerOffset = 0.0001f; - reload = 120f; + reload = 110f; shootY = 71f / 4f; shake = 5f; recoil = 4f; @@ -2656,7 +2676,7 @@ public class UnitTypes{ heatColor = Color.valueOf("f9350f"); cooldownTime = 80f; - bullet = new BasicBulletType(8f, 130){{ + bullet = new BasicBulletType(8f, 140){{ sprite = "missile-large"; width = 9.5f; height = 15f; @@ -2664,7 +2684,7 @@ public class UnitTypes{ hitSize = 6f; shootEffect = Fx.shootTitan; smokeEffect = Fx.shootSmokeTitan; - pierceCap = 2; + pierceCap = 3; pierce = true; pierceBuilding = true; hitColor = backColor = trailColor = Color.valueOf("feb380"); diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 9b99917b3a..179bfe4f04 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -25,6 +25,7 @@ import mindustry.world.blocks.defense.Wall.*; import static mindustry.Vars.*; +//TODO document public class BulletType extends Content implements Cloneable{ /** Lifetime in ticks. */ public float lifetime = 40f; diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 5a3e588001..77436ec6bf 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -55,10 +55,12 @@ public class Block extends UnlockableContent implements Senseable{ public boolean acceptsItems = false; public boolean separateItemCapacity = false; + /** maximum items this block can carry (usually, this is per-type of item) */ public int itemCapacity = 10; + /** maximum total liquids this block can carry if hasLiquids = true */ public float liquidCapacity = 10f; + /** higher numbers increase liquid output speed; TODO remove and replace with better liquids system */ public float liquidPressure = 1f; - /** If true, this block outputs to its facing direction, when applicable. * Used for blending calculations. */ public boolean outputFacing = true;