Naval unit sprites complete
BIN
core/assets-raw/sprites/units/bryde-cell.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
core/assets-raw/sprites/units/bryde.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
core/assets-raw/sprites/units/weapons/large-artillery.png
Normal file
|
After Width: | Height: | Size: 895 B |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 1023 KiB |
|
Before Width: | Height: | Size: 187 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 300 KiB After Width: | Height: | Size: 181 KiB |
|
Before Width: | Height: | Size: 376 KiB After Width: | Height: | Size: 300 KiB |
|
Before Width: | Height: | Size: 1.0 MiB After Width: | Height: | Size: 376 KiB |
BIN
core/assets/sprites/fallback/sprites7.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1.7 MiB After Width: | Height: | Size: 1.7 MiB |
|
Before Width: | Height: | Size: 188 KiB After Width: | Height: | Size: 182 KiB |
@@ -504,6 +504,29 @@ public class Fx{
|
|||||||
|
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
massiveExplosion = new Effect(30, e -> {
|
||||||
|
|
||||||
|
color(Pal.missileYellow);
|
||||||
|
e.scaled(7, i -> {
|
||||||
|
stroke(3f * i.fout());
|
||||||
|
Lines.circle(e.x, e.y, 4f + i.fin() * 30f);
|
||||||
|
});
|
||||||
|
|
||||||
|
color(Color.gray);
|
||||||
|
|
||||||
|
randLenVectors(e.id, 8, 2f + 30f * e.finpow(), (x, y) -> {
|
||||||
|
Fill.circle(e.x + x, e.y + y, e.fout() * 4f + 0.5f);
|
||||||
|
});
|
||||||
|
|
||||||
|
color(Pal.missileYellowBack);
|
||||||
|
stroke(1f * e.fout());
|
||||||
|
|
||||||
|
randLenVectors(e.id + 1, 6, 1f + 29f * e.finpow(), (x, y) -> {
|
||||||
|
lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + e.fout() * 4f);
|
||||||
|
});
|
||||||
|
|
||||||
|
}),
|
||||||
|
|
||||||
artilleryTrail = new Effect(50, e -> {
|
artilleryTrail = new Effect(50, e -> {
|
||||||
color(e.color);
|
color(e.color);
|
||||||
Fill.circle(e.x, e.y, e.rotation * e.fout());
|
Fill.circle(e.x, e.y, e.rotation * e.fout());
|
||||||
|
|||||||
@@ -673,6 +673,8 @@ public class UnitTypes implements ContentList{
|
|||||||
drag = 0.13f;
|
drag = 0.13f;
|
||||||
hitsize = 9f;
|
hitsize = 9f;
|
||||||
health = 220;
|
health = 220;
|
||||||
|
accel = 0.4f;
|
||||||
|
rotateSpeed = 3.3f;
|
||||||
immunities = ObjectSet.with(StatusEffects.wet);
|
immunities = ObjectSet.with(StatusEffects.wet);
|
||||||
trailLength = 20;
|
trailLength = 20;
|
||||||
|
|
||||||
@@ -720,11 +722,14 @@ public class UnitTypes implements ContentList{
|
|||||||
hitsize = 11f;
|
hitsize = 11f;
|
||||||
health = 430;
|
health = 430;
|
||||||
armor = 4f;
|
armor = 4f;
|
||||||
|
accel = 0.3f;
|
||||||
|
rotateSpeed = 2.6f;
|
||||||
immunities = ObjectSet.with(StatusEffects.wet);
|
immunities = ObjectSet.with(StatusEffects.wet);
|
||||||
|
|
||||||
trailLength = 20;
|
trailLength = 20;
|
||||||
trailX = 5.5f;
|
trailX = 5.5f;
|
||||||
trailY = -4f;
|
trailY = -4f;
|
||||||
trailScl = 2f;
|
trailScl = 1.9f;
|
||||||
|
|
||||||
abilities.add(new StatusFieldAbility(StatusEffects.overclock, 60f * 6, 60f * 6f, 60f));
|
abilities.add(new StatusFieldAbility(StatusEffects.overclock, 60f * 6, 60f * 6f, 60f));
|
||||||
|
|
||||||
@@ -753,17 +758,92 @@ public class UnitTypes implements ContentList{
|
|||||||
}};
|
}};
|
||||||
|
|
||||||
bryde = new UnitType("bryde"){{
|
bryde = new UnitType("bryde"){{
|
||||||
speed = 1.3f;
|
speed = 0.85f;
|
||||||
drag = 0.1f;
|
accel = 0.2f;
|
||||||
hitsize = 8f;
|
rotateSpeed = 1.8f;
|
||||||
|
drag = 0.17f;
|
||||||
|
hitsize = 14f;
|
||||||
health = 130;
|
health = 130;
|
||||||
immunities = ObjectSet.with(StatusEffects.wet);
|
immunities = ObjectSet.with(StatusEffects.wet);
|
||||||
weapons.add(new Weapon("mount-weapon"){{
|
|
||||||
reload = 10f;
|
trailLength = 22;
|
||||||
x = 1.25f;
|
trailX = 7f;
|
||||||
|
trailY = -9f;
|
||||||
|
trailScl = 1.5f;
|
||||||
|
|
||||||
|
abilities.add(new HealFieldAbility(22f, 60f * 5, 70f));
|
||||||
|
|
||||||
|
weapons.add(new Weapon("large-artillery"){{
|
||||||
|
reload = 60f;
|
||||||
|
mirror = false;
|
||||||
|
x = 0f;
|
||||||
|
y = -2.5f;
|
||||||
|
rotateSpeed = 1.7f;
|
||||||
rotate = true;
|
rotate = true;
|
||||||
ejectEffect = Fx.shellEjectSmall;
|
shootY = 7f;
|
||||||
bullet = Bullets.standardCopper;
|
shake = 5f;
|
||||||
|
recoil = 4f;
|
||||||
|
|
||||||
|
shots = 1;
|
||||||
|
inaccuracy = 3f;
|
||||||
|
|
||||||
|
ejectEffect = Fx.shellEjectBig;
|
||||||
|
|
||||||
|
bullet = new ArtilleryBulletType(3.2f, 12){{
|
||||||
|
trailMult = 0.8f;
|
||||||
|
hitEffect = Fx.massiveExplosion;
|
||||||
|
knockback = 1.5f;
|
||||||
|
lifetime = 140f;
|
||||||
|
height = 17f;
|
||||||
|
width = 15f;
|
||||||
|
collidesTiles = false;
|
||||||
|
ammoMultiplier = 4f;
|
||||||
|
splashDamageRadius = 60f;
|
||||||
|
splashDamage = 75f;
|
||||||
|
backColor = Pal.missileYellowBack;
|
||||||
|
frontColor = Pal.missileYellow;
|
||||||
|
trailEffect = Fx.artilleryTrail;
|
||||||
|
trailSize = 6f;
|
||||||
|
hitShake = 4f;
|
||||||
|
|
||||||
|
shootEffect = Fx.shootBig2;
|
||||||
|
|
||||||
|
status = StatusEffects.blasted;
|
||||||
|
statusDuration = 60f;
|
||||||
|
}};
|
||||||
|
}});
|
||||||
|
|
||||||
|
weapons.add(new Weapon("missiles-mount"){{
|
||||||
|
reload = 20f;
|
||||||
|
x = 8.5f;
|
||||||
|
y = -9f;
|
||||||
|
|
||||||
|
rotateSpeed = 4f;
|
||||||
|
rotate = true;
|
||||||
|
shots = 2;
|
||||||
|
shotDelay = 3f;
|
||||||
|
inaccuracy = 5f;
|
||||||
|
velocityRnd = 0.1f;
|
||||||
|
|
||||||
|
ejectEffect = Fx.none;
|
||||||
|
bullet = new MissileBulletType(2.7f, 12){{
|
||||||
|
width = 8f;
|
||||||
|
height = 8f;
|
||||||
|
shrinkY = 0f;
|
||||||
|
drag = -0.003f;
|
||||||
|
homingRange = 60f;
|
||||||
|
keepVelocity = false;
|
||||||
|
splashDamageRadius = 25f;
|
||||||
|
splashDamage = 10f;
|
||||||
|
lifetime = 80f;
|
||||||
|
trailColor = Color.gray;
|
||||||
|
backColor = Pal.bulletYellowBack;
|
||||||
|
frontColor = Pal.bulletYellow;
|
||||||
|
hitEffect = Fx.blastExplosion;
|
||||||
|
despawnEffect = Fx.blastExplosion;
|
||||||
|
weaveScale = 8f;
|
||||||
|
weaveMag = 1f;
|
||||||
|
}};
|
||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import mindustry.gen.*;
|
|||||||
|
|
||||||
//TODO scale velocity depending on fslope()
|
//TODO scale velocity depending on fslope()
|
||||||
public class ArtilleryBulletType extends BasicBulletType{
|
public class ArtilleryBulletType extends BasicBulletType{
|
||||||
|
public float trailMult = 1f, trailSize = 4f;
|
||||||
|
|
||||||
public ArtilleryBulletType(float speed, float damage, String bulletSprite){
|
public ArtilleryBulletType(float speed, float damage, String bulletSprite){
|
||||||
super(speed, damage, bulletSprite);
|
super(speed, damage, bulletSprite);
|
||||||
@@ -19,6 +20,10 @@ public class ArtilleryBulletType extends BasicBulletType{
|
|||||||
trailEffect = Fx.artilleryTrail;
|
trailEffect = Fx.artilleryTrail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ArtilleryBulletType(float speed, float damage){
|
||||||
|
this(speed, damage, "shell");
|
||||||
|
}
|
||||||
|
|
||||||
public ArtilleryBulletType(){
|
public ArtilleryBulletType(){
|
||||||
this(1f, 1f, "shell");
|
this(1f, 1f, "shell");
|
||||||
}
|
}
|
||||||
@@ -27,8 +32,8 @@ public class ArtilleryBulletType extends BasicBulletType{
|
|||||||
public void update(Bullet b){
|
public void update(Bullet b){
|
||||||
super.update(b);
|
super.update(b);
|
||||||
|
|
||||||
if(b.timer(0, 3 + b.fslope() * 2f)){
|
if(b.timer(0, (3 + b.fslope() * 2f) * trailMult)){
|
||||||
trailEffect.at(b.x, b.y, b.fslope() * 4f, backColor);
|
trailEffect.at(b.x, b.y, b.fslope() * trailSize, backColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ abstract class WaterMoveComp implements Posc, Velc, Hitboxc, Flyingc, Unitc{
|
|||||||
Draw.z(Layer.debris);
|
Draw.z(Layer.debris);
|
||||||
|
|
||||||
Floor floor = floorOn();
|
Floor floor = floorOn();
|
||||||
Color color = Tmp.c1.set(floor.mapColor).mul(1.7f);
|
Color color = Tmp.c1.set(floor.mapColor).mul(1.5f);
|
||||||
trailColor.lerp(color, Mathf.clamp(Time.delta() * 0.04f));
|
trailColor.lerp(color, Mathf.clamp(Time.delta() * 0.04f));
|
||||||
|
|
||||||
tleft.draw(trailColor, type.trailScl);
|
tleft.draw(trailColor, type.trailScl);
|
||||||
|
|||||||