mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-02-24 21:48:25 +07:00
Better target priority + underBullets for pierce
This commit is contained in:
parent
ea9e5ae632
commit
e2abc055a2
@ -1888,7 +1888,6 @@ public class Blocks{
|
||||
requirements(Category.distribution, with(Items.beryllium, 1));
|
||||
health = 90;
|
||||
speed = 4f;
|
||||
underBullets = true;
|
||||
researchCost = with(Items.beryllium, 5);
|
||||
}};
|
||||
|
||||
@ -1897,7 +1896,6 @@ public class Blocks{
|
||||
health = 140;
|
||||
speed = 4f;
|
||||
armored = true;
|
||||
underBullets = true;
|
||||
researchCost = with(Items.beryllium, 300, Items.tungsten, 100);
|
||||
}};
|
||||
|
||||
@ -1907,7 +1905,6 @@ public class Blocks{
|
||||
speed = 4f;
|
||||
regionRotated1 = 1;
|
||||
solid = false;
|
||||
underBullets = true;
|
||||
researchCost = with(Items.beryllium, 30);
|
||||
}};
|
||||
|
||||
@ -1916,7 +1913,6 @@ public class Blocks{
|
||||
health = 90;
|
||||
speed = 4f;
|
||||
solid = false;
|
||||
underBullets = true;
|
||||
researchCostMultiplier = 1.5f;
|
||||
}};
|
||||
|
||||
@ -1925,7 +1921,6 @@ public class Blocks{
|
||||
health = 90;
|
||||
speed = 4f;
|
||||
buildCostMultiplier = 2f;
|
||||
underBullets = true;
|
||||
researchCostMultiplier = 0.3f;
|
||||
}};
|
||||
|
||||
|
@ -3,7 +3,8 @@ package mindustry.entities;
|
||||
/** Higher priority blocks will always get targeted over those of lower priority, regardless of distance. */
|
||||
public class TargetPriority{
|
||||
public static final float
|
||||
wall = -1f,
|
||||
wall = -2f,
|
||||
transport = -1f,
|
||||
base = 0f,
|
||||
constructing = 1f,
|
||||
turret = 2f,
|
||||
|
@ -559,6 +559,8 @@ public class BulletType extends Content implements Cloneable{
|
||||
bullet.owner = owner;
|
||||
bullet.team = team;
|
||||
bullet.time = 0f;
|
||||
bullet.originX = x;
|
||||
bullet.originY = y;
|
||||
bullet.aimTile = world.tileWorld(aimX, aimY);
|
||||
bullet.initVel(angle, speed * velocityScl);
|
||||
if(backMove){
|
||||
|
@ -38,6 +38,7 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
|
||||
private float rotation;
|
||||
|
||||
transient @Nullable Tile aimTile;
|
||||
transient float originX, originY;
|
||||
transient @Nullable Mover mover;
|
||||
transient boolean absorbed, hit;
|
||||
transient @Nullable Trail trail;
|
||||
@ -177,7 +178,12 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
|
||||
if(build != null && isAdded() &&
|
||||
//should underBullet detection be disabled for piercing bullets?
|
||||
//|| type.pierceBuilding
|
||||
(!build.block.underBullets || (aimTile != null && aimTile.build == build))
|
||||
(!build.block.underBullets ||
|
||||
//direct hit on correct tile
|
||||
(aimTile != null && aimTile.build == build) ||
|
||||
//a piercing bullet overshot the aim tile, it's fine to hit things now
|
||||
(type.pierce && aimTile != null && dst(originX, originY) > aimTile.dst(originX, originY) + 2f))
|
||||
|
||||
&& build.collide(self()) && type.testCollision(self(), build)
|
||||
&& !build.dead() && (type.collidesTeam || build.team != team) && !(type.pierceBuilding && hasCollided(build.id))){
|
||||
|
||||
|
@ -9,6 +9,7 @@ import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
@ -41,6 +42,7 @@ public class Conveyor extends Block implements Autotiler{
|
||||
group = BlockGroup.transportation;
|
||||
hasItems = true;
|
||||
itemCapacity = capacity;
|
||||
priority = TargetPriority.transport;
|
||||
conveyorPlacement = true;
|
||||
|
||||
ambientSound = Sounds.conveyor;
|
||||
|
@ -8,6 +8,7 @@ import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.core.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
@ -36,6 +37,7 @@ public class DirectionBridge extends Block{
|
||||
rotate = true;
|
||||
group = BlockGroup.transportation;
|
||||
noUpdateDisabled = true;
|
||||
priority = TargetPriority.transport;
|
||||
envEnabled = Env.space | Env.terrestrial | Env.underwater;
|
||||
drawArrow = false;
|
||||
regionRotated1 = 1;
|
||||
|
@ -5,6 +5,7 @@ import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
@ -37,6 +38,7 @@ public class DirectionalUnloader extends Block{
|
||||
unloadable = false;
|
||||
envDisabled = Env.none;
|
||||
clearOnDoubleTap = true;
|
||||
priority = TargetPriority.transport;
|
||||
|
||||
config(Item.class, (DirectionalUnloaderBuild tile, Item item) -> tile.unloadItem = item);
|
||||
configClear((DirectionalUnloaderBuild tile) -> tile.unloadItem = null);
|
||||
|
@ -9,6 +9,7 @@ import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
@ -38,8 +39,10 @@ public class Duct extends Block implements Autotiler{
|
||||
unloadable = false;
|
||||
itemCapacity = 1;
|
||||
noUpdateDisabled = true;
|
||||
underBullets = true;
|
||||
rotate = true;
|
||||
noSideBlend = true;
|
||||
priority = TargetPriority.transport;
|
||||
envEnabled = Env.space | Env.terrestrial | Env.underwater;
|
||||
}
|
||||
|
||||
|
@ -11,6 +11,7 @@ public class DuctBridge extends DirectionBridge{
|
||||
|
||||
itemCapacity = 4;
|
||||
hasItems = true;
|
||||
underBullets = true;
|
||||
}
|
||||
|
||||
public class DuctBridgeBuild extends DirectionBridgeBuild{
|
||||
|
@ -6,6 +6,7 @@ import arc.scene.ui.layout.*;
|
||||
import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
@ -34,6 +35,8 @@ public class DuctRouter extends Block{
|
||||
saveConfig = true;
|
||||
rotate = true;
|
||||
clearOnDoubleTap = true;
|
||||
underBullets = true;
|
||||
priority = TargetPriority.transport;
|
||||
envEnabled = Env.space | Env.terrestrial | Env.underwater;
|
||||
|
||||
config(Item.class, (DuctRouterBuild tile, Item item) -> tile.sortItem = item);
|
||||
|
@ -9,6 +9,7 @@ import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.core.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
@ -53,6 +54,7 @@ public class ItemBridge extends Block{
|
||||
copyConfig = false;
|
||||
//disabled as to not be annoying
|
||||
allowConfigInventory = false;
|
||||
priority = TargetPriority.transport;
|
||||
|
||||
//point2 config is relative
|
||||
config(Point2.class, (ItemBridgeBuild tile, Point2 i) -> tile.link = Point2.pack(i.x + tile.tileX(), i.y + tile.tileY()));
|
||||
|
@ -4,6 +4,7 @@ import arc.graphics.g2d.*;
|
||||
import arc.math.*;
|
||||
import arc.util.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.type.*;
|
||||
@ -27,6 +28,8 @@ public class OverflowDuct extends Block{
|
||||
itemCapacity = 1;
|
||||
noUpdateDisabled = true;
|
||||
rotate = true;
|
||||
underBullets = true;
|
||||
priority = TargetPriority.transport;
|
||||
envEnabled = Env.space | Env.terrestrial | Env.underwater;
|
||||
regionRotated1 = 1;
|
||||
}
|
||||
|
@ -52,6 +52,7 @@ public class StackConveyor extends Block implements Autotiler{
|
||||
itemCapacity = 10;
|
||||
conveyorPlacement = true;
|
||||
highUnloadPriority = true;
|
||||
priority = TargetPriority.transport;
|
||||
|
||||
ambientSound = Sounds.conveyor;
|
||||
ambientSoundVolume = 0.004f;
|
||||
|
@ -10,6 +10,7 @@ import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.content.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.entities.units.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
@ -48,6 +49,7 @@ public class Conduit extends LiquidBlock implements Autotiler{
|
||||
conveyorPlacement = true;
|
||||
noUpdateDisabled = true;
|
||||
canOverdrive = false;
|
||||
priority = TargetPriority.transport;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -7,6 +7,7 @@ import arc.math.geom.*;
|
||||
import arc.util.*;
|
||||
import arc.util.io.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.world.*;
|
||||
@ -29,6 +30,7 @@ public class PayloadConveyor extends Block{
|
||||
update = true;
|
||||
outputsPayload = true;
|
||||
noUpdateDisabled = true;
|
||||
priority = TargetPriority.transport;
|
||||
envEnabled |= Env.space | Env.underwater;
|
||||
sync = true;
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import arc.struct.*;
|
||||
import mindustry.*;
|
||||
import mindustry.annotations.Annotations.*;
|
||||
import mindustry.core.*;
|
||||
import mindustry.entities.*;
|
||||
import mindustry.gen.*;
|
||||
import mindustry.graphics.*;
|
||||
import mindustry.input.*;
|
||||
@ -35,6 +36,8 @@ public class BeamNode extends PowerBlock{
|
||||
drawDisabled = false;
|
||||
envEnabled |= Env.space;
|
||||
allowDiagonal = false;
|
||||
underBullets = true;
|
||||
priority = TargetPriority.transport;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
Reference in New Issue
Block a user