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

View File

@ -330,7 +330,7 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
Draw.reset();
}
},
spread = new BulletType(2.4f, 8) {
spread = new BulletType(2.4f, 9) {
{
lifetime = 70;
}
@ -344,10 +344,10 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
Draw.reset();
}
},
cluster = new BulletType(4.4f, 13){
cluster = new BulletType(4.5f, 12){
{
lifetime = 60;
drag = 0.06f;
drag = 0.05f;
}
public void draw(Bullet b){
@ -370,10 +370,10 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
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;
}
@ -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;
@ -441,7 +441,7 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
Draw.reset();
}
},
beamlaser = new BulletType(0.001f, 35) {
beamlaser = new BulletType(0.001f, 38) {
float length = 230f;
{
drawSize = length*2f+20f;

View File

@ -151,8 +151,9 @@ public class Player extends SyncEntity{
stucktime = 0f;
}
if(stucktime > 10f){
if(stucktime > 20f){
damage(health+1); //die instantly
stucktime = 0f;
}
if(ui.chatfrag.chatOpen()) return;
@ -281,7 +282,7 @@ public class Player extends SyncEntity{
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);
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){
clientLoaded = loaded;
if(loaded && false){ //TODO enable.
if(loaded){
//handle all packets that were skipped while loading
for(int i = 0; i < packetQueue.size; i ++){
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 {
private static final ObjectMap<Upgrade, ItemStack[]> recipes = Mathf.map(
Weapon.triblaster, list(stack(Item.iron, 40), stack(Item.steel, 40)),
Weapon.clustergun, list(stack(Item.iron, 60), stack(Item.steel, 80)),
Weapon.vulcan, list(stack(Item.iron, 60), stack(Item.steel, 120), stack(Item.titanium, 60)),
Weapon.beam, list(stack(Item.steel, 240), stack(Item.titanium, 120), stack(Item.dirium, 80)),
Weapon.shockgun, list(stack(Item.steel, 120), stack(Item.titanium, 120), stack(Item.dirium, 120))
Weapon.triblaster, 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, 100), stack(Item.steel, 150), stack(Item.titanium, 80)),
Weapon.beam, list(stack(Item.steel, 260), stack(Item.titanium, 160), stack(Item.dirium, 120)),
Weapon.shockgun, list(stack(Item.steel, 240), stack(Item.titanium, 160), stack(Item.dirium, 160))
);
private static final ItemStack[] empty = {};

View File

@ -33,7 +33,7 @@ public class Weapon extends Upgrade{
clustergun = new Weapon("clustergun", 26f, BulletType.cluster){
{
effect = Fx.clusterShoot;
inaccuracy = 20f;
inaccuracy = 17f;
roundrobin = true;
shots = 2;
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.Inputs;
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.LabelStyle;
import io.anuke.ucore.scene.ui.TextField;
import io.anuke.ucore.scene.ui.layout.Table;
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.ucore.core.Core.scene;
@ -57,10 +57,6 @@ public class ChatFragment extends Table implements Fragment{
if(Net.active() && Inputs.keyTap("chat")){
toggle();
}
if(state.is(State.menu) && messages.size > 0){
messages.clear();
}
});
setup();
@ -71,6 +67,10 @@ public class ChatFragment extends Table implements Fragment{
scene.add(this);
}
public void clearMessages(){
messages.clear();
}
private void setup(){
fieldlabel.setStyle(new LabelStyle(fieldlabel.getStyle()));
fieldlabel.getStyle().font = font;
@ -152,15 +152,15 @@ public class ChatFragment extends Table implements Fragment{
}
public void toggle(){
Scene scene = getScene();
Log.info("open");
if(!chatOpen && (scene.getKeyboardFocus() == null || !scene.getKeyboardFocus().getParent().isVisible())){
if(!chatOpen){
scene.setKeyboardFocus(chatfield);
chatfield.fireClick();
chatOpen = !chatOpen;
lastfade = fadetime;
fadetime = messagesShown + 1;
}else if(chatOpen){
}else{
scene.setKeyboardFocus(null);
chatOpen = !chatOpen;
fadetime = lastfade;

View File

@ -2,12 +2,14 @@ package io.anuke.mindustry.ui.fragments;
import com.badlogic.gdx.Gdx;
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.EnemyTypes;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.scene.builders.button;
import io.anuke.ucore.scene.builders.label;
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.layout.Table;
import io.anuke.ucore.util.Log;
@ -74,7 +76,9 @@ public class DebugFragment implements Fragment {
new table("pane") {{
defaults().fillX();
new label(DebugFragment::debugInfo);
ScrollPane pane = new ScrollPane(new Label(DebugFragment::debugInfo), "clear");
add(pane);
row();
new button("dump", () -> {
try{
@ -109,7 +113,7 @@ public class DebugFragment implements Fragment {
}
public static String debugInfo(){
return join(
StringBuilder result = join(
"net.active: " + Net.active(),
"net.server: " + Net.server(),
Net.client() ?
@ -126,14 +130,46 @@ public class DebugFragment implements Fragment {
"state: " + state.getState(),
!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");
}
return result.toString();
}
private static String join(String... strings){
private static StringBuilder join(String... strings){
StringBuilder builder = new StringBuilder();
for (String string : strings) {
builder.append(string);
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);
ItemPos pos = pos1.set(value);
pos.y += shift;
if(pos.item == null){
removals.add(value);
continue;
@ -110,7 +112,7 @@ public class Conveyor extends Block{
float minmove = 1f / (Short.MAX_VALUE - 2);
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);
}else{
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 -> {
Net.closeServer();
state.set(State.menu);
netServer.reset();
});
handler.register("host", "<mapname> <mode>", "Open the server with a specific map.", arg -> {