Rebalancing of drills to slow down progression
This commit is contained in:
BIN
core/assets-raw/sprites/ui/icons/icon-about.png
Normal file
BIN
core/assets-raw/sprites/ui/icons/icon-about.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 211 B |
@@ -12,6 +12,7 @@ text.savegame=Save Game
|
|||||||
text.loadgame=Load Game
|
text.loadgame=Load Game
|
||||||
text.joingame=Join Game
|
text.joingame=Join Game
|
||||||
text.quit=Quit
|
text.quit=Quit
|
||||||
|
text.about.button=About
|
||||||
text.name=Name:
|
text.name=Name:
|
||||||
text.players={0} players online
|
text.players={0} players online
|
||||||
text.players.single={0} player online
|
text.players.single={0} player online
|
||||||
@@ -24,7 +25,7 @@ text.hostserver=Host Server
|
|||||||
text.host=Host
|
text.host=Host
|
||||||
text.hosts.refresh=Refresh
|
text.hosts.refresh=Refresh
|
||||||
text.hosts.discovering=Discovering LAN games
|
text.hosts.discovering=Discovering LAN games
|
||||||
text.hosts.none=[lightgray]No hosts found!
|
text.hosts.none=[lightgray]No games found!
|
||||||
text.joingame.byip=Join by IP...
|
text.joingame.byip=Join by IP...
|
||||||
text.joingame.title=Join Game
|
text.joingame.title=Join Game
|
||||||
text.joingame.ip=IP:
|
text.joingame.ip=IP:
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Binary file not shown.
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 79 KiB |
@@ -45,12 +45,12 @@ public class Control extends Module{
|
|||||||
|
|
||||||
final Array<Weapon> weapons = new Array<>();
|
final Array<Weapon> weapons = new Array<>();
|
||||||
final int[] items = new int[Item.getAllItems().size];
|
final int[] items = new int[Item.getAllItems().size];
|
||||||
|
|
||||||
|
public final EntityGroup<Player> playerGroup = Entities.addGroup(Player.class).enableMapping();
|
||||||
public final EntityGroup<Enemy> enemyGroup = Entities.addGroup(Enemy.class).enableMapping();
|
public final EntityGroup<Enemy> enemyGroup = Entities.addGroup(Enemy.class).enableMapping();
|
||||||
public final EntityGroup<TileEntity> tileGroup = Entities.addGroup(TileEntity.class, false);
|
public final EntityGroup<TileEntity> tileGroup = Entities.addGroup(TileEntity.class, false);
|
||||||
public final EntityGroup<Bullet> bulletGroup = Entities.addGroup(Bullet.class);
|
public final EntityGroup<Bullet> bulletGroup = Entities.addGroup(Bullet.class);
|
||||||
public final EntityGroup<Shield> shieldGroup = Entities.addGroup(Shield.class);
|
public final EntityGroup<Shield> shieldGroup = Entities.addGroup(Shield.class);
|
||||||
public final EntityGroup<Player> playerGroup = Entities.addGroup(Player.class).enableMapping();
|
|
||||||
|
|
||||||
Array<EnemySpawn> spawns;
|
Array<EnemySpawn> spawns;
|
||||||
int wave = 1;
|
int wave = 1;
|
||||||
|
|||||||
@@ -285,6 +285,7 @@ public class NetClient extends Module {
|
|||||||
public void handleSendMessage(String message){
|
public void handleSendMessage(String message){
|
||||||
ChatPacket packet = new ChatPacket();
|
ChatPacket packet = new ChatPacket();
|
||||||
packet.text = message;
|
packet.text = message;
|
||||||
|
packet.name = Vars.player.name;
|
||||||
Net.send(packet, SendMode.tcp);
|
Net.send(packet, SendMode.tcp);
|
||||||
|
|
||||||
if(Net.server()){
|
if(Net.server()){
|
||||||
|
|||||||
@@ -218,7 +218,7 @@ public class Renderer extends RendererModule{
|
|||||||
Draw.tscl(0.25f/2);
|
Draw.tscl(0.25f/2);
|
||||||
for(Player player : Vars.control.playerGroup.all()){
|
for(Player player : Vars.control.playerGroup.all()){
|
||||||
if(!player.isLocal){
|
if(!player.isLocal){
|
||||||
Draw.text(player.name, player.x, player.y - 9);
|
Draw.text(player.name, player.x, player.y + 6);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Draw.tscl(Vars.fontscale);
|
Draw.tscl(Vars.fontscale);
|
||||||
|
|||||||
@@ -38,11 +38,11 @@ public enum Recipe{
|
|||||||
shotgunturret(weapon, WeaponBlocks.shotgunturret, stack(Item.iron, 10), stack(Item.stone, 10)),
|
shotgunturret(weapon, WeaponBlocks.shotgunturret, stack(Item.iron, 10), stack(Item.stone, 10)),
|
||||||
flameturret(weapon, WeaponBlocks.flameturret, stack(Item.iron, 12), stack(Item.steel, 9)),
|
flameturret(weapon, WeaponBlocks.flameturret, stack(Item.iron, 12), stack(Item.steel, 9)),
|
||||||
sniperturret(weapon, WeaponBlocks.sniperturret, stack(Item.iron, 15), stack(Item.steel, 10)),
|
sniperturret(weapon, WeaponBlocks.sniperturret, stack(Item.iron, 15), stack(Item.steel, 10)),
|
||||||
laserturret(weapon, WeaponBlocks.laserturret, stack(Item.steel, 10), stack(Item.titanium, 10)),
|
laserturret(weapon, WeaponBlocks.laserturret, stack(Item.steel, 12), stack(Item.titanium, 12)),
|
||||||
mortarturret(weapon, WeaponBlocks.mortarturret, stack(Item.steel, 20), stack(Item.titanium, 15)),
|
mortarturret(weapon, WeaponBlocks.mortarturret, stack(Item.steel, 25), stack(Item.titanium, 15)),
|
||||||
teslaturret(weapon, WeaponBlocks.teslaturret, stack(Item.steel, 10), stack(Item.titanium, 15), stack(Item.dirium, 15)),
|
teslaturret(weapon, WeaponBlocks.teslaturret, stack(Item.steel, 20), stack(Item.titanium, 25), stack(Item.dirium, 15)),
|
||||||
plasmaturret(weapon, WeaponBlocks.plasmaturret, stack(Item.steel, 10), stack(Item.titanium, 10), stack(Item.dirium, 15)),
|
plasmaturret(weapon, WeaponBlocks.plasmaturret, stack(Item.steel, 10), stack(Item.titanium, 20), stack(Item.dirium, 15)),
|
||||||
chainturret(weapon, WeaponBlocks.chainturret, stack(Item.steel, 50), stack(Item.titanium, 25), stack(Item.dirium, 35)),
|
chainturret(weapon, WeaponBlocks.chainturret, stack(Item.steel, 50), stack(Item.titanium, 25), stack(Item.dirium, 40)),
|
||||||
titanturret(weapon, WeaponBlocks.titanturret, stack(Item.steel, 70), stack(Item.titanium, 50), stack(Item.dirium, 55)),
|
titanturret(weapon, WeaponBlocks.titanturret, stack(Item.steel, 70), stack(Item.titanium, 50), stack(Item.dirium, 55)),
|
||||||
|
|
||||||
smelter(crafting, ProductionBlocks.smelter, stack(Item.stone, 40), stack(Item.iron, 40)),
|
smelter(crafting, ProductionBlocks.smelter, stack(Item.stone, 40), stack(Item.iron, 40)),
|
||||||
@@ -56,9 +56,9 @@ public enum Recipe{
|
|||||||
stonedrill(production, ProductionBlocks.stonedrill, stack(Item.stone, 12)),
|
stonedrill(production, ProductionBlocks.stonedrill, stack(Item.stone, 12)),
|
||||||
irondrill(production, ProductionBlocks.irondrill, stack(Item.stone, 25)),
|
irondrill(production, ProductionBlocks.irondrill, stack(Item.stone, 25)),
|
||||||
coaldrill(production, ProductionBlocks.coaldrill, stack(Item.stone, 25), stack(Item.iron, 40)),
|
coaldrill(production, ProductionBlocks.coaldrill, stack(Item.stone, 25), stack(Item.iron, 40)),
|
||||||
titaniumdrill(production, ProductionBlocks.titaniumdrill, stack(Item.iron, 40), stack(Item.steel, 40)),
|
titaniumdrill(production, ProductionBlocks.titaniumdrill, stack(Item.iron, 40), stack(Item.steel, 50)),
|
||||||
uraniumdrill(production, ProductionBlocks.uraniumdrill, stack(Item.iron, 40), stack(Item.steel, 40)),
|
uraniumdrill(production, ProductionBlocks.uraniumdrill, stack(Item.iron, 40), stack(Item.steel, 40)),
|
||||||
omnidrill(production, ProductionBlocks.omnidrill, stack(Item.titanium, 30), stack(Item.dirium, 20)),
|
omnidrill(production, ProductionBlocks.omnidrill, stack(Item.titanium, 30), stack(Item.dirium, 40)),
|
||||||
|
|
||||||
coalgenerator(power, ProductionBlocks.coalgenerator, stack(Item.iron, 30), stack(Item.stone, 20)),
|
coalgenerator(power, ProductionBlocks.coalgenerator, stack(Item.iron, 30), stack(Item.stone, 20)),
|
||||||
thermalgenerator(power, ProductionBlocks.thermalgenerator, stack(Item.steel, 30), stack(Item.iron, 30)),
|
thermalgenerator(power, ProductionBlocks.thermalgenerator, stack(Item.steel, 30), stack(Item.iron, 30)),
|
||||||
@@ -70,7 +70,7 @@ public enum Recipe{
|
|||||||
powerlasercorner(power, DistributionBlocks.powerlasercorner, stack(Item.steel, 4), stack(Item.iron, 4)),
|
powerlasercorner(power, DistributionBlocks.powerlasercorner, stack(Item.steel, 4), stack(Item.iron, 4)),
|
||||||
powerlaserrouter(power, DistributionBlocks.powerlaserrouter, stack(Item.steel, 5), stack(Item.iron, 5)),
|
powerlaserrouter(power, DistributionBlocks.powerlaserrouter, stack(Item.steel, 5), stack(Item.iron, 5)),
|
||||||
|
|
||||||
shieldgenerator(power, DefenseBlocks.shieldgenerator, stack(Item.titanium, 30), stack(Item.dirium, 40)),
|
shieldgenerator(power, DefenseBlocks.shieldgenerator, stack(Item.titanium, 30), stack(Item.dirium, 30)),
|
||||||
|
|
||||||
teleporter(distribution, DistributionBlocks.teleporter, stack(Item.steel, 20), stack(Item.dirium, 15)),
|
teleporter(distribution, DistributionBlocks.teleporter, stack(Item.steel, 20), stack(Item.dirium, 15)),
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ import com.badlogic.gdx.graphics.g2d.GlyphLayout;
|
|||||||
import com.badlogic.gdx.utils.Align;
|
import com.badlogic.gdx.utils.Align;
|
||||||
import com.badlogic.gdx.utils.Array;
|
import com.badlogic.gdx.utils.Array;
|
||||||
import io.anuke.mindustry.Vars;
|
import io.anuke.mindustry.Vars;
|
||||||
|
import io.anuke.mindustry.core.GameState;
|
||||||
|
import io.anuke.mindustry.core.GameState.State;
|
||||||
import io.anuke.mindustry.net.Net;
|
import io.anuke.mindustry.net.Net;
|
||||||
import io.anuke.ucore.core.Core;
|
import io.anuke.ucore.core.Core;
|
||||||
import io.anuke.ucore.core.Inputs;
|
import io.anuke.ucore.core.Inputs;
|
||||||
@@ -44,6 +46,8 @@ public class ChatFragment extends Table implements Fragment{
|
|||||||
setFillParent(true);
|
setFillParent(true);
|
||||||
font = Core.skin.getFont("default-font");
|
font = Core.skin.getFont("default-font");
|
||||||
|
|
||||||
|
setVisible(() -> !GameState.is(State.menu) && Net.active());
|
||||||
|
|
||||||
//TODO put it input
|
//TODO put it input
|
||||||
update(() -> {
|
update(() -> {
|
||||||
if(Net.active() && Inputs.keyTap("chat")){
|
if(Net.active() && Inputs.keyTap("chat")){
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package io.anuke.mindustry.ui.fragments;
|
|||||||
|
|
||||||
import com.badlogic.gdx.Gdx;
|
import com.badlogic.gdx.Gdx;
|
||||||
import io.anuke.mindustry.Mindustry;
|
import io.anuke.mindustry.Mindustry;
|
||||||
|
import io.anuke.mindustry.Vars;
|
||||||
import io.anuke.mindustry.core.GameState;
|
import io.anuke.mindustry.core.GameState;
|
||||||
import io.anuke.mindustry.core.GameState.State;
|
import io.anuke.mindustry.core.GameState.State;
|
||||||
import io.anuke.mindustry.ui.MenuButton;
|
import io.anuke.mindustry.ui.MenuButton;
|
||||||
@@ -65,14 +66,16 @@ public class MenuFragment implements Fragment{
|
|||||||
new imagebutton("icon-tutorial", isize, () -> control.playMap(world.maps().getMap("tutorial"))).text("$text.tutorial").padTop(4f);
|
new imagebutton("icon-tutorial", isize, () -> control.playMap(world.maps().getMap("tutorial"))).text("$text.tutorial").padTop(4f);
|
||||||
|
|
||||||
new imagebutton("icon-load", isize, () -> ui.showLoadGame()).text("$text.load").padTop(4f);
|
new imagebutton("icon-load", isize, () -> ui.showLoadGame()).text("$text.load").padTop(4f);
|
||||||
|
|
||||||
|
new imagebutton("icon-add", isize, () -> ui.showJoinGame()).text("$text.joingame").padTop(4f);
|
||||||
|
|
||||||
row();
|
row();
|
||||||
|
|
||||||
new imagebutton("icon-editor", isize, () -> ui.showEditor()).text("$text.editor").padTop(4f);
|
new imagebutton("icon-editor", isize, () -> ui.showEditor()).text("$text.editor").padTop(4f);
|
||||||
|
|
||||||
new imagebutton("icon-tools", isize, () -> ui.showPrefs()).text("$text.settings").padTop(4f);
|
new imagebutton("icon-tools", isize, () -> ui.showPrefs()).text("$text.settings").padTop(4f);
|
||||||
|
|
||||||
new imagebutton("icon-add", isize, () -> ui.showJoinGame()).text("$text.joingame").padTop(4f);
|
new imagebutton("icon-info", isize, () -> ui.showAbout()).text("$text.about.button").padTop(4f);
|
||||||
|
|
||||||
new imagebutton("icon-donate", isize, () -> {
|
new imagebutton("icon-donate", isize, () -> {
|
||||||
Mindustry.platforms.openDonations();
|
Mindustry.platforms.openDonations();
|
||||||
@@ -81,9 +84,9 @@ public class MenuFragment implements Fragment{
|
|||||||
visible(()->GameState.is(State.menu));
|
visible(()->GameState.is(State.menu));
|
||||||
}}.end();
|
}}.end();
|
||||||
}}.end();
|
}}.end();
|
||||||
}
|
}
|
||||||
|
|
||||||
//settings icon
|
//extra icons in top right
|
||||||
new table(){{
|
new table(){{
|
||||||
atop().aright();
|
atop().aright();
|
||||||
if(Mindustry.hasDiscord){
|
if(Mindustry.hasDiscord){
|
||||||
@@ -91,9 +94,11 @@ public class MenuFragment implements Fragment{
|
|||||||
ui.showDiscord();
|
ui.showDiscord();
|
||||||
}).margin(14);
|
}).margin(14);
|
||||||
}
|
}
|
||||||
new imagebutton("icon-info", 30f, ()->{
|
if(!Vars.android) {
|
||||||
ui.showAbout();
|
new imagebutton("icon-info", 30f, () -> {
|
||||||
}).margin(14);
|
ui.showAbout();
|
||||||
|
}).margin(14);
|
||||||
|
}
|
||||||
}}.end().visible(()->GameState.is(State.menu));
|
}}.end().visible(()->GameState.is(State.menu));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package io.anuke.mindustry.ui.fragments;
|
package io.anuke.mindustry.ui.fragments;
|
||||||
|
|
||||||
import io.anuke.mindustry.Vars;
|
import io.anuke.mindustry.Vars;
|
||||||
|
import io.anuke.mindustry.core.GameState;
|
||||||
|
import io.anuke.mindustry.core.GameState.State;
|
||||||
import io.anuke.mindustry.entities.Player;
|
import io.anuke.mindustry.entities.Player;
|
||||||
import io.anuke.mindustry.net.Net;
|
import io.anuke.mindustry.net.Net;
|
||||||
import io.anuke.mindustry.ui.BorderImage;
|
import io.anuke.mindustry.ui.BorderImage;
|
||||||
@@ -33,7 +35,7 @@ public class PlayerListFragment implements Fragment{
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
visible(() -> Inputs.keyDown("player_list") && Net.active()); //TODO move elsewhere?
|
visible(() -> Inputs.keyDown("player_list") && Net.active() && !GameState.is(State.menu)); //TODO move elsewhere?
|
||||||
}}.end();
|
}}.end();
|
||||||
|
|
||||||
rebuild();
|
rebuild();
|
||||||
|
|||||||
@@ -131,6 +131,7 @@ public class ProductionBlocks{
|
|||||||
{
|
{
|
||||||
resource = Blocks.coal;
|
resource = Blocks.coal;
|
||||||
result = Item.coal;
|
result = Item.coal;
|
||||||
|
time = 6;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -146,11 +147,14 @@ public class ProductionBlocks{
|
|||||||
{
|
{
|
||||||
resource = Blocks.titanium;
|
resource = Blocks.titanium;
|
||||||
result = Item.titanium;
|
result = Item.titanium;
|
||||||
|
time = 7;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
omnidrill = new Omnidrill("omnidrill"){
|
omnidrill = new Omnidrill("omnidrill"){
|
||||||
|
{
|
||||||
|
time = 4;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
coalgenerator = new ItemPowerGenerator("coalgenerator"){
|
coalgenerator = new ItemPowerGenerator("coalgenerator"){
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ public class Drill extends Block{
|
|||||||
|
|
||||||
protected Block resource;
|
protected Block resource;
|
||||||
protected Item result;
|
protected Item result;
|
||||||
protected int time = 5;
|
protected float time = 5;
|
||||||
protected int capacity = 5;
|
protected int capacity = 5;
|
||||||
protected Effect drillEffect = Fx.spark;
|
protected Effect drillEffect = Fx.spark;
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ public class Omnidrill extends Drill {
|
|||||||
drillEffect = Fx.sparkbig;
|
drillEffect = Fx.sparkbig;
|
||||||
resource = null;
|
resource = null;
|
||||||
result = null;
|
result = null;
|
||||||
time = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user