From a5be9b9956581576937bb10937865aac2a61c468 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 6 Apr 2025 11:06:37 -0400 Subject: [PATCH] Ammo colors for remaining turrets / Stone + basalt vents --- .../blocks/environment/basalt-vent1.png | Bin 0 -> 1618 bytes .../blocks/environment/basalt-vent2.png | Bin 0 -> 1545 bytes .../blocks/environment/stone-vent1.png | Bin 0 -> 1486 bytes .../blocks/environment/stone-vent2.png | Bin 0 -> 1516 bytes core/assets/bundles/bundle.properties | 2 + core/assets/icons/icons.properties | 2 + core/src/mindustry/content/Blocks.java | 126 +++++++++++++----- core/src/mindustry/content/Fx.java | 2 +- core/src/mindustry/graphics/Pal.java | 27 +++- core/src/mindustry/type/UnitType.java | 2 +- 10 files changed, 128 insertions(+), 33 deletions(-) create mode 100644 core/assets-raw/sprites/blocks/environment/basalt-vent1.png create mode 100644 core/assets-raw/sprites/blocks/environment/basalt-vent2.png create mode 100644 core/assets-raw/sprites/blocks/environment/stone-vent1.png create mode 100644 core/assets-raw/sprites/blocks/environment/stone-vent2.png diff --git a/core/assets-raw/sprites/blocks/environment/basalt-vent1.png b/core/assets-raw/sprites/blocks/environment/basalt-vent1.png new file mode 100644 index 0000000000000000000000000000000000000000..52619379c9b72c4274105964c757669ff28c1983 GIT binary patch literal 1618 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z{cb0 z;uumf=WVQQx3re1<6 zBKfk{B>Q)x;>Wk^mVP%`ELpp@*qrC+-4pWvfByJ!aPPO&?b1wUrLAZg^E?aX~~?)hV1&XL7ug-<%C`J6~%E zE~sp9J9Kpx`vQYpv-DKYr?Qib!Z{bry?Jd{(_fp_-3RveMYB(2n04eg)BF41j=x{_ zwWP}T!*+>(x2C!9a<1ceFnM<6P zGSr*W)pUbtK|zV>=QVCD;Vj(DC0cqK&yUAmVOqNOe?f))@4T&50@D@sx|c;~`5jSt zr>^$pcK`eT`Zt-YLT#1Jn>rE<>OafUe^`76#VxsR`Y6jQvB~-{pEU#7Y`RL z&|48=m^tZ?qUpYQ$((wErW3D+wrrhbC8pc(x^Bl>t?Z@RCo_X>8=!?rMp0_v+D2HS1}Hg%-lK; zWFGKk@`&x{KCzu8Q(5aP^P~@3qZ+17%NIQHP=Iq2(-pn#8%%CIJ$P35g2qn845ews z_S2&4Ir0{%ak>{Pg>Wk5YI-Z$v)qyjQYw+>mE}CEqRV!jSDbaiH)gTF^&Cq$E@gCV zVw%QU;NtPKzWbf~tR z_kX8H=Yoe_>$JEgG3Yw2D!j*XVnMs=29^gq=6k!Y^v{^PttHYSC&~LwgK9=*Pol~Z zv4+h$AEGWMv7RkHblt%&TV-ny%e5&ftG>oF|Fl&2bz}*{w6bl{4cE3jySZz@j0(Tk z`=_wvu=wdLSavn|NqiDZNYsbW+Z_E&0Z-zS@7$OE{?4sVFlz1nrB)B6e^#_4W?5{h zS7T`U^Y-$#pORq*V&BYm)^lGGC%d=)_U=sE(6>HISfY}S_nv4r=q~1L4GvTI`|ncW zd#Pp8-tV+jN`G(BomA7QG^I_WPwau~gju5QEvf>$qipBYY!NUoyTlrMTY}%U!jnV9 zU7e}rmCtKWR}Ssl&Vd=SZI+uGrr&+%=iM>+?MiMj#+wE=11F>yOMidwEyDO#biw3L zCl_IV$tH?p$m4?to6~>N$!t zgV@hJWH8chJ^XK2FY};Y* zdX2+tPuoWq?T+hiQ9CCwZHbJ~C)rd+-RFn5Dw)-K9`&9!u{iO{!i|NMMX3+x@w+pA zdc?FuKv(ICf~#HVx=Yr1ZJY%KFluMt6XJzq1%|E(cVRr&}R&vzW|8M-C*KWSdk!7l@*uGn#$ZM_qL)D1Yi;L~A6zy1T ztP{5WYNLR?{@q07O7k-u1t;9UPMqMYxSKqV&b;#i9Q?;T9g#-hQGSGH^GgeUudOfQ`V6U1`jOu lFk}?8Y;gF)>-K>^e#hO(p*0M<7#J8BJYD@<);T3K0RWp;;86eo literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/basalt-vent2.png b/core/assets-raw/sprites/blocks/environment/basalt-vent2.png new file mode 100644 index 0000000000000000000000000000000000000000..348318d7b9300c84e67ce04f06f3258bf5018cf1 GIT binary patch literal 1545 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z2`Lr-I1z$Zm@z3<81zKLuq3O*RNTZuSj)bKvY(+r+?Y zX?!QRXS?x#bu@o3cdfnyVQLsYG|q9{Fs^dO)M`meEPrEl?-b; z_*=U!t~!*Sx%3l<7WFG;wylzR;JfeIr~P$*_WXH&m+4=4HhZUxLD7|V zfkPkPa!g;Wbm*pG6Qlk2z8TA6?`yp>{N(@C(dEFY+0%oqL>%+ls`w|#^0Sv-2|mfs zvoLFeSEvf3&WZICZ_oPi=gzDAQ$>M|VTUw-RyGz(PtVh^W!tUzrsmW~-NcLL3dJTGtsT-O*U~O% z^mae}uiiZ+HFkANaO;H$`IWrB%X_9aStu~)u~R=l_U_=hdG7)84Kr2Yy{5mD#0TN9W(xvAlcvDHt( z5WzLE0U`}n6IxvV>pXGyXm>Vn&?}Jcnce$GCP;7xpJZO^8IK3M7?t)vW2#lPxw*Ju zaifjQ-?-TeEZ0;T$aCLPTBG$;X#0x*mL)$-|Gp@E#<05b!Ods~2`~P?UV&>{)?5CU ziDPcMo|cjPB=VUSgW%62zAMkJpEqISt&XJsTej~wGvz^7Kq*7&l+9O{Nhlv$)mP%} z7+u6zes9KOrUIvB*O^yGyGIGGmU&=kXD5|)aeeF~kw!k(jF=5eO{N?&GG6hzLAU(I zf#oZr*9jhGSh{fS&I7yRSdKTXF<8v8^hN)Z=yy9@ix`&unszy$h5hHjP4W$YU;5~+ z*j6L+ZI*P=;bn0Rv*z5H`Z;8V-h~-AS#?kPTkk&W?(8n&_^V^r(X6U#881p3&dKGl zhkU=CxTVFd#F6*f=X;eCHqYx@*7T_9@8y4AD$gtEU-4tK(@fl8vHtjyy0vmY{(SZR zSe?1*EVE2c8Mk25rDJQ4XmAE7+jFpLq>7u|jp!6mD{#?ba;Y=8b7%IH_t{DTT5;Ou z1+FJvi=F!Uoxgl}^`@@6HGZLQC6C_1`?bbmzS3C)pHhv@4zm+3> zzxMPUUeO^_*1pp`Vt#wyz2KJ1g=bRzZ#`SHjrryuR=#OpojyuD+7!OJuEmYP_x{Nm zlaiadKkRZ^ST7tu%qVhj7jwAw=I@ggSH-R0(kYerkcB(J-`e@+Y)Vq$URE&_iJd<~$U9YZ+xT z>*YVDcCnUx53pr1|R|&=F9{BwF^;w_WYJI(lX>EhVe4I&qIvnfQ_|H=@2DX{WoZC3T6XZoL)7~{gGGAg4&1Wp0J<)&UyZlQP+(*41$|EHbyck87L|-3LPx^ zwBz~<*SZW%26ll)nN2I4Vpug4)cw7Lu2$|fSi>+)qw~V-AKGjO?b9+F=Jzzu5oBOs OVDNPHb6Mw<&;$V6DA9lb literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/stone-vent1.png b/core/assets-raw/sprites/blocks/environment/stone-vent1.png new file mode 100644 index 0000000000000000000000000000000000000000..89bf1a4af45634313aa4754aff31d33aa046eae9 GIT binary patch literal 1486 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z}n&I z;uumf=WVQQcC?{LsMGcwIj*H_&C}1d{%g{ixvBE>`_s>KgQw-ldU4O)Ey2Ur%6HFb z`Q)BO9=q=Us;FbPQ7N0Z?%c(_;k$xTo~M}{b0Vdt&0e z!zYqTk}alw5!uqJadXMlX)_t_Rh$UmedPT>sCBEiR?9Ai88duUYd7vFI%ipKv#%pZ zd!ni&hmhc^ojT(4YWP=jTwBnkSmu8}f%lW`G8Lvs2AzwSHcV8ucX@Twwvxw9Ng)U|x;3t+`43Gj5$&-&@WU;I?1o zS+)L)$}iOgxkp-5x3Ooa+?jvBzGJ?j)h@ePH;lI|dy>y`pl$w@7t1I8|M9`)*PoD! zOQftsKUr>76z473#Bk|`z1Gh;E_XsrzkGa{8SzQ?!QKOZDt`G?Nv807s6Lys`s|a# z7QcNfH5a_pn8KdMD0NW2!a(?e%whg?#Zy8LWX#fZ78aRZ=`Qel%Fcbpa)DtNlf&wJ zK^nVu?tK<*Dq!P&$0OktW3Uk8=lfJU$wvS&e~93R{CYt|tX^xn>1$X_63)t$h-RsZuFMUyLR>O3o-GiWC)TfVr_ zhWk`w&@zrrpW3!+{jIDTi;~~AIqjImeq^&^Pos?ZHLJxfwR%^NY29D(mgV?OQ?vXP zxsDe$v|2|Bo-J_uF`wyGX|{|It}L(np6ARA|DE3R-!8+QWjE^&8wLgj22WQ%mvv4FO#tF| Bo>~9^ literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/blocks/environment/stone-vent2.png b/core/assets-raw/sprites/blocks/environment/stone-vent2.png new file mode 100644 index 0000000000000000000000000000000000000000..9b783c8b926cc17ee9c691a5c9f265e388a8a982 GIT binary patch literal 1516 zcmeAS@N?(olHy`uVBq!ia0y~yU`POA4mJh`hDS5XEf^RW7>k44ofy`glX=O&z`D%S z#WAE}&fD14c`}9~rK>h=V4b?irAs6zW@V^jq(?wR#D4vp$Usl~)TJJsN~}8Ec@wqQ zU;qAV-*IDW_NRu{-{w57UN?WU=GutDQx>y#F-h|C+y8$yfBWs@iLajao|NCBB6m2* zb>^3aE1sk~C?$NCjNNfk>$vKE7f-F{cFJ9bo~={Ws_lOK{q?LX_E-mpr~)HP;*;w~rq>^L@i=wQcS?sAW7W6dN#T=R zH%fH;xMuov@9FclZ~4~$|Mb;(=bt#0$fxojEgGEboOGCf_o!=p^>k1PIJvxs)kRRi z_uuW;rw_iLuc!BWs>-zMt7n({C2}`R)XzL9^XT>dXwHM83+3))9uPV(tAGWw~QFQO=?0cFiDlx+UeqW#8 zkrbLy8mt)`l*eb$#qj!?z17dXFFwo3bS+!Fa;ntaKRjI=aZWAk*zerE?E!&G69N}S$6ktiSb1^rkvVUcvu2!X+7;GdnsKGc?T){_dqT4I<-8X{(e~mo zzfFY|ikPzd8Wu5#F8C+#Q}f@du{OqqfET>oi)ZBU3XIrVOq!O{uAuNWhf&oUmHk)!uQ zo;gA)Pt;CiR$-;N9F;7cyj(GiEcH&ybvwH3Gh37G^*p_U_p!$~EN>ut+N#RY^|G%Db-I=7+ zm@Tw#_x`!PqJdF+-JMxjAGjQ>``@QF@1pAli+5VBnJfuTJ$g?3ab`J20;?N44Q2^U zx|VPG`}H*DXE~m#MVGEN*$8ZQ*|ubwM6tla@>`qRQi3L_GF%bTm|RpWy0B$R%|*wz z8e3dC?u35)_RGo2@V#T*BR7U?mvomeTi(aR_fufo?c>JNmAxdQl%}}bSjt(pa;$C9 zR-Ip^Td^>ua9-0V#+CffGd=Iu)wuu9uQl4o_R{v(Jni@p$2G1e1lwGfn*YpfQHj|% zm!(?#@ZG;_BUt#YH!Ik0RZ`gWb^3y;e18_so0Bvm<}gUkk(qe(!nO}SYF}oZy;tq$ zyZ=y17ULv?K<|rHl_9I;1Y-6bIqux@D^Vr?j@PlKEm3w$`6R`TSH$jKxR-rG*Muqh zAxp0@YTtjwvvrmDlDVpT_U%;aT^Ic{;Ne3qY{pH?yPXWZYnV(0oLdkh$Z7I1WW z&bW5Z}!*O;Fr1us5W;&{x7g@3lh#VVtisI}MnY{cqy9tb|2Tsu>p?VU*L(-f(Y zc>QkPkGb4}JDAs>*tdsma^2FOBC)pvJI+h2GCCR9agTe~DWM4f#+9{l literal 0 HcmV?d00001 diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 134839949f..16455fd4aa 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1840,6 +1840,8 @@ block.arkyic-vent.name = Arkyic Vent block.yellow-stone-vent.name = Yellow Stone Vent block.red-stone-vent.name = Red Stone Vent block.crystalline-vent.name = Crystalline Vent +block.stone-vent.name = Stone Vent +block.basalt-vent.name = Basalt Vent block.redmat.name = Redmat block.bluemat.name = Bluemat block.core-zone.name = Core Zone diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index 5c3bcdf0de..bf5c4dd164 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -597,3 +597,5 @@ 63085=scathe-missile-surge-split|unit-scathe-missile-surge-split-ui 63084=advanced-launch-pad|block-advanced-launch-pad-ui 63083=landing-pad|block-landing-pad-ui +63082=stone-vent|block-stone-vent-ui +63081=basalt-vent|block-basalt-vent-ui diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 78cb094ffb..8507e93b81 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -49,7 +49,7 @@ public class Blocks{ redmat, bluemat, stoneWall, dirtWall, sporeWall, iceWall, daciteWall, sporePine, snowPine, pine, shrubs, whiteTree, whiteTreeDead, sporeCluster, redweed, purbush, yellowCoral, - rhyoliteVent, carbonVent, arkyicVent, yellowStoneVent, redStoneVent, crystallineVent, + rhyoliteVent, carbonVent, arkyicVent, yellowStoneVent, redStoneVent, crystallineVent, stoneVent, basaltVent, regolithWall, yellowStoneWall, rhyoliteWall, carbonWall, redIceWall, ferricStoneWall, beryllicStoneWall, arkyicWall, crystallineStoneWall, redStoneWall, redDiamondWall, ferricStone, ferricCraters, carbonStone, beryllicStone, crystallineStone, crystalFloor, yellowStonePlates, iceSnow, sandWater, darksandWater, duneWall, sandWall, moss, sporeMoss, shale, shaleWall, grass, salt, @@ -502,6 +502,16 @@ public class Blocks{ attributes.set(Attribute.steam, 1f); }}; + stoneVent = new SteamVent("stone-vent"){{ + parent = blendGroup = stone; + attributes.set(Attribute.steam, 1f); + }}; + + basaltVent = new SteamVent("basalt-vent"){{ + parent = blendGroup = basalt; + attributes.set(Attribute.steam, 1f); + }}; + redmat = new Floor("redmat"); bluemat = new Floor("bluemat"); @@ -3073,8 +3083,8 @@ public class Blocks{ ammoMultiplier = 2; hitEffect = despawnEffect = Fx.hitBulletColor; - hitColor = backColor = trailColor = Color.valueOf("d39169"); - frontColor = Color.valueOf("eac1a8"); + hitColor = backColor = trailColor = Pal.copperAmmoBack; + frontColor = Pal.copperAmmoFront; }}, Items.graphite, new BasicBulletType(3.5f, 18){{ width = 9f; @@ -3084,8 +3094,8 @@ public class Blocks{ rangeChange = 16f; hitEffect = despawnEffect = Fx.hitBulletColor; - hitColor = backColor = trailColor = Color.valueOf("858a9b"); - frontColor = Color.valueOf("dae1ee"); + hitColor = backColor = trailColor = Pal.graphiteAmmoBack; + frontColor = Pal.graphiteAmmoFront; }}, Items.silicon, new BasicBulletType(3f, 12){{ width = 7f; @@ -3099,8 +3109,8 @@ public class Blocks{ trailWidth = 1.5f; hitEffect = despawnEffect = Fx.hitBulletColor; - hitColor = backColor = trailColor = Color.valueOf("707594"); - frontColor = Color.valueOf("999ba0"); + hitColor = backColor = trailColor = Pal.siliconAmmoBack; + frontColor = Pal.siliconAmmoFront; }} ); @@ -3147,6 +3157,10 @@ public class Blocks{ hitEffect = Fx.flakExplosion; splashDamage = 22f * 1.5f; splashDamageRadius = 24f; + + frontColor = Pal.scrapAmmoFront; + backColor = hitColor = Pal.scrapAmmoBack; + despawnEffect = Fx.hitBulletColor; }}, Items.lead, new FlakBulletType(4.2f, 3){{ lifetime = 60f; @@ -3159,6 +3173,10 @@ public class Blocks{ splashDamageRadius = 15f; }}, Items.metaglass, new FlakBulletType(4f, 3){{ + backColor = trailColor = Pal.glassAmmoBack; + hitColor = frontColor = Pal.glassAmmoFront; + despawnEffect = Fx.hitBulletColor; + lifetime = 60f; ammoMultiplier = 5f; shootEffect = Fx.shootSmall; @@ -3174,8 +3192,8 @@ public class Blocks{ height = 12f; shrinkY = 1f; lifetime = 20f; - backColor = Pal.gray; - frontColor = Color.white; + backColor = trailColor = Pal.glassAmmoBack; + hitColor = frontColor = Pal.glassAmmoFront; despawnEffect = Fx.none; collidesGround = false; }}; @@ -3265,6 +3283,10 @@ public class Blocks{ collidesTiles = false; splashDamageRadius = 25f * 0.75f; splashDamage = 33f; + + hitColor = backColor = trailColor = Pal.graphiteAmmoBack; + frontColor = Pal.graphiteAmmoFront; + despawnEffect = Fx.hitBulletColor; }}, Items.silicon, new ArtilleryBulletType(3f, 20){{ knockback = 0.8f; @@ -3277,6 +3299,13 @@ public class Blocks{ ammoMultiplier = 3f; homingPower = 0.08f; homingRange = 50f; + + trailLength = 7; + trailWidth = 3f; + + hitColor = backColor = trailColor = Pal.siliconAmmoBack; + frontColor = Pal.siliconAmmoFront; + despawnEffect = Fx.hitBulletColor; }}, Items.pyratite, new ArtilleryBulletType(3f, 25){{ hitEffect = Fx.blastExplosion; @@ -3288,11 +3317,12 @@ public class Blocks{ splashDamage = 45f; status = StatusEffects.burning; statusDuration = 60f * 12f; - frontColor = Pal.lightishOrange; + frontColor = trailColor = hitColor = Pal.lightishOrange; backColor = Pal.lightOrange; makeFire = true; trailEffect = Fx.incendTrail; ammoMultiplier = 4f; + despawnEffect = Fx.hitBulletColor; }} ); targetAir = false; @@ -3447,6 +3477,9 @@ public class Blocks{ status = StatusEffects.blasted; statusDuration = 60f; + + hitColor = backColor = trailColor = Pal.blastAmmoBack; + frontColor = Pal.blastAmmoFront; }}, Items.pyratite, new MissileBulletType(3.7f, 12){{ frontColor = Pal.lightishOrange; @@ -3474,6 +3507,9 @@ public class Blocks{ lightningDamage = 10; lightning = 2; lightningLength = 10; + + hitColor = backColor = trailColor = Pal.surgeAmmoBack; + frontColor = Pal.surgeAmmoFront; }} ); @@ -3511,8 +3547,8 @@ public class Blocks{ ammoMultiplier = 2; hitEffect = despawnEffect = Fx.hitBulletColor; - hitColor = backColor = trailColor = Color.valueOf("d39169"); - frontColor = Color.valueOf("eac1a8"); + hitColor = backColor = trailColor = Pal.copperAmmoBack; + frontColor = Pal.copperAmmoFront; }}, Items.graphite, new BasicBulletType(3.5f, 20){{ width = 9f; @@ -3523,16 +3559,16 @@ public class Blocks{ rangeChange = 4f * 8f; hitEffect = despawnEffect = Fx.hitBulletColor; - hitColor = backColor = trailColor = Color.valueOf("858a9b"); - frontColor = Color.valueOf("dae1ee"); + hitColor = backColor = trailColor = Pal.graphiteAmmoBack; + frontColor = Pal.graphiteAmmoFront; }}, Items.pyratite, new BasicBulletType(3.2f, 18){{ width = 10f; height = 12f; - frontColor = Pal.lightishOrange; + frontColor = hitColor = Pal.lightishOrange; backColor = Pal.lightOrange; status = StatusEffects.burning; - hitEffect = new MultiEffect(Fx.hitBulletSmall, Fx.fireHit); + hitEffect = new MultiEffect(Fx.hitBulletColor, Fx.fireHit); ammoMultiplier = 5; @@ -3553,8 +3589,8 @@ public class Blocks{ trailLength = 5; trailWidth = 1.5f; hitEffect = despawnEffect = Fx.hitBulletColor; - hitColor = backColor = trailColor = Color.valueOf("707594"); - frontColor = Color.valueOf("999ba0"); + hitColor = backColor = trailColor = Pal.siliconAmmoBack; + frontColor = Pal.siliconAmmoFront; }}, Items.thorium, new BasicBulletType(4f, 29, "bullet"){{ width = 8f; @@ -3565,8 +3601,8 @@ public class Blocks{ lifetime = 60f; hitEffect = despawnEffect = Fx.hitBulletColor; - backColor = hitColor = trailColor = Color.valueOf("f595be"); - frontColor = Color.white; + backColor = hitColor = trailColor = Pal.thoriumAmmoBack; + frontColor = Pal.thoriumAmmoFront; }} ); @@ -3728,6 +3764,10 @@ public class Blocks{ collidesTiles = false; splashDamageRadius = 25f * 0.75f; splashDamage = 33f; + + backColor = hitColor = trailColor = Pal.graphiteAmmoBack; + frontColor = Pal.graphiteAmmoFront; + despawnEffect = Fx.hitBulletColor; }}, Items.silicon, new ArtilleryBulletType(3f, 20){{ knockback = 0.8f; @@ -3740,6 +3780,13 @@ public class Blocks{ ammoMultiplier = 3f; homingPower = 0.08f; homingRange = 50f; + + trailLength = 9; + trailWidth = 3.1f; + + despawnEffect = Fx.hitBulletColor; + backColor = hitColor = trailColor = Pal.siliconAmmoBack; + frontColor = Pal.siliconAmmoFront; }}, Items.pyratite, new ArtilleryBulletType(3f, 24){{ hitEffect = Fx.blastExplosion; @@ -3752,10 +3799,11 @@ public class Blocks{ status = StatusEffects.burning; statusDuration = 60f * 12f; frontColor = Pal.lightishOrange; - backColor = Pal.lightOrange; + backColor = hitColor = Pal.lightOrange; makeFire = true; trailEffect = Fx.incendTrail; ammoMultiplier = 4f; + despawnEffect = Fx.hitBulletColor; }}, Items.blastCompound, new ArtilleryBulletType(2f, 20, "shell"){{ hitEffect = Fx.blastExplosion; @@ -3766,10 +3814,12 @@ public class Blocks{ ammoMultiplier = 4f; splashDamageRadius = 45f * 0.75f; splashDamage = 55f; - backColor = Pal.missileYellowBack; - frontColor = Pal.missileYellow; status = StatusEffects.blasted; + + despawnEffect = Fx.hitBulletColor; + backColor = hitColor = trailColor = Pal.blastAmmoBack; + frontColor = Pal.blastAmmoFront; }}, Items.plastanium, new ArtilleryBulletType(3.4f, 20, "shell"){{ hitEffect = Fx.plasticExplosion; @@ -3823,7 +3873,7 @@ public class Blocks{ shootEffect = Fx.shootSmall; reloadMultiplier = 0.8f; width = 6f; - height = 8f; + height = 11f; hitEffect = Fx.flakExplosion; splashDamage = 45f; splashDamageRadius = 25f; @@ -3839,6 +3889,10 @@ public class Blocks{ fragBullets = 4; explodeRange = 20f; collidesGround = true; + + backColor = hitColor = trailColor = Pal.glassAmmoBack; + frontColor = Pal.glassAmmoFront; + despawnEffect = Fx.hitBulletColor; }}, Items.blastCompound, new FlakBulletType(4f, 8){{ shootEffect = Fx.shootBig; @@ -3849,6 +3903,10 @@ public class Blocks{ status = StatusEffects.blasted; statusDuration = 60f; + + backColor = hitColor = trailColor = Pal.blastAmmoBack; + frontColor = Pal.blastAmmoFront; + despawnEffect = Fx.hitBulletColor; }}, Items.plastanium, new FlakBulletType(4f, 8){{ ammoMultiplier = 4f; @@ -3870,6 +3928,7 @@ public class Blocks{ shootEffect = Fx.shootBig; collidesGround = true; explodeRange = 20f; + despawnEffect = Fx.hitBulletColor; }}, Items.surgeAlloy, new FlakBulletType(4.5f, 13){{ ammoMultiplier = 5f; @@ -3880,6 +3939,10 @@ public class Blocks{ shootEffect = Fx.shootBig; collidesGround = true; explodeRange = 20f; + + backColor = hitColor = trailColor = Pal.surgeAmmoBack; + frontColor = Pal.surgeAmmoFront; + despawnEffect = Fx.hitBulletColor; }} ); shootY = 10f; @@ -3977,8 +4040,8 @@ public class Blocks{ knockback = 0.3f; hitEffect = despawnEffect = Fx.hitBulletColor; - hitColor = backColor = trailColor = Color.valueOf("858a9b"); - frontColor = Color.valueOf("dae1ee"); + hitColor = backColor = trailColor = Pal.graphiteAmmoBack; + frontColor = Pal.graphiteAmmoFront; }}, Items.thorium, new BasicBulletType(8f, 80){{ hitSize = 5; @@ -3988,6 +4051,9 @@ public class Blocks{ pierceCap = 2; pierceBuilding = true; knockback = 0.7f; + + backColor = hitColor = trailColor = Pal.thoriumAmmoBack; + frontColor = Pal.thoriumAmmoFront; }}, Items.pyratite, new BasicBulletType(7f, 70){{ hitSize = 5; @@ -4215,8 +4281,8 @@ public class Blocks{ shootEffect = Fx.shootBigColor; smokeEffect = Fx.shootSmokeSquareSparse; ammoMultiplier = 1; - hitColor = backColor = trailColor = Color.valueOf("858a9b"); - frontColor = Color.valueOf("dae1ee"); + hitColor = backColor = trailColor = Pal.graphiteAmmoBack; + frontColor = Pal.graphiteAmmoFront; trailWidth = 6f; trailLength = 6; hitEffect = despawnEffect = Fx.hitSquaresColor; @@ -4589,8 +4655,8 @@ public class Blocks{ collidesTiles = false; shootEffect = Fx.shootBig2; smokeEffect = Fx.shootSmokeDisperse; - frontColor = Color.valueOf("dae1ee"); - backColor = trailColor = hitColor = Color.valueOf("858a9b"); + frontColor = Pal.graphiteAmmoFront; + backColor = trailColor = hitColor = Pal.graphiteAmmoBack; ammoMultiplier = 3f; lifetime = 34f; diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 25c604c986..f1428d0319 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -1174,7 +1174,7 @@ public class Fx{ artilleryTrail = new Effect(50, e -> { color(e.color); Fill.circle(e.x, e.y, e.rotation * e.fout()); - }), + }).layer(Layer.bullet - 0.01f), incendTrail = new Effect(50, e -> { color(Pal.lightOrange); diff --git a/core/src/mindustry/graphics/Pal.java b/core/src/mindustry/graphics/Pal.java index 97a219ae87..911aa19b34 100644 --- a/core/src/mindustry/graphics/Pal.java +++ b/core/src/mindustry/graphics/Pal.java @@ -138,5 +138,30 @@ public class Pal{ techBlue = Color.valueOf("8ca9e8"), vent = Color.valueOf("6b4e4e"), - vent2 = Color.valueOf("3b2a2a"); + vent2 = Color.valueOf("3b2a2a"), + + copperAmmoFront = Color.valueOf("eac1a8"), + copperAmmoBack = Color.valueOf("d39169"), + + graphiteAmmoBack = Color.valueOf("7d89d8"), + graphiteAmmoFront = Color.valueOf("dae1ee"), + + siliconAmmoBack = Color.valueOf("707594"), + siliconAmmoFront = Color.valueOf("999ba0"), + + glassAmmoBack = Color.valueOf("b9c9df"), + glassAmmoFront = Color.valueOf("ffffff"), + + scrapAmmoFront = Color.valueOf("f5e0cc"), + scrapAmmoBack = Color.valueOf("d8887e"), + + surgeAmmoFront = Color.white.cpy(), + surgeAmmoBack = surge.cpy(), + + blastAmmoBack = Color.valueOf("e9665b"), + blastAmmoFront = Color.valueOf("eeab89"), + + thoriumAmmoBack = Color.valueOf("f595be"), + thoriumAmmoFront = Color.white.cpy() + ; } diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 5425212ea4..260a0f3656 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -699,7 +699,7 @@ public class UnitType extends UnlockableContent implements Senseable{ stats.add(Stat.speed, speed * 60f / tilesize, StatUnit.tilesSecond); stats.add(Stat.size, StatValues.squared(hitSize / tilesize, StatUnit.blocks)); stats.add(Stat.itemCapacity, itemCapacity); - stats.add(Stat.range, (int)(maxRange / tilesize), StatUnit.blocks); + stats.add(Stat.range, Strings.autoFixed(maxRange / tilesize, 1), StatUnit.blocks); stats.add(Stat.targetsAir, targetAir); stats.add(Stat.targetsGround, targetGround);