From 9cb4645b1187b35bf459a6ccbe1ffcfcd4984a3a Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 10 Jul 2020 20:04:45 -0400 Subject: [PATCH] More unit progress --- .../main/resources/revisions/MinerUnit/0.json | 1 + core/assets-raw/sprites/units/ghoul-cell.png | Bin 336 -> 0 bytes core/assets-raw/sprites/units/ghoul.png | Bin 1436 -> 0 bytes core/assets-raw/sprites/units/lich-cell.png | Bin 1165 -> 0 bytes core/assets-raw/sprites/units/lich.png | Bin 7559 -> 0 bytes core/assets-raw/sprites/units/reaper-cell.png | Bin 1533 -> 0 bytes core/assets-raw/sprites/units/reaper.aseprite | Bin 12883 -> 0 bytes core/assets-raw/sprites/units/reaper.png | Bin 10836 -> 0 bytes .../sprites/units/revenant-cell.png | Bin 950 -> 0 bytes core/assets-raw/sprites/units/revenant.png | Bin 2983 -> 0 bytes .../sprites/units/weapons/lich-missiles.png | Bin 639 -> 0 bytes .../sprites/units/weapons/reaper-weapon.png | Bin 465 -> 0 bytes .../units/weapons/revenant-missiles.png | Bin 467 -> 0 bytes core/assets-raw/sprites/units/wraith.png | Bin 697 -> 0 bytes core/assets/bundles/bundle.properties | 10 -- core/src/mindustry/content/Blocks.java | 6 +- core/src/mindustry/content/Bullets.java | 18 --- core/src/mindustry/content/UnitTypes.java | 73 +++++++-- .../entities/bullet/ArtilleryBulletType.java | 3 +- .../mindustry/entities/bullet/BulletType.java | 31 ++-- .../bullet/ContinuousLaserBulletType.java | 4 +- .../entities/bullet/FlakBulletType.java | 2 +- .../entities/bullet/HealBulletType.java | 4 +- .../entities/bullet/LaserBulletType.java | 6 +- .../entities/bullet/LightningBulletType.java | 2 +- .../entities/bullet/MissileBulletType.java | 21 +-- core/src/mindustry/input/DesktopInput.java | 2 +- core/src/mindustry/input/InputHandler.java | 1 + .../mindustry/io/legacy/LegacyTypeTable.java | 139 ------------------ .../blocks/defense/PointDefenseTurret.java | 4 +- 30 files changed, 106 insertions(+), 221 deletions(-) create mode 100644 annotations/src/main/resources/revisions/MinerUnit/0.json delete mode 100644 core/assets-raw/sprites/units/ghoul-cell.png delete mode 100644 core/assets-raw/sprites/units/ghoul.png delete mode 100644 core/assets-raw/sprites/units/lich-cell.png delete mode 100644 core/assets-raw/sprites/units/lich.png delete mode 100644 core/assets-raw/sprites/units/reaper-cell.png delete mode 100644 core/assets-raw/sprites/units/reaper.aseprite delete mode 100644 core/assets-raw/sprites/units/reaper.png delete mode 100644 core/assets-raw/sprites/units/revenant-cell.png delete mode 100644 core/assets-raw/sprites/units/revenant.png delete mode 100644 core/assets-raw/sprites/units/weapons/lich-missiles.png delete mode 100644 core/assets-raw/sprites/units/weapons/reaper-weapon.png delete mode 100644 core/assets-raw/sprites/units/weapons/revenant-missiles.png delete mode 100644 core/assets-raw/sprites/units/wraith.png delete mode 100644 core/src/mindustry/io/legacy/LegacyTypeTable.java diff --git a/annotations/src/main/resources/revisions/MinerUnit/0.json b/annotations/src/main/resources/revisions/MinerUnit/0.json new file mode 100644 index 0000000000..5df97253d8 --- /dev/null +++ b/annotations/src/main/resources/revisions/MinerUnit/0.json @@ -0,0 +1 @@ +{fields:[{name:ammo,type:int,size:4},{name:armor,type:float,size:4},{name:controller,type:mindustry.entities.units.UnitController,size:-1},{name:elevation,type:float,size:4},{name:health,type:float,size:4},{name:isShooting,type:boolean,size:1},{name:mineTile,type:mindustry.world.Tile,size:-1},{name:mounts,type:"mindustry.entities.units.WeaponMount[]",size:-1},{name:rotation,type:float,size:4},{name:shield,type:float,size:4},{name:spawnedByCore,type:boolean,size:1},{name:stack,type:mindustry.type.ItemStack,size:-1},{name:statuses,type:arc.struct.Seq,size:-1},{name:team,type:mindustry.game.Team,size:-1},{name:type,type:mindustry.type.UnitType,size:-1},{name:x,type:float,size:4},{name:y,type:float,size:4}]} \ No newline at end of file diff --git a/core/assets-raw/sprites/units/ghoul-cell.png b/core/assets-raw/sprites/units/ghoul-cell.png deleted file mode 100644 index 704b0dea1524c22b25ebd23a481bd1544d1a3dc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!jKx9jP7LeL$-D%zxjbDQLn`LH zy%EjVWFXS=@Zb*NyDe|*Q-ya-`=!LGHNEMfPw)Tl9jae^ZZ)|x0d*rlg4g4D4(BZO z|K2m{E$zG3zP{DCpiSi81G}X4;=W6Xq@nN~0U8hm8^1~!Uckchk zer&t(;{Bozq9%WqckL_JKP`4Uc!jde$qKey%^RY9DX-Xhb@?;*zBS}i-*r_{QaVjl zap&QQXJn5qosh-hzG{KGt!R+$Ll03FmA!2y&-mO|sVKZOULtj9rQiIZdC|TQAEnCe Wj_I&Z`{i*F#P@Xdb6Mw<&;$S$potOy diff --git a/core/assets-raw/sprites/units/ghoul.png b/core/assets-raw/sprites/units/ghoul.png deleted file mode 100644 index eda5795cc9d7e37749ad5d79eeb16ff99b93b602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1436 zcmV;N1!MY&P)Px)R!KxbRCt{2Tfb`?NfdqxcNnt=A|Xy(7;Hhf!Y+)vgA@@dRHU&|=MT6l;kHwm z(w&Z^NmAd{XE!Qbh)rRfF1X0L5m*Kn4i{nsF^5R8SA-F7NAu>rnVpS}W4^}H%$qlF zzWwIS4|xG1A|fIpA|fIpA|fJ!qp|1!6rTO|yujaI{Qmqu5t}H8e!pL95NGF;!c^W` zZ`Mjunx?GHjXDF6fFg&h`(9WmK@tKMP0|mG>R2E6=H|UpeV&g>wslW83PBaLoU9Z{ zlCX9hIi@m+l9D8W%S}IuJ68z?H^`FLKQjsXGz;S5tN|SjWuh1YinmVK&&1UA-D|N zVjn&+xFQ%qA;~e-EsCTd1o@Jqx7)sd3%2jyB7HA{q)JKJ6lAm6EPcPT@w1p5{Q2bQ zbIDeW34S#5<+pa`J+`O`-hpAlAIMJQO?!mtI3`y)dg71Tlj!z4G&{Xgthq5)1l;w<14vkONRL2USrL08ft8rY>>-JQS4Y zqtY#(O-cG~;N|!NUIRa19VL>!l>4*YIO^o&`3PF;O~Tp?F9qpKtLZ7}Wg(Kgi*FM- zK5$l0YrWYxJD(ILB~h@|aXE&XV!Co|eJFB#eme3}km^YCRH~4}*+^7bg&cqis~Dvu z8&)^gVE5CX&V6B$4sJgYPuHsC090JXT$H4y1HK4zg=#CgEet^pK!Br$gd}}HJ|yXF zY$Syu2O!W{%tjJ55EqgtTk6^a$5a(gIcPeaLa)~|-YB-VzWwF$!+7`U>{Nbo^qDC{S&DeVS*eAq_)9S*X&mCWc^e|O6jHZso6 zCj~x!aNB*H8;668_3apH2_~YAIf!~95*2VZ*tg^?gl)K&?5e~^`6iPzHAQSeNCNEl z`{I){Mz_;$NM7ud#3!Ai0L)=kHPjuNf^f|-E+n}UDv3{h=Tuqgl}t6~eG{Cx45bDP46hOx7_4S6Fo@?*ia+Ycz`!Ex>EaktaqG=p z!@S!D3=V-4Uj){0>CUzK&NQ=GX61`J+$ra#99?d3VWD&XLA}fbi)~6Lm-t+I&*<2z zk*78B{uI%LoSI7+HI%Jb6bu9;K$wFEgjv`?n28yL8ySJP@c;u9J0vt5a7a)v0AUO* zWx{pc)%zzMcqPFw@vC&WP=xIIJf+v=PraB{KfdCa@^_w?TBD`@@f+KvZzS#)zdkoR zm(PV=Y$E5I9}i|FewUv1J;B`W!aRmK1V|o|l?a6h2{ybIS z=n0x9C-0&L4u=eH4^2z1sg-q=we^4g-oBm_-!0mc`SLAuW1zx1{{H{}{yjdy(bH4t zTg%rtQE}b(T>pOlz6l2+4!d$U20F$#t(kuMOYVFnzQYDB|M};|#~n>$1qc26gEwB- zN`wLJIJ+jUct2ZXp{s?Gutc%Ux8GY2F4_KE2^I@IyJWxpKG@3B7^tzXxPRsB=%ufw z=p8N1G4GQX?u#qdb6%BcysKcg^11M2;=j~ zZTVIaCwDaO2s`_E#>3fNIg5i2O*+5yj7>i`o1epNPT~3d-1D6q8J_Q(akQs?A)}sj zR(xl4EjFy<)Rqu=qQqXokC{$UB5j5<14<%>NiO(w;L>gO zD=CvJCCzVi7WY5AR+wv~|Jco1(I~5D^^ZL|Vl(b{d1`x|yL#i5y-d`M#T&oMHq3gS z_9oSR!7)q8>f4GdGWCu%Sqr$hDHpZ|6>t8+CB~yURolwFn`N8yac^q{i!3g!m>HXY v?u+!Q`^N3N7GKUGCH3LVqYY>N@iP1j6;wT6oWlbwN*Fv{{an^LB{Ts5n@X=P diff --git a/core/assets-raw/sprites/units/lich.png b/core/assets-raw/sprites/units/lich.png deleted file mode 100644 index 10af20cfb977e37c43b6c32e6b4bd0e6b81e570b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7559 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%0A|f))cGY*xmU+B_GwN}KL){o36Z zbx{*0#Oa*4mY*8PXw|0^hGJRnx$yMjUU|+AJ@URcr@-@CTGIApLKP!XlhunIM5;d4 Ru=jiE^MQ+IT7BMu{{f)f672v0 diff --git a/core/assets-raw/sprites/units/reaper.png b/core/assets-raw/sprites/units/reaper.png deleted file mode 100644 index 649d19545aaa00e709f3c7e46c09b71c2a2369cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10836 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 diff --git a/core/assets-raw/sprites/units/revenant-cell.png b/core/assets-raw/sprites/units/revenant-cell.png deleted file mode 100644 index 852af589049efb015788e893051092770cf11b89..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 950 zcmeAS@N?(olHy`uVBq!ia0vp^1t8491|*L?_~H$u7>k44ofy`glX=O&z+B+z;uumf z=k46UNw*aQTxN&lO^QkS{%`9(mv1^x4j*e3Ji#$xS>o^7+$A186;cxnjx`84aVWOn zCfqDuGcX*ee*d`M`nkpXn0TfNAC_94`EaL~WsqX4m8_pkkmHh>$K%zO zE{eZ5^~gf8q&?64P9+2-E`Bn1W~1k|r`rPWH0)omXW;(s&{}y3qoz6E|7l*deD3x4 z(bO5H3mc^>m*%QZ(mrkfs3I>RpEY>seHQ2J=aCJacOtj%kW2!jBlF> zG48fFYh{n> zEZerUIL8_657=`UfkALl*d|x^931iAZ znWYb&%v}+@?&opdv~EL>2Tza?;|{m)?>rJzdpEbjk8{da4Q6$BCUtk;jJA7?@3jNj{P=nu+FXnI9E7!751f3$+Qxr= ztAnC}L8r$miIpr&UxZ#JEf(gu;B}_CCRVJW=BPUjL;}#e#BU?Uxm2 z)#hdDYE?2E42bev6l!BwD6{pnUi{ff*=hCn^KQ!Sz2BP~cV9->Xyb%R{o~g}PX2f-|E$*cHM6(Bu-T`G*Z*$C zByd-seY>0Mt>v_dFPZ**|0+7`=-GYqczD*!q}PhR)mg@6c7pqeP=A`gj$v*59M4B4 zjmthIMQQ)(DULfU;y5qz;%4t9{2#iw=EW|;%p^|#m>Fj7*ZzOfHwu^$89ZJ6T-G@y GGywoYkEo~s diff --git a/core/assets-raw/sprites/units/revenant.png b/core/assets-raw/sprites/units/revenant.png deleted file mode 100644 index 469d949c4137496f8a2a362f4fa54fe3e2b36040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2983 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 diff --git a/core/assets-raw/sprites/units/weapons/lich-missiles.png b/core/assets-raw/sprites/units/weapons/lich-missiles.png deleted file mode 100644 index a37cbfa449a8764f9d66b9b0f8f39bc1237d3496..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 639 zcmV-_0)YLAP)Px%IY~r8RA_a~l9T-_0 z7>uqauANA5ki>z-gdGQSrgy#GZ=nag?YMV$?|t`uZSR5ul31_T%znplWT(V19*>#* z^Z6WWA8D;t0vrr%8`24TpFChikft-NKMd=j(@$#R@vYy1gMn>>Y9Nkdh~s$ET9kkp zAcb$+1X;i|Sf4^JfL^4-u#P?2(sWiBIe|wgmB-?{Eb+BkE%%!rRN?F6vv3T#kVqOJ zv^y>C+$7(nb^K6Df$2fDU=0yMkSv( z7sszy`|9n4Ip46cFv{P(6tWH08_3nb&HE|V_PlSb?FVQ0fF<7KzND6qM)}5f;G9@c zv`>}4dnsfBC~}iZA8X5w7lGUBvA=ebB#~NNRfy^sZVE+FBrRf-u)YR_3`9{>+MUq8 z8wJRJ4~b&5YUU0=!^Wae6OC`=DKuI&0YKac;>*rY!+z9&C`2M_GWr09Uu1qzg$eZ8 zoC@A1a~i$;MEOPx@DAQZcz$}(=38F_+B={UeG`#K&^AC$&btfcU3`&eZXRDNg=mwr z78JcZmErGa4T#)-0?6N5i_V{g^taIE^??0n2|Y;Zxw{?w&xuR{(!vp}uYoccP>wzT Zzz-#D*{2$@Ry diff --git a/core/assets-raw/sprites/units/weapons/reaper-weapon.png b/core/assets-raw/sprites/units/weapons/reaper-weapon.png deleted file mode 100644 index 016e6dacf439e30ba968a11bbae1e29fad2f01d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 465 zcmV;?0WSWDP)pzc#THX&A?GNHa~7 zn&?GDYTQ=`bU+aB@%feI`}~syy*`K1%r$CwJ-=TEyd5A#NUyyFK+EOtpVA-zueSh} z2TXGSZ>9#o5$Gwof*ckgHBt*mAr?Rencuid1R#7#vuJ=@IN;WgijV*Z0{)840ZWbt zkPxVWEddh30&q1D1qk(7KdZ&%GXVnRNDdGrL+aWAzDpyzHvhm>M z1keru>Hq;yT>ESUxI=38h1{#h+UBieGzXMsO>g7gu{yxA-mh)mI$ju1*r09lgQu`} z>H{DI*lDf;ly>f5^KT1~5KD7tzuyax_D-d-&5uzHAPv|WP#V__C?U|Piw9sl!SPLG z2(l-j>WB$J(D|1IfbJ1KCo_aLO6(Nj}3SbVu%2)l+dZIa1%3{00000NkvXX Hu0mjf#!JN( diff --git a/core/assets-raw/sprites/units/weapons/revenant-missiles.png b/core/assets-raw/sprites/units/weapons/revenant-missiles.png deleted file mode 100644 index e482202c653391f3112599c55bed01e89e327267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 467 zcmV;^0WAKBP)Px$jY&j7RA_-j{h1KUJG z$paipJEn_e?%7`@R9qu`V@VO;fh3u$F6>AbOVwJUnnKzTT6t)o2BaaHkOxH#JYB6a zXDbHN)6%wa9C3gAk^5|rl(*l7;45()M_Y?nL(l-B-~Y#T zt%Y!07QKk!d*ykNtmY1W8pzW(r2k25BlmY6>xIcSk?Z=~`cxx*T zaQXaN>!Km$L9wZKFSdL;vCLaHZ(pr+7V#Y@lW0@kFbu;megMlap@H#pu9pA+002ov JPDHLkV1jtx&Po6P diff --git a/core/assets-raw/sprites/units/wraith.png b/core/assets-raw/sprites/units/wraith.png deleted file mode 100644 index 435c9d24cf3ace2d51b91ec568de2d94c1a89839..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 697 zcmV;q0!ICbP)Px%b4f%&RA_N%lFtxlPgn zICDJN7#i&OOdi}NKS8~sC}22E3@ua!aOS-tcp#(_Dg$L^9>cd1>K59B_>frI7TTD2 z-l@U8E^%p1WP7jcDi5#T;QzGPWJ#h z-2-y0C`1{+z~ZTAY$7K600kQ`$O@L;6#>ftby!Hi8I*+LG2iT~53=j43-W~KV1#J0 zY~}=rCpAee6l9|4xh^fNfpxjOOq2xj4rEZuBHkoK1HKEo47fC~E%NyMLf(fKvpGxF zJZ!<)$AcK~snK_GP&hw5(Jx|7yaW^YsnKWWm@!VI1WuFXN)pdyE<{i$AFhOY5f?39 z`c`T&j9twnOql&WK#A}%o8`)$4~yAcl^kaUB=MU0+A)e-Q;ENQ4glC?cU=Rdvb$OW zb8A{iwFa7ptz0={Oki+aS`Kv!#q2h|@QFnkU{B{wm~h0fv~d;KhFd5GsmWRcU(5I0 z2g}cuc&*^>C|cnEKJnJMzgHLetqSydy%;^Eg3=ay4iwR9Q5@tpYMf3clhOhcTx_du fb5~TT@Z0zX)1dNY{00000NkvXXu0mjf!09q% diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 45de1fb9cf..1d5cf2f291 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1054,16 +1054,6 @@ team.derelict.name = derelict team.green.name = green team.purple.name = purple -#TODO - don't translate yet -#unit.crawler.name = Crawler -#unit.dagger.name = Dagger -#unit.fortress.name = Fortress -#unit.wraith.name = Wraith Fighter -#unit.ghoul.name = Ghoul Bomber -#unit.revenant.name = Revenant -#unit.lich.name = Lich -#unit.reaper.name = Reaper - tutorial.next = [lightgray] tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse[accent] [[WASD][] to move.\n[accent]Scroll[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index ee1d71fc5f..05f51600fe 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1535,7 +1535,7 @@ public class Blocks implements ContentList{ @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); + Damage.collideLine(b, b.team, hitEffect, b.x, b.y, b.rotation(), rayLength - Math.abs(i - (rays / 2)) * 20f); } } @@ -1689,7 +1689,7 @@ public class Blocks implements ContentList{ plans = new UnitPlan[]{ new UnitPlan(UnitTypes.dagger, 200f, with(Items.silicon, 10, Items.lead, 10)), new UnitPlan(UnitTypes.crawler, 200f, with(Items.silicon, 10, Items.blastCompound, 5)), - new UnitPlan(UnitTypes.nova, 200f, with(Items.silicon, 20, Items.lead, 10)), + new UnitPlan(UnitTypes.nova, 200f, with(Items.silicon, 20, Items.lead, 20, Items.titanium, 20)), }; size = 3; consumes.power(1.2f); @@ -1699,7 +1699,7 @@ public class Blocks implements ContentList{ requirements(Category.units, with(Items.copper, 30, Items.lead, 70)); plans = new UnitPlan[]{ new UnitPlan(UnitTypes.flare, 200f, with(Items.silicon, 10)), - new UnitPlan(UnitTypes.mono, 200f, with(Items.silicon, 10)), + new UnitPlan(UnitTypes.mono, 200f, with(Items.silicon, 15, Items.lead, 15)), //new UnitPlan(UnitTypes.phantom, 200f, with(Items.silicon, 10)), }; size = 3; diff --git a/core/src/mindustry/content/Bullets.java b/core/src/mindustry/content/Bullets.java index 069a8a7f3c..21d6744255 100644 --- a/core/src/mindustry/content/Bullets.java +++ b/core/src/mindustry/content/Bullets.java @@ -289,24 +289,6 @@ public class Bullets implements ContentList{ lightningLength = 14; }}; - missileJavelin = new MissileBulletType(5f, 10.5f, "missile"){{ - width = 8f; - height = 8f; - shrinkY = 0f; - drag = -0.003f; - keepVelocity = false; - splashDamageRadius = 20f; - splashDamage = 1f; - lifetime = 90f; - trailColor = Color.valueOf("b6c6fd"); - hitEffect = Fx.blastExplosion; - despawnEffect = Fx.blastExplosion; - backColor = Pal.bulletYellowBack; - frontColor = Pal.bulletYellow; - weaveScale = 8f; - weaveMag = 2f; - }}; - missileSwarm = new MissileBulletType(2.7f, 12, "missile"){{ width = 8f; height = 8f; diff --git a/core/src/mindustry/content/UnitTypes.java b/core/src/mindustry/content/UnitTypes.java index 05fe79f429..d3ce100382 100644 --- a/core/src/mindustry/content/UnitTypes.java +++ b/core/src/mindustry/content/UnitTypes.java @@ -29,8 +29,8 @@ public class UnitTypes implements ContentList{ //air (no special traits) public static @EntityDef({Unitc.class}) UnitType flare, eclipse, horizon, zenith, antumbra; - //air + building - public static @EntityDef({Unitc.class, Builderc.class}) UnitType mono; + //air + mining + public static @EntityDef({Unitc.class, Minerc.class}) UnitType mono; //air + building + mining public static @EntityDef({Unitc.class, Builderc.class, Minerc.class}) UnitType poly; @@ -363,7 +363,7 @@ public class UnitTypes implements ContentList{ }}; zenith = new UnitType("zenith"){{ - health = 220; + health = 450; speed = 1.9f; accel = 0.04f; drag = 0.016f; @@ -376,12 +376,15 @@ public class UnitTypes implements ContentList{ engineSize = 3f; weapons.add(new Weapon("zenith-missiles"){{ - reload = 70f; + reload = 32f; x = 7f; rotate = true; shake = 1f; + shots = 2; + inaccuracy = 5f; + velocityRnd = 0.2f; - bullet = new MissileBulletType(2.7f, 12, "missile"){{ + bullet = new MissileBulletType(3f, 12){{ width = 8f; height = 8f; shrinkY = 0f; @@ -451,20 +454,28 @@ public class UnitTypes implements ContentList{ mono = new UnitType("mono"){{ flying = true; drag = 0.05f; - accel = 0.2f; + accel = 0.15f; speed = 2f; - range = 50f; health = 100; engineSize = 1.8f; engineOffset = 5.7f; + + mineTier = 1; + mineSpeed = 2.5f; + weapons.add(new Weapon(){{ y = 1.5f; + x = 0f; + reload = 40f; - x = 0.5f; ejectEffect = Fx.none; recoil = 2f; - bullet = Bullets.healBulletBig; shootSound = Sounds.pew; + mirror = false; + + bullet = new HealBulletType(5.2f, 10){{ + healPercent = 4f; + }}; }}); }}; @@ -473,29 +484,63 @@ public class UnitTypes implements ContentList{ flying = true; drag = 0.05f; - speed = 3f; + speed = 2f; rotateSpeed = 15f; - accel = 0.3f; + accel = 0.1f; range = 70f; itemCapacity = 70; health = 400; buildSpeed = 0.5f; engineOffset = 6.5f; hitsize = 8f; + lowAltitude = true; + + mineTier = 2; + mineSpeed = 3.5f; + + abilities.add(new HealFieldAbility(5f, 60f * 5, 50f)); + + weapons.add(new Weapon("heal-weapon-mount"){{ + y = -2.5f; + x = 3.5f; + reload = 34f; + ejectEffect = Fx.none; + recoil = 2f; + shootSound = Sounds.pew; + shots = 1; + velocityRnd = 0.5f; + inaccuracy = 15f; + alternate = true; + + bullet = new MissileBulletType(4f, 10){{ + homingPower = 0.08f; + weaveMag = 4; + weaveScale = 4; + lifetime = 50f; + keepVelocity = false; + shootEffect = Fx.shootHeal; + smokeEffect = Fx.hitLaser; + frontColor = Color.white; + + backColor = Pal.heal; + trailColor = Pal.heal; + }}; + }}); }}; mega = new UnitType("mega"){{ health = 500; - speed = 2f; - accel = 0.05f; - drag = 0.016f; + speed = 1.8f; + accel = 0.06f; + drag = 0.017f; lowAltitude = true; flying = true; engineOffset = 10.5f; rotateShooting = false; hitsize = 15f; engineSize = 3f; + payloadCapacity = 3; weapons.add( new Weapon("heal-weapon-mount"){{ diff --git a/core/src/mindustry/entities/bullet/ArtilleryBulletType.java b/core/src/mindustry/entities/bullet/ArtilleryBulletType.java index 08d02fe8f5..dfcab76e8a 100644 --- a/core/src/mindustry/entities/bullet/ArtilleryBulletType.java +++ b/core/src/mindustry/entities/bullet/ArtilleryBulletType.java @@ -2,12 +2,10 @@ package mindustry.entities.bullet; import arc.graphics.g2d.*; import mindustry.content.*; -import mindustry.entities.*; import mindustry.gen.*; //TODO scale velocity depending on fslope() public class ArtilleryBulletType extends BasicBulletType{ - protected Effect trailEffect = Fx.artilleryTrail; public ArtilleryBulletType(float speed, float damage, String bulletSprite){ super(speed, damage, bulletSprite); @@ -17,6 +15,7 @@ public class ArtilleryBulletType extends BasicBulletType{ scaleVelocity = true; hitShake = 1f; hitSound = Sounds.explosion; + trailEffect = Fx.artilleryTrail; } public ArtilleryBulletType(){ diff --git a/core/src/mindustry/entities/bullet/BulletType.java b/core/src/mindustry/entities/bullet/BulletType.java index baad95b1bc..0cf9cf60ed 100644 --- a/core/src/mindustry/entities/bullet/BulletType.java +++ b/core/src/mindustry/entities/bullet/BulletType.java @@ -75,6 +75,11 @@ public abstract class BulletType extends Content{ public BulletType fragBullet = null; public Color hitColor = Color.white; + public Color trailColor = Pal.missileYellowBack; + public float trailChance = -0.0001f; + public Effect trailEffect = Fx.missileTrail; + public float trailParam = 2f; + /** Use a negative value to disable splash damage. */ public float splashDamageRadius = -1f; @@ -118,7 +123,7 @@ public abstract class BulletType extends Content{ } public void hit(Bullet b){ - hit(b, b.getX(), b.getY()); + hit(b, b.x, b.y); } public void hit(Bullet b, float x, float y){ @@ -140,20 +145,20 @@ public abstract class BulletType extends Content{ } if(splashDamageRadius > 0){ - Damage.damage(b.team(), x, y, splashDamageRadius, splashDamage * b.damageMultiplier(), collidesAir, collidesGround); + Damage.damage(b.team, x, y, splashDamageRadius, splashDamage * b.damageMultiplier(), collidesAir, collidesGround); if(status != StatusEffects.none){ - Damage.status(b.team(), x, y, splashDamageRadius, status, statusDuration, collidesAir, collidesGround); + Damage.status(b.team, x, y, splashDamageRadius, status, statusDuration, collidesAir, collidesGround); } } for(int i = 0; i < lightning; i++){ - Lightning.create(b.team(), Pal.surge, lightningDamage < 0 ? damage : lightningDamage, b.getX(), b.getY(), Mathf.random(360f), lightningLength); + Lightning.create(b.team, Pal.surge, lightningDamage < 0 ? damage : lightningDamage, b.x, b.y, Mathf.random(360f), lightningLength); } } public void despawned(Bullet b){ - despawnEffect.at(b.getX(), b.getY(), b.rotation()); + despawnEffect.at(b.x, b.y, b.rotation()); hitSound.at(b); if(fragBullet != null || splashDamageRadius > 0 || lightning > 0){ @@ -165,7 +170,7 @@ public abstract class BulletType extends Content{ } public void drawLight(Bullet b){ - Drawf.light(b.team(), b, lightRadius, lightColor, lightOpacity); + Drawf.light(b.team, b, lightRadius, lightColor, lightOpacity); } public void init(Bullet b){ @@ -180,14 +185,20 @@ public abstract class BulletType extends Content{ public void update(Bullet b){ if(homingPower > 0.0001f){ - Teamc target = Units.closestTarget(b.team(), b.getX(), b.getY(), homingRange, e -> (e.isGrounded() && collidesGround) || (e.isFlying() && collidesAir), t -> collidesGround); + Teamc target = Units.closestTarget(b.team, b.x, b.y, homingRange, e -> (e.isGrounded() && collidesGround) || (e.isFlying() && collidesAir), t -> collidesGround); if(target != null){ b.vel.setAngle(Mathf.slerpDelta(b.rotation(), b.angleTo(target), homingPower)); } } if(weaveMag > 0){ - b.vel.rotate(Mathf.sin(Time.time() + b.id() * 3, weaveScale, weaveMag) * Time.delta()); + b.vel.rotate(Mathf.sin(Mathf.randomSeed(b.id, 10f) + b.time, weaveScale, weaveMag) * Time.delta()); + } + + if(trailChance > 0){ + if(Mathf.chanceDelta(trailChance)){ + trailEffect.at(b.x, b.y, trailParam, trailColor); + } } } @@ -213,11 +224,11 @@ public abstract class BulletType extends Content{ } public Bullet create(Bullet parent, float x, float y, float angle){ - return create(parent.owner(), parent.team(), x, y, angle); + return create(parent.owner(), parent.team, x, y, angle); } public Bullet create(Bullet parent, float x, float y, float angle, float velocityScl){ - return create(parent.owner(), parent.team(), x, y, angle, velocityScl); + return create(parent.owner(), parent.team, x, y, angle, velocityScl); } public Bullet create(@Nullable Entityc owner, Team team, float x, float y, float angle, float damage, float velocityScl, float lifetimeScl, Object data){ diff --git a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java index c38bb7e32f..ef40d9b95b 100644 --- a/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java +++ b/core/src/mindustry/entities/bullet/ContinuousLaserBulletType.java @@ -48,7 +48,7 @@ public class ContinuousLaserBulletType extends BulletType{ //damage every 5 ticks if(b.timer(1, 5f)){ - Damage.collideLine(b, b.team(), hitEffect, b.x, b.y, b.rotation(), length, true); + Damage.collideLine(b, b.team, hitEffect, b.x, b.y, b.rotation(), length, true); } if(shake > 0){ @@ -72,7 +72,7 @@ public class ContinuousLaserBulletType extends BulletType{ Tmp.v1.trns(b.rotation(), baseLen * 1.1f); - Drawf.light(b.team(), b.x, b.y, b.x + Tmp.v1.x, b.y + Tmp.v1.y, 40, Color.orange, 0.7f); + Drawf.light(b.team, b.x, b.y, b.x + Tmp.v1.x, b.y + Tmp.v1.y, 40, Color.orange, 0.7f); Draw.reset(); } diff --git a/core/src/mindustry/entities/bullet/FlakBulletType.java b/core/src/mindustry/entities/bullet/FlakBulletType.java index 5c3e9bc2ec..ad5f8be7fa 100644 --- a/core/src/mindustry/entities/bullet/FlakBulletType.java +++ b/core/src/mindustry/entities/bullet/FlakBulletType.java @@ -28,7 +28,7 @@ public class FlakBulletType extends BasicBulletType{ if(b.data() instanceof Integer) return; if(b.timer(2, 6)){ - Units.nearbyEnemies(b.team(), Tmp.r1.setSize(explodeRange * 2f).setCenter(b.x, b.y), unit -> { + Units.nearbyEnemies(b.team, Tmp.r1.setSize(explodeRange * 2f).setCenter(b.x, b.y), unit -> { if(b.data() instanceof Float || !unit.checkTarget(collidesAir, collidesGround)) return; if(unit.dst(b) < explodeRange){ diff --git a/core/src/mindustry/entities/bullet/HealBulletType.java b/core/src/mindustry/entities/bullet/HealBulletType.java index deaf47fd27..af66a4c931 100644 --- a/core/src/mindustry/entities/bullet/HealBulletType.java +++ b/core/src/mindustry/entities/bullet/HealBulletType.java @@ -29,7 +29,7 @@ public class HealBulletType extends BulletType{ @Override public boolean collides(Bullet b, Building tile){ - return tile.team() != b.team() || tile.healthf() < 1f; + return tile.team() != b.team || tile.healthf() < 1f; } @Override @@ -46,7 +46,7 @@ public class HealBulletType extends BulletType{ public void hitTile(Bullet b, Building tile){ super.hit(b); - if(tile.team() == b.team() && !(tile.block() instanceof BuildBlock)){ + if(tile.team() == b.team && !(tile.block() instanceof BuildBlock)){ Fx.healBlockFull.at(tile.x, tile.y, tile.block().size, Pal.heal); tile.heal(healPercent / 100f * tile.maxHealth()); } diff --git a/core/src/mindustry/entities/bullet/LaserBulletType.java b/core/src/mindustry/entities/bullet/LaserBulletType.java index 4c5e3b3a40..571a78826d 100644 --- a/core/src/mindustry/entities/bullet/LaserBulletType.java +++ b/core/src/mindustry/entities/bullet/LaserBulletType.java @@ -54,11 +54,11 @@ public class LaserBulletType extends BulletType{ furthest = null; world.raycast(b.tileX(), b.tileY(), world.toTile(b.x + Tmp.v1.x), world.toTile(b.y + Tmp.v1.y), - (x, y) -> (furthest = world.tile(x, y)) != null && furthest.team() != b.team() && furthest.block().absorbLasers); + (x, y) -> (furthest = world.tile(x, y)) != null && furthest.team() != b.team && furthest.block().absorbLasers); float resultLength = furthest != null ? Math.max(6f, b.dst(furthest.worldx(), furthest.worldy())) : length; - Damage.collideLine(b, b.team(), hitEffect, b.x, b.y, b.rotation(), resultLength); + Damage.collideLine(b, b.team, hitEffect, b.x, b.y, b.rotation(), resultLength); if(furthest != null) b.data(resultLength); laserEffect.at(b.x, b.y, b.rotation(), resultLength * 0.75f); @@ -93,7 +93,7 @@ public class LaserBulletType extends BulletType{ Draw.reset(); Tmp.v1.trns(b.rotation(), baseLen * 1.1f); - Drawf.light(b.team(), b.x, b.y, b.x + Tmp.v1.x, b.y + Tmp.v1.y, width * 1.4f * b.fout(), colors[0], 0.6f); + Drawf.light(b.team, b.x, b.y, b.x + Tmp.v1.x, b.y + Tmp.v1.y, width * 1.4f * b.fout(), colors[0], 0.6f); } @Override diff --git a/core/src/mindustry/entities/bullet/LightningBulletType.java b/core/src/mindustry/entities/bullet/LightningBulletType.java index 901f7a2f0e..2104c94e67 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.team, lightningColor, damage, b.x, b.y, b.rotation(), lightningLength + Mathf.random(lightningLengthRand)); } } diff --git a/core/src/mindustry/entities/bullet/MissileBulletType.java b/core/src/mindustry/entities/bullet/MissileBulletType.java index 6e15bd5b8b..a3670ac3c0 100644 --- a/core/src/mindustry/entities/bullet/MissileBulletType.java +++ b/core/src/mindustry/entities/bullet/MissileBulletType.java @@ -1,32 +1,27 @@ package mindustry.entities.bullet; -import arc.graphics.*; -import arc.math.*; -import mindustry.content.*; import mindustry.gen.*; import mindustry.graphics.*; public class MissileBulletType extends BasicBulletType{ - protected Color trailColor = Pal.missileYellowBack; public MissileBulletType(float speed, float damage, String bulletSprite){ super(speed, damage, bulletSprite); backColor = Pal.missileYellowBack; frontColor = Pal.missileYellow; homingPower = 0.08f; + shrinkY = 0f; + width = 8f; + height = 8f; hitSound = Sounds.explosion; + trailChance = 0.2f; + } + + public MissileBulletType(float speed, float damage){ + this(speed, damage, "missile"); } public MissileBulletType(){ this(1f, 1f, "missile"); } - - @Override - public void update(Bullet b){ - super.update(b); - - if(Mathf.chanceDelta(0.2)){ - Fx.missileTrail.at(b.x, b.y, 2f, trailColor); - } - } } diff --git a/core/src/mindustry/input/DesktopInput.java b/core/src/mindustry/input/DesktopInput.java index 2e82e71c63..a2fea83cc9 100644 --- a/core/src/mindustry/input/DesktopInput.java +++ b/core/src/mindustry/input/DesktopInput.java @@ -603,7 +603,7 @@ public class DesktopInput extends InputHandler{ Payloadc pay = (Payloadc)unit; if(Core.input.keyTap(Binding.pickupCargo) && pay.payloads().size < unit.type().payloadCapacity){ - Unit target = Units.closest(player.team(), pay.x(), pay.y(), unit.type().hitsize * 1.1f, u -> u.isAI() && u.isGrounded()); + Unit target = Units.closest(player.team(), pay.x(), pay.y(), unit.type().hitsize * 1.1f, u -> u.isAI() && u.isGrounded() && u.mass() < unit.mass()); if(target != null){ Call.pickupUnitPayload(player, target); }else if(!pay.hasPayload()){ diff --git a/core/src/mindustry/input/InputHandler.java b/core/src/mindustry/input/InputHandler.java index 5237a2c117..e59784dd0b 100644 --- a/core/src/mindustry/input/InputHandler.java +++ b/core/src/mindustry/input/InputHandler.java @@ -112,6 +112,7 @@ public abstract class InputHandler implements InputProcessor, GestureListener{ Payloadc pay = (Payloadc)unit; if(target.isAI() && target.isGrounded() && pay.payloads().size < unit.type().payloadCapacity + && target.mass() < unit.mass() && target.within(unit, unit.type().hitsize * 1.5f)){ pay.pickup(target); } diff --git a/core/src/mindustry/io/legacy/LegacyTypeTable.java b/core/src/mindustry/io/legacy/LegacyTypeTable.java deleted file mode 100644 index 642c48a189..0000000000 --- a/core/src/mindustry/io/legacy/LegacyTypeTable.java +++ /dev/null @@ -1,139 +0,0 @@ -package mindustry.io.legacy; - -/* -Latest data: [build 81] - -0 = Player -1 = Fire -2 = Puddle -3 = MinerDrone -4 = RepairDrone -5 = BuilderDrone -6 = GroundUnit -7 = GroundUnit -8 = GroundUnit -9 = GroundUnit -10 = GroundUnit -11 = FlyingUnit -12 = FlyingUnit -13 = Revenant - -Before removal of lightining/bullet: [build 80] - -0 = Player -1 = Fire -2 = Puddle -3 = Bullet -4 = Lightning -5 = MinerDrone -6 = RepairDrone -7 = BuilderDrone -8 = GroundUnit -9 = GroundUnit -10 = GroundUnit -11 = GroundUnit -12 = GroundUnit -13 = FlyingUnit -14 = FlyingUnit -15 = Revenant - -Before addition of new units: [build 79 and below] - -0 = Player -1 = Fire -2 = Puddle -3 = Bullet -4 = Lightning -5 = RepairDrone -6 = GroundUnit -7 = GroundUnit -8 = GroundUnit -9 = GroundUnit -10 = GroundUnit -11 = FlyingUnit -12 = FlyingUnit -13 = BuilderDrone -14 = Revenant - */ -public class LegacyTypeTable{ - /* - 0 = Player -1 = Fire -2 = Puddle -3 = Draug -4 = Spirit -5 = Phantom -6 = Dagger -7 = Crawler -8 = Titan -9 = Fortress -10 = Eruptor -11 = Wraith -12 = Ghoul -13 = Revenant - - private static final Prov[] build81Table = { - Player::new, - Fire::new, - Puddle::new, - MinerDrone::new, - RepairDrone::new, - BuilderDrone::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - FlyingUnit::new, - FlyingUnit::new, - HoverUnit::new - }; - - private static final Prov[] build80Table = { - Player::new, - Fire::new, - Puddle::new, - Bullet::new, - Lightning::new, - MinerDrone::new, - RepairDrone::new, - BuilderDrone::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - FlyingUnit::new, - FlyingUnit::new, - HoverUnit::new - }; - - private static final Prov[] build79Table = { - Player::new, - Fire::new, - Puddle::new, - Bullet::new, - Lightning::new, - RepairDrone::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - GroundUnit::new, - FlyingUnit::new, - FlyingUnit::new, - BuilderDrone::new, - HoverUnit::new - }; - - public static Prov[] getTable(int build){ - if(build == -1 || build == 81){ - //return most recent one since that's probably it; not guaranteed - return build81Table; - }else if(build == 80){ - return build80Table; - }else{ - return build79Table; - } - }*/ -} diff --git a/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java b/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java index 656f1bde0e..25e5439c69 100644 --- a/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java +++ b/core/src/mindustry/world/blocks/defense/PointDefenseTurret.java @@ -69,11 +69,11 @@ public class PointDefenseTurret extends Block{ //retarget if(timer(timerTarget, retargetTime)){ - target = Groups.bullet.intersect(x - range, y - range, range*2, range*2).min(b -> b.team() == team || !b.type().hittable ? Float.MAX_VALUE : b.dst2(this)); + target = Groups.bullet.intersect(x - range, y - range, range*2, range*2).min(b -> b.team == team || !b.type().hittable ? Float.MAX_VALUE : b.dst2(this)); } //look at target - if(target != null && target.within(this, range) && target.team() != team && target.type().hittable){ + if(target != null && target.within(this, range) && target.team != team && target.type().hittable){ float dest = angleTo(target); rotation = Angles.moveToward(rotation, dest, rotateSpeed * edelta()); reload -= edelta();