mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-02-10 10:47:13 +07:00
Buffed all weapons and their prices, bugfixes
This commit is contained in:
parent
9818f7e4ac
commit
b320fad698
@ -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");
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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());
|
||||
}
|
||||
|
@ -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()));
|
||||
|
@ -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 = {};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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 -> {
|
||||
|
Loading…
Reference in New Issue
Block a user