mirror of
https://github.com/Anuken/Mindustry.git
synced 2025-02-10 18:57:39 +07:00
More reconstructors
This commit is contained in:
parent
73fb5657f1
commit
06292d6687
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
|
||||
63153=latum|unit-latum-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"){{
|
||||
requirements(Category.units, with(Items.graphite, 600, Items.beryllium, 600, Items.oxide, 250, Items.tungsten, 400, Items.silicon, 500));
|
||||
regionSuffix = "-dark";
|
||||
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)));
|
||||
consumePower(3f);
|
||||
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));
|
||||
regionSuffix = "-dark";
|
||||
size = 5;
|
||||
//TODO not stell
|
||||
plans.add(new AssemblerUnitPlan(UnitTypes.quell, 60f * 60f, PayloadStack.list(Blocks.berylliumWallLarge, 20, UnitTypes.stell, 2)));
|
||||
plans.add(new AssemblerUnitPlan(UnitTypes.quell, 60f * 60f, PayloadStack.list(UnitTypes.avert, 2, Blocks.berylliumWallLarge, 8)));
|
||||
consumePower(3f);
|
||||
areaSize = 13;
|
||||
researchCostMultiplier = 0.4f;
|
||||
@ -3734,8 +3748,7 @@ public class Blocks{
|
||||
regionSuffix = "-dark";
|
||||
size = 5;
|
||||
//TODO different reqs
|
||||
//TODO not stell
|
||||
plans.add(new AssemblerUnitPlan(UnitTypes.bulwark, 60f * 60f, PayloadStack.list(Blocks.tungstenWallLarge, 12, UnitTypes.stell, 2)));
|
||||
plans.add(new AssemblerUnitPlan(UnitTypes.bulwark, 60f * 60f, PayloadStack.list(UnitTypes.latum, 2, Blocks.tungstenWallLarge, 10)));
|
||||
consumePower(3f);
|
||||
areaSize = 13;
|
||||
researchCostMultiplier = 0.4f;
|
||||
|
@ -2506,10 +2506,42 @@ public class UnitTypes{
|
||||
damage = 50f;
|
||||
hitColor = Color.valueOf("feb380");
|
||||
hitEffect = endEffect = Fx.hitBulletColor;
|
||||
shootEffect = Fx.shootBig;
|
||||
smokeEffect = Fx.shootBigSmoke;
|
||||
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 -> {
|
||||
if(!(e.data instanceof Vec2 v)) return;
|
||||
|
||||
@ -2519,6 +2551,7 @@ public class UnitTypes{
|
||||
});
|
||||
|
||||
pointEffectSpace = 8f;
|
||||
|
||||
if(false)
|
||||
pointEffect = new Effect(20, e -> {
|
||||
color(e.color);
|
||||
@ -2822,7 +2855,7 @@ public class UnitTypes{
|
||||
smoothReloadSpeed = 0.15f;
|
||||
recoil = 2f;
|
||||
|
||||
bullet = new BasicBulletType(3.5f, 40){{
|
||||
bullet = new BasicBulletType(3.5f, 50){{
|
||||
backColor = trailColor = hitColor = Pal.techBlue;
|
||||
frontColor = Color.white;
|
||||
width = 7.5f;
|
||||
@ -2853,7 +2886,7 @@ public class UnitTypes{
|
||||
weapons.add(new PointDefenseWeapon("latum-point-defense"){{
|
||||
x = 16f / 4f;
|
||||
y = -20f / 4f;
|
||||
reload = 10f;
|
||||
reload = 9f;
|
||||
|
||||
targetInterval = 9f;
|
||||
targetSwitchInterval = 12f;
|
||||
@ -2863,7 +2896,7 @@ public class UnitTypes{
|
||||
shootEffect = Fx.sparkShoot;
|
||||
hitEffect = Fx.pointHit;
|
||||
maxRange = 100f;
|
||||
damage = 35f;
|
||||
damage = 38f;
|
||||
}};
|
||||
}});
|
||||
}};
|
||||
|
@ -27,8 +27,9 @@ abstract class BulletComp implements Timedc, Damagec, Hitboxc, Teamc, Posc, Draw
|
||||
@Import Vec2 vel;
|
||||
|
||||
IntSeq collided = new IntSeq(6);
|
||||
Object data;
|
||||
BulletType type;
|
||||
|
||||
Object data;
|
||||
float fdata;
|
||||
|
||||
@ReadOnly
|
||||
|
@ -1,6 +1,5 @@
|
||||
package mindustry.graphics;
|
||||
|
||||
import arc.*;
|
||||
import arc.graphics.*;
|
||||
import arc.graphics.g2d.*;
|
||||
import arc.math.*;
|
||||
@ -393,8 +392,16 @@ public class Drawf{
|
||||
}
|
||||
|
||||
public static void tri(float x, float y, float width, float length, float rotation){
|
||||
float oy = 17f / 63f * length;
|
||||
Draw.rect(Core.atlas.find("shape-3"), x, y - oy + length / 2f, width, length, width / 2f, oy, rotation - 90);
|
||||
float
|
||||
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){
|
||||
|
@ -91,7 +91,6 @@ public class ClassMap{
|
||||
classes.put("PayloadStack", mindustry.type.PayloadStack.class);
|
||||
classes.put("Planet", mindustry.type.Planet.class);
|
||||
classes.put("Publishable", mindustry.type.Publishable.class);
|
||||
classes.put("Satellite", mindustry.type.Satellite.class);
|
||||
classes.put("Sector", mindustry.type.Sector.class);
|
||||
classes.put("SectorRect", mindustry.type.Sector.SectorRect.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 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 LabelStyle defaultLabel, outlineLabel, techLabel;
|
||||
public static TextFieldStyle defaultField, nodeField, areaField, nodeArea;
|
||||
@ -284,7 +284,7 @@ public class Styles{
|
||||
vScroll = clear;
|
||||
vScrollKnob = scrollKnobVerticalThin;
|
||||
}};
|
||||
nonePane = new ScrollPaneStyle();
|
||||
noBarPane = new ScrollPaneStyle();
|
||||
|
||||
defaultSlider = new SliderStyle(){{
|
||||
background = sliderBack;
|
||||
|
@ -79,7 +79,7 @@ public class SchematicsDialog extends BaseDialog{
|
||||
in.add("@schematic.tags").padRight(4);
|
||||
|
||||
//tags (no scroll pane visible)
|
||||
in.pane(Styles.nonePane, t -> {
|
||||
in.pane(Styles.noBarPane, t -> {
|
||||
rebuildTags = () -> {
|
||||
t.clearChildren();
|
||||
t.left();
|
||||
|
Loading…
Reference in New Issue
Block a user