Re-added Tau
@ -4,5 +4,6 @@
|
|||||||
flattenPaths: true,
|
flattenPaths: true,
|
||||||
maxWidth: 2048,
|
maxWidth: 2048,
|
||||||
maxHeight: 2048,
|
maxHeight: 2048,
|
||||||
fast: true
|
fast: true,
|
||||||
|
bleedIterations: 4
|
||||||
}
|
}
|
||||||
|
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 218 B After Width: | Height: | Size: 328 B |
Before Width: | Height: | Size: 358 B After Width: | Height: | Size: 295 B |
Before Width: | Height: | Size: 200 B After Width: | Height: | Size: 339 B |
Before Width: | Height: | Size: 448 B After Width: | Height: | Size: 627 B |
Before Width: | Height: | Size: 468 B After Width: | Height: | Size: 362 B |
@ -232,3 +232,4 @@
|
|||||||
63512=crater|crater
|
63512=crater|crater
|
||||||
63511=naval-factory|block-naval-factory-medium
|
63511=naval-factory|block-naval-factory-medium
|
||||||
63510=air-factory|block-air-factory-medium
|
63510=air-factory|block-air-factory-medium
|
||||||
|
63509=basic-reconstructor|block-basic-reconstructor-medium
|
||||||
|
Before Width: | Height: | Size: 717 B After Width: | Height: | Size: 717 B |
Before Width: | Height: | Size: 718 KiB After Width: | Height: | Size: 818 KiB |
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 279 KiB After Width: | Height: | Size: 301 KiB |
Before Width: | Height: | Size: 224 KiB After Width: | Height: | Size: 243 KiB |
Before Width: | Height: | Size: 818 KiB After Width: | Height: | Size: 859 KiB |
@ -1672,8 +1672,9 @@ public class Blocks implements ContentList{
|
|||||||
groundFactory = new UnitFactory("ground-factory"){{
|
groundFactory = new UnitFactory("ground-factory"){{
|
||||||
requirements(Category.units, ItemStack.with(Items.copper, 30, Items.lead, 70));
|
requirements(Category.units, ItemStack.with(Items.copper, 30, Items.lead, 70));
|
||||||
plans = new UnitPlan[]{
|
plans = new UnitPlan[]{
|
||||||
new UnitPlan(UnitTypes.dagger, 200f, ItemStack.with(Items.silicon, 10)),
|
new UnitPlan(UnitTypes.dagger, 200f, ItemStack.with(Items.silicon, 10, Items.lead, 10)),
|
||||||
new UnitPlan(UnitTypes.titan, 800f, ItemStack.with(Items.silicon, 20, Items.titanium, 10)),
|
new UnitPlan(UnitTypes.crawler, 200f, ItemStack.with(Items.silicon, 10, Items.blastCompound, 5)),
|
||||||
|
new UnitPlan(UnitTypes.tau, 200f, ItemStack.with(Items.silicon, 20, Items.lead, 10)),
|
||||||
};
|
};
|
||||||
size = 3;
|
size = 3;
|
||||||
consumes.power(1.2f);
|
consumes.power(1.2f);
|
||||||
@ -1683,7 +1684,9 @@ public class Blocks implements ContentList{
|
|||||||
requirements(Category.units, ItemStack.with(Items.copper, 30, Items.lead, 70));
|
requirements(Category.units, ItemStack.with(Items.copper, 30, Items.lead, 70));
|
||||||
plans = new UnitPlan[]{
|
plans = new UnitPlan[]{
|
||||||
new UnitPlan(UnitTypes.wraith, 200f, ItemStack.with(Items.silicon, 10)),
|
new UnitPlan(UnitTypes.wraith, 200f, ItemStack.with(Items.silicon, 10)),
|
||||||
//new UnitPlan(UnitTypes.ghoul, 200f, ItemStack.with(Items.silicon, 10)),
|
new UnitPlan(UnitTypes.spirit, 200f, ItemStack.with(Items.silicon, 10)),
|
||||||
|
new UnitPlan(UnitTypes.draug, 200f, ItemStack.with(Items.silicon, 10)),
|
||||||
|
new UnitPlan(UnitTypes.phantom, 200f, ItemStack.with(Items.silicon, 10)),
|
||||||
};
|
};
|
||||||
size = 3;
|
size = 3;
|
||||||
consumes.power(1.2f);
|
consumes.power(1.2f);
|
||||||
@ -1706,7 +1709,8 @@ public class Blocks implements ContentList{
|
|||||||
consumes.power(3f);
|
consumes.power(3f);
|
||||||
consumes.items(ItemStack.with(Items.silicon, 30, Items.graphite, 30));
|
consumes.items(ItemStack.with(Items.silicon, 30, Items.graphite, 30));
|
||||||
itemCapacity = 30;
|
itemCapacity = 30;
|
||||||
constructTime = 200f;
|
|
||||||
|
constructTime = 60f * 5f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
repairPoint = new RepairPoint("repair-point"){{
|
repairPoint = new RepairPoint("repair-point"){{
|
||||||
|
@ -15,7 +15,7 @@ public class UnitTypes implements ContentList{
|
|||||||
public static @EntityDef({Unitc.class, Legsc.class}) UnitType titan, dagger, crawler, fortress, eruptor, chaosArray, eradicator;
|
public static @EntityDef({Unitc.class, Legsc.class}) UnitType titan, dagger, crawler, fortress, eruptor, chaosArray, eradicator;
|
||||||
|
|
||||||
//ground + builder
|
//ground + builder
|
||||||
public static @EntityDef({Unitc.class, Legsc.class, Builderc.class}) UnitType oculon;
|
public static @EntityDef({Unitc.class, Legsc.class, Builderc.class}) UnitType oculon, tau;
|
||||||
|
|
||||||
//air
|
//air
|
||||||
public static @EntityDef({Unitc.class}) UnitType wraith, reaper, ghoul, revenant, lich;
|
public static @EntityDef({Unitc.class}) UnitType wraith, reaper, ghoul, revenant, lich;
|
||||||
@ -96,9 +96,59 @@ public class UnitTypes implements ContentList{
|
|||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
tau = new UnitType("tau"){{
|
||||||
|
itemCapacity = 60;
|
||||||
|
canBoost = true;
|
||||||
|
boostMultiplier = 1.5f;
|
||||||
|
speed = 0.5f;
|
||||||
|
hitsize = 8f;
|
||||||
|
health = 100f;
|
||||||
|
buildSpeed = 0.8f;
|
||||||
|
|
||||||
|
weapons.add(new Weapon("heal-weapon"){{
|
||||||
|
shootY = 1.5f;
|
||||||
|
reload = 24f;
|
||||||
|
x = 1f;
|
||||||
|
shootX = 3.5f;
|
||||||
|
alternate = false;
|
||||||
|
ejectEffect = Fx.none;
|
||||||
|
recoil = 2f;
|
||||||
|
bullet = Bullets.healBullet;
|
||||||
|
shootSound = Sounds.pew;
|
||||||
|
}});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
float healRange = 60f;
|
||||||
|
float healAmount = 10f;
|
||||||
|
float healReload = 160f;
|
||||||
|
boolean wasHealed;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void update(Unitc player){
|
||||||
|
|
||||||
|
if(player.timer().get(Playerc.timerAbility, healReload)){
|
||||||
|
wasHealed = false;
|
||||||
|
|
||||||
|
Units.nearby(player.team(), player.x, player.y, healRange, unit -> {
|
||||||
|
if(unit.health < unit.maxHealth()){
|
||||||
|
Fx.heal.at(unit);
|
||||||
|
wasHealed = true;
|
||||||
|
}
|
||||||
|
unit.heal(healAmount);
|
||||||
|
});
|
||||||
|
|
||||||
|
if(wasHealed){
|
||||||
|
Fx.healWave.at(player);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}*/
|
||||||
|
};
|
||||||
|
|
||||||
fortress = new UnitType("fortress"){{
|
fortress = new UnitType("fortress"){{
|
||||||
titan.upgrade = this;
|
titan.upgrade = this;
|
||||||
tier = 2;
|
tier = 3;
|
||||||
|
|
||||||
speed = 0.38f;
|
speed = 0.38f;
|
||||||
mass = 5f;
|
mass = 5f;
|
||||||
|
@ -162,7 +162,7 @@ public abstract class BulletType extends Content{
|
|||||||
|
|
||||||
public void update(Bulletc b){
|
public void update(Bulletc b){
|
||||||
if(homingPower > 0.0001f){
|
if(homingPower > 0.0001f){
|
||||||
Teamc target = Units.closestTarget(b.team(), b.getX(), b.getY(), homingRange, e -> (e.isGrounded() && collidesGround) || (e.isFlying() && collidesAir));
|
Teamc target = Units.closestTarget(b.team(), b.getX(), b.getY(), homingRange, e -> (e.isGrounded() && collidesGround) || (e.isFlying() && collidesAir), t -> collidesGround);
|
||||||
if(target != null){
|
if(target != null){
|
||||||
b.vel().setAngle(Mathf.slerpDelta(b.rotation(), b.angleTo(target), homingPower));
|
b.vel().setAngle(Mathf.slerpDelta(b.rotation(), b.angleTo(target), homingPower));
|
||||||
}
|
}
|
||||||
@ -178,8 +178,6 @@ public abstract class BulletType extends Content{
|
|||||||
return ContentType.bullet;
|
return ContentType.bullet;
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO change 'create' to 'at'
|
|
||||||
|
|
||||||
public Bulletc create(Teamc owner, float x, float y, float angle){
|
public Bulletc create(Teamc owner, float x, float y, float angle){
|
||||||
return create(owner, owner.team(), x, y, angle);
|
return create(owner, owner.team(), x, y, angle);
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import mindustry.gen.*;
|
|||||||
import mindustry.graphics.*;
|
import mindustry.graphics.*;
|
||||||
import mindustry.ui.*;
|
import mindustry.ui.*;
|
||||||
import mindustry.world.blocks.payloads.*;
|
import mindustry.world.blocks.payloads.*;
|
||||||
|
import mindustry.world.meta.*;
|
||||||
|
|
||||||
import static mindustry.Vars.state;
|
import static mindustry.Vars.state;
|
||||||
|
|
||||||
@ -38,6 +39,13 @@ public class Reconstructor extends UnitBlock{
|
|||||||
bars.add("progress", entity -> new Bar("bar.progress", Pal.ammo, ((ReconstructorEntity)entity)::fraction));
|
bars.add("progress", entity -> new Bar("bar.progress", Pal.ammo, ((ReconstructorEntity)entity)::fraction));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setStats(){
|
||||||
|
super.setStats();
|
||||||
|
|
||||||
|
stats.add(BlockStat.productionTime, constructTime / 60f, StatUnit.seconds);
|
||||||
|
}
|
||||||
|
|
||||||
public class ReconstructorEntity extends UnitBlockEntity{
|
public class ReconstructorEntity extends UnitBlockEntity{
|
||||||
|
|
||||||
public float fraction(){
|
public float fraction(){
|
||||||
|