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!ia0y~yU{GUVV36ftV_;x7)*yF)fq`M7r;B4q#jUr~4fz-p zIaq$qS^B^J+`XF-lBJ?0`a3;07#X!HMVz~Nqk>V`+w#<;pjT{jB%jU}au$eA;z;x4 zXRG_{~hjCE`I6nj1qS3yPv&%JXyEy+_cE7)B7_+ccDuD_r(o13=9kmp00i_ I>zopr0G=OB@&Et; diff --git a/core/assets-raw/sprites/ui/button-square-over.9.png b/core/assets-raw/sprites/ui/button-square-over.9.png deleted file mode 100644 index 9d197296b3591f2db46f61ffe908f34263c4bbaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 221 zcmeAS@N?(olHy`uVBq!ia0y~yU{GUVV36ftV_;x7)*yF)fq`L(r;B4q#jUs35ArrB z@UULcJ3euy%%#QvJr%7fV$na;{wz!*1z8e%d$@ag zlDL!~cO?AWIa7o4T|4i=g!>!)>!)7$eq+*X`ET)@cVivCCtr}&DLKz?sQPrl*{P}- dlPya4{@w1sDQ&TI4g&)NgQu&X%Q~loCIGbqTGapm diff --git a/core/assets-raw/sprites/ui/button-square.9.png b/core/assets-raw/sprites/ui/button-square.9.png deleted file mode 100644 index 8c79235588ce0ebdbe79275e52a8d38f26b33e8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0y~yU{GUVV36ftV_;x7)*yF)fq`L$r;B4q#jUr~9r+F@ zaIpNG_rla+hMKs-enb zp~GrENjG}DcwB9|7S4z^{K}Tp6PhRHJ^9m#nMYF$HIsy<1Q>GmdF9k>vR-OZw10+o z&$qtXU0N&eZ(KEf{k44ofy`glX(eZd%8G= zRLpsM(=qR`fRE-`7$sRvxS}ogpznNA1%8+)W*g4;vl5To_Qn2hDF1 z{X)6+*WUI&w)iG-_3xFM$dXH19>y;(ZQlG=c=d&4%&#?-hSShd$q1kj{obQtGrcV z>aAt25uX0{*KQEX%~0E(@@{ADSHtLmc<7wp-eJWaFt z9T)4+d3=FTx%C-qreGz5rBAo}eR`)Z&u_k@WAOo(R|_jSy^lmDD6L;u$#r_It=nb$ ect&v0HQ4W;v*q^%uO7aB5Z}|)&t;ucLK6UFLcz)a 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 zcmeAS@N?(olHy`uVBq!ia0y~yU@&B0U{K*;V_;xVXuo8_z`(#*9OUlAupPD)gH5s$@I+c~Q^j3wNt76xMF) zTq?BDiN|zF`3+W8y@PEDIeZf*PWVxxvqVm8<=uY*qM8@(^tAb_lrXNaQ?Uqhxo|2- zCB(rf7==afGeg@To$4t>8pG1+43 z+#8$cC#C=2cvviRqu@b_;=fO(-f*5Ik@SZ3!Ku*3R}$MS7d`tUGF#b5$dKv6UX`ow z&ULxGxN+P{=a=5?Z&xhm_&D)#1(n4tKcg&tat_~lt*Ks(e;D@}zvA*Ye7v85fq}u( L)z4*}Q$iB}t&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 zcmeAS@N?(olHy`uVBq!ia0y~yV9;P-U{K*;V_;zTZBrq}z`(#*9OUlAuL-SG7xaB4{+o3RS|2PWGkR-z_w`F(iYbVcOJw#xu(qd{PSGlf!6re zroy;=?`4=nv_z*pE3n~x$NIZ!ll_ZpvtKN^BGdnSZQw3OhOnr{8_X@wZoK=(Y-n=I z#h`?Fdc2p}^V6ja49RPvR7!W&?szIM{N}fx?u1!O_@}?QE;L=kQm>F_6^n+-A(?+g zlYN~WmwGFDdN)T*@Y?Wx_mWK)6ohzA2F|yCGASpSIjQKKX?;##ZijDxmikXUmp6({ zO;MI-CFK2r?x_4%((q7Kyve=v_fqcg_ME1ulXr?57Id$CXL8K%Nid(Zkc+8=caf%L z!n4)qBzCWmG58$nJ~5b2A*zdg-7HH#P& hBPPWx4HEpomT$F7;zxyL3j+fKgQu&X%Q~loCIIo}mCOJD literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/units/latum.png b/core/assets-raw/sprites/units/latum.png new file mode 100644 index 0000000000000000000000000000000000000000..4b41161e67be0fb3215b1cb50780316cd603db30 GIT binary patch literal 1373 zcmeAS@N?(olHy`uVBq!ia0y~yVDJH94mJh`hU3!%wHX)~7>k44ofy`glX=O&z$)(P z;uumf=k1*R*&&Vs$K5ybMBG|xHJkk(V`lTRfB=_Z*Gn8i0!OZCd8TSRJrKxI3DZ(! z)SZ+t+g_o-cikp$$qmDuCiXhskrjUhTd)Sj+SYL_7-z01|=m*=i2&8^RJTZQ*CMK^vvDz zH7R$`ilmUq0!^JuZ)LnL%(W>r*HAT?>BGpd;I-T4P4~^;Gcg>vbamw^v+((wy+4Yr zz18Jy5=_7Z%)UsK4v;2svV|w^Fd8z_cOJK%!Ek>E6)hW6ggXR~S?OZ%rT(4uIr^KZ*bSulH89$N8<1 z2;uNEi4qg;RqkPZtZS*3%Bg0lBj}x#Z>b-ZbV~HBPQ;57vl_1Gsg#_9|tj z>#-ZBM;v{WqcCahhVqPiQ@o$MZ8>`LLX1w@_YF%|Usl?9flcT&;}_$%^F@zT&AP_c z{=3@q^=rMi0VgZJd))7=TKFpQ&Rr|PK=k9Ih6&DuYeQjNpM^N*n;LTGO?|pf6 zr&&v6>|5q5)1u{?vM%la|KMcKCHcGiCa>|Iuf@xAdM870nPuWfr-`2hr)9tS_v7E$ z`b*3CcHHJ_`2RgT@xbJhAvLoucYmI__rv@v-2Hs~5%MN%UJ~n`SLR2|y3#8s!E zp0lE3>MHBK7U@U3j!yfmcIs)ylwC>FPHw6fgS)7849?9NKw zET1h`L?$YWIUJnOV|nFIqs*jRh1q@**CdLLGM%^+77%9s{aKxV=h3fRZ|7+&U#n`j zJ=gV&0PlfIo1+%?`YVeye9YHQvi0?TEw{{3TdbjwZ?nX+3o>`2Z*O^)GVe>V>uSZY zm2c<7Y^v@_tvDvMiBD5MdMCeKb#$PW4dbV0^RE?$c}!k^uE2Ae%Dde2PMh;LUu?0N z^m*IzrN6e{)L40B$wH;G({)>&X4S_BDVeRWI5Ry?g#FRRnOC_kU7FrX=$!X@#ewMJJ}9!+)dj`x^)Ref4VIg@TJW5}QVvqufk3Wmv9`S1MNZIabGPi5dhWQ3Rt)C{F z=`bv~`}V=7J?o{G^HpEsOMS?zw&&r?)S$bboe>MVzJ6ef7fNC@b~X7iVL|wU%n&Be zNfx0^ox!aCnmJOrT16JFYZMUb)la&e8|FP>w?J@{RzbD-3fUf2N8t%A<_0PnOp`vm z&1*M&!j#TDoyWNC4}Nw`_jYh{P_CffU-*Ja9O^SVT)AjzXV-p0pGuGA2Y|-}1c4(TIpr7<>a)pg- z|8U3R>bA{{9%6|R(uoh=og~QKYo*Ok%*@tcK@Xv``v1)lhr0T3AmPd+ImxLDV{l(zOaKY2y kkh{`E4;7)#H&*-iZk!W3y}WrX0|Nttr>mdKI;Vst0LKyCR{#J2 literal 0 HcmV?d00001 diff --git a/core/assets-raw/sprites/units/weapons/eruption.png b/core/assets-raw/sprites/units/weapons/eruption.png deleted file mode 100644 index 172e9835e67561a22458625da8299e57218f56df..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 529 zcmeAS@N?(olHy`uVBq!ia0y~yU@%}{V6fm|V_;y|9a#N}fq{XsILO_JVcj{ImkbPy zr#)R9LoyoQ&NTEpY#`AZFA(g1VWE(#lhZ3rtv0^75jO;qkF;1g^*782NV~GmhlgiH zar%_bMn*+8z6&c89r`Y*`8~RS-Z1EI?#kCcYX3bx;?>}gu)kAf?k1hf^9_DkKXv{z zgVCYh;=s=o9jWEK?8{_d9nub|IC}Z?rk#@ok{i{^4r|AFN^r06c4^|~tYY2erXt`v zF;sO%MCb$ijsQKy`ASzzA2=`i?7C+6S+9>p;z?csta*9qYnwN!WH6~c6y@RUYViE= zui$`$(eWq;qt8B^`O%!yTCVREa6Yv1z{_8Up1x$X5P6|w^T1=l>JJPB8MhQYC#`+F z{Y&=i8!CUkA7B3RgX#*=i2pKM|LH5+IEZ`@lvCjR!Nt#U&0!*MRb=pw>(5i4zF&N? z^Xvu7MO;S;dw8qDq&J$>ZhtvXS;*j~>pb7%x6ImFHa4U@d##eQF^XADgY%oxGW$;P z)jPNK%E}dNnYv<9fuLN$j+xqCFAh~l9@*`)zHe)8_tiU@6%8ScR-IZA4;h;pWW9#(RW1B$oJF(~qgZd>WanUN o@M#jX6X0NBYII1r|C9CjxFVdQ&MBb@0O2m^7XSbN 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