Boss waves, health bars / Better lasers / Bugfixes
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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)
|
||||
);
|
||||
}};
|
||||
}};
|
||||
|
||||
Reference in New Issue
Block a user