More reconstructors
This commit is contained in:
BIN
core/assets-raw/sprites/blocks/units/ship-reconstructor-top.png
Normal file
BIN
core/assets-raw/sprites/blocks/units/ship-reconstructor-top.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.7 KiB |
BIN
core/assets-raw/sprites/blocks/units/ship-reconstructor.png
Normal file
BIN
core/assets-raw/sprites/blocks/units/ship-reconstructor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 319 B |
@@ -549,3 +549,5 @@
|
|||||||
63154=avert|unit-avert-ui
|
63154=avert|unit-avert-ui
|
||||||
63153=latum|unit-latum-ui
|
63153=latum|unit-latum-ui
|
||||||
63152=tank-reconstructor|block-tank-reconstructor-ui
|
63152=tank-reconstructor|block-tank-reconstructor-ui
|
||||||
|
63151=mech-reconstructor|block-mech-reconstructor-ui
|
||||||
|
63150=ship-reconstructor|block-ship-reconstructor-ui
|
||||||
|
|||||||
Binary file not shown.
@@ -3701,11 +3701,26 @@ public class Blocks{
|
|||||||
);
|
);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
shipReconstructor = new Reconstructor("ship-reconstructor"){{
|
||||||
|
requirements(Category.units, with(Items.graphite, 250, Items.tungsten, 120, Items.silicon, 200));
|
||||||
|
regionSuffix = "-dark";
|
||||||
|
|
||||||
|
size = 3;
|
||||||
|
consumePower(3f);
|
||||||
|
consumeLiquid(Liquids.hydrogen, 3f / 60f);
|
||||||
|
consumeItems(with(Items.silicon, 100, Items.tungsten, 100));
|
||||||
|
|
||||||
|
constructTime = 60f * 20f;
|
||||||
|
|
||||||
|
upgrades.addAll(
|
||||||
|
new UnitType[]{UnitTypes.stell, UnitTypes.avert}
|
||||||
|
);
|
||||||
|
}};
|
||||||
|
|
||||||
tankAssembler = new UnitAssembler("tank-assembler"){{
|
tankAssembler = new UnitAssembler("tank-assembler"){{
|
||||||
requirements(Category.units, with(Items.graphite, 600, Items.beryllium, 600, Items.oxide, 250, Items.tungsten, 400, Items.silicon, 500));
|
requirements(Category.units, with(Items.graphite, 600, Items.beryllium, 600, Items.oxide, 250, Items.tungsten, 400, Items.silicon, 500));
|
||||||
regionSuffix = "-dark";
|
regionSuffix = "-dark";
|
||||||
size = 5;
|
size = 5;
|
||||||
//TODO remove ducts and crushers, replace with 2-3 high cost special blocks with silicon requirements
|
|
||||||
plans.add(new AssemblerUnitPlan(UnitTypes.vanquish, 60f * 50f, PayloadStack.list(UnitTypes.stell, 4, Blocks.tungstenWallLarge, 10)));
|
plans.add(new AssemblerUnitPlan(UnitTypes.vanquish, 60f * 50f, PayloadStack.list(UnitTypes.stell, 4, Blocks.tungstenWallLarge, 10)));
|
||||||
consumePower(3f);
|
consumePower(3f);
|
||||||
areaSize = 13;
|
areaSize = 13;
|
||||||
@@ -3719,8 +3734,7 @@ public class Blocks{
|
|||||||
requirements(Category.units, with(Items.beryllium, 700, Items.oxide, 300, Items.tungsten, 500, Items.silicon, 800));
|
requirements(Category.units, with(Items.beryllium, 700, Items.oxide, 300, Items.tungsten, 500, Items.silicon, 800));
|
||||||
regionSuffix = "-dark";
|
regionSuffix = "-dark";
|
||||||
size = 5;
|
size = 5;
|
||||||
//TODO not stell
|
plans.add(new AssemblerUnitPlan(UnitTypes.quell, 60f * 60f, PayloadStack.list(UnitTypes.avert, 2, Blocks.berylliumWallLarge, 8)));
|
||||||
plans.add(new AssemblerUnitPlan(UnitTypes.quell, 60f * 60f, PayloadStack.list(Blocks.berylliumWallLarge, 20, UnitTypes.stell, 2)));
|
|
||||||
consumePower(3f);
|
consumePower(3f);
|
||||||
areaSize = 13;
|
areaSize = 13;
|
||||||
researchCostMultiplier = 0.4f;
|
researchCostMultiplier = 0.4f;
|
||||||
@@ -3734,8 +3748,7 @@ public class Blocks{
|
|||||||
regionSuffix = "-dark";
|
regionSuffix = "-dark";
|
||||||
size = 5;
|
size = 5;
|
||||||
//TODO different reqs
|
//TODO different reqs
|
||||||
//TODO not stell
|
plans.add(new AssemblerUnitPlan(UnitTypes.bulwark, 60f * 60f, PayloadStack.list(UnitTypes.latum, 2, Blocks.tungstenWallLarge, 10)));
|
||||||
plans.add(new AssemblerUnitPlan(UnitTypes.bulwark, 60f * 60f, PayloadStack.list(Blocks.tungstenWallLarge, 12, UnitTypes.stell, 2)));
|
|
||||||
consumePower(3f);
|
consumePower(3f);
|
||||||
areaSize = 13;
|
areaSize = 13;
|
||||||
researchCostMultiplier = 0.4f;
|
researchCostMultiplier = 0.4f;
|
||||||
|
|||||||
@@ -2506,10 +2506,42 @@ public class UnitTypes{
|
|||||||
damage = 50f;
|
damage = 50f;
|
||||||
hitColor = Color.valueOf("feb380");
|
hitColor = Color.valueOf("feb380");
|
||||||
hitEffect = endEffect = Fx.hitBulletColor;
|
hitEffect = endEffect = Fx.hitBulletColor;
|
||||||
shootEffect = Fx.shootBig;
|
|
||||||
smokeEffect = Fx.shootBigSmoke;
|
|
||||||
pierceDamageFactor = 0.8f;
|
pierceDamageFactor = 0.8f;
|
||||||
|
|
||||||
|
smokeEffect = Fx.colorSpark;
|
||||||
|
|
||||||
|
//lines - messy
|
||||||
|
if(false)
|
||||||
|
smokeEffect = new Effect(22f, e -> {
|
||||||
|
color(e.color);
|
||||||
|
stroke(e.fout() * 0.9f + 0.6f);
|
||||||
|
|
||||||
|
Fx.rand.setSeed(e.id);
|
||||||
|
for(int i = 0; i < 7; i++){
|
||||||
|
Fx.v.trns(e.rotation, Fx.rand.random(8f, length - 8f));
|
||||||
|
Lines.lineAngleCenter(e.x + Fx.v.x, e.y + Fx.v.y, e.rotation + e.finpow(), e.foutpowdown() * 20f * Fx.rand.random(0.5f, 1f) + 0.3f);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
endEffect = new Effect(14f, e-> {
|
||||||
|
color(e.color);
|
||||||
|
Drawf.tri(e.x, e.y, e.fout() * 1.5f, 5f, e.rotation);
|
||||||
|
});
|
||||||
|
|
||||||
|
shootEffect = new Effect(10, e -> {
|
||||||
|
color(e.color);
|
||||||
|
float w = 1.2f + 7 * e.fout();
|
||||||
|
|
||||||
|
Drawf.tri(e.x, e.y, w, 30f * e.fout(), e.rotation);
|
||||||
|
color(e.color);
|
||||||
|
|
||||||
|
for(int i : Mathf.signs){
|
||||||
|
Drawf.tri(e.x, e.y, w * 0.9f, 18f * e.fout(), e.rotation + i * 90f);
|
||||||
|
}
|
||||||
|
|
||||||
|
Drawf.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f);
|
||||||
|
});
|
||||||
|
|
||||||
lineEffect = new Effect(14f, e -> {
|
lineEffect = new Effect(14f, e -> {
|
||||||
if(!(e.data instanceof Vec2 v)) return;
|
if(!(e.data instanceof Vec2 v)) return;
|
||||||
|
|
||||||
@@ -2519,6 +2551,7 @@ public class UnitTypes{
|
|||||||
});
|
});
|
||||||
|
|
||||||
pointEffectSpace = 8f;
|
pointEffectSpace = 8f;
|
||||||
|
|
||||||
if(false)
|
if(false)
|
||||||
pointEffect = new Effect(20, e -> {
|
pointEffect = new Effect(20, e -> {
|
||||||
color(e.color);
|
color(e.color);
|
||||||
@@ -2822,7 +2855,7 @@ public class UnitTypes{
|
|||||||
smoothReloadSpeed = 0.15f;
|
smoothReloadSpeed = 0.15f;
|
||||||
recoil = 2f;
|
recoil = 2f;
|
||||||
|
|
||||||
bullet = new BasicBulletType(3.5f, 40){{
|
bullet = new BasicBulletType(3.5f, 50){{
|
||||||
backColor = trailColor = hitColor = Pal.techBlue;
|
backColor = trailColor = hitColor = Pal.techBlue;
|
||||||
frontColor = Color.white;
|
frontColor = Color.white;
|
||||||
width = 7.5f;
|
width = 7.5f;
|
||||||
@@ -2853,7 +2886,7 @@ public class UnitTypes{
|
|||||||
weapons.add(new PointDefenseWeapon("latum-point-defense"){{
|
weapons.add(new PointDefenseWeapon("latum-point-defense"){{
|
||||||
x = 16f / 4f;
|
x = 16f / 4f;
|
||||||
y = -20f / 4f;
|
y = -20f / 4f;
|
||||||
reload = 10f;
|
reload = 9f;
|
||||||
|
|
||||||
targetInterval = 9f;
|
targetInterval = 9f;
|
||||||
targetSwitchInterval = 12f;
|
targetSwitchInterval = 12f;
|
||||||
@@ -2863,7 +2896,7 @@ public class UnitTypes{
|
|||||||
shootEffect = Fx.sparkShoot;
|
shootEffect = Fx.sparkShoot;
|
||||||
hitEffect = Fx.pointHit;
|
hitEffect = Fx.pointHit;
|
||||||
maxRange = 100f;
|
maxRange = 100f;
|
||||||
damage = 35f;
|
damage = 38f;
|
||||||
}};
|
}};
|
||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
|
|||||||
@@ -27,8 +27,9 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
|
|||||||
@Import Vec2 vel;
|
@Import Vec2 vel;
|
||||||
|
|
||||||
IntSeq collided = new IntSeq(6);
|
IntSeq collided = new IntSeq(6);
|
||||||
Object data;
|
|
||||||
BulletType type;
|
BulletType type;
|
||||||
|
|
||||||
|
Object data;
|
||||||
float fdata;
|
float fdata;
|
||||||
|
|
||||||
@ReadOnly
|
@ReadOnly
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package mindustry.graphics;
|
package mindustry.graphics;
|
||||||
|
|
||||||
import arc.*;
|
|
||||||
import arc.graphics.*;
|
import arc.graphics.*;
|
||||||
import arc.graphics.g2d.*;
|
import arc.graphics.g2d.*;
|
||||||
import arc.math.*;
|
import arc.math.*;
|
||||||
@@ -393,8 +392,16 @@ public class Drawf{
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void tri(float x, float y, float width, float length, float rotation){
|
public static void tri(float x, float y, float width, float length, float rotation){
|
||||||
float oy = 17f / 63f * length;
|
float
|
||||||
Draw.rect(Core.atlas.find("shape-3"), x, y - oy + length / 2f, width, length, width / 2f, oy, rotation - 90);
|
fx = Angles.trnsx(rotation, length),
|
||||||
|
fy = Angles.trnsy(rotation, length),
|
||||||
|
rx = Angles.trnsx(rotation - 90f, width / 2f),
|
||||||
|
ry = Angles.trnsy(rotation - 90f, width / 2f);
|
||||||
|
Fill.tri(
|
||||||
|
x + rx, y + ry,
|
||||||
|
x + fx, y + fy,
|
||||||
|
x - rx, y - ry
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void construct(Building t, UnlockableContent content, float rotation, float progress, float speed, float time){
|
public static void construct(Building t, UnlockableContent content, float rotation, float progress, float speed, float time){
|
||||||
|
|||||||
@@ -91,7 +91,6 @@ public class ClassMap{
|
|||||||
classes.put("PayloadStack", mindustry.type.PayloadStack.class);
|
classes.put("PayloadStack", mindustry.type.PayloadStack.class);
|
||||||
classes.put("Planet", mindustry.type.Planet.class);
|
classes.put("Planet", mindustry.type.Planet.class);
|
||||||
classes.put("Publishable", mindustry.type.Publishable.class);
|
classes.put("Publishable", mindustry.type.Publishable.class);
|
||||||
classes.put("Satellite", mindustry.type.Satellite.class);
|
|
||||||
classes.put("Sector", mindustry.type.Sector.class);
|
classes.put("Sector", mindustry.type.Sector.class);
|
||||||
classes.put("SectorRect", mindustry.type.Sector.SectorRect.class);
|
classes.put("SectorRect", mindustry.type.Sector.SectorRect.class);
|
||||||
classes.put("SectorPreset", mindustry.type.SectorPreset.class);
|
classes.put("SectorPreset", mindustry.type.SectorPreset.class);
|
||||||
|
|||||||
@@ -1,11 +0,0 @@
|
|||||||
package mindustry.type;
|
|
||||||
|
|
||||||
//TODO
|
|
||||||
/** Any object that is orbiting a planet. */
|
|
||||||
public class Satellite{
|
|
||||||
public transient Planet planet;
|
|
||||||
|
|
||||||
public Satellite(Planet orbiting){
|
|
||||||
this.planet = orbiting;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -30,7 +30,7 @@ public class Styles{
|
|||||||
|
|
||||||
public static TextButtonStyle defaultt, nodet, cleart, nonet, clearPartialt, clearTogglet, logicTogglet, clearToggleMenut, togglet, transt, fullTogglet, squareTogglet, logict;
|
public static TextButtonStyle defaultt, nodet, cleart, nonet, clearPartialt, clearTogglet, logicTogglet, clearToggleMenut, togglet, transt, fullTogglet, squareTogglet, logict;
|
||||||
public static ImageButtonStyle defaulti, nodei, emptyi, emptytogglei, selecti, logici, geni, colori, accenti, cleari, clearFulli, clearPartiali, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali;
|
public static ImageButtonStyle defaulti, nodei, emptyi, emptytogglei, selecti, logici, geni, colori, accenti, cleari, clearFulli, clearPartiali, clearTogglei, clearTransi, clearToggleTransi, clearTogglePartiali;
|
||||||
public static ScrollPaneStyle defaultPane, horizontalPane, smallPane, nonePane;
|
public static ScrollPaneStyle defaultPane, horizontalPane, smallPane, noBarPane;
|
||||||
public static SliderStyle defaultSlider;
|
public static SliderStyle defaultSlider;
|
||||||
public static LabelStyle defaultLabel, outlineLabel, techLabel;
|
public static LabelStyle defaultLabel, outlineLabel, techLabel;
|
||||||
public static TextFieldStyle defaultField, nodeField, areaField, nodeArea;
|
public static TextFieldStyle defaultField, nodeField, areaField, nodeArea;
|
||||||
@@ -284,7 +284,7 @@ public class Styles{
|
|||||||
vScroll = clear;
|
vScroll = clear;
|
||||||
vScrollKnob = scrollKnobVerticalThin;
|
vScrollKnob = scrollKnobVerticalThin;
|
||||||
}};
|
}};
|
||||||
nonePane = new ScrollPaneStyle();
|
noBarPane = new ScrollPaneStyle();
|
||||||
|
|
||||||
defaultSlider = new SliderStyle(){{
|
defaultSlider = new SliderStyle(){{
|
||||||
background = sliderBack;
|
background = sliderBack;
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public class SchematicsDialog extends BaseDialog{
|
|||||||
in.add("@schematic.tags").padRight(4);
|
in.add("@schematic.tags").padRight(4);
|
||||||
|
|
||||||
//tags (no scroll pane visible)
|
//tags (no scroll pane visible)
|
||||||
in.pane(Styles.nonePane, t -> {
|
in.pane(Styles.noBarPane, t -> {
|
||||||
rebuildTags = () -> {
|
rebuildTags = () -> {
|
||||||
t.clearChildren();
|
t.clearChildren();
|
||||||
t.left();
|
t.left();
|
||||||
|
|||||||
Reference in New Issue
Block a user