Bugfixes
This commit is contained in:
@@ -6,6 +6,7 @@ import arc.struct.*;
|
|||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
import mindustry.ai.*;
|
import mindustry.ai.*;
|
||||||
|
import mindustry.entities.*;
|
||||||
import mindustry.entities.units.*;
|
import mindustry.entities.units.*;
|
||||||
import mindustry.gen.*;
|
import mindustry.gen.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
@@ -167,13 +168,13 @@ public class CommandAI extends AIController{
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Teamc findTarget(float x, float y, float range, boolean air, boolean ground){
|
public Teamc findTarget(float x, float y, float range, boolean air, boolean ground){
|
||||||
return attackTarget == null ? super.findTarget(x, y, range, air, ground) : attackTarget;
|
return attackTarget == null || !attackTarget.within(x, y, range + (attackTarget instanceof Sized s ? s.hitSize()/2f : 0f)) ? super.findTarget(x, y, range, air, ground) : attackTarget;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean retarget(){
|
public boolean retarget(){
|
||||||
//retarget instantly when there is an explicit target, there is no performance cost
|
//retarget faster when there is an explicit target
|
||||||
return attackTarget != null || timer.get(timerTarget, 20);
|
return attackTarget != null ? timer.get(timerTarget, 10) : timer.get(timerTarget, 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasCommand(){
|
public boolean hasCommand(){
|
||||||
|
|||||||
@@ -1880,6 +1880,7 @@ public class Blocks{
|
|||||||
requirements(Category.distribution, with(Items.graphite, 8, Items.beryllium, 4));
|
requirements(Category.distribution, with(Items.graphite, 8, Items.beryllium, 4));
|
||||||
health = 90;
|
health = 90;
|
||||||
speed = 4f;
|
speed = 4f;
|
||||||
|
regionRotated1 = 1;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
overflowDuct = new OverflowDuct("overflow-duct"){{
|
overflowDuct = new OverflowDuct("overflow-duct"){{
|
||||||
|
|||||||
@@ -439,7 +439,7 @@ public class UnitType extends UnlockableContent{
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(fogRadius < 0){
|
if(fogRadius < 0){
|
||||||
fogRadius = lightRadius * 1.5f / 8f;
|
fogRadius = lightRadius * 2f / 8f;
|
||||||
}
|
}
|
||||||
|
|
||||||
clipSize = Math.max(clipSize, lightRadius * 1.1f);
|
clipSize = Math.max(clipSize, lightRadius * 1.1f);
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ public class CustomRulesDialog extends BaseDialog{
|
|||||||
|
|
||||||
t.defaults().size(140f, 50f);
|
t.defaults().size(140f, 50f);
|
||||||
|
|
||||||
//TODO dynamic selection
|
//TODO dynamic selection of planets
|
||||||
for(Planet planet : new Planet[]{Planets.serpulo, Planets.erekir}){
|
for(Planet planet : new Planet[]{Planets.serpulo, Planets.erekir}){
|
||||||
t.button(planet.localizedName, style, () -> {
|
t.button(planet.localizedName, style, () -> {
|
||||||
rules.env = planet.defaultEnv;
|
rules.env = planet.defaultEnv;
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import arc.math.*;
|
|||||||
import arc.util.*;
|
import arc.util.*;
|
||||||
import arc.util.io.*;
|
import arc.util.io.*;
|
||||||
import mindustry.*;
|
import mindustry.*;
|
||||||
|
import mindustry.annotations.Annotations.*;
|
||||||
import mindustry.content.*;
|
import mindustry.content.*;
|
||||||
import mindustry.entities.*;
|
import mindustry.entities.*;
|
||||||
import mindustry.game.*;
|
import mindustry.game.*;
|
||||||
@@ -16,6 +17,8 @@ import mindustry.type.*;
|
|||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
import mindustry.world.*;
|
import mindustry.world.*;
|
||||||
|
|
||||||
|
import static mindustry.Vars.*;
|
||||||
|
|
||||||
public class UnitCargoLoader extends Block{
|
public class UnitCargoLoader extends Block{
|
||||||
public UnitType unitType = UnitTypes.manifold;
|
public UnitType unitType = UnitTypes.manifold;
|
||||||
public float buildTime = 60f * 8f;
|
public float buildTime = 60f * 8f;
|
||||||
@@ -65,6 +68,12 @@ public class UnitCargoLoader extends Block{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Remote(called = Loc.server)
|
||||||
|
public static void cargoLoaderDroneSpawned(Tile tile, int id){
|
||||||
|
if(tile == null || !(tile.build instanceof UnitTransportSourceBuild build)) return;
|
||||||
|
build.spawned(id);
|
||||||
|
}
|
||||||
|
|
||||||
public class UnitTransportSourceBuild extends Building{
|
public class UnitTransportSourceBuild extends Building{
|
||||||
//needs to be "unboxed" after reading, since units are read after buildings.
|
//needs to be "unboxed" after reading, since units are read after buildings.
|
||||||
public int readUnitId = -1;
|
public int readUnitId = -1;
|
||||||
@@ -92,21 +101,28 @@ public class UnitCargoLoader extends Block{
|
|||||||
totalProgress += edelta();
|
totalProgress += edelta();
|
||||||
|
|
||||||
if(buildProgress >= 1f){
|
if(buildProgress >= 1f){
|
||||||
unit = unitType.create(team);
|
if(!net.client()){
|
||||||
if(unit instanceof BuildingTetherc bt){
|
unit = unitType.create(team);
|
||||||
bt.building(this);
|
if(unit instanceof BuildingTetherc bt){
|
||||||
|
bt.building(this);
|
||||||
|
}
|
||||||
|
unit.set(x, y);
|
||||||
|
unit.rotation = 90f;
|
||||||
|
unit.add();
|
||||||
|
Call.cargoLoaderDroneSpawned(tile, unit.id);
|
||||||
}
|
}
|
||||||
unit.set(x, y);
|
|
||||||
unit.rotation = 90f;
|
|
||||||
unit.add();
|
|
||||||
|
|
||||||
Fx.spawn.at(unit);
|
|
||||||
|
|
||||||
buildProgress = 0f;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void spawned(int id){
|
||||||
|
Fx.spawn.at(x, y);
|
||||||
|
buildProgress = 0f;
|
||||||
|
if(net.client()){
|
||||||
|
readUnitId = id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean acceptItem(Building source, Item item){
|
public boolean acceptItem(Building source, Item item){
|
||||||
return items.total() < itemCapacity;
|
return items.total() < itemCapacity;
|
||||||
|
|||||||
Reference in New Issue
Block a user