From b10a146cd9af8040a8305b5bb88344947b826ffb Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 20 Oct 2022 13:53:07 -0400 Subject: [PATCH] Achievement finalizations --- core/assets-raw/sprites/ui/alphaaaa.png | Bin 1075 -> 10765 bytes core/src/mindustry/game/EventType.java | 9 +++ core/src/mindustry/service/Achievement.java | 52 +++++++++--------- core/src/mindustry/service/GameService.java | 8 ++- .../mindustry/ui/fragments/ChatFragment.java | 3 + gradle.properties | 2 +- 6 files changed, 47 insertions(+), 27 deletions(-) diff --git a/core/assets-raw/sprites/ui/alphaaaa.png b/core/assets-raw/sprites/ui/alphaaaa.png index 2a9499f0b1e201172eb76caa11f3d18db463cb2b..36c7491b119ac0af89639f3357317358e2556c1e 100644 GIT binary patch literal 10765 zcmeI2Q*$N^u&v+NwvCBx+cqY)ZQFUHi6*vf+t$Rk?VN94o?ozUc6F`pu65N_PhYMm zB?UaBM)LnX9sgDTQg!;FGn+C zGfyjX0Kjv-I@`(_zrCUO#{{Drd}`2{DYKj4@&1EXNTooHX6s{0hYqM_ZVC?SC>SzW zIQ8B8<1+QLr`Wihl`b<)Z!wv>X8iEipu#U;{p;GcYv+dO=PBpo$?f3a1YuS-D0lCx z@p1O<@9N?#(kIvK>yw-6MFMR%T00R{Pe5=@)z0dR@O?)>ZRf0z+{VqHP3t#-r91BV zPh6+3H_q>_?hnZyj@~Y%^y1VurCWa}tjn+8JJ7-3?{iN)J8zt$?a13V;Y1w1aiK78 zN6$U}Iv;+){uzh0J5x7}y$`umJ1?^+d#&xC_ztf}2@Y+K8y9<{PhT%^5kzG7y*(%y zIRTq9CpX-cIgLA8Pw5%+pHXGJ|E@3C@VQ(oKI*45_Z;?LoO^K%mfd-^@6AdHeC1cO zEuIsc=IK|roIbv@?OBFSTNyte{ofr8D)V2DE#`Q{{n`&?Eseq^GUa;_CP%kEv12+{ z?OwbW)oZ%&BfLk)H}$^*-dF;B9s(ZBW->BKOUF0gW-tyq&}NvLoZn}Z=^}Y^-DEw2 zdwT>X9eN=!^Cw_Sc&AhGF5SCSV-NjDG}3W%x#WycvI&rG2IW$jn4HowU^y=dk7K6~TX8k4Au<=1i0yJFIg zh<&DLMdjy+ME@$zmZ_j@UUC^@F3ols2W|f?5=D`!CsSUW`dc)PeOXVox_Noq7tYYo zx;<4x*QVQNv0dpz@9zO`Exh1BBv~BaL|I{+08B29MW$DpwndiT8wMs*{XI=(P0PEx zc?df1b<+bw=XJ{m$%+EkT~V?k_fykiK-Id1`p?}{uNM1@HhX}k%xEf6(WXSpLo z?WfZ1;m7JIHtqUnbOI;sI``r^LS1*i-AnV*EdO{3vLWHc<7#A;LFK|gaN}6VDz_`k zfcN!!1!kEsaP$tQB>%6;g;o}kdk)(Kw+Scf%pGIXfWLRx!PMWtaFhgMOE#DxbFTPuRq^2i?!|&qPGUADQIVZ;b}KQ`iw4&Z`^qtk zK3)Tmn2u4jsJ1}(#AI{rK%VyRtmUbj#Y^yAs(Fat8OLPE^OGU`cTEkYD{OoRK{O_Q$QJ|O|hOuFrJr-mxcFAI9B@K8@* zld+;#cM7S0fI{LB)xUE0)p{LJO%%Tt`cnF8AnyrBMn{a|AGK~J+z`+ zVtDHq7Ms*;8F57

VaV%k+yLhFRUD7bvjc-8nm*neDb#{+#VowjRB7F~ht5Tf~9S z&Gw)AQ?fl%B1YcOnl8Soh+6Qrre{s2zHk0E8%jq^lyV$Aa{j9ZqIXfJe!72RP-7J2 zt8Thid^3_e9YG5<%aM%x7>p_IUSDV?(n4`8Mw)&Ic47ZG=Rya*8_fMw1ABS=ExmbU zZO)~v@ljOA^_UTy4JTbF9e%9n?yQ}9Gi1bw3^y=| zkXKL-O*xA_Z`nS&N-<9S+E|^8#|=|e2!q62 z2byCiZ>lK4WHLGnUik$z^_$w)C?n$#nybukVe#5z4qVNtNq$ zw?O7QnL`>Qtp};B@lQ76@aWWmUD8EvED)a!-Y1NI18#PsothRAY6Xix zoMIGcUKZyaV^+w5Y20lBAD&9VgQT$QdmYx)Fc}-GP|F`r?drbCn-^3RL{hw-XQs5D zhpxrjnaXOmwW+PImJrW7c5657n|O`vcxbItXY$V@C=#pQjyep3cpYdi)#OxX+Znz* z{*&BICuRhJ@E|sHFzfmue@Ro!ow{1ygbr|C0GWR};H>$4c(^%uFkBEZ`d8As<-Il|^K*|pEFW05y;bRl)M`VM^0veSmT=TK&6F;e% zQqEQCqhet(k|FpS(f55c&{e^j5I;BgEQ#nyR-lz^Zr!Ut^cIenRFd7uz@YtS(18Im zhzlX)rX@xYi{!^MZK~fCsJ`KByuWz=IK)OkyDcZLnR(#r)H&ym^-BZRks@)976ZiU zsi?HjUXG5mQsm(EuAHS~j&`bR<9eP?2FkIJ@!?X*uO?lJ*swvpE6;9szCpsg@jH^dzNnR5s0mV9oG-^v6x{5DV0}D|$ zlY&D-Tw-?LGa>fInOusykAM?6AcznWN1hzNQ#?&^<)lYMfo4o7-a8DxX&7F2ls2~y zcS?2!5G_0xZt!)C469Y{pQQ(vJ#`%24udBD5-cbBN?6hys>X{~fe2R;Owfw<#kiQS z(J%u+A&rOv9VLhbX_fy?l47&bj)_gN3af)LL{0TR2c`p%qJJ8yY8rO?ez%ehJSkt%H)3vl@Wux!7PqrtSV_6MtuA| z!n*#*4>pw0A`42Mki5X;R_bSx5ql$!H7bZ%jw`I0B@jXy6d?I!J=MVkZ$`_F8yn14 zYfQKDHlv=R)MK)(dA{==t|lh4hPsdTHY&DD4D?P!0y0--$)`4C*lk4$dE$UJjTWRK zTOT4MQE(VB`J>5btjJ-+ba2Xmsw*=2u{KfVGgR;qy&xZv&g_7U2JUX+mnR!$hnxSS zCW3|n8()C=HSxDNw*BjiLWGe(3GL`ouCCkQH`WIU8S*vY@P@HoEs&Kt$A01469fOK zsS8V;6c}`x^ls7x2yIe^NK8OaG=Cr^=ZqL(0#2@m17F^iVPc6}oFtz<`r#WyvU?DI z8CmqV?P0wfVBzM&J1)<}6^L0#HkErc2Z!19!JXonlAp%^Sc^K>i7WzBy?l@N5_pr? zf4faer)KuG>ZI!#1N&U!VbqR~AZ7bx9LY!cUT4tJo`RGb?{P5Upqa`*J<+EnDEhRT zOJ?WFP$Rf+;jRJYaJLAFd&9V~ndjMrToF)dh+mYVTo;N`U>>@4$1mTW3@(6d|p@FU5w$Exw)|t5weCFBUUUi zdL<1k`$8wIehnh8>F_y*$Ldg5B@$QCFIkZ!_do(O?Q8duquMxJgIpO)tq*4~hRg(! z&~|C9V6fO2Bk@lnRS-`%EMdJ@6fa*|En1#yfy#+29I;Ec3i6&N5LC|FgujOEz^+3! z6liEC!Sa>6FxX?oy1ui>!A#(&vMoPE`zesvT?7pYgBLf07=c%0AW`j6nP5FRic4H< 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 delta 1055 zcmV+)1mOFPRI><>BYy#YX+uL$b5ch_001bFeUUv#!$2IxUsI)0st#5Vb;!^}qKlOHzogJ2#)IR2 zyu0_fdj|;hGE>ctF+kNUBb|tg+1!d4ctsFH=tmSi5;OJLRDUW7&+&B+A7AfcJj?ss zpQBsJn+))Y#4}7cEaG+IsZC4gyiXivB}pMZCmuEEg2azpmtB72Ty$9AnPDT7o+Azu zi^VpU+nALMm3WdkqNp0>3t5*H&Rd+-a+Njj$zK@CYs*Vqr#XxS7O;pEM98RO17%o< z(W;SRB2D{o4}brl<4=)GCf5cSIp$G;3d!+<|H1EW&BDaEn-q!zoiDci5d{LfK%-{c z-^aGyI05|6z?IhWSL(p@C+W487C8cXw}Ff6mL~53mpj0~lP(#OBl&3xg#z$?M&FbJ z`fh>Xs@q$0AEysMhPq1L00)P_NRhJFJl@^a-rK)tnt%QM0DW(AtJT`uivR!ua7jc# zR9J=8n7?ZiQ5?WOPdarF1#w8kLK4LOBtvRUMS?}L7;umdF6!tY6c?cd9V%GpQUryL z#YNCb)TKy8L}P6SQEElnfMPR9!O}m#bI5($ysvq=D{0~GGv&Saz3+SZ@V$5U&Je&z zsRw|kbAMmGpjd!nuFC+tS^5zsJdgu>l4Tz;t^sY%`+O%{!hwmF<0GXWPFMbBg z*%SaTK2>*RF7$-H;S1*r2H@qZiU)AAchCTQTVAx{<7W`?0M_qcZ+gLlt7JY*qK>^ce^nXz1#DuC8WiLVWCkWYh=W1bJ{Uw;bAPVubPc*{KKceLtF@K^J5Lh(iK6$pu(-?# za@vzG5Ro^yeX4VvOvCz{0KJmigp8u$)a9e;q)a z3<@rj4R5*@gT37bU~zfH3)3&?yxN=)d4o>M*_7Dy0I!fqY=3=dhlV^J;5E$Clo-ex Z{0G#W_-p5q*$4mt002ovPDHLkV1k}`1v>x$ diff --git a/core/src/mindustry/game/EventType.java b/core/src/mindustry/game/EventType.java index 7c312b9293..eef20f54e3 100644 --- a/core/src/mindustry/game/EventType.java +++ b/core/src/mindustry/game/EventType.java @@ -182,6 +182,15 @@ public class EventType{ } } + /** Called when the client sends a chat message. This only fires clientside! */ + public static class ClientChatEvent{ + public final String message; + + public ClientChatEvent(String message){ + this.message = message; + } + } + /** Called when a sector is conquered, e.g. a boss or base is defeated. */ public static class SectorCaptureEvent{ public final Sector sector; diff --git a/core/src/mindustry/service/Achievement.java b/core/src/mindustry/service/Achievement.java index 3e4faacd3c..a959a95640 100644 --- a/core/src/mindustry/service/Achievement.java +++ b/core/src/mindustry/service/Achievement.java @@ -51,7 +51,7 @@ public enum Achievement{ circleConveyor, becomeRouter, create20Schematics(SStat.schematicsCreated, 20), - create500Schematics(SStat.schematicsCreated, 50), //TODO - Steam + create500Schematics(SStat.schematicsCreated, 50), //TODO - Steam - icon done survive10WavesNoBlocks, captureNoBlocksBroken, useFlameAmmo, @@ -63,24 +63,24 @@ public enum Achievement{ //TODO new ones - allTransportOneMap, //TODO - Steam - buildOverdrive, //TODO - Steam - buildMendProjector, //TODO - Steam - buildWexWater, //TODO - Steam + allTransportOneMap, //TODO - Steam - icon done + buildOverdriveProjector, //TODO - Steam - icon done + buildMendProjector, //TODO - Steam - icon done + buildWexWater, //TODO - Steam - icon done - have10mItems(SStat.totalCampaignItems, 10_000_000), //TODO - Steam - killEclipseDuo, //TODO - Steam + have10mItems(SStat.totalCampaignItems, 10_000_000), //TODO - Steam - icon done + killEclipseDuo, //TODO - Steam - icon done - allPresetsErekir, //TODO - Steam + allPresetsErekir, //TODO - Steam - icon done - launchCoreSchematic, //TODO - Steam - nucleusGroundZero, //TODO - Steam + launchCoreSchematic, //TODO - Steam - icon done + nucleusGroundZero, //TODO - Steam - icon done - neoplasmWater, //TODO - Steam - blastFrozenUnit, //TODO - Steam + neoplasmWater, //TODO - Steam - icon done + blastFrozenUnit, //TODO - Steam - icon done - allBlocksSerpulo, //TODO - Steam - allBlocksErekir, //TODO - Steam + allBlocksSerpulo, //TODO - Steam - icon done + allBlocksErekir, //TODO - Steam - icon done //TODO are these necessary? //allTurretsSerpulo, //TODO @@ -88,20 +88,20 @@ public enum Achievement{ //allTechSerpulo, //TODO //allTechErekir, //TODO - breakForceProjector, //TODO - Steam - researchLogic, //TODO - Steam + breakForceProjector, //TODO - Steam - icon done + researchLogic, //TODO - Steam - icon done - negative10kPower, //TODO - Steam - positive100kPower, //TODO - Steam - store1milPower, //TODO - Steam + negative10kPower, //TODO - Steam - icon done + positive100kPower, //TODO - Steam - icon done + store1milPower, //TODO - Steam - icon done - blastGenerator, //TODO - Steam - neoplasiaExplosion, //TODO - Steam + blastGenerator, //TODO - Steam - icon done + neoplasiaExplosion, //TODO - Steam - icon done - installMod, //TODO - Steam - routerLanguage, //TODO - Steam - joinCommunityServer, //TODO - Steam - openConsole, //TODO - Steam + installMod, //TODO - Steam - icon done + routerLanguage, //TODO - Steam - icon done + joinCommunityServer, //TODO - Steam - icon done + openConsole, //TODO - Steam - icon done controlTurret, //TODO - Steam - icon done dropUnitsCoreZone, //TODO - Steam - icon done @@ -116,6 +116,8 @@ public enum Achievement{ shockwaveTowerUse, //TODO - Steam - icon done + useAnimdustryEmoji, //TODO - Steam - icon done + ; private final SStat stat; diff --git a/core/src/mindustry/service/GameService.java b/core/src/mindustry/service/GameService.java index 2c12e4ada4..2ba3140e54 100644 --- a/core/src/mindustry/service/GameService.java +++ b/core/src/mindustry/service/GameService.java @@ -204,7 +204,7 @@ public class GameService{ } if(e.tile.block() instanceof MendProjector || e.tile.block() instanceof RegenProjector) buildMendProjector.complete(); - if(e.tile.block() instanceof OverdriveProjector) buildOverdrive.complete(); + if(e.tile.block() instanceof OverdriveProjector) buildOverdriveProjector.complete(); if(e.tile.block() == Blocks.waterExtractor){ if(e.tile.getLinkedTiles(tmpTiles).contains(t -> t.floor().liquidDrop == Liquids.water)){ @@ -485,6 +485,12 @@ public class GameService{ dropUnitsCoreZone.complete(); } }); + + Events.on(ClientChatEvent.class, e -> { + if(e.message.contains(Iconc.alphaaaa + "")){ + useAnimdustryEmoji.complete(); + } + }); } private void checkUpdate(){ diff --git a/core/src/mindustry/ui/fragments/ChatFragment.java b/core/src/mindustry/ui/fragments/ChatFragment.java index 87e7315691..85f3c95e26 100644 --- a/core/src/mindustry/ui/fragments/ChatFragment.java +++ b/core/src/mindustry/ui/fragments/ChatFragment.java @@ -14,6 +14,7 @@ import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import mindustry.*; +import mindustry.game.EventType.*; import mindustry.gen.*; import mindustry.input.*; import mindustry.ui.*; @@ -181,6 +182,8 @@ public class ChatFragment extends Table{ history.insert(1, message); + Events.fire(new ClientChatEvent(message)); + Call.sendChatMessage(message); } diff --git a/gradle.properties b/gradle.properties index 2c5768409d..443cbf281e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,4 +25,4 @@ org.gradle.caching=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=8793e01874 +archash=5a1cbb8b59