diff --git a/core/assets-raw/sprites/ui/alphaaaa.png b/core/assets-raw/sprites/ui/alphaaaa.png index 2a9499f0b1..36c7491b11 100644 Binary files a/core/assets-raw/sprites/ui/alphaaaa.png and b/core/assets-raw/sprites/ui/alphaaaa.png differ 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