Added final campaign map (WIP, untested)

This commit is contained in:
Anuken
2020-11-18 18:58:54 -05:00
parent 63d4428527
commit 1ef264d560
37 changed files with 9240 additions and 8906 deletions
@@ -0,0 +1,104 @@
package mindustry.world.blocks.campaign;
import arc.Graphics.*;
import arc.Graphics.Cursor.*;
import arc.graphics.g2d.*;
import arc.math.*;
import arc.scene.ui.layout.*;
import arc.util.*;
import mindustry.annotations.Annotations.*;
import mindustry.content.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.type.*;
import mindustry.world.*;
import static mindustry.Vars.*;
public class Accelerator extends Block{
public @Load("launch-arrow") TextureRegion arrowRegion;
public Block launching = Blocks.coreNucleus;
public int[] capacities = new int[content.items().size];
public Accelerator(String name){
super(name);
update = true;
solid = true;
hasItems = true;
itemCapacity = 8000;
configurable = true;
}
@Override
public void init(){
for(ItemStack stack : launching.requirements){
capacities[stack.item.id] = stack.amount;
}
consumes.items(launching.requirements);
super.init();
}
public class AcceleratorBuild extends Building{
@Override
public void draw(){
super.draw();
for(int l = 0; l < 4; l++){
float length = 7f + l * 5f;
Draw.color(team.color, Pal.darkMetal, Mathf.absin(Time.time() + l*50f, 10f, 1f));
for(int i = 0; i < 4; i++){
float rot = i*90f + 45f;
Draw.rect(arrowRegion, x + Angles.trnsx(rot, length), y + Angles.trnsy(rot, length), rot + 180f);
}
}
float rad = size * tilesize / 2f * 0.74f;
float scl = 2f;
Draw.z(Layer.bullet - 0.0001f);
Lines.stroke(1.75f, Pal.accent);
Lines.square(x, y, rad * 1.22f, 45f);
Lines.stroke(3f, Pal.accent);
Lines.square(x, y, rad, Time.time() / scl);
Lines.square(x, y, rad, -Time.time() / scl);
Draw.color(team.color);
for(int i = 0; i < 4; i++){
float rot = i*90f + 45f + (-Time.time()/3f)%360f;
float length = 26f;
Draw.rect(arrowRegion, x + Angles.trnsx(rot, length), y + Angles.trnsy(rot, length), rot + 180f);
}
Draw.reset();
}
@Override
public Cursor getCursor(){
return !state.isCampaign() || !consValid() ? SystemCursor.arrow : super.getCursor();
}
@Override
public void buildConfiguration(Table table){
deselect();
if(!state.isCampaign() || !consValid()) return;
ui.showInfo("@indev.campaign");
}
@Override
public int getMaximumAccepted(Item item){
return capacities[item.id];
}
@Override
public boolean acceptItem(Building source, Item item){
return items.get(item) < getMaximumAccepted(item);
}
}
}
@@ -1,6 +1,8 @@
package mindustry.world.blocks.campaign;
import arc.*;
import arc.Graphics.*;
import arc.Graphics.Cursor.*;
import arc.graphics.*;
import arc.graphics.g2d.*;
import arc.math.*;
@@ -54,6 +56,11 @@ public class LaunchPad extends Block{
public class LaunchPadBuild extends Building{
@Override
public Cursor getCursor(){
return !state.isCampaign() ? SystemCursor.arrow : super.getCursor();
}
@Override
public void draw(){
super.draw();
@@ -63,6 +63,8 @@ public class CoreBlock extends StorageBlock{
CoreBlock block = (CoreBlock)tile.block();
Fx.spawn.at(entity);
player.set(entity);
if(!net.client()){
Unit unit = block.unitType.create(tile.team());
unit.set(entity);