Core: Acropolis
This commit is contained in:
@@ -95,7 +95,7 @@ public class Blocks implements ContentList{
|
||||
//storage
|
||||
coreShard, coreFoundation, coreNucleus, vault, container, unloader,
|
||||
//storage - erekir
|
||||
coreBastion, coreAegis, coreCitadel,
|
||||
coreBastion, coreAegis, coreCitadel, coreAcropolis,
|
||||
|
||||
//turrets
|
||||
duo, scatter, scorch, hail, arc, wave, lancer, swarmer, salvo, fuse, ripple, cyclone, foreshadow, spectre, meltdown, segment, parallax, tsunami,
|
||||
@@ -1841,7 +1841,7 @@ public class Blocks implements ContentList{
|
||||
//TODO cost
|
||||
requirements(Category.effect, with(Items.beryllium, 7000, Items.graphite, 7000, Items.tungsten, 5000, Items.carbide, 5000));
|
||||
|
||||
unitType = UnitTypes.gamma;
|
||||
unitType = UnitTypes.evoke;
|
||||
health = 14000;
|
||||
itemCapacity = 11000;
|
||||
size = 5;
|
||||
@@ -1851,6 +1851,20 @@ public class Blocks implements ContentList{
|
||||
researchCostMultiplier = 0.11f;
|
||||
}};
|
||||
|
||||
coreAcropolis = new CoreBlock("core-acropolis"){{
|
||||
//TODO cost
|
||||
requirements(Category.effect, with(Items.beryllium, 11000, Items.graphite, 11000, Items.tungsten, 9000, Items.carbide, 10000));
|
||||
|
||||
unitType = UnitTypes.evoke;
|
||||
health = 22000;
|
||||
itemCapacity = 16000;
|
||||
size = 6;
|
||||
thrusterLength = 48/4f;
|
||||
|
||||
unitCapModifier = 40;
|
||||
researchCostMultiplier = 0.11f;
|
||||
}};
|
||||
|
||||
vault = new StorageBlock("vault"){{
|
||||
requirements(Category.effect, with(Items.titanium, 250, Items.thorium, 125));
|
||||
size = 3;
|
||||
|
||||
@@ -2434,16 +2434,12 @@ public class UnitTypes implements ContentList{
|
||||
commandLimit = 5;
|
||||
engineSize = 0;
|
||||
|
||||
//TODO ugly definition...
|
||||
engines = new UnitEngine[]{
|
||||
setEnginesMirror(
|
||||
new UnitEngine(21 / 4f, 19 / 4f, 2.2f, 45f),
|
||||
new UnitEngine(-21 / 4f, 19 / 4f, 2.2f, 135f),
|
||||
new UnitEngine(23 / 4f, -22 / 4f, 2.2f, 315f)
|
||||
);
|
||||
|
||||
new UnitEngine(23 / 4f, -22 / 4f, 2.2f, 315f),
|
||||
new UnitEngine(-23 / 4f, -22 / 4f, 2.2f, 225f)
|
||||
};
|
||||
|
||||
weapons.add(new Weapon(""){{
|
||||
weapons.add(new Weapon(){{
|
||||
reload = 55f;
|
||||
x = 0f;
|
||||
y = 1f;
|
||||
|
||||
@@ -121,7 +121,7 @@ public class UnitType extends UnlockableContent{
|
||||
public boolean canDrown = true, naval = false;
|
||||
public float drownTimeMultiplier = 1f;
|
||||
public float engineOffset = 5f, engineSize = 2.5f;
|
||||
public UnitEngine[] engines = {};
|
||||
public Seq<UnitEngine> engines = new Seq<>();
|
||||
public float strafePenalty = 0.5f;
|
||||
public float hitSize = 6f;
|
||||
public float itemOffsetY = 3f;
|
||||
@@ -607,6 +607,19 @@ public class UnitType extends UnlockableContent{
|
||||
return ContentType.unit;
|
||||
}
|
||||
|
||||
/** Sets up engines, mirroring the contents of the specified array. */
|
||||
public void setEnginesMirror(UnitEngine... array){
|
||||
for(var base : array){
|
||||
engines.add(base);
|
||||
|
||||
var engine = base.copy();
|
||||
engine.x *= -1;
|
||||
engine.rotation = 180f - engine.rotation;
|
||||
if(engine.rotation < 0) engine.rotation += 360f;
|
||||
engines.add(engine);
|
||||
}
|
||||
}
|
||||
|
||||
//region drawing
|
||||
|
||||
public void draw(Unit unit){
|
||||
@@ -657,7 +670,7 @@ public class UnitType extends UnlockableContent{
|
||||
if(drawBody) drawOutline(unit);
|
||||
drawWeaponOutlines(unit);
|
||||
if(engineSize > 0) drawEngine(unit);
|
||||
if(engines.length > 0) drawEngines(unit);
|
||||
if(engines.size > 0) drawEngines(unit);
|
||||
if(drawBody) drawBody(unit);
|
||||
if(drawCell) drawCell(unit);
|
||||
drawWeapons(unit);
|
||||
@@ -1047,7 +1060,7 @@ public class UnitType extends UnlockableContent{
|
||||
|
||||
//endregion
|
||||
|
||||
public static class UnitEngine{
|
||||
public static class UnitEngine implements Cloneable{
|
||||
public float x, y, radius, rotation;
|
||||
|
||||
public UnitEngine(float x, float y, float radius, float rotation){
|
||||
@@ -1059,6 +1072,14 @@ public class UnitType extends UnlockableContent{
|
||||
|
||||
public UnitEngine(){
|
||||
}
|
||||
|
||||
public UnitEngine copy(){
|
||||
try{
|
||||
return (UnitEngine)clone();
|
||||
}catch(CloneNotSupportedException awful){
|
||||
throw new RuntimeException("fantastic", awful);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user