From 7650226f2506c67cdc7a86688196aa72d7a7cc08 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 25 Feb 2022 22:23:50 -0500 Subject: [PATCH] WIP low-tier leg unit --- .../sprites/ui/button-square-down.9.png | Bin 202 -> 0 bytes .../sprites/ui/button-square-over.9.png | Bin 221 -> 0 bytes .../assets-raw/sprites/ui/button-square.9.png | Bin 209 -> 0 bytes core/assets-raw/sprites/units/latum-cell.png | Bin 0 -> 441 bytes .../sprites/units/latum-leg-base.png | Bin 0 -> 401 bytes core/assets-raw/sprites/units/latum-leg.png | Bin 0 -> 376 bytes core/assets-raw/sprites/units/latum.png | Bin 0 -> 1373 bytes .../sprites/units/weapons/atrax-weapon.png | Bin 0 -> 528 bytes .../sprites/units/weapons/eruption.png | Bin 529 -> 0 bytes core/assets/icons/icons.properties | 1 + core/assets/logicids.dat | Bin 4184 -> 4191 bytes core/src/mindustry/content/Fx.java | 117 ------------------ core/src/mindustry/content/UnitTypes.java | 52 +++++++- .../src/mindustry/entities/comp/LegsComp.java | 8 +- core/src/mindustry/type/UnitType.java | 2 +- core/src/mindustry/ui/Styles.java | 60 +-------- .../mindustry/ui/dialogs/KeybindDialog.java | 24 +--- .../mindustry/ui/fragments/HudFragment.java | 12 +- .../mindustry/ui/fragments/MenuFragment.java | 15 ++- gradle.properties | 2 +- 20 files changed, 91 insertions(+), 202 deletions(-) delete mode 100644 core/assets-raw/sprites/ui/button-square-down.9.png delete mode 100644 core/assets-raw/sprites/ui/button-square-over.9.png delete mode 100644 core/assets-raw/sprites/ui/button-square.9.png create mode 100644 core/assets-raw/sprites/units/latum-cell.png create mode 100644 core/assets-raw/sprites/units/latum-leg-base.png create mode 100644 core/assets-raw/sprites/units/latum-leg.png create mode 100644 core/assets-raw/sprites/units/latum.png create mode 100644 core/assets-raw/sprites/units/weapons/atrax-weapon.png delete mode 100644 core/assets-raw/sprites/units/weapons/eruption.png diff --git a/core/assets-raw/sprites/ui/button-square-down.9.png b/core/assets-raw/sprites/ui/button-square-down.9.png deleted file mode 100644 index 4c81be0884970c1748abc6a288ab4d639129cc30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^YCtT@!3HFcHOL(RQWHI0978H@y`65z$Dqi;@^jA8 z|MlnY-Hebd6)n-<>AAtks8uQA+|3&mjKbcQrzQoxVw)rRbhePQKy(sEnkP^Df+Gbp zG!0`GX}6s=IXZ*6r)BEuq=`Y=MO$X%3Mr-e?dY0m9GtYcR_uuWGd;EH<92_wmcG6* z^_2eaaIbRlOMhpSuxsD_?Cs;px^?HKMP{AepBcIfRr0?tZm%zQHJsb=3Msc_%Y!<48tHNfZYPbh%73z+=z%(0>GFn`Ld7?&eY8btY3yh3n z3M1o)VEMV3C<*R|4Z&dFu}^=M(D&Gqn;-UH3Ef>l_hZl4 z;}XLrOk&uKN(@CjilLZWG4%#wj8$$HOOx`*nZ;x=DPj_oP%#OPN^E?xJEb&oznDvm z_KtnJDyiSGs+XVkucYoSsQWSM4wky-ub+~xs-c=I=W?c+#Hn)t6MX~tV^VPW00000 LNkvXXu0mjfTbfuz diff --git a/core/assets-raw/sprites/units/latum-cell.png b/core/assets-raw/sprites/units/latum-cell.png new file mode 100644 index 0000000000000000000000000000000000000000..ab1922cf29a43fb3ef106da1faa52b693d2210c2 GIT binary patch literal 441 zcmeAS@N?(olHy`uVBq!ia0vp^J|N7&1|*M957Y)yjKx9jP7LeL$-D%yJzX3_D(1Ys z>6mv|L7?^F!dJeRyj8x7?`tU*D-Twg&XAa(qju?k?xv2$hmDS2EO=QU>Ef3?Dmo{&HE4=!`GUnHsOVTf`O;5Y6F1FB@HEnBFSmT!& zYbz}b&K^)~3HW{P)zs|XiL*J^R!_LcnE(Cvf5x6eQg1)+%)MGyC&&Nw&sE;4F!k0l z*9cGl`)fA{*9g8k@JUp2ZNT|eXMHkCo`1RW@7x7G zZ|0}-Zz;JsUEZR3HFQ;E@`{UV{*<25@0w+^=A!5M9Zz^Jzq)A}KG!o!kLkCHH`C^d zsbPEil(@@poM{PfRo(RBg1vP-!`8$9YwFhWcpq_0P#e;KZx(?>gTe~DWM4fWJ1Bp literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/units/latum-leg-base.png b/core/assets-raw/sprites/units/latum-leg-base.png new file mode 100644 index 0000000000000000000000000000000000000000..1ff53aaf7803ba31c60849b74d8ea054073294c5 GIT binary patch literal 401 zcmV;C0dD?@P)Px$OG!jQR9J=Wm`e`AAP_*&c$B&^@glnP9>yc|2*#Ch?baAg^de2zl)LB(LSSb2 zw2+qYk|wm0!gCl3FjlElierKOaJ}7s`u+R$^nU60^FZI50JG5T2-m3ED+$IxRnh!V^>cZG;8dcUis$)Jso?7Rh6N@FG6Dxv=r4q41 z3^k;8*aamn!G>UL4v~?N_;f6!9u}$H{ty)@(Ap~t!uQ*eV>p$a*t4HvXaBLo z7HP2&!5DM>nk6f$A8xIilwL6q_S55-|eMy(HD{&Wc3n*vC37`Yzk{ v)H$3?LJkU2c3h{-BOA$_4$mr;N`d?VzBB3yPch@a00000NkvXXu0mjft&6Tq literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/units/latum-leg.png b/core/assets-raw/sprites/units/latum-leg.png new file mode 100644 index 0000000000000000000000000000000000000000..cab7379bd259c6d9997a4759ebb39507b41a9f0f GIT binary patch literal 376 zcmV-;0f+vHP)Px$GD$>1R9J=Wm$41PFc3w5P(}$&Bo={^JrE->2BM~=ghi0t;9WvRWSsN)&T+tn zUxk8kUcT=f15_#%mgaCg4ekZ|da^(0)|=?0)Etldtx>uG09IOo*aL*-*zWcNF*M3V zFmwZ#UrILT%XI(%W2{;vb-8`GPC^;^145|buB*Gm2a+6I$ zL8VI}NlSxRkV>%cyQH$vAQBA8QJ+8Ll5ArGVsh>^e{7Czh)qx`C;2W!>>+}JS~<-a zA5K!-B>y5PNF^cJ3#I#|3s;A1f?CPka)6+VsqQq!PUKS#8xlk{7)x>~Ibi0i&KSF> z95C}$N0CzwAZl>#!8Np}r5;?r5-jmlJqng62LNrTwo3W?Nj6C-asVM%l3b-y5%30Y WI=UG6csYas0000Px)7fD1xRCt{2oWE;SK@i7Bu?$$+r8=7j{sC!&rch8sQ$^AU5)j1JDoJH4Lf{Z= zBvvXR0WFeXn?E3MO|G&_8L-zv=A7F%vpcgpyVtxA2+7{={P@28{c-{f3=9km3=HsG zYvE-4VgC>Qy!GOltIwLYIjTFL2_dP(u#L8!#daxGjdKYhQet5nZ9PpJ52_iCC4_{D zNo}DCv4z8H;&?@ z#j2Nz_2$`AlfSq7UwdUOds@bdcji_}ZZ{ut_T{r^FBB-ZO}Jv>(Fu9~ZfEhUWG%5$pK&(1qmvgd zf|ZK(`{vzVub`Y9Uq*NFEk(-~Z2V#WPuGolhh9#s7*q&OG+GuDjU$W&<1INRWeFxZ zED=j;Z#geoV#*cGELiBsnt;?UCU&W4Qo9_{OoA;!EUC_-L{ke^A{L#LbHtMBQd_Y_ zC8R_&m0(_C)ux4LZg={>&c^WZtY03kqDxn&y_GTSIUjd-0RZ6n_V!%4<_ZVfhAezr zK?!%#h;+{$CQ5~%3Dcjo_g#`tDMl-*BLdf5v6ooI;%p$2t+01!-jqw{MzqD*&|EBL z_pqg_(;~6Z1`_K5^fT?B6~ua))&__Bdr9l-F6~gsdG|=)iF%>xVcgw17l>6X>CWD> z4Hpv^yVkCHNK%8+Q?rz#z3IidHiTJS?E}=7TONXH(!c-U$!yXe-M*8oPoF9c49mFy zQ+7FF@j{XF5teK0{`mgQf6}K8xZ4VV|Myp6z>~>Te45jX^O?QypVSMF4i8u#GzLl- zucdb*S*s)_M*~4{v&jV<3o!R32xk+0(~WN!Z;n_18AB34PJj~$H=ns;QDSoq4(af8 z03aWkLVHz)q(v-%e+hVqm8v_vIA_I*#g_9X%H?R3x?+~d2{@-s>WbS!v0$kyX3JY{ zEta?8C0E=WX2IyV=K`PsN@9&}--#~yM~4T|`D!wmirWzClY4+P=A4alRu4-#Iyt_K ziiMWA3+*VLlH}~d#Pl?6#3hkaK zr>!MEw{1nt5Dmc6vs$5zPa_t9@oy_)JxxpN9;QJn7JzXMvl!;k9Nb&mwB}@<^m9e4 zAy%pFoLsVdjAeMn60!~{FI%|}K6_hHIy?dL=AYJcR!Ebt&TvVVB<^j`LbGqP(S$sb z^R}m@`nTCAsl=qABF&dAg+iKtUs57AuXxOtUK9u7v6jGSwvFl|V~hNR`zmmWX!(Eqwu0{J(d&L~3mhTKXCo f7#J8B7?Ai2oRlsnE-3+500000NkvXXu0mjfRBng% literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/units/weapons/atrax-weapon.png b/core/assets-raw/sprites/units/weapons/atrax-weapon.png new file mode 100644 index 0000000000000000000000000000000000000000..e0a6b3f1ff233eeec31d638ba8dfcdecec399afa GIT binary patch literal 528 zcmV+r0`L8aP)Px$%1J~)RA_JEKet3iDiplMVBNs>5K zf{9ZF{(}f*3WXG*u7MB|jW1%`ZB|Q=yAV@?DsX!@s2z+YK@*UKH!vh90+R6UZig}C z0%rlum1jx>+e)w`g6@SF5?%$4XIDN?55S{96X5|*0!@VnfPHC)EX!7o-}0}OV@de$ zk5B3F8&E4S`#G%rUq*Oee z<+KsY^LLl-3seG!uiER=- z!UG;RbITI8@Ie;wIwz+G*0%9<-)nh33hlu z`Hc+Nd>U)RJ=_nRUZ|?4P+29K#5u%rC8Skwz4`z_0MJP=!bc*JNF)-8>^i@_v7A+x ScZ00}0000Px$%Sl8*RA_AqEc6sbN5l(k4#g-_J2p{cWl1_8mA2hrXA|SD^z&J)625ClMrKpCU(OsTuB%Us7pkG3kiA!x<(`rMUhn{ zm{?WdKZsB+A)g}DHQ+;{^F^$?%}Vid7h+0K1#WI7XaXkT6$}ZAfJylNaKIQc z$67!#^GpeETM3qg*S!!!!l}UN`oiVu0XP)sB0S(opsVlzaA?{gNs_JOxAbf4*d+Y- z$EWG=C8!lx{~WdcFC#oa6z~xqAPM*i4+z#kkqvrTQ~1~CW##Xq(TUB_Iid>0af}Um zRvWQ2eYfeJBN8y#MV?K^+BSxSv4CXe>m+QkS_3913HBnUKZzHsxwefR9&ogksFH9I z9&ossD@y3Xds)Q0Os|f$ZHv|1X?TECfjWsQSm6PJfSTd963p;`K;SyQEWJN$E5QyA z2)~g5<)^VU-2L6m>V>NK5~`|%53EBJD`8p%+t~*Q0)R|{5k3$I1OkCTVBh%#$F8FN Tz-Ps_00000NkvXXu0mjf;V$SG diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index bcd0c14056..773e1ba289 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -547,3 +547,4 @@ 63156=ore-beryllium|block-ore-beryllium-ui 63155=locus|unit-locus-ui 63154=avert|unit-avert-ui +63153=latum|unit-latum-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index 9c4e7b21207c997b654af6274554bc1170ade3dc..a691481a2010175956358163ad274e883a744a24 100644 GIT binary patch delta 26 hcmcbia9?3V4KJhV=33qvjBKnqi6y1En??9t7y*Ik2!;Rv delta 19 acmcbwa6@534KJg~=33qvjGJZnof!d3-3DF& diff --git a/core/src/mindustry/content/Fx.java b/core/src/mindustry/content/Fx.java index 7db7815f1e..95a3786495 100644 --- a/core/src/mindustry/content/Fx.java +++ b/core/src/mindustry/content/Fx.java @@ -1234,18 +1234,6 @@ public class Fx{ Lines.circle(e.x, e.y, e.fin() * 50f); }), - nuclearShockwave = new Effect(10f, 200f, e -> { - color(Color.white, Color.lightGray, e.fin()); - stroke(e.fout() * 3f + 0.2f); - Lines.circle(e.x, e.y, e.fin() * 140f); - }), - - impactShockwave = new Effect(13f, 300f, e -> { - color(Pal.lighterOrange, Color.lightGray, e.fin()); - stroke(e.fout() * 4f + 0.2f); - Lines.circle(e.x, e.y, e.fin() * 200f); - }), - spawnShockwave = new Effect(20f, 400f, e -> { color(Color.white, Color.lightGray, e.fin()); stroke(e.fout() * 3f + 0.5f); @@ -1393,27 +1381,6 @@ public class Fx{ }); }), - blockExplosion = new Effect(30, e -> { - e.scaled(7, i -> { - stroke(3.1f * i.fout()); - Lines.circle(e.x, e.y, 3f + i.fin() * 14f); - }); - - color(Color.gray); - - randLenVectors(e.id, 6, 2f + 19f * e.finpow(), (x, y) -> { - Fill.circle(e.x + x, e.y + y, e.fout() * 3f + 0.5f); - Fill.circle(e.x + x / 2f, e.y + y / 2f, e.fout()); - }); - - color(Pal.lighterOrange, Pal.lightOrange, Color.gray, e.fin()); - stroke(1.7f * e.fout()); - - randLenVectors(e.id + 1, 9, 1f + 23f * e.finpow(), (x, y) -> { - lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 3f); - }); - }), - blockExplosionSmoke = new Effect(30, e -> { color(Color.gray); @@ -1872,47 +1839,6 @@ public class Fx{ }); }), - nuclearsmoke = new Effect(40, e -> { - randLenVectors(e.id, 4, e.fin() * 13f, (x, y) -> { - float size = e.fslope() * 4f; - color(Color.lightGray, Color.gray, e.fin()); - Fill.circle(e.x + x, e.y + y, size/2f); - }); - }), - - cloudsmoke = new Effect(70, e -> { - randLenVectors(e.id, 12, 15f + e.fin() * 45f, (x, y) -> { - float size = e.fslope() * 2f; - color(Color.gray); - alpha(e.fslope()); - Fill.circle(e.x + x, e.y + y, size); - }); - }), - - nuclearcloud = new Effect(90, 200f, e -> { - randLenVectors(e.id, 10, e.finpow() * 90f, (x, y) -> { - float size = e.fout() * 14f; - color(Color.lime, Color.gray, e.fin()); - Fill.circle(e.x + x, e.y + y, size/2f); - }); - }), - - impactsmoke = new Effect(60, e -> { - randLenVectors(e.id, 7, e.fin() * 20f, (x, y) -> { - float size = e.fslope() * 4f; - color(Color.lightGray, Color.gray, e.fin()); - Fill.circle(e.x + x, e.y + y, size/2f); - }); - }), - - impactcloud = new Effect(140, 400f, e -> { - randLenVectors(e.id, 20, e.finpow() * 160f, (x, y) -> { - float size = e.fout() * 15f; - color(Pal.lighterOrange, Color.lightGray, e.fin()); - Fill.circle(e.x + x, e.y + y, size/2f); - }); - }), - redgeneratespark = new Effect(90, e -> { color(Pal.redSpark); alpha(e.fslope()); @@ -1935,17 +1861,6 @@ public class Fx{ } }).layer(Layer.bullet - 1f), - crucibleSmoke = new Effect(100, e -> { - color(Pal.redLight); - alpha(e.fslope() * 0.8f); - - rand.setSeed(e.id); - for(int i = 0; i < 5; i++){ - v.trns(rand.random(360f), rand.random(e.finpow() * 14f)).add(e.x, e.y); - Fill.circle(v.x, v.y, rand.random(1.4f, 2.8f)); - } - }).layer(Layer.bullet - 1f), - generatespark = new Effect(18, e -> { randLenVectors(e.id, 5, e.fin() * 8f, (x, y) -> { color(Pal.orangeSpark, Color.gray, e.fin()); @@ -2003,13 +1918,6 @@ public class Fx{ }); }), - pulverizeRedder = new Effect(40, e -> { - randLenVectors(e.id, 5, 3f + e.fin() * 9f, (x, y) -> { - color(Pal.redderDust, Pal.stoneGray, e.fin()); - Fill.square(e.x + x, e.y + y, e.fout() * 2.5f + 0.5f, 45); - }); - }), - pulverizeSmall = new Effect(30, e -> { randLenVectors(e.id, 3, e.fin() * 5f, (x, y) -> { color(Pal.stoneGray); @@ -2096,24 +2004,6 @@ public class Fx{ Lines.square(e.x, e.y, tilesize + e.fout() * 2f); }), - purify = new Effect(10, e -> { - color(Color.royal, Color.gray, e.fin()); - stroke(2f); - Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6); - }), - - purifyoil = new Effect(10, e -> { - color(Color.black, Color.gray, e.fin()); - stroke(2f); - Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6); - }), - - purifystone = new Effect(10, e -> { - color(Color.orange, Color.gray, e.fin()); - stroke(2f); - Lines.spikes(e.x, e.y, e.fin() * 4f, 2, 6); - }), - generate = new Effect(11, e -> { color(Color.orange, Color.yellow, e.fin()); stroke(1f); @@ -2184,13 +2074,6 @@ public class Fx{ }); }), - smelt = new Effect(20, e -> { - color(Color.white, e.color, e.fin()); - randLenVectors(e.id, 6, 2f + e.fin() * 5f, (x, y) -> { - Fill.square(e.x + x, e.y + y, 0.5f + e.fout() * 2f, 45); - }); - }), - teleportActivate = new Effect(50, e -> { color(e.color); diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 62401867fd..feca1ba06a 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -36,7 +36,8 @@ public class UnitTypes{ public static @EntityDef(value = {Unitc.class, Mechc.class}, legacy = true) UnitType nova, pulsar, quasar; //legs - public static @EntityDef({Unitc.class, Legsc.class}) UnitType corvus, atrax, bulwark, krepost; + public static @EntityDef({Unitc.class, Legsc.class}) UnitType corvus, atrax, + latum, bulwark, krepost; //legs, legacy public static @EntityDef(value = {Unitc.class, Legsc.class}, legacy = true) UnitType spiroct, arkyid, toxopid; @@ -641,7 +642,7 @@ public class UnitTypes{ visualElevation = 0.2f; groundLayer = Layer.legUnit - 1f; - weapons.add(new Weapon("eruption"){{ + weapons.add(new Weapon("atrax-weapon"){{ top = false; shootY = 3f; reload = 9f; @@ -2499,6 +2500,7 @@ public class UnitTypes{ spread = 3.5f; }}; + //TODO make this look nice bullet = new RailBulletType(){{ length = 140f; damage = 40f; @@ -2771,6 +2773,52 @@ public class UnitTypes{ //endregion //region erekir - mech + latum = new ErekirUnitType("latum"){{ + speed = 0.7f; + drag = 0.1f; + hitSize = 14f; + rotateSpeed = 3f; + health = 700; + + legCount = 4; + legLength = 14f; + lockLegBase = true; + legContinuousMove = true; + legExtension = -3f; + legBaseOffset = 5f; + maxStretch = 1.1f; + maxCompress = 0.2f; + legLengthScl = 0.95f; + legTrns = 0.7f; + + legMoveSpace = 1f; + hovering = true; + armor = 5f; + + visualElevation = 0.2f; + groundLayer = Layer.legUnit - 1f; + + if(false) + weapons.add(new Weapon("eruption"){{ + top = false; + shootY = 3f; + reload = 9f; + ejectEffect = Fx.none; + recoil = 1f; + x = 7f; + shootSound = Sounds.flame; + + bullet = new LiquidBulletType(Liquids.slag){{ + damage = 13; + speed = 2.5f; + drag = 0.009f; + shootEffect = Fx.shootSmall; + lifetime = 57f; + collidesAir = false; + }}; + }}); + }}; + bulwark = new ErekirUnitType("bulwark"){{ drag = 0.1f; speed = 0.6f; diff --git a/core/src/mindustry/entities/comp/LegsComp.java b/core/src/mindustry/entities/comp/LegsComp.java index 1a6ceb8c52..852e182251 100644 --- a/core/src/mindustry/entities/comp/LegsComp.java +++ b/core/src/mindustry/entities/comp/LegsComp.java @@ -147,8 +147,8 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{ Leg l = legs[i]; //TODO is limiting twice necessary? - l.joint.sub(baseOffset).limit(type.maxStretch * legLength/2f).add(baseOffset); - l.base.sub(baseOffset).limit(type.maxStretch * legLength).add(baseOffset); + l.joint.sub(baseOffset).clampLength(type.maxCompress * legLength/2f, type.maxStretch * legLength/2f).add(baseOffset); + l.base.sub(baseOffset).clampLength(type.maxCompress * legLength, type.maxStretch * legLength).add(baseOffset); float stageF = (totalLength + i*type.legPairOffset) / moveSpace; int stage = (int)stageF; @@ -212,8 +212,8 @@ abstract class LegsComp implements Posc, Rotc, Hitboxc, Flyingc, Unitc{ l.joint.lerpDelta(jointDest, moveSpeed / 4f); //limit again after updating - l.joint.sub(baseOffset).limit(type.maxStretch * legLength/2f).add(baseOffset); - l.base.sub(baseOffset).limit(type.maxStretch * legLength).add(baseOffset); + l.joint.sub(baseOffset).clampLength(type.maxCompress * legLength/2f, type.maxStretch * legLength/2f).add(baseOffset); + l.base.sub(baseOffset).clampLength(type.maxCompress * legLength, type.maxStretch * legLength).add(baseOffset); } //when at least 1 leg is touching land, it can't drown diff --git a/core/src/mindustry/type/UnitType.java b/core/src/mindustry/type/UnitType.java index 7401e3ab5c..88ac864f6d 100644 --- a/core/src/mindustry/type/UnitType.java +++ b/core/src/mindustry/type/UnitType.java @@ -121,7 +121,7 @@ public class UnitType extends UnlockableContent{ public boolean outlines = true; public int legCount = 4, legGroupSize = 2; - public float legLength = 10f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f, legExtension = 0, legPairOffset = 0, legLengthScl = 1f, kinematicScl = 1f, maxStretch = 1.75f; + public float legLength = 10f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f, legExtension = 0, legPairOffset = 0, legLengthScl = 1f, kinematicScl = 1f, maxStretch = 1.75f, maxCompress = 0f; public float legSplashDamage = 0f, legSplashRange = 5; public float legStraightLength = 1f; /** If true, legs are locked to the base of the unit instead of being on an implicit rotating "mount". */ diff --git a/core/src/mindustry/ui/Styles.java b/core/src/mindustry/ui/Styles.java index f6b212fa06..fc3e02a5f7 100644 --- a/core/src/mindustry/ui/Styles.java +++ b/core/src/mindustry/ui/Styles.java @@ -18,7 +18,6 @@ import arc.scene.ui.TreeElement.*; import mindustry.annotations.Annotations.*; import mindustry.gen.*; import mindustry.graphics.*; -import mindustry.ui.dialogs.*; import static mindustry.gen.Tex.*; @@ -26,11 +25,12 @@ import static mindustry.gen.Tex.*; public class Styles{ //TODO all these names are inconsistent and not descriptive public static Drawable black, black9, black8, black6, black3, black5, none, flatDown, flatOver, accentDrawable; - public static ButtonStyle defaultb, waveb, modsb, underlineb; - public static TextButtonStyle defaultt, squaret, nodet, cleart, discordt, nonet, infot, clearPartialt, clearTogglet, logicTogglet, clearToggleMenut, togglet, transt, fullTogglet, squareTogglet, logict; - public static ImageButtonStyle defaulti, nodei, righti, emptyi, emptytogglei, selecti, logici, geni, colori, accenti, cleari, clearFulli, clearPartiali, clearPartial2i, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali; + + public static ButtonStyle defaultb, underlineb; + + public static TextButtonStyle defaultt, nodet, cleart, nonet, clearPartialt, clearTogglet, logicTogglet, clearToggleMenut, togglet, transt, fullTogglet, squareTogglet, logict; + public static ImageButtonStyle defaulti, nodei, emptyi, emptytogglei, selecti, logici, geni, colori, accenti, cleari, clearFulli, clearPartiali, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali; public static ScrollPaneStyle defaultPane, horizontalPane, smallPane, nonePane; - public static KeybindDialog.KeybindDialogStyle defaultKeybindDialog; public static SliderStyle defaultSlider; public static LabelStyle defaultLabel, outlineLabel, techLabel; public static TextFieldStyle defaultField, nodeField, areaField, nodeArea; @@ -59,24 +59,12 @@ public class Styles{ disabled = buttonDisabled; }}; - modsb = new ButtonStyle(){{ - down = flatOver; - up = underline; - over = underline2; - }}; - underlineb = new ButtonStyle(){{ down = flatOver; up = sideline; over = sidelineOver; checked = flatOver; }}; - - waveb = new ButtonStyle(){{ - up = wavepane; - over = wavepane; //TODO wrong - disabled = wavepane; - }}; defaultt = new TextButtonStyle(){{ over = buttonOver; @@ -87,15 +75,6 @@ public class Styles{ down = buttonDown; up = button; }}; - squaret = new TextButtonStyle(){{ - font = Fonts.def; - fontColor = Color.white; - disabledFontColor = Color.gray; - over = buttonSquareOver; - disabled = buttonDisabled; - down = buttonSquareDown; - up = buttonSquare; - }}; nodet = new TextButtonStyle(){{ disabled = button; font = Fonts.def; @@ -127,16 +106,6 @@ public class Styles{ down = flatOver; up = underlineWhite; }}; - discordt = new TextButtonStyle(){{ - font = Fonts.def; - fontColor = Color.white; - up = discordBanner; - }}; - infot = new TextButtonStyle(){{ - font = Fonts.def; - fontColor = Color.white; - up = infoBanner; - }}; clearPartialt = new TextButtonStyle(){{ down = flatOver; up = pane; @@ -225,14 +194,6 @@ public class Styles{ up = buttonOver; over = buttonDown; }}; - righti = new ImageButtonStyle(){{ - over = buttonRightOver; - down = buttonRightDown; - up = buttonRight; - disabled = buttonRightDisabled; - imageDisabledColor = Color.clear; - imageUpColor = Color.white; - }}; emptyi = new ImageButtonStyle(){{ imageDownColor = Pal.accent; imageOverColor = Color.lightGray; @@ -282,11 +243,6 @@ public class Styles{ imageDisabledColor = Color.gray; imageUpColor = Color.white; }}; - clearPartial2i = new ImageButtonStyle(){{ - down = whiteui; - up = pane; - over = flatDown; - }}; clearTogglei = new ImageButtonStyle(){{ down = flatDown; checked = flatDown; @@ -330,12 +286,6 @@ public class Styles{ }}; nonePane = new ScrollPaneStyle(); - defaultKeybindDialog = new KeybindDialog.KeybindDialogStyle(){{ - keyColor = Pal.accent; - keyNameColor = Color.white; - controllerColor = Color.lightGray; - }}; - defaultSlider = new SliderStyle(){{ background = sliderBack; knob = sliderKnob; diff --git a/core/src/mindustry/ui/dialogs/KeybindDialog.java b/core/src/mindustry/ui/dialogs/KeybindDialog.java index 7ba04caf7e..9cfc48e41b 100644 --- a/core/src/mindustry/ui/dialogs/KeybindDialog.java +++ b/core/src/mindustry/ui/dialogs/KeybindDialog.java @@ -6,7 +6,6 @@ import arc.graphics.*; import arc.input.*; import arc.input.InputDevice.*; import arc.scene.event.*; -import arc.scene.style.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; @@ -18,7 +17,6 @@ import mindustry.ui.*; import static arc.Core.*; public class KeybindDialog extends Dialog{ - protected KeybindDialogStyle style; protected Section section; protected KeyBind rebindKey = null; protected boolean rebindAxis = false; @@ -30,7 +28,6 @@ public class KeybindDialog extends Dialog{ public KeybindDialog(){ super(bundle.get("keybind.title", "Rebind Keys")); - style = scene.getStyle(KeybindDialogStyle.class); setup(); addCloseButton(); setFillParent(true); @@ -48,11 +45,6 @@ public class KeybindDialog extends Dialog{ }); } - public void setStyle(KeybindDialogStyle style){ - this.style = style; - setup(); - } - private void setup(){ cont.clear(); @@ -124,7 +116,7 @@ public class KeybindDialog extends Dialog{ table.add().height(10); table.row(); if(section.device.type() == DeviceType.controller){ - table.table(info -> info.add("Controller Type: [#" + style.controllerColor.toString().toUpperCase() + "]" + + table.table(info -> info.add("Controller Type: [lightGray]" + Strings.capitalize(section.device.name())).left()); } table.row(); @@ -140,12 +132,12 @@ public class KeybindDialog extends Dialog{ } if(keybind.defaultValue(section.device.type()) instanceof Axis){ - table.add(bundle.get("keybind." + keybind.name() + ".name", Strings.capitalize(keybind.name())), style.keyNameColor).left().padRight(40).padLeft(8); + table.add(bundle.get("keybind." + keybind.name() + ".name", Strings.capitalize(keybind.name())), Color.white).left().padRight(40).padLeft(8); table.labelWrap(() -> { Axis axis = keybinds.get(section, keybind); return axis.key != null ? axis.key.toString() : axis.min + " [red]/[] " + axis.max; - }).color(style.keyColor).left().minWidth(90).fillX().padRight(20); + }).color(Pal.accent).left().minWidth(90).fillX().padRight(20); table.button("@settings.rebind", tstyle, () -> { rebindAxis = true; @@ -153,8 +145,8 @@ public class KeybindDialog extends Dialog{ openDialog(section, keybind); }).width(130f); }else{ - table.add(bundle.get("keybind." + keybind.name() + ".name", Strings.capitalize(keybind.name())), style.keyNameColor).left().padRight(40).padLeft(8); - table.label(() -> keybinds.get(section, keybind).key.toString()).color(style.keyColor).left().minWidth(90).padRight(20); + table.add(bundle.get("keybind." + keybind.name() + ".name", Strings.capitalize(keybind.name())), Color.white).left().padRight(40).padLeft(8); + table.label(() -> keybinds.get(section, keybind).key.toString()).color(Pal.accent).left().minWidth(90).padRight(20); table.button("@settings.rebind", tstyle, () -> { rebindAxis = false; @@ -239,10 +231,4 @@ public class KeybindDialog extends Dialog{ rebindDialog.show(); Time.runTask(1f, () -> getScene().setScrollFocus(rebindDialog)); } - - public static class KeybindDialogStyle extends Style{ - public Color keyColor = Color.white; - public Color keyNameColor = Color.white; - public Color controllerColor = Color.white; - } } diff --git a/core/src/mindustry/ui/fragments/HudFragment.java b/core/src/mindustry/ui/fragments/HudFragment.java index 278148a3a5..bf4b5a3dad 100644 --- a/core/src/mindustry/ui/fragments/HudFragment.java +++ b/core/src/mindustry/ui/fragments/HudFragment.java @@ -29,6 +29,7 @@ import mindustry.type.*; import mindustry.ui.*; import static mindustry.Vars.*; +import static mindustry.gen.Tex.*; public class HudFragment extends Fragment{ private static final float dsize = 65f, pauseHeight = 36f; @@ -199,8 +200,17 @@ public class HudFragment extends Fragment{ //wave info button with text s.add(makeStatusTable()).grow().name("status"); + var rightStyle = new ImageButtonStyle(){{ + over = buttonRightOver; + down = buttonRightDown; + up = buttonRight; + disabled = buttonRightDisabled; + imageDisabledColor = Color.clear; + imageUpColor = Color.white; + }}; + //table with button to skip wave - s.button(Icon.play, Styles.righti, 30f, () -> { + s.button(Icon.play, rightStyle, 30f, () -> { if(net.client() && player.admin){ Call.adminRequest(player, AdminAction.wave); }else{ diff --git a/core/src/mindustry/ui/fragments/MenuFragment.java b/core/src/mindustry/ui/fragments/MenuFragment.java index 393ca070ba..0c959eedaf 100644 --- a/core/src/mindustry/ui/fragments/MenuFragment.java +++ b/core/src/mindustry/ui/fragments/MenuFragment.java @@ -9,6 +9,7 @@ import arc.scene.actions.*; import arc.scene.event.*; import arc.scene.style.*; import arc.scene.ui.*; +import arc.scene.ui.TextButton.*; import arc.scene.ui.layout.*; import arc.util.*; import mindustry.core.*; @@ -18,6 +19,7 @@ import mindustry.graphics.*; import mindustry.ui.*; import static mindustry.Vars.*; +import static mindustry.gen.Tex.*; public class MenuFragment extends Fragment{ private Table container, submenu; @@ -52,8 +54,17 @@ public class MenuFragment extends Fragment{ //info icon if(mobile){ - parent.fill(c -> c.bottom().left().button("", Styles.infot, ui.about::show).size(84, 45).name("info")); - parent.fill(c -> c.bottom().right().button("", Styles.discordt, ui.discord::show).size(84, 45).name("discord")); + parent.fill(c -> c.bottom().left().button("", new TextButtonStyle(){{ + font = Fonts.def; + fontColor = Color.white; + up = infoBanner; + }}, ui.about::show).size(84, 45).name("info")); + + parent.fill(c -> c.bottom().right().button("", new TextButtonStyle(){{ + font = Fonts.def; + fontColor = Color.white; + up = discordBanner; + }}, ui.discord::show).size(84, 45).name("discord")); }else if(becontrol.active()){ parent.fill(c -> c.bottom().right().button("@be.check", Icon.refresh, () -> { ui.loadfrag.show(); diff --git a/gradle.properties b/gradle.properties index 55579eee48..90ee44fa87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,4 +24,4 @@ android.useAndroidX=true #used for slow jitpack builds; TODO see if this actually works org.gradle.internal.http.socketTimeout=100000 org.gradle.internal.http.connectionTimeout=100000 -archash=62774bbfce +archash=157fec7f27