mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-07-20 12:47:37 +07:00
Added steam metadata
This commit is contained in:
@ -230,6 +230,15 @@ public class NetClient implements ApplicationListener{
|
||||
ui.loadfrag.hide();
|
||||
}
|
||||
|
||||
@Remote(variants = Variant.one, priority = PacketPriority.high)
|
||||
public static void onKick(String reason){
|
||||
netClient.disconnectQuietly();
|
||||
state.set(State.menu);
|
||||
logic.reset();
|
||||
ui.showText("$disconnect", reason);
|
||||
ui.loadfrag.hide();
|
||||
}
|
||||
|
||||
@Remote(variants = Variant.both)
|
||||
public static void onInfoMessage(String message){
|
||||
ui.showText("", message);
|
||||
|
@ -360,6 +360,8 @@ public class UI implements ApplicationListener, Loadable{
|
||||
public void showText(String titleText, String text){
|
||||
new Dialog(titleText){{
|
||||
cont.margin(15).add(text).width(400f).wrap().get().setAlignment(Align.center, Align.center);
|
||||
cont.addImage().width(400f).pad(2).colspan(2).height(4f).color(Pal.accent);
|
||||
cont.row();
|
||||
buttons.addButton("$ok", this::hide).size(90, 50).pad(4);
|
||||
}}.show();
|
||||
}
|
||||
|
@ -29,6 +29,7 @@ public abstract class NetConnection{
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
/** Kick with a special, localized reason. Use this if possible. */
|
||||
public void kick(KickReason reason){
|
||||
Log.info("Kicking connection {0}; Reason: {1}", address, reason.name());
|
||||
|
||||
@ -45,6 +46,23 @@ public abstract class NetConnection{
|
||||
netServer.admins.save();
|
||||
}
|
||||
|
||||
/** Kick with an arbitrary reason. */
|
||||
public void kick(String reason){
|
||||
Log.info("Kicking connection {0}; Reason: {1}", address, reason);
|
||||
|
||||
if(player != null && player.uuid != null){
|
||||
PlayerInfo info = netServer.admins.getInfo(player.uuid);
|
||||
info.timesKicked++;
|
||||
info.lastKicked = Math.max(Time.millis(), info.lastKicked);
|
||||
}
|
||||
|
||||
Call.onKick(this, reason);
|
||||
|
||||
Time.runTask(2f, this::close);
|
||||
|
||||
netServer.admins.save();
|
||||
}
|
||||
|
||||
public boolean isConnected(){
|
||||
return true;
|
||||
}
|
||||
|
@ -72,7 +72,7 @@ public class PausedDialog extends FloatingDialog{
|
||||
|
||||
cont.row();
|
||||
|
||||
cont.addButton("$quit", this::showQuitConfirm).colspan(2).width(dw + 10f).update(s -> s.setText(control.saves.getCurrent() != null ? "$save.quit" : "$quit"));
|
||||
cont.addButton("$quit", this::showQuitConfirm).colspan(2).width(dw + 10f).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit"));
|
||||
|
||||
}else{
|
||||
cont.defaults().size(120f).pad(5);
|
||||
@ -91,7 +91,7 @@ public class PausedDialog extends FloatingDialog{
|
||||
|
||||
cont.addRowImageTextButton("$hostserver.mobile", Icon.host, ui.host::show).disabled(b -> net.active());
|
||||
|
||||
cont.addRowImageTextButton("$quit", Icon.quit, this::showQuitConfirm).update(s -> s.setText(control.saves.getCurrent() != null ? "$save.quit" : "$quit"));
|
||||
cont.addRowImageTextButton("$quit", Icon.quit, this::showQuitConfirm).update(s -> s.setText(control.saves.getCurrent() != null && control.saves.getCurrent().isAutosave() ? "$save.quit" : "$quit"));
|
||||
}
|
||||
}
|
||||
|
||||
|
109
fastlane/metadata/steam/english/achievements.vdf
Normal file
109
fastlane/metadata/steam/english/achievements.vdf
Normal file
@ -0,0 +1,109 @@
|
||||
"lang"
|
||||
{
|
||||
"Language" "english"
|
||||
"Tokens"
|
||||
{
|
||||
"NEW_ACHIEVEMENT_20_0_NAME" "Verified"
|
||||
"NEW_ACHIEVEMENT_20_0_DESC" "Complete the tutorial."
|
||||
"NEW_ACHIEVEMENT_20_1_NAME" "Scrapper"
|
||||
"NEW_ACHIEVEMENT_20_1_DESC" "Destroy 1000 enemy units."
|
||||
"NEW_ACHIEVEMENT_20_2_NAME" "Purge"
|
||||
"NEW_ACHIEVEMENT_20_2_DESC" "Destroy 100,000 enemy units."
|
||||
"NEW_ACHIEVEMENT_20_3_NAME" "Atmospheric Transportation"
|
||||
"NEW_ACHIEVEMENT_20_3_DESC" "Launch 10,000 items total."
|
||||
"NEW_ACHIEVEMENT_20_5_NAME" "Endless Shipments"
|
||||
"NEW_ACHIEVEMENT_20_5_DESC" "Launch 1,000,000 items total."
|
||||
"NEW_ACHIEVEMENT_20_6_NAME" "Conqueror"
|
||||
"NEW_ACHIEVEMENT_20_6_DESC" "Win 10 attack-mode matches."
|
||||
"NEW_ACHIEVEMENT_20_7_NAME" "Champion"
|
||||
"NEW_ACHIEVEMENT_20_7_DESC" "Win 10 multiplayer PvP matches."
|
||||
"NEW_ACHIEVEMENT_20_8_NAME" "Blitz"
|
||||
"NEW_ACHIEVEMENT_20_8_DESC" "Destroy the enemy core in an attack zone in 5 waves or fewer."
|
||||
"NEW_ACHIEVEMENT_20_9_NAME" "Core Rain"
|
||||
"NEW_ACHIEVEMENT_20_9_DESC" "Launch your core into a zone 30 times."
|
||||
"NEW_ACHIEVEMENT_20_10_NAME" "Tenacious"
|
||||
"NEW_ACHIEVEMENT_20_10_DESC" "Survive 100 waves."
|
||||
"NEW_ACHIEVEMENT_20_11_NAME" "Unvanquished"
|
||||
"NEW_ACHIEVEMENT_20_11_DESC" "Survive 500 waves."
|
||||
"NEW_ACHIEVEMENT_20_12_NAME" "Researcher"
|
||||
"NEW_ACHIEVEMENT_20_12_DESC" "Research everything."
|
||||
"NEW_ACHIEVEMENT_20_13_NAME" "Shapeshifter"
|
||||
"NEW_ACHIEVEMENT_20_13_DESC" "Unlock and transform into every mech in the game."
|
||||
"NEW_ACHIEVEMENT_20_14_NAME" "Overload"
|
||||
"NEW_ACHIEVEMENT_20_14_DESC" "Hit a water-covered enemy with electricity."
|
||||
"NEW_ACHIEVEMENT_20_15_NAME" "Deflection"
|
||||
"NEW_ACHIEVEMENT_20_15_DESC" "Destroy a unit with its own reflected bullet."
|
||||
"NEW_ACHIEVEMENT_20_17_NAME" "A Grave Mistake"
|
||||
"NEW_ACHIEVEMENT_20_17_DESC" "Research the Router."
|
||||
"NEW_ACHIEVEMENT_20_18_NAME" "Create"
|
||||
"NEW_ACHIEVEMENT_20_18_DESC" "Place 10,000 blocks."
|
||||
"NEW_ACHIEVEMENT_20_19_NAME" "Raze"
|
||||
"NEW_ACHIEVEMENT_20_19_DESC" "Destroy 1,000 enemy blocks."
|
||||
"NEW_ACHIEVEMENT_20_20_NAME" "A Spectacular Disaster"
|
||||
"NEW_ACHIEVEMENT_20_20_DESC" "Cause a Thorium Reactor to overheat and explode."
|
||||
"NEW_ACHIEVEMENT_20_21_NAME" "Mapper"
|
||||
"NEW_ACHIEVEMENT_20_21_DESC" "Make a new map 10 times."
|
||||
"NEW_ACHIEVEMENT_20_22_NAME" "Browser"
|
||||
"NEW_ACHIEVEMENT_20_22_DESC" "Download a map from the Workshop."
|
||||
"NEW_ACHIEVEMENT_20_23_NAME" "Creator"
|
||||
"NEW_ACHIEVEMENT_20_23_DESC" "Publish a map on the Workshop."
|
||||
"NEW_ACHIEVEMENT_20_24_NAME" "Slayer"
|
||||
"NEW_ACHIEVEMENT_20_24_DESC" "Defeat a boss."
|
||||
"NEW_ACHIEVEMENT_20_25_NAME" "Explorer"
|
||||
"NEW_ACHIEVEMENT_20_25_DESC" "Unlock all zones in the campaign."
|
||||
"NEW_ACHIEVEMENT_20_26_NAME" "Completionist"
|
||||
"NEW_ACHIEVEMENT_20_26_DESC" "Reach the configuration requirement wave on all zones."
|
||||
"NEW_ACHIEVEMENT_20_29_NAME" "Material II"
|
||||
"NEW_ACHIEVEMENT_20_29_DESC" "Unlock Thorium."
|
||||
"NEW_ACHIEVEMENT_20_31_NAME" "Material I"
|
||||
"NEW_ACHIEVEMENT_20_31_DESC" "Unlock Titanium."
|
||||
"NEW_ACHIEVEMENT_21_0_NAME" "Kamikaze"
|
||||
"NEW_ACHIEVEMENT_21_0_DESC" "Fill your mech up with explosive materials and die, creating an explosion."
|
||||
"NEW_ACHIEVEMENT_21_1_NAME" "It Begins"
|
||||
"NEW_ACHIEVEMENT_21_1_DESC" "Build a Dagger factory."
|
||||
"NEW_ACHIEVEMENT_21_2_NAME" "Direct Assault"
|
||||
"NEW_ACHIEVEMENT_21_2_DESC" "Issue the Attack command using the Command Center."
|
||||
"NEW_ACHIEVEMENT_21_3_NAME" "Swarm"
|
||||
"NEW_ACHIEVEMENT_21_3_DESC" "Have 100 units active at once."
|
||||
"NEW_ACHIEVEMENT_21_4_NAME" "Flock"
|
||||
"NEW_ACHIEVEMENT_21_4_DESC" "Have 10 Phantom drones active at once."
|
||||
"NEW_ACHIEVEMENT_21_5_NAME" "Volatile Army"
|
||||
"NEW_ACHIEVEMENT_21_5_DESC" "Have 50 Crawler units active at once."
|
||||
"NEW_ACHIEVEMENT_21_6_NAME" "Legions"
|
||||
"NEW_ACHIEVEMENT_21_6_DESC" "Build 1000 units total."
|
||||
"NEW_ACHIEVEMENT_21_7_NAME" "Super"
|
||||
"NEW_ACHIEVEMENT_21_7_DESC" "Earn the S rank on any zone."
|
||||
"NEW_ACHIEVEMENT_21_8_NAME" "Super Super"
|
||||
"NEW_ACHIEVEMENT_21_8_DESC" "Earn the SS rank on any zone."
|
||||
"NEW_ACHIEVEMENT_21_9_NAME" "You Should've Listened"
|
||||
"NEW_ACHIEVEMENT_21_9_DESC" "Die in the drop point exclusion zone."
|
||||
"NEW_ACHIEVEMENT_21_10_NAME" "Just Press Shift"
|
||||
"NEW_ACHIEVEMENT_21_10_DESC" "Drown, somehow."
|
||||
"NEW_ACHIEVEMENT_21_11_NAME" "Collector"
|
||||
"NEW_ACHIEVEMENT_21_11_DESC" "Fill the core to maximum capacity with every type of material."
|
||||
"NEW_ACHIEVEMENT_21_12_NAME" "Crowd"
|
||||
"NEW_ACHIEVEMENT_21_12_DESC" "Host a server with 10 players on it."
|
||||
"NEW_ACHIEVEMENT_21_13_NAME" "Invulnerable"
|
||||
"NEW_ACHIEVEMENT_21_13_DESC" "Build the Meltdown and Spectre."
|
||||
"NEW_ACHIEVEMENT_21_14_NAME" "Liftoff"
|
||||
"NEW_ACHIEVEMENT_21_14_DESC" "Use the Launch Pad."
|
||||
"NEW_ACHIEVEMENT_21_15_NAME" "Complacence"
|
||||
"NEW_ACHIEVEMENT_21_15_DESC" "Skip launching twice, then have your core destroyed by the enemy."
|
||||
"NEW_ACHIEVEMENT_21_16_NAME" "Heresy"
|
||||
"NEW_ACHIEVEMENT_21_16_DESC" "Build two routers next to each other."
|
||||
"NEW_ACHIEVEMENT_21_17_NAME" "Lone Guardian"
|
||||
"NEW_ACHIEVEMENT_21_17_DESC" "Survive 10 waves on any zone without placing any blocks."
|
||||
"NEW_ACHIEVEMENT_21_18_NAME" "Incinerate"
|
||||
"NEW_ACHIEVEMENT_21_18_DESC" "Use Pyratite in any turret."
|
||||
"NEW_ACHIEVEMENT_21_19_NAME" "Efficiency"
|
||||
"NEW_ACHIEVEMENT_21_19_DESC" "Cool a turret with water or cryofluid."
|
||||
"NEW_ACHIEVEMENT_21_20_NAME" "Classic Mode"
|
||||
"NEW_ACHIEVEMENT_21_20_DESC" "Enable pixelation."
|
||||
"NEW_ACHIEVEMENT_21_21_NAME" "Scholar"
|
||||
"NEW_ACHIEVEMENT_21_21_DESC" "Open the Wiki from the game."
|
||||
"NEW_ACHIEVEMENT_21_22_NAME" "Head Start"
|
||||
"NEW_ACHIEVEMENT_21_22_DESC" "Launch into a zone with 10,000 or more items configured."
|
||||
"NEW_ACHIEVEMENT_21_23_NAME" "Ignition"
|
||||
"NEW_ACHIEVEMENT_21_23_DESC" "Power up an Impact Reactor."
|
||||
}
|
||||
}
|
60
fastlane/metadata/steam/english/description.txt
Normal file
60
fastlane/metadata/steam/english/description.txt
Normal file
@ -0,0 +1,60 @@
|
||||
Create elaborate supply chains of conveyor belts to feed ammo into your turrets, produce materials to use for building, and defend your structures from waves of enemies. Play with your friends in cross-platform multiplayer co-op games, or challenge them in team-based PvP matches.
|
||||
|
||||
[img]{STEAM_APP_IMAGE}/extras/ezgif-4-0e70c282f775.gif[/img]
|
||||
|
||||
[h2]Gameplay[/h2]
|
||||
|
||||
[list]
|
||||
[*] Create drills and conveyors to move resources into your Core.
|
||||
[*] Use production blocks to create advanced materials.
|
||||
[*] Build drones for automatically mining resources, assisting in building and protecting your base.
|
||||
[*] Distribute liquids and fight outbreaks of fire.
|
||||
[*] Boost production by supplying optional coolant and lubricant to your defense and production blocks.
|
||||
[/list]
|
||||
|
||||
[h2]Campaign[/h2]
|
||||
|
||||
[list]
|
||||
[*] Advance through 12 replayable built-in zones with randomized spawn points
|
||||
[*] Collect and launch resources
|
||||
[*] Research new blocks to fuel progress
|
||||
[*] Configure launch loadouts to bring resources to each zone
|
||||
[*] Variety of mission objectives and goals
|
||||
[*] Invite your friends to complete missions together
|
||||
[*] 120+ technology blocks to master
|
||||
[*] 19 different types of drones, mechs and ships
|
||||
[*] 50+ achievements to complete
|
||||
[/list]
|
||||
|
||||
[h2][h2]Gamemodes[/h2][/h2]
|
||||
|
||||
[*] [b]Survival[/b]: Build turrets to defend from enemies in tower-defense based gameplay. Survive as long as possible, optionally launching your core to use your collected resources for research. Prepare your base for intermittent attacks from airborne bosses.
|
||||
[*] [b]Attack[/b]: Build factories for units to destroy the enemy cores, while simultaneously defending your base from waves of enemy units. Create a variety of different types of support and offensive unit to assist you in your goals.
|
||||
[*] [b]PvP[/b]: Compete with other players on up to 4 different teams to destroy each other's cores. Create units, or attack other bases directly with your mechs.
|
||||
[*] [b]Sandbox[/b]: Play around with infinite resources and no enemy threat. Use sandbox-specific item and liquid source blocks to test out designs, and spawn in enemies on request.
|
||||
[/list]
|
||||
|
||||
[h2]Custom Games & Cross-Platform Multiplayer[/h2]
|
||||
|
||||
[list]
|
||||
[*] 12 built in maps for custom games, in addition to campaign
|
||||
[*] Play Co-op, PvP or sandbox
|
||||
[*] Join a public dedicated server, or invite friends to your own private session
|
||||
[*] Customizable game rules: Change block costs, enemy stats, starting items, wave timing and more
|
||||
[*] Mix&match gamemodes: Combine PvP and PvE gamemodes together
|
||||
[/list]
|
||||
|
||||
[h2]Custom Map Editor[/h2]
|
||||
|
||||
[list]
|
||||
[*] Paint terrain with an editor UI
|
||||
[*] Edit and preview structures in-game
|
||||
[*] Configurable tool modes: Change how each tool functions
|
||||
[*] Powerful map generation system, with many different types of filters for procedural manipulation of terrain
|
||||
[*] Apply noise, distortion, smoothing, erosion, symmetry, ore generation and random terrain to your maps
|
||||
[*] Randomize and configure ore generation, as well as placement of river and resource tiles
|
||||
[*] Configure enemy wave layouts
|
||||
[*] Share exported maps on the Steam Workshop
|
||||
[*] Customize base map rules
|
||||
[*] Use 75+ different environmental blocks
|
||||
[/list]
|
1
fastlane/metadata/steam/english/short-description.txt
Normal file
1
fastlane/metadata/steam/english/short-description.txt
Normal file
@ -0,0 +1 @@
|
||||
An open-ended tower-defense game with a focus on resource management.
|
Reference in New Issue
Block a user