Boss waves, health bars / Better lasers / Bugfixes

This commit is contained in:
Anuken
2019-02-21 13:11:28 -05:00
parent f591403b7d
commit 5b7b50f555
38 changed files with 1483 additions and 1379 deletions
+27 -2
View File
@@ -1,7 +1,6 @@
package io.anuke.mindustry.content;
import io.anuke.arc.Core;
import io.anuke.mindustry.entities.Effects.Effect;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.Draw;
import io.anuke.arc.graphics.g2d.Fill;
@@ -9,6 +8,7 @@ import io.anuke.arc.graphics.g2d.Lines;
import io.anuke.arc.math.Angles;
import io.anuke.arc.math.Mathf;
import io.anuke.arc.util.Tmp;
import io.anuke.mindustry.entities.Effects.Effect;
import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect;
import io.anuke.mindustry.entities.type.BaseUnit;
import io.anuke.mindustry.game.ContentList;
@@ -34,7 +34,7 @@ public class Fx implements ContentList{
bigShockwave, nuclearShockwave, explosion, blockExplosion, blockExplosionSmoke, shootSmall, shootHeal, shootSmallSmoke, shootBig, shootBig2, shootBigSmoke,
shootBigSmoke2, shootSmallFlame, shootLiquid, shellEjectSmall, shellEjectMedium,
shellEjectBig, lancerLaserShoot, lancerLaserShootSmoke, lancerLaserCharge, lancerLaserChargeBegin, lightningCharge, lightningShoot,
unitSpawn, spawnShockwave, magmasmoke, impactShockwave, impactcloud, impactsmoke;
unitSpawn, spawnShockwave, magmasmoke, impactShockwave, impactcloud, impactsmoke, dynamicExplosion;
@Override
public void load(){
@@ -604,6 +604,31 @@ public class Fx implements ContentList{
Draw.reset();
});
dynamicExplosion = new Effect(30, e -> {
float intensity = e.rotation;
e.scaled(5 + intensity*2, i -> {
Lines.stroke(3.1f * i.fout());
Lines.poly(e.x, e.y, (int)(20 * intensity), (3f + i.fin() * 14f) * intensity);
});
Draw.color(Color.GRAY);
Angles.randLenVectors(e.id, e.finpow(), (int)(6 * intensity), 21f*intensity, (x, y, in, out) -> {
Fill.circle(e.x + x, e.y + y, out * (2f+intensity) * 3 + 0.5f);
Fill.circle(e.x + x / 2f, e.y + y / 2f, out * (intensity) * 3);
});
Draw.color(Pal.lighterOrange, Pal.lightOrange, Color.GRAY, e.fin());
Lines.stroke((1.7f * e.fout()) * (1f + (intensity - 1f) / 2f));
Angles.randLenVectors(e.id + 1, e.finpow(), (int)(9*intensity), 40f*intensity, (x, y, in, out) -> {
Lines.lineAngle(e.x + x, e.y + y, Mathf.angle(x, y), 1f + out * 4 * (3f+intensity));
});
Draw.reset();
});
blockExplosion = new Effect(30, e -> {
e.scaled(7, i -> {
Lines.stroke(3.1f * i.fout());
@@ -6,7 +6,7 @@ import io.anuke.mindustry.game.ContentList;
import io.anuke.mindustry.type.StatusEffect;
public class StatusEffects implements ContentList{
public static StatusEffect none, burning, freezing, wet, melting, tarred, overdrive, shielded, shocked, corroded;
public static StatusEffect none, burning, freezing, wet, melting, tarred, overdrive, shielded, shocked, corroded, boss;
@Override
public void load(){
@@ -71,6 +71,14 @@ public class StatusEffects implements ContentList{
armorMultiplier = 3f;
}};
boss = new StatusEffect(){{
armorMultiplier = 3f;
damageMultiplier = 3f;
speedMultiplier = 1.1f;
//TODO custom effect
//effect = Fx.overdriven;
}};
shocked = new StatusEffect();
//no effects, just small amounts of damage.
+33 -8
View File
@@ -57,7 +57,10 @@ public class Zones implements ContentList{
new SpawnGroup(UnitTypes.dagger){{
begin = 30;
unitScaling = 2;
}}
}},
bossGroup(UnitTypes.fortress)
);
}};
}};
@@ -105,7 +108,9 @@ public class Zones implements ContentList{
begin = 25;
unitScaling = 1;
unitAmount = 2;
}}
}},
bossGroup(UnitTypes.revenant)
);
}};
}};
@@ -167,7 +172,16 @@ public class Zones implements ContentList{
begin = 35;
spacing = 10;
unitAmount = 6;
}}
}},
//boss
new SpawnGroup(UnitTypes.revenant){{
begin = configureWave;
effect = StatusEffects.boss;
unitScaling = never;
}},
bossGroup(UnitTypes.eruptor)
);
}};
}};
@@ -241,7 +255,10 @@ public class Zones implements ContentList{
spacing = 3;
unitScaling = 3;
unitAmount = 2;
}}
}},
bossGroup(UnitTypes.revenant),
bossGroup(UnitTypes.revenant)
);
}};
}};
@@ -329,7 +346,9 @@ public class Zones implements ContentList{
spacing = 10;
unitScaling = 0.5f;
unitAmount = 10;
}}
}},
bossGroup(UnitTypes.chaosArray)
);
}};
}};
@@ -411,7 +430,9 @@ public class Zones implements ContentList{
spacing = 10;
unitScaling = 0.5f;
unitAmount = 10;
}}
}},
bossGroup(UnitTypes.lich)
);
}};
}};
@@ -482,7 +503,9 @@ public class Zones implements ContentList{
spacing = 2;
unitAmount = 4;
begin = 13;
}}
}},
bossGroup(UnitTypes.chaosArray)
);
}};
}};
@@ -598,7 +621,9 @@ public class Zones implements ContentList{
spacing = 10;
unitScaling = 0.5f;
unitAmount = 10;
}}
}},
bossGroup(UnitTypes.reaper)
);
}};
}};