diff --git a/annotations/src/main/resources/classids.properties b/annotations/src/main/resources/classids.properties index 318d8b74da..b5f97ac6c3 100644 --- a/annotations/src/main/resources/classids.properties +++ b/annotations/src/main/resources/classids.properties @@ -1,6 +1,7 @@ #Maps entity names to IDs. Autogenerated. alpha=0 +arkyid=37 block=1 cix=2 draug=3 diff --git a/core/assets-raw/sprites/units/cix-cell.png b/core/assets-raw/sprites/units/arkyid-cell.png similarity index 100% rename from core/assets-raw/sprites/units/cix-cell.png rename to core/assets-raw/sprites/units/arkyid-cell.png diff --git a/core/assets-raw/sprites/units/cix-foot.png b/core/assets-raw/sprites/units/arkyid-foot.png similarity index 100% rename from core/assets-raw/sprites/units/cix-foot.png rename to core/assets-raw/sprites/units/arkyid-foot.png diff --git a/core/assets-raw/sprites/units/cix-joint-base.png b/core/assets-raw/sprites/units/arkyid-joint-base.png similarity index 100% rename from core/assets-raw/sprites/units/cix-joint-base.png rename to core/assets-raw/sprites/units/arkyid-joint-base.png diff --git a/core/assets-raw/sprites/units/cix-leg-base.png b/core/assets-raw/sprites/units/arkyid-leg-base.png similarity index 100% rename from core/assets-raw/sprites/units/cix-leg-base.png rename to core/assets-raw/sprites/units/arkyid-leg-base.png diff --git a/core/assets-raw/sprites/units/cix-leg.png b/core/assets-raw/sprites/units/arkyid-leg.png similarity index 100% rename from core/assets-raw/sprites/units/cix-leg.png rename to core/assets-raw/sprites/units/arkyid-leg.png diff --git a/core/assets-raw/sprites/units/cix-old.png b/core/assets-raw/sprites/units/arkyid-old.png similarity index 100% rename from core/assets-raw/sprites/units/cix-old.png rename to core/assets-raw/sprites/units/arkyid-old.png diff --git a/core/assets-raw/sprites/units/cix.png b/core/assets-raw/sprites/units/arkyid.png similarity index 100% rename from core/assets-raw/sprites/units/cix.png rename to core/assets-raw/sprites/units/arkyid.png diff --git a/core/assets-raw/sprites/units/eruptor-base.png b/core/assets-raw/sprites/units/atrax-base.png similarity index 100% rename from core/assets-raw/sprites/units/eruptor-base.png rename to core/assets-raw/sprites/units/atrax-base.png diff --git a/core/assets-raw/sprites/units/eruptor-cell.png b/core/assets-raw/sprites/units/atrax-cell.png similarity index 100% rename from core/assets-raw/sprites/units/eruptor-cell.png rename to core/assets-raw/sprites/units/atrax-cell.png diff --git a/core/assets-raw/sprites/units/eruptor-foot.png b/core/assets-raw/sprites/units/atrax-foot.png similarity index 100% rename from core/assets-raw/sprites/units/eruptor-foot.png rename to core/assets-raw/sprites/units/atrax-foot.png diff --git a/core/assets-raw/sprites/units/eruptor-joint.png b/core/assets-raw/sprites/units/atrax-joint.png similarity index 100% rename from core/assets-raw/sprites/units/eruptor-joint.png rename to core/assets-raw/sprites/units/atrax-joint.png diff --git a/core/assets-raw/sprites/units/eruptor-leg-base.png b/core/assets-raw/sprites/units/atrax-leg-base.png similarity index 100% rename from core/assets-raw/sprites/units/eruptor-leg-base.png rename to core/assets-raw/sprites/units/atrax-leg-base.png diff --git a/core/assets-raw/sprites/units/eruptor-leg.png b/core/assets-raw/sprites/units/atrax-leg.png similarity index 100% rename from core/assets-raw/sprites/units/eruptor-leg.png rename to core/assets-raw/sprites/units/atrax-leg.png diff --git a/core/assets-raw/sprites/units/eruptor.png b/core/assets-raw/sprites/units/atrax.png similarity index 100% rename from core/assets-raw/sprites/units/eruptor.png rename to core/assets-raw/sprites/units/atrax.png diff --git a/core/assets/sprites/fallback/sprites.atlas b/core/assets/sprites/fallback/sprites.atlas index 0778183255..ab936c55ec 100644 --- a/core/assets/sprites/fallback/sprites.atlas +++ b/core/assets/sprites/fallback/sprites.atlas @@ -453,7 +453,7 @@ data-processor index: -1 data-processor-2 rotate: false - xy: 815, 509 + xy: 749, 443 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1083,7 +1083,7 @@ cross index: -1 distributor rotate: false - xy: 749, 443 + xy: 815, 443 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1216,42 +1216,42 @@ underflow-gate index: -1 blast-drill rotate: false - xy: 811, 1919 + xy: 1, 817 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rim rotate: false - xy: 1, 947 + xy: 1071, 1919 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 163, 1145 + xy: 1, 687 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 941, 1919 + xy: 1201, 1919 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 drill-top rotate: false - xy: 903, 933 + xy: 969, 933 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-liquid rotate: false - xy: 903, 933 + xy: 969, 933 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2028,7 +2028,7 @@ alloy-smelter-top index: -1 blast-mixer rotate: false - xy: 669, 401 + xy: 1981, 1917 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2042,49 +2042,49 @@ block-forge index: -1 coal-centrifuge rotate: false - xy: 817, 707 + xy: 817, 641 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 1807, 1131 + xy: 1873, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 1873, 1131 + xy: 1939, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 1939, 1131 + xy: 751, 575 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 751, 575 + xy: 817, 575 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 817, 575 + xy: 749, 509 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 749, 509 + xy: 815, 509 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2406,7 +2406,7 @@ spore-cluster3 index: -1 container rotate: false - xy: 903, 999 + xy: 969, 999 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2483,7 +2483,7 @@ block-1 index: -1 block-2 rotate: false - xy: 1981, 1917 + xy: 1981, 1851 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2497,7 +2497,7 @@ block-3 index: -1 block-4 rotate: false - xy: 1, 817 + xy: 1, 557 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2588,7 +2588,7 @@ air-factory index: -1 command-center rotate: false - xy: 817, 641 + xy: 903, 999 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2686,7 +2686,7 @@ copper-wall index: -1 copper-wall-large rotate: false - xy: 969, 999 + xy: 1279, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2700,14 +2700,14 @@ door index: -1 door-large rotate: false - xy: 815, 443 + xy: 1979, 1625 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 1979, 1625 + xy: 903, 933 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3048,6 +3048,48 @@ arc orig: 32, 32 offset: 0, 0 index: -1 +arkyid-wreck0 + rotate: false + xy: 1, 947 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +arkyid-wreck1 + rotate: false + xy: 163, 1145 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +arkyid-wreck2 + rotate: false + xy: 941, 1919 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +atrax-wreck0 + rotate: false + xy: 587, 665 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax-wreck1 + rotate: false + xy: 587, 599 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax-wreck2 + rotate: false + xy: 587, 533 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 beta-wreck0 rotate: false xy: 933, 427 @@ -3092,7 +3134,7 @@ block-arc-full index: -1 block-blast-drill-full rotate: false - xy: 1071, 1919 + xy: 1331, 1919 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -3134,7 +3176,7 @@ conveyor-0-0 index: -1 block-core-foundation-full rotate: false - xy: 1, 687 + xy: 1, 427 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -3155,14 +3197,14 @@ block-craters-full index: -1 block-cryofluidmixer-full rotate: false - xy: 1981, 1851 + xy: 587, 319 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 587, 319 + xy: 571, 253 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3274,14 +3316,14 @@ block-ignarock-full index: -1 block-impact-reactor-full rotate: false - xy: 1201, 1919 + xy: 1461, 1919 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 571, 253 + xy: 571, 187 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3337,14 +3379,14 @@ block-mass-driver-full index: -1 block-mechanical-drill-full rotate: false - xy: 571, 187 + xy: 571, 121 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 1, 557 + xy: 1, 297 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -3421,7 +3463,7 @@ block-ore-titanium-full index: -1 block-parallax-full rotate: false - xy: 571, 121 + xy: 571, 55 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3449,7 +3491,7 @@ block-pebbles-full index: -1 block-phase-weaver-full rotate: false - xy: 571, 55 + xy: 771, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3463,7 +3505,7 @@ block-plated-conduit-full index: -1 block-pneumatic-drill-full rotate: false - xy: 771, 971 + xy: 837, 971 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3519,7 +3561,7 @@ block-saltrocks-full index: -1 block-salvo-full rotate: false - xy: 837, 971 + xy: 755, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3547,7 +3589,7 @@ block-sandrocks-full index: -1 block-scatter-full rotate: false - xy: 755, 905 + xy: 821, 905 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3589,14 +3631,14 @@ scrap-wall-huge1 index: -1 block-scrap-wall-large-full rotate: false - xy: 821, 905 + xy: 751, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 751, 839 + xy: 751, 773 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3652,14 +3694,14 @@ block-snowrocks-full index: -1 block-spectre-full rotate: false - xy: 1331, 1919 + xy: 1591, 1919 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 353, 1032 + xy: 1989, 1201 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -3673,7 +3715,7 @@ block-spore-moss-full index: -1 block-spore-press-full rotate: false - xy: 751, 773 + xy: 817, 839 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3694,7 +3736,7 @@ block-stone-full index: -1 block-swarmer-full rotate: false - xy: 817, 839 + xy: 751, 707 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3722,46 +3764,25 @@ titanium-conveyor-0-0 index: -1 block-turbine-generator-full rotate: false - xy: 751, 707 + xy: 817, 773 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 817, 773 + xy: 751, 641 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 751, 641 + xy: 817, 707 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -cix-wreck0 - rotate: false - xy: 1, 167 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -cix-wreck1 - rotate: false - xy: 1721, 1919 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -cix-wreck2 - rotate: false - xy: 1, 37 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 core-foundation-team-crux rotate: false xy: 131, 885 @@ -3862,56 +3883,56 @@ cracks-1-7 index: -1 cracks-2-0 rotate: false - xy: 1279, 1131 + xy: 1345, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 1345, 1131 + xy: 1411, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 1411, 1131 + xy: 1477, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 1477, 1131 + xy: 1543, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 1543, 1131 + xy: 1609, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 1609, 1131 + xy: 1675, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 1675, 1131 + xy: 1741, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 1741, 1131 + xy: 1807, 1131 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4140,27 +4161,6 @@ duo orig: 32, 32 offset: 0, 0 index: -1 -eruptor-wreck0 - rotate: false - xy: 587, 665 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -eruptor-wreck1 - rotate: false - xy: 587, 599 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -eruptor-wreck2 - rotate: false - xy: 587, 533 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 flare-wreck0 rotate: false xy: 1107, 791 @@ -5281,6 +5281,20 @@ unit-alpha-full orig: 48, 48 offset: 0, 0 index: -1 +unit-arkyid-full + rotate: false + xy: 261, 365 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +unit-atrax-full + rotate: false + xy: 587, 467 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 unit-beta-full rotate: false xy: 1657, 718 @@ -5288,13 +5302,6 @@ unit-beta-full orig: 48, 48 offset: 0, 0 index: -1 -unit-cix-full - rotate: false - xy: 261, 365 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 unit-crawler-full rotate: false xy: 1657, 668 @@ -5309,13 +5316,6 @@ unit-dagger-full orig: 48, 48 offset: 0, 0 index: -1 -unit-eruptor-full - rotate: false - xy: 587, 467 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 unit-flare-full rotate: false xy: 1707, 775 @@ -5596,6 +5596,111 @@ alpha-cell orig: 48, 48 offset: 0, 0 index: -1 +arkyid + rotate: false + xy: 811, 1919 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +chaos-array + rotate: false + xy: 811, 1919 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +arkyid-cell + rotate: false + xy: 591, 929 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +arkyid-foot + rotate: false + xy: 677, 539 + size: 70, 70 + orig: 70, 70 + offset: 0, 0 + index: -1 +arkyid-joint-base + rotate: false + xy: 677, 467 + size: 70, 70 + orig: 70, 70 + offset: 0, 0 + index: -1 +arkyid-leg + rotate: false + xy: 1981, 1793 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +arkyid-leg-base + rotate: false + xy: 131, 39 + size: 104, 64 + orig: 104, 64 + offset: 0, 0 + index: -1 +arkyid-old + rotate: false + xy: 587, 863 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax + rotate: false + xy: 587, 797 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax-base + rotate: false + xy: 669, 401 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +atrax-cell + rotate: false + xy: 587, 731 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax-foot + rotate: false + xy: 353, 1032 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +atrax-joint + rotate: false + xy: 841, 1761 + size: 26, 26 + orig: 26, 26 + offset: 0, 0 + index: -1 +atrax-leg + rotate: false + xy: 2005, 1131 + size: 36, 26 + orig: 36, 26 + offset: 0, 0 + index: -1 +atrax-leg-base + rotate: false + xy: 803, 1761 + size: 36, 26 + orig: 36, 26 + offset: 0, 0 + index: -1 beta rotate: false xy: 983, 535 @@ -5610,83 +5715,27 @@ beta-cell orig: 48, 48 offset: 0, 0 index: -1 -chaos-array - rotate: false - xy: 1, 427 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -cix - rotate: false - xy: 1, 427 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 chaos-array-base rotate: false - xy: 1461, 1919 + xy: 1, 167 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-cell rotate: false - xy: 1, 297 + xy: 1721, 1919 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-leg rotate: false - xy: 1591, 1919 + xy: 1, 37 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -cix-cell - rotate: false - xy: 591, 929 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -cix-foot - rotate: false - xy: 677, 539 - size: 70, 70 - orig: 70, 70 - offset: 0, 0 - index: -1 -cix-joint-base - rotate: false - xy: 677, 467 - size: 70, 70 - orig: 70, 70 - offset: 0, 0 - index: -1 -cix-leg - rotate: false - xy: 1981, 1793 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -cix-leg-base - rotate: false - xy: 131, 39 - size: 104, 64 - orig: 104, 64 - offset: 0, 0 - index: -1 -cix-old - rotate: false - xy: 587, 863 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 crawler rotate: false xy: 983, 335 @@ -5764,55 +5813,6 @@ eradicator-leg orig: 152, 124 offset: 0, 0 index: -1 -eruptor - rotate: false - xy: 587, 797 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -eruptor-base - rotate: false - xy: 969, 933 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -eruptor-cell - rotate: false - xy: 587, 731 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -eruptor-foot - rotate: false - xy: 1989, 1201 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -eruptor-joint - rotate: false - xy: 841, 1761 - size: 26, 26 - orig: 26, 26 - offset: 0, 0 - index: -1 -eruptor-leg - rotate: false - xy: 2005, 1131 - size: 36, 26 - orig: 36, 26 - offset: 0, 0 - index: -1 -eruptor-leg-base - rotate: false - xy: 803, 1761 - size: 36, 26 - orig: 36, 26 - offset: 0, 0 - index: -1 flare rotate: false xy: 1057, 741 diff --git a/core/assets/sprites/fallback/sprites.png b/core/assets/sprites/fallback/sprites.png index fdea4d65dd..9b0e0dced6 100644 Binary files a/core/assets/sprites/fallback/sprites.png and b/core/assets/sprites/fallback/sprites.png differ diff --git a/core/assets/sprites/fallback/sprites2.png b/core/assets/sprites/fallback/sprites2.png index 87ea4bccc2..bb0bbdf5ed 100644 Binary files a/core/assets/sprites/fallback/sprites2.png and b/core/assets/sprites/fallback/sprites2.png differ diff --git a/core/assets/sprites/fallback/sprites3.png b/core/assets/sprites/fallback/sprites3.png index 809e26c5ed..5c37e38cf7 100644 Binary files a/core/assets/sprites/fallback/sprites3.png and b/core/assets/sprites/fallback/sprites3.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 356426471c..79a5ccff6f 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -20,7 +20,7 @@ data-processor index: -1 data-processor-2 rotate: false - xy: 3151, 1043 + xy: 3151, 977 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -650,7 +650,7 @@ cross index: -1 distributor rotate: false - xy: 3151, 977 + xy: 3217, 1043 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -783,42 +783,42 @@ underflow-gate index: -1 blast-drill rotate: false - xy: 1601, 109 + xy: 1419, 1371 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rim rotate: false - xy: 1731, 109 + xy: 1419, 1241 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-rotator rotate: false - xy: 930, 6 + xy: 1419, 1111 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 blast-drill-top rotate: false - xy: 3841, 1305 + xy: 1549, 1403 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 drill-top rotate: false - xy: 3183, 911 + xy: 3183, 845 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-liquid rotate: false - xy: 3183, 911 + xy: 3183, 845 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1595,7 +1595,7 @@ alloy-smelter-top index: -1 blast-mixer rotate: false - xy: 2098, 361 + xy: 1946, 287 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1609,49 +1609,49 @@ block-forge index: -1 coal-centrifuge rotate: false - xy: 2214, 517 + xy: 2280, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 3006, 521 + xy: 3072, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 3072, 521 + xy: 2182, 435 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 2182, 435 + xy: 3138, 537 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator rotate: false - xy: 3138, 537 + xy: 3185, 603 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 3185, 603 + xy: 3204, 537 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 3204, 537 + xy: 3151, 1043 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1987,7 +1987,7 @@ white-tree-dead index: -1 container rotate: false - xy: 2346, 521 + xy: 2412, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2071,7 +2071,7 @@ block-1 index: -1 block-2 rotate: false - xy: 1946, 287 + xy: 2195, 583 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2085,7 +2085,7 @@ block-3 index: -1 block-4 rotate: false - xy: 1419, 1371 + xy: 1549, 1273 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2176,7 +2176,7 @@ air-factory index: -1 command-center rotate: false - xy: 2280, 521 + xy: 2346, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2330,7 +2330,7 @@ copper-wall index: -1 copper-wall-large rotate: false - xy: 2412, 521 + xy: 2478, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2344,14 +2344,14 @@ door index: -1 door-large rotate: false - xy: 3217, 1043 + xy: 3217, 977 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 3217, 977 + xy: 3183, 911 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2720,6 +2720,48 @@ arc orig: 32, 32 offset: 0, 0 index: -1 +arkyid-wreck0 + rotate: false + xy: 1731, 109 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +arkyid-wreck1 + rotate: false + xy: 930, 6 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +arkyid-wreck2 + rotate: false + xy: 3841, 1305 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +atrax-wreck0 + rotate: false + xy: 2015, 583 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax-wreck1 + rotate: false + xy: 2105, 583 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax-wreck2 + rotate: false + xy: 1796, 517 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 beta-wreck0 rotate: false xy: 3486, 415 @@ -2764,7 +2806,7 @@ block-arc-full index: -1 block-blast-drill-full rotate: false - xy: 1419, 1241 + xy: 1679, 1403 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2806,7 +2848,7 @@ conveyor-0-0 index: -1 block-core-foundation-full rotate: false - xy: 1419, 1111 + xy: 1679, 1273 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -2834,14 +2876,14 @@ block-craters-full index: -1 block-cryofluidmixer-full rotate: false - xy: 2195, 583 + xy: 2261, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-cultivator-full rotate: false - xy: 2261, 587 + xy: 2327, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2960,14 +3002,14 @@ block-ignarock-full index: -1 block-impact-reactor-full rotate: false - xy: 1549, 1403 + xy: 1549, 1143 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-lancer-full rotate: false - xy: 2327, 587 + xy: 2393, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3023,14 +3065,14 @@ block-mass-driver-full index: -1 block-mechanical-drill-full rotate: false - xy: 2393, 587 + xy: 2459, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-meltdown-full rotate: false - xy: 1549, 1273 + xy: 1809, 1403 size: 128, 128 orig: 128, 128 offset: 0, 0 @@ -3114,7 +3156,7 @@ block-ore-titanium-full index: -1 block-parallax-full rotate: false - xy: 2459, 587 + xy: 2525, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3142,7 +3184,7 @@ block-pebbles-full index: -1 block-phase-weaver-full rotate: false - xy: 2525, 587 + xy: 2591, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3156,7 +3198,7 @@ block-plated-conduit-full index: -1 block-pneumatic-drill-full rotate: false - xy: 2591, 587 + xy: 2657, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3212,7 +3254,7 @@ block-saltrocks-full index: -1 block-salvo-full rotate: false - xy: 2657, 587 + xy: 2723, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3240,7 +3282,7 @@ block-sandrocks-full index: -1 block-scatter-full rotate: false - xy: 2723, 587 + xy: 2789, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3282,14 +3324,14 @@ scrap-wall-huge1 index: -1 block-scrap-wall-large-full rotate: false - xy: 2789, 587 + xy: 2855, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-segment-full rotate: false - xy: 2855, 587 + xy: 2921, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3345,14 +3387,14 @@ block-snowrocks-full index: -1 block-spectre-full rotate: false - xy: 1679, 1403 + xy: 1809, 1273 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 block-spore-cluster-full rotate: false - xy: 829, 589 + xy: 829, 547 size: 40, 40 orig: 40, 40 offset: 0, 0 @@ -3366,7 +3408,7 @@ block-spore-moss-full index: -1 block-spore-press-full rotate: false - xy: 2921, 587 + xy: 2987, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3387,7 +3429,7 @@ block-stone-full index: -1 block-swarmer-full rotate: false - xy: 2987, 587 + xy: 3053, 587 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3422,46 +3464,25 @@ titanium-conveyor-0-0 index: -1 block-turbine-generator-full rotate: false - xy: 3053, 587 + xy: 3119, 603 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-water-extractor-full rotate: false - xy: 3119, 603 + xy: 3453, 1125 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 block-wave-full rotate: false - xy: 3453, 1125 + xy: 2214, 517 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 -cix-wreck0 - rotate: false - xy: 1679, 1143 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -cix-wreck1 - rotate: false - xy: 1939, 1403 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -cix-wreck2 - rotate: false - xy: 1939, 1273 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 core-foundation-team-crux rotate: false xy: 2069, 1273 @@ -3562,56 +3583,56 @@ cracks-1-7 index: -1 cracks-2-0 rotate: false - xy: 2478, 521 + xy: 2544, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-1 rotate: false - xy: 2544, 521 + xy: 2610, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-2 rotate: false - xy: 2610, 521 + xy: 2676, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-3 rotate: false - xy: 2676, 521 + xy: 2742, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-4 rotate: false - xy: 2742, 521 + xy: 2808, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-5 rotate: false - xy: 2808, 521 + xy: 2874, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-6 rotate: false - xy: 2874, 521 + xy: 2940, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 cracks-2-7 rotate: false - xy: 2940, 521 + xy: 3006, 521 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4085,27 +4106,6 @@ eclipse-wreck2 orig: 320, 320 offset: 0, 0 index: -1 -eruptor-wreck0 - rotate: false - xy: 2015, 583 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -eruptor-wreck1 - rotate: false - xy: 2105, 583 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -eruptor-wreck2 - rotate: false - xy: 1796, 517 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 flare-wreck0 rotate: false xy: 2948, 421 @@ -5233,6 +5233,20 @@ unit-antumbra-full orig: 216, 240 offset: 0, 0 index: -1 +unit-arkyid-full + rotate: false + xy: 3109, 1403 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +unit-atrax-full + rotate: false + xy: 1796, 451 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 unit-beta-full rotate: false xy: 3348, 257 @@ -5240,13 +5254,6 @@ unit-beta-full orig: 48, 48 offset: 0, 0 index: -1 -unit-cix-full - rotate: false - xy: 3109, 1403 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 unit-crawler-full rotate: false xy: 3398, 257 @@ -5268,13 +5275,6 @@ unit-eclipse-full orig: 320, 320 offset: 0, 0 index: -1 -unit-eruptor-full - rotate: false - xy: 1796, 451 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 unit-flare-full rotate: false xy: 3498, 265 @@ -5576,6 +5576,111 @@ antumbra-cell orig: 216, 240 offset: 0, 0 index: -1 +arkyid + rotate: false + xy: 1601, 109 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +chaos-array + rotate: false + xy: 1601, 109 + size: 128, 128 + orig: 128, 128 + offset: 0, 0 + index: -1 +arkyid-cell + rotate: false + xy: 509, 645 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +arkyid-foot + rotate: false + xy: 3769, 1331 + size: 70, 70 + orig: 70, 70 + offset: 0, 0 + index: -1 +arkyid-joint-base + rotate: false + xy: 2026, 355 + size: 70, 70 + orig: 70, 70 + offset: 0, 0 + index: -1 +arkyid-leg + rotate: false + xy: 2272, 56 + size: 56, 56 + orig: 56, 56 + offset: 0, 0 + index: -1 +arkyid-leg-base + rotate: false + xy: 163, 1 + size: 104, 64 + orig: 104, 64 + offset: 0, 0 + index: -1 +arkyid-old + rotate: false + xy: 1745, 583 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax + rotate: false + xy: 1835, 583 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax-base + rotate: false + xy: 2098, 361 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +atrax-cell + rotate: false + xy: 1925, 583 + size: 88, 64 + orig: 88, 64 + offset: 0, 0 + index: -1 +atrax-foot + rotate: false + xy: 829, 589 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +atrax-joint + rotate: false + xy: 3259, 1731 + size: 26, 26 + orig: 26, 26 + offset: 0, 0 + index: -1 +atrax-leg + rotate: false + xy: 1501, 1041 + size: 36, 26 + orig: 36, 26 + offset: 0, 0 + index: -1 +atrax-leg-base + rotate: false + xy: 3448, 429 + size: 36, 26 + orig: 36, 26 + offset: 0, 0 + index: -1 beta rotate: false xy: 2272, 6 @@ -5590,83 +5695,27 @@ beta-cell orig: 48, 48 offset: 0, 0 index: -1 -chaos-array - rotate: false - xy: 1679, 1273 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 -cix - rotate: false - xy: 1679, 1273 - size: 128, 128 - orig: 128, 128 - offset: 0, 0 - index: -1 chaos-array-base rotate: false - xy: 1549, 1143 + xy: 1679, 1143 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-cell rotate: false - xy: 1809, 1403 + xy: 1939, 1403 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 chaos-array-leg rotate: false - xy: 1809, 1273 + xy: 1939, 1273 size: 128, 128 orig: 128, 128 offset: 0, 0 index: -1 -cix-cell - rotate: false - xy: 509, 645 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -cix-foot - rotate: false - xy: 3769, 1331 - size: 70, 70 - orig: 70, 70 - offset: 0, 0 - index: -1 -cix-joint-base - rotate: false - xy: 2026, 355 - size: 70, 70 - orig: 70, 70 - offset: 0, 0 - index: -1 -cix-leg - rotate: false - xy: 2272, 56 - size: 56, 56 - orig: 56, 56 - offset: 0, 0 - index: -1 -cix-leg-base - rotate: false - xy: 163, 1 - size: 104, 64 - orig: 104, 64 - offset: 0, 0 - index: -1 -cix-old - rotate: false - xy: 1745, 583 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 crawler rotate: false xy: 2298, 409 @@ -5758,55 +5807,6 @@ eradicator-leg orig: 152, 124 offset: 0, 0 index: -1 -eruptor - rotate: false - xy: 1835, 583 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -eruptor-base - rotate: false - xy: 3183, 845 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -eruptor-cell - rotate: false - xy: 1925, 583 - size: 88, 64 - orig: 88, 64 - offset: 0, 0 - index: -1 -eruptor-foot - rotate: false - xy: 829, 547 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -eruptor-joint - rotate: false - xy: 3259, 1731 - size: 26, 26 - orig: 26, 26 - offset: 0, 0 - index: -1 -eruptor-leg - rotate: false - xy: 1501, 1041 - size: 36, 26 - orig: 36, 26 - offset: 0, 0 - index: -1 -eruptor-leg-base - rotate: false - xy: 3448, 429 - size: 36, 26 - orig: 36, 26 - offset: 0, 0 - index: -1 flare rotate: false xy: 2898, 421 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index c04dd07219..0e76436177 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites2.png b/core/assets/sprites/sprites2.png index 600864f58e..f7da00d673 100644 Binary files a/core/assets/sprites/sprites2.png and b/core/assets/sprites/sprites2.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 05f51600fe..09e8a15346 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -3,10 +3,7 @@ package mindustry.content; import arc.*; import arc.graphics.*; import arc.graphics.g2d.*; -import arc.math.*; -import arc.util.*; import mindustry.ctype.*; -import mindustry.entities.*; import mindustry.entities.bullet.*; import mindustry.gen.*; import mindustry.graphics.*; @@ -1426,7 +1423,6 @@ public class Blocks implements ContentList{ chargeTime = 50f; chargeMaxDelay = 30f; chargeEffects = 7; - shootType = Bullets.lancerLaser; recoilAmount = 2f; reloadTime = 90f; cooldown = 0.03f; @@ -1441,11 +1437,23 @@ public class Blocks implements ContentList{ health = 280 * size * size; targetAir = false; shootSound = Sounds.laser; + + shootType = new LaserBulletType(140){{ + colors = new Color[]{Pal.lancerLaser.cpy().mul(1f, 1f, 1f, 0.4f), Pal.lancerLaser, Color.white}; + hitEffect = Fx.hitLancer; + despawnEffect = Fx.none; + hitSize = 4; + lifetime = 16f; + drawSize = 400f; + }}; }}; arc = new PowerTurret("arc"){{ requirements(Category.turret, with(Items.copper, 35, Items.lead, 50)); - shootType = Bullets.arc; + shootType = new LightningBulletType(){{ + damage = 21; + lightningLength = 25; + }}; reloadTime = 35f; shootCone = 40f; rotatespeed = 8f; @@ -1519,42 +1527,11 @@ public class Blocks implements ContentList{ health = 220 * size * size; shootSound = Sounds.shotgun; - ammo(Items.thorium, new BulletType(0.01f, 105){ - int rays = 1; - float rayLength = range + 10f; - - { - hitEffect = Fx.hitLancer; - shootEffect = smokeEffect = Fx.lightningShoot; - lifetime = 10f; - despawnEffect = Fx.none; - ammoMultiplier = 6f; - pierce = true; - } - - @Override - public void init(Bullet b){ - for(int i = 0; i < rays; i++){ - Damage.collideLine(b, b.team, hitEffect, b.x, b.y, b.rotation(), rayLength - Math.abs(i - (rays / 2)) * 20f); - } - } - - @Override - public void draw(Bullet b){ - super.draw(b); - Draw.color(Color.white, Pal.lancerLaser, b.fin()); - //Draw.alpha(b.fout()); - for(int i = 0; i < 7; i++){ - Tmp.v1.trns(b.rotation(), i * 8f); - float sl = Mathf.clamp(b.fout() - 0.5f) * (80f - i * 10); - Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, 4f, sl, b.rotation() + 90); - Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, 4f, sl, b.rotation() - 90); - } - Drawf.tri(b.x, b.y, 20f * b.fout(), (rayLength + 50), b.rotation()); - Drawf.tri(b.x, b.y, 20f * b.fout(), 10f, b.rotation() + 180f); - Draw.reset(); - } - }); + ammo(Items.thorium, new ShrapnelBulletType(){{ + length = range + 10f; + damage = 105f; + ammoMultiplier = 6f; + }}); }}; ripple = new ItemTurret("ripple"){{ @@ -1635,7 +1612,6 @@ public class Blocks implements ContentList{ meltdown = new LaserTurret("meltdown"){{ requirements(Category.turret, with(Items.copper, 250, Items.lead, 350, Items.graphite, 300, Items.surgealloy, 325, Items.silicon, 325)); - shootType = Bullets.meltdownLaser; shootEffect = Fx.shootBigSmoke2; shootCone = 40f; recoilAmount = 4f; @@ -1650,6 +1626,16 @@ public class Blocks implements ContentList{ activeSound = Sounds.beam; activeSoundVolume = 2f; + shootType = new ContinuousLaserBulletType(70){{ + length = 220f; + hitEffect = Fx.hitMeltdown; + drawSize = 420f; + + incendChance = 0.4f; + incendSpread = 5f; + incendAmount = 1; + }}; + health = 200 * size * size; consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.5f)).update(false); }}; @@ -1728,7 +1714,7 @@ public class Blocks implements ContentList{ upgrades = new UnitType[][]{ {UnitTypes.nova, UnitTypes.quasar}, {UnitTypes.dagger, UnitTypes.mace}, - {UnitTypes.crawler, UnitTypes.eruptor}, + {UnitTypes.crawler, UnitTypes.atrax}, {UnitTypes.flare, UnitTypes.horizon}, {UnitTypes.mono, UnitTypes.poly}, {UnitTypes.risse, UnitTypes.minke}, diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index 21d6744255..a1bea100c8 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -9,6 +9,7 @@ import mindustry.entities.*; import mindustry.entities.bullet.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.io.*; import mindustry.world.*; import static mindustry.Vars.*; @@ -26,20 +27,17 @@ public class Bullets implements ContentList{ fragGlass, fragExplosive, fragPlastic, fragSurge, fragGlassFrag, fragPlasticFrag, //missiles - missileExplosive, missileIncendiary, missileSurge, missileJavelin, missileSwarm, + missileExplosive, missileIncendiary, missileSurge, missileSwarm, //standard standardCopper, standardDense, standardThorium, standardHoming, standardIncendiary, standardMechSmall, standardGlaive, standardDenseBig, standardThoriumBig, standardIncendiaryBig, - //electric - lancerLaser, meltdownLaser, arc, damageLightning, - //liquid waterShot, cryoShot, slagShot, oilShot, //environment, misc. - fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig, frag, + damageLightning, damageLightningGround, fireball, basicFlame, pyraFlame, driverBolt, healBullet, healBulletBig, frag, //bombs bombExplosive, bombIncendiary, bombOil; @@ -400,6 +398,12 @@ public class Bullets implements ContentList{ hittable = false; }}; + //this is just a copy of the damage lightning bullet that doesn't damage air units + damageLightningGround = new BulletType(0.0001f, 0f){{ + collidesAir = false; + }}; + JsonIO.copy(damageLightning, damageLightningGround); + healBullet = new HealBulletType(5.2f, 13){{ healPercent = 3f; }}; @@ -494,25 +498,6 @@ public class Bullets implements ContentList{ } }; - lancerLaser = new LaserBulletType(140){{ - colors = new Color[]{Pal.lancerLaser.cpy().mul(1f, 1f, 1f, 0.4f), Pal.lancerLaser, Color.white}; - hitEffect = Fx.hitLancer; - despawnEffect = Fx.none; - hitSize = 4; - lifetime = 16f; - drawSize = 400f; - }}; - - meltdownLaser = new ContinuousLaserBulletType(70){{ - length = 220f; - hitEffect = Fx.hitMeltdown; - drawSize = 420f; - - incendChance = 0.4f; - incendSpread = 5f; - incendAmount = 1; - }}; - waterShot = new LiquidBulletType(Liquids.water){{ knockback = 0.7f; }}; @@ -530,11 +515,6 @@ public class Bullets implements ContentList{ drag = 0.03f; }}; - arc = new LightningBulletType(){{ - damage = 21; - lightningLength = 25; - }}; - driverBolt = new MassDriverBolt(); frag = new BasicBulletType(5f, 8, "bullet"){{ diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index d3ce100382..80ed5f38b5 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -24,7 +24,7 @@ public class UnitTypes implements ContentList{ public static @EntityDef({Unitc.class, Mechc.class, Builderc.class, Minerc.class, Commanderc.class}) UnitType pulsar, quasar; //legs - public static @EntityDef({Unitc.class, Legsc.class}) UnitType cix, eruptor; + public static @EntityDef({Unitc.class, Legsc.class}) UnitType arkyid, atrax, spiroct; //air (no special traits) public static @EntityDef({Unitc.class}) UnitType flare, eclipse, horizon, zenith, antumbra; @@ -254,7 +254,7 @@ public class UnitTypes implements ContentList{ }}); }}; - eruptor = new UnitType("eruptor"){{ + atrax = new UnitType("atrax"){{ speed = 0.4f; drag = 0.4f; hitsize = 10f; @@ -284,7 +284,38 @@ public class UnitTypes implements ContentList{ }}); }}; - cix = new UnitType("cix"){{ + //TODO this is just a clone + spiroct = new UnitType("spiroct"){{ + speed = 0.4f; + drag = 0.4f; + hitsize = 10f; + rotateSpeed = 3f; + targetAir = false; + health = 600; + immunities = ObjectSet.with(StatusEffects.burning, StatusEffects.melting); + legCount = 4; + legLength = 9f; + legTrns = 0.6f; + legMoveSpace = 1.4f; + + weapons.add(new Weapon("eruption"){{ + shootY = 3f; + reload = 10f; + ejectEffect = Fx.none; + recoil = 1f; + x = 7f; + shootSound = Sounds.flame; + + bullet = new LiquidBulletType(Liquids.slag){{ + damage = 11; + speed = 2.3f; + drag = 0.02f; + shootEffect = Fx.shootSmall; + }}; + }}); + }}; + + arkyid = new UnitType("arkyid"){{ drag = 0.1f; speed = 0.5f; hitsize = 9f; diff --git a/core/src/mindustry/entities/Damage.java b/core/src/mindustry/entities/Damage.java index 05b5150850..7bf8c5b9ef 100644 --- a/core/src/mindustry/entities/Damage.java +++ b/core/src/mindustry/entities/Damage.java @@ -92,15 +92,17 @@ public class Damage{ } }; - world.raycastEachWorld(x, y, x + tr.x, y + tr.y, (cx, cy) -> { - collider.get(cx, cy); - if(large){ - for(Point2 p : Geometry.d4){ - collider.get(cx + p.x, cy + p.y); + if(hitter.type.collidesGround){ + world.raycastEachWorld(x, y, x + tr.x, y + tr.y, (cx, cy) -> { + collider.get(cx, cy); + if(large){ + for(Point2 p : Geometry.d4){ + collider.get(cx + p.x, cy + p.y); + } } - } - return false; - }); + return false; + }); + } rect.setPosition(x, y).setSize(tr.x, tr.y); float x2 = tr.x + x, y2 = tr.y + y; @@ -123,6 +125,8 @@ public class Damage{ rect.height += expand * 2; Cons cons = e -> { + if(!e.checkTarget(hitter.type.collidesAir, hitter.type.collidesGround)) return; + e.hitbox(hitrect); Rect other = hitrect; other.y -= expand; diff --git a/core/src/mindustry/entities/Lightning.java b/core/src/mindustry/entities/Lightning.java index db37d6c39b..dbc7f616c9 100644 --- a/core/src/mindustry/entities/Lightning.java +++ b/core/src/mindustry/entities/Lightning.java @@ -5,6 +5,7 @@ import arc.math.*; import arc.math.geom.*; import arc.struct.*; import mindustry.content.*; +import mindustry.entities.bullet.*; import mindustry.game.*; import mindustry.gen.*; import mindustry.world.*; @@ -21,22 +22,28 @@ public class Lightning{ private static boolean bhit = false; private static int lastSeed = 0; - /** Create a lighting branch at a location. Use Team.none to damage everyone. */ + /** Create a lighting branch at a location. Use Team.derelict to damage everyone. */ public static void create(Team team, Color color, float damage, float x, float y, float targetAngle, int length){ - createLightingInternal(lastSeed++, team, color, damage, x, y, targetAngle, length); + createLightingInternal(null, lastSeed++, team, color, damage, x, y, targetAngle, length); + } + + /** Create a lighting branch at a location. Uses bullet parameters. */ + public static void create(Bullet bullet, Color color, float damage, float x, float y, float targetAngle, int length){ + createLightingInternal(bullet, lastSeed++, bullet.team, color, damage, x, y, targetAngle, length); } //TODO remote method //@Remote(called = Loc.server, unreliable = true) - private static void createLightingInternal(int seed, Team team, Color color, float damage, float x, float y, float rotation, int length){ + private static void createLightingInternal(Bullet hitter, int seed, Team team, Color color, float damage, float x, float y, float rotation, int length){ random.setSeed(seed); hit.clear(); + BulletType bulletType = hitter != null && !hitter.type.collidesAir ? Bullets.damageLightningGround : Bullets.damageLightning; Seq lines = new Seq<>(); bhit = false; for(int i = 0; i < length / 2; i++){ - Bullets.damageLightning.create(null, team, x, y, 0f, damage, 1f, 1f, null); + bulletType.create(null, team, x, y, 0f, damage, 1f, 1f, hitter); lines.add(new Vec2(x + Mathf.range(3f), y + Mathf.range(3f))); if(lines.size > 1){ @@ -61,7 +68,7 @@ public class Lightning{ entities.clear(); if(hit.size < maxChain){ Units.nearbyEnemies(team, rect, u -> { - if(!hit.contains(u.id())){ + if(!hit.contains(u.id()) && (hitter == null || u.checkTarget(hitter.type.collidesAir, hitter.type.collidesGround))){ entities.add(u); } }); diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index 0cf9cf60ed..1f89c77a3e 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -109,6 +109,10 @@ public abstract class BulletType extends Content{ despawnEffect = Fx.hitBulletSmall; } + public BulletType(){ + this(1f, 1f); + } + /** Returns maximum distance the bullet this bullet type has can travel. */ public float range(){ return speed * lifetime * (1f - drag); @@ -153,7 +157,7 @@ public abstract class BulletType extends Content{ } for(int i = 0; i < lightning; i++){ - Lightning.create(b.team, Pal.surge, lightningDamage < 0 ? damage : lightningDamage, b.x, b.y, Mathf.random(360f), lightningLength); + Lightning.create(b, Pal.surge, lightningDamage < 0 ? damage : lightningDamage, b.x, b.y, Mathf.random(360f), lightningLength); } } diff --git a/core/src/mindustry/entities/bullet/LightningBulletType.java b/core/src/mindustry/entities/bullet/LightningBulletType.java index 2104c94e67..dbfbcc0301 100644 --- a/core/src/mindustry/entities/bullet/LightningBulletType.java +++ b/core/src/mindustry/entities/bullet/LightningBulletType.java @@ -32,6 +32,6 @@ public class LightningBulletType extends BulletType{ @Override public void init(Bullet b){ - Lightning.create(b.team, lightningColor, damage, b.x, b.y, b.rotation(), lightningLength + Mathf.random(lightningLengthRand)); + Lightning.create(b, lightningColor, damage, b.x, b.y, b.rotation(), lightningLength + Mathf.random(lightningLengthRand)); } } diff --git a/core/src/mindustry/entities/bullet/ShrapnelBulletType.java b/core/src/mindustry/entities/bullet/ShrapnelBulletType.java new file mode 100644 index 0000000000..8f26efeaae --- /dev/null +++ b/core/src/mindustry/entities/bullet/ShrapnelBulletType.java @@ -0,0 +1,47 @@ +package mindustry.entities.bullet; + +import arc.graphics.*; +import arc.graphics.g2d.*; +import arc.math.*; +import arc.util.*; +import mindustry.content.*; +import mindustry.entities.*; +import mindustry.gen.*; +import mindustry.graphics.*; + +public class ShrapnelBulletType extends BulletType{ + public float length = 100f; + public float width = 20f; + public Color fromColor = Color.white, toColor = Pal.lancerLaser; + + public int serrations = 7; + public float serrationLenScl = 10f, serrationWidth = 4f, serrationSpacing = 8f, serrationSpaceOffset = 80f; + + public ShrapnelBulletType(){ + speed = 0.01f; + hitEffect = Fx.hitLancer; + shootEffect = smokeEffect = Fx.lightningShoot; + lifetime = 10f; + despawnEffect = Fx.none; + pierce = true; + } + + @Override + public void init(Bullet b){ + Damage.collideLine(b, b.team, hitEffect, b.x, b.y, b.rotation(), length); + } + + @Override + public void draw(Bullet b){ + Draw.color(fromColor, toColor, b.fin()); + for(int i = 0; i < serrations; i++){ + Tmp.v1.trns(b.rotation(), i * serrationSpacing); + float sl = Mathf.clamp(b.fout() - 0.5f) * (serrationSpaceOffset - i * serrationLenScl); + Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, serrationWidth, sl, b.rotation() + 90); + Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, serrationWidth, sl, b.rotation() - 90); + } + Drawf.tri(b.x, b.y, width * b.fout(), (length + 50), b.rotation()); + Drawf.tri(b.x, b.y, width * b.fout(), 10f, b.rotation() + 180f); + Draw.reset(); + } +} diff --git a/core/src/mindustry/game/DefaultWaves.java b/core/src/mindustry/game/DefaultWaves.java index b19cfa1e75..f99049f41a 100644 --- a/core/src/mindustry/game/DefaultWaves.java +++ b/core/src/mindustry/game/DefaultWaves.java @@ -150,7 +150,7 @@ public class DefaultWaves{ spacing = 4; }}, - new SpawnGroup(UnitTypes.eruptor){{ + new SpawnGroup(UnitTypes.atrax){{ begin = 31; unitAmount = 4; unitScaling = 1; diff --git a/core/src/mindustry/io/JsonIO.java b/core/src/mindustry/io/JsonIO.java index 6b44f56cdb..3629ddebae 100644 --- a/core/src/mindustry/io/JsonIO.java +++ b/core/src/mindustry/io/JsonIO.java @@ -47,6 +47,11 @@ public class JsonIO{ return json.toJson(object, object.getClass()); } + public static T copy(T object, T dest){ + json.copyFields(object, dest); + return dest; + } + public static T copy(T object){ return read((Class)object.getClass(), write(object)); }