Buffed all weapons and their prices, bugfixes

This commit is contained in:
Anuken
2018-02-02 16:24:53 -05:00
parent 9818f7e4ac
commit b320fad698
11 changed files with 81 additions and 32 deletions

View File

@@ -51,6 +51,7 @@ public class NetClient extends Module {
gotData = false; gotData = false;
kicked = false; kicked = false;
ui.chatfrag.clearMessages();
ui.loadfrag.hide(); ui.loadfrag.hide();
ui.loadfrag.show("$text.connecting.data"); ui.loadfrag.show("$text.connecting.data");

View File

@@ -4,6 +4,7 @@ import com.badlogic.gdx.utils.*;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.SyncEntity; import io.anuke.mindustry.entities.SyncEntity;
import io.anuke.mindustry.game.EventType.GameOverEvent;
import io.anuke.mindustry.io.Platform; import io.anuke.mindustry.io.Platform;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.net.Net.SendMode; import io.anuke.mindustry.net.Net.SendMode;
@@ -14,6 +15,7 @@ import io.anuke.mindustry.resource.Upgrade;
import io.anuke.mindustry.resource.UpgradeRecipes; import io.anuke.mindustry.resource.UpgradeRecipes;
import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.resource.Weapon;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.Entities; import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.ucore.entities.EntityGroup;
@@ -38,6 +40,8 @@ public class NetServer extends Module{
public NetServer(){ public NetServer(){
Events.on(GameOverEvent.class, () -> weapons.clear());
Net.handleServer(Connect.class, (id, connect) -> {}); Net.handleServer(Connect.class, (id, connect) -> {});
Net.handleServer(ConnectPacket.class, (id, packet) -> { Net.handleServer(ConnectPacket.class, (id, packet) -> {
@@ -189,7 +193,7 @@ public class NetServer extends Module{
public void update(){ public void update(){
if(!headless && !closing && Net.server() && state.is(State.menu)){ if(!headless && !closing && Net.server() && state.is(State.menu)){
closing = true; closing = true;
weapons.clear(); reset();
ui.loadfrag.show("$text.server.closing"); ui.loadfrag.show("$text.server.closing");
Timers.runTask(5f, () -> { Timers.runTask(5f, () -> {
Net.closeServer(); Net.closeServer();
@@ -203,6 +207,10 @@ public class NetServer extends Module{
} }
} }
public void reset(){
weapons.clear();
}
void sync(){ void sync(){
if(Timers.get("serverSync", serverSyncTime)){ if(Timers.get("serverSync", serverSyncTime)){
@@ -291,8 +299,8 @@ public class NetServer extends Module{
if(player == null) continue; if(player == null) continue;
int x = Mathf.scl2(player.x, tilesize); int x = Mathf.scl2(player.x, tilesize);
int y = Mathf.scl2(player.y, tilesize); int y = Mathf.scl2(player.y, tilesize);
int w = 16; int w = 22;
int h = 12; int h = 16;
sendBlockSync(id, x, y, w, h); sendBlockSync(id, x, y, w, h);
} }
} }

View File

@@ -330,7 +330,7 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
Draw.reset(); Draw.reset();
} }
}, },
spread = new BulletType(2.4f, 8) { spread = new BulletType(2.4f, 9) {
{ {
lifetime = 70; lifetime = 70;
} }
@@ -344,10 +344,10 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
Draw.reset(); Draw.reset();
} }
}, },
cluster = new BulletType(4.4f, 13){ cluster = new BulletType(4.5f, 12){
{ {
lifetime = 60; lifetime = 60;
drag = 0.06f; drag = 0.05f;
} }
public void draw(Bullet b){ public void draw(Bullet b){
@@ -370,10 +370,10 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
Effects.effect(Fx.clusterbomb, b); Effects.effect(Fx.clusterbomb, b);
DamageArea.damage(!(b.owner instanceof Enemy), b.x, b.y, 22f, damage); DamageArea.damage(!(b.owner instanceof Enemy), b.x, b.y, 35f, damage);
} }
}, },
vulcan = new BulletType(4.5f, 11) { vulcan = new BulletType(4.5f, 12) {
{ {
lifetime = 50; lifetime = 50;
} }
@@ -395,7 +395,7 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
} }
} }
}, },
shockshell = new BulletType(5.4f, 10) { shockshell = new BulletType(5.5f, 11) {
{ {
drag = 0.03f; drag = 0.03f;
@@ -441,7 +441,7 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
Draw.reset(); Draw.reset();
} }
}, },
beamlaser = new BulletType(0.001f, 35) { beamlaser = new BulletType(0.001f, 38) {
float length = 230f; float length = 230f;
{ {
drawSize = length*2f+20f; drawSize = length*2f+20f;

View File

@@ -151,8 +151,9 @@ public class Player extends SyncEntity{
stucktime = 0f; stucktime = 0f;
} }
if(stucktime > 10f){ if(stucktime > 20f){
damage(health+1); //die instantly damage(health+1); //die instantly
stucktime = 0f;
} }
if(ui.chatfrag.chatOpen()) return; if(ui.chatfrag.chatOpen()) return;
@@ -281,7 +282,7 @@ public class Player extends SyncEntity{
Effects.effect(Fx.dashsmoke, x + Angles.x(), y + Angles.y()); Effects.effect(Fx.dashsmoke, x + Angles.x(), y + Angles.y());
} }
if(dashing && Timers.get(this, "dashfx", 3)){ if(dashing && !dead && Timers.get(this, "dashfx", 3)){
Angles.translation(angle + 180, 3f); Angles.translation(angle + 180, 3f);
Effects.effect(Fx.dashsmoke, x + Angles.x(), y + Angles.y()); Effects.effect(Fx.dashsmoke, x + Angles.x(), y + Angles.y());
} }

View File

@@ -47,7 +47,7 @@ public class Net{
public static void setClientLoaded(boolean loaded){ public static void setClientLoaded(boolean loaded){
clientLoaded = loaded; clientLoaded = loaded;
if(loaded && false){ //TODO enable. if(loaded){
//handle all packets that were skipped while loading //handle all packets that were skipped while loading
for(int i = 0; i < packetQueue.size; i ++){ for(int i = 0; i < packetQueue.size; i ++){
Log.info("Processing {0} packet post-load.", ClassReflection.getSimpleName(packetQueue.get(i).getClass())); Log.info("Processing {0} packet post-load.", ClassReflection.getSimpleName(packetQueue.get(i).getClass()));

View File

@@ -6,11 +6,11 @@ import io.anuke.ucore.util.Mathf;
public class UpgradeRecipes { public class UpgradeRecipes {
private static final ObjectMap<Upgrade, ItemStack[]> recipes = Mathf.map( private static final ObjectMap<Upgrade, ItemStack[]> recipes = Mathf.map(
Weapon.triblaster, list(stack(Item.iron, 40), stack(Item.steel, 40)), Weapon.triblaster, list(stack(Item.iron, 60), stack(Item.steel, 80)),
Weapon.clustergun, list(stack(Item.iron, 60), stack(Item.steel, 80)), Weapon.clustergun, list(stack(Item.iron, 300), stack(Item.steel, 80)),
Weapon.vulcan, list(stack(Item.iron, 60), stack(Item.steel, 120), stack(Item.titanium, 60)), Weapon.vulcan, list(stack(Item.iron, 100), stack(Item.steel, 150), stack(Item.titanium, 80)),
Weapon.beam, list(stack(Item.steel, 240), stack(Item.titanium, 120), stack(Item.dirium, 80)), Weapon.beam, list(stack(Item.steel, 260), stack(Item.titanium, 160), stack(Item.dirium, 120)),
Weapon.shockgun, list(stack(Item.steel, 120), stack(Item.titanium, 120), stack(Item.dirium, 120)) Weapon.shockgun, list(stack(Item.steel, 240), stack(Item.titanium, 160), stack(Item.dirium, 160))
); );
private static final ItemStack[] empty = {}; private static final ItemStack[] empty = {};

View File

@@ -33,7 +33,7 @@ public class Weapon extends Upgrade{
clustergun = new Weapon("clustergun", 26f, BulletType.cluster){ clustergun = new Weapon("clustergun", 26f, BulletType.cluster){
{ {
effect = Fx.clusterShoot; effect = Fx.clusterShoot;
inaccuracy = 20f; inaccuracy = 17f;
roundrobin = true; roundrobin = true;
shots = 2; shots = 2;
spacing = 0; spacing = 0;

View File

@@ -14,12 +14,12 @@ import io.anuke.mindustry.net.NetEvents;
import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Inputs; import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.Scene;
import io.anuke.ucore.scene.ui.Label; import io.anuke.ucore.scene.ui.Label;
import io.anuke.ucore.scene.ui.Label.LabelStyle; import io.anuke.ucore.scene.ui.Label.LabelStyle;
import io.anuke.ucore.scene.ui.TextField; import io.anuke.ucore.scene.ui.TextField;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Log;
import static io.anuke.mindustry.Vars.state; import static io.anuke.mindustry.Vars.state;
import static io.anuke.ucore.core.Core.scene; import static io.anuke.ucore.core.Core.scene;
@@ -57,10 +57,6 @@ public class ChatFragment extends Table implements Fragment{
if(Net.active() && Inputs.keyTap("chat")){ if(Net.active() && Inputs.keyTap("chat")){
toggle(); toggle();
} }
if(state.is(State.menu) && messages.size > 0){
messages.clear();
}
}); });
setup(); setup();
@@ -71,6 +67,10 @@ public class ChatFragment extends Table implements Fragment{
scene.add(this); scene.add(this);
} }
public void clearMessages(){
messages.clear();
}
private void setup(){ private void setup(){
fieldlabel.setStyle(new LabelStyle(fieldlabel.getStyle())); fieldlabel.setStyle(new LabelStyle(fieldlabel.getStyle()));
fieldlabel.getStyle().font = font; fieldlabel.getStyle().font = font;
@@ -152,15 +152,15 @@ public class ChatFragment extends Table implements Fragment{
} }
public void toggle(){ public void toggle(){
Scene scene = getScene(); Log.info("open");
if(!chatOpen && (scene.getKeyboardFocus() == null || !scene.getKeyboardFocus().getParent().isVisible())){ if(!chatOpen){
scene.setKeyboardFocus(chatfield); scene.setKeyboardFocus(chatfield);
chatfield.fireClick(); chatfield.fireClick();
chatOpen = !chatOpen; chatOpen = !chatOpen;
lastfade = fadetime; lastfade = fadetime;
fadetime = messagesShown + 1; fadetime = messagesShown + 1;
}else if(chatOpen){ }else{
scene.setKeyboardFocus(null); scene.setKeyboardFocus(null);
chatOpen = !chatOpen; chatOpen = !chatOpen;
fadetime = lastfade; fadetime = lastfade;

View File

@@ -2,12 +2,14 @@ package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.files.FileHandle;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.Enemy;
import io.anuke.mindustry.entities.enemies.EnemyTypes; import io.anuke.mindustry.entities.enemies.EnemyTypes;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.ucore.scene.builders.button; import io.anuke.ucore.scene.builders.button;
import io.anuke.ucore.scene.builders.label; import io.anuke.ucore.scene.builders.label;
import io.anuke.ucore.scene.builders.table; import io.anuke.ucore.scene.builders.table;
import io.anuke.ucore.scene.ui.Label;
import io.anuke.ucore.scene.ui.ScrollPane; import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Log; import io.anuke.ucore.util.Log;
@@ -74,7 +76,9 @@ public class DebugFragment implements Fragment {
new table("pane") {{ new table("pane") {{
defaults().fillX(); defaults().fillX();
new label(DebugFragment::debugInfo); ScrollPane pane = new ScrollPane(new Label(DebugFragment::debugInfo), "clear");
add(pane);
row(); row();
new button("dump", () -> { new button("dump", () -> {
try{ try{
@@ -109,7 +113,7 @@ public class DebugFragment implements Fragment {
} }
public static String debugInfo(){ public static String debugInfo(){
return join( StringBuilder result = join(
"net.active: " + Net.active(), "net.active: " + Net.active(),
"net.server: " + Net.server(), "net.server: " + Net.server(),
Net.client() ? Net.client() ?
@@ -126,14 +130,46 @@ public class DebugFragment implements Fragment {
"state: " + state.getState(), "state: " + state.getState(),
!Net.server() ? clientDebug.getOut() : serverDebug.getOut() !Net.server() ? clientDebug.getOut() : serverDebug.getOut()
); );
result.append("players: ");
for(Player player : playerGroup.all()){
result.append(" name: ");
result.append(player.name);
result.append("\n");
result.append(" id: ");
result.append(player.id);
result.append("\n");
result.append(" cid: ");
result.append(player.clientid);
result.append("\n");
result.append(" dead: ");
result.append(player.isDead());
result.append("\n");
result.append(" pos: ");
result.append(player.x);
result.append(", ");
result.append(player.y);
result.append("\n");
result.append(" android: ");
result.append(player.isAndroid);
result.append("\n");
result.append(" local: ");
result.append(player.isLocal);
result.append("\n");
result.append("\n");
} }
private static String join(String... strings){ return result.toString();
}
private static StringBuilder join(String... strings){
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
for (String string : strings) { for (String string : strings) {
builder.append(string); builder.append(string);
builder.append("\n"); builder.append("\n");
} }
return builder.toString(); return builder;
} }
} }

View File

@@ -99,6 +99,8 @@ public class Conveyor extends Block{
long value = entity.convey.get(i); long value = entity.convey.get(i);
ItemPos pos = pos1.set(value); ItemPos pos = pos1.set(value);
pos.y += shift;
if(pos.item == null){ if(pos.item == null){
removals.add(value); removals.add(value);
continue; continue;
@@ -110,7 +112,7 @@ public class Conveyor extends Block{
float minmove = 1f / (Short.MAX_VALUE - 2); float minmove = 1f / (Short.MAX_VALUE - 2);
if(canmove){ if(canmove){
pos.y += Math.max(speed * Timers.delta() + shift, minmove); //TODO fix precision issues when at high FPS? pos.y += Math.max(speed * Timers.delta(), minmove); //TODO fix precision issues when at high FPS?
pos.x = Mathf.lerpDelta(pos.x, 0, 0.06f); pos.x = Mathf.lerpDelta(pos.x, 0, 0.06f);
}else{ }else{
pos.x = Mathf.lerpDelta(pos.x, pos.seed/offsetScl, 0.1f); pos.x = Mathf.lerpDelta(pos.x, pos.seed/offsetScl, 0.1f);

View File

@@ -104,6 +104,7 @@ public class ServerControl extends Module {
handler.register("stop", "Stop hosting the server.", arg -> { handler.register("stop", "Stop hosting the server.", arg -> {
Net.closeServer(); Net.closeServer();
state.set(State.menu); state.set(State.menu);
netServer.reset();
}); });
handler.register("host", "<mapname> <mode>", "Open the server with a specific map.", arg -> { handler.register("host", "<mapname> <mode>", "Open the server with a specific map.", arg -> {