Final mech boss unit (unfinished)
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 704 B |
|
Before Width: | Height: | Size: 560 B |
|
Before Width: | Height: | Size: 652 B |
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 600 B |
|
Before Width: | Height: | Size: 720 B |
|
Before Width: | Height: | Size: 670 B |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -895,6 +895,8 @@ unit.bryde.name = Bryde
|
|||||||
unit.alpha.name = Alpha
|
unit.alpha.name = Alpha
|
||||||
unit.beta.name = Beta
|
unit.beta.name = Beta
|
||||||
unit.gamma.name = Gamma
|
unit.gamma.name = Gamma
|
||||||
|
unit.scepter.name = Scepter
|
||||||
|
unit.reign.name = Reign
|
||||||
|
|
||||||
block.parallax.name = Parallax
|
block.parallax.name = Parallax
|
||||||
block.cliff.name = Cliff
|
block.cliff.name = Cliff
|
||||||
|
|||||||
@@ -289,3 +289,6 @@
|
|||||||
63455=hyper-processor|block-hyper-processor-medium
|
63455=hyper-processor|block-hyper-processor-medium
|
||||||
63454=toxopid|unit-toxopid-medium
|
63454=toxopid|unit-toxopid-medium
|
||||||
63453=vestige|unit-vestige-medium
|
63453=vestige|unit-vestige-medium
|
||||||
|
63452=cataclyst|unit-cataclyst-medium
|
||||||
|
63451=scepter|unit-scepter-medium
|
||||||
|
63450=reign|unit-reign-medium
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 657 KiB After Width: | Height: | Size: 651 KiB |
|
Before Width: | Height: | Size: 986 KiB After Width: | Height: | Size: 996 KiB |
|
Before Width: | Height: | Size: 310 KiB After Width: | Height: | Size: 312 KiB |
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 187 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 2.1 MiB After Width: | Height: | Size: 2.1 MiB |
|
Before Width: | Height: | Size: 190 KiB After Width: | Height: | Size: 188 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
@@ -199,7 +199,7 @@ public class Bullets implements ContentList{
|
|||||||
hitEffect = Fx.flakExplosion;
|
hitEffect = Fx.flakExplosion;
|
||||||
splashDamage = 18f;
|
splashDamage = 18f;
|
||||||
splashDamageRadius = 16f;
|
splashDamageRadius = 16f;
|
||||||
fragBullet = flakGlassFrag;
|
fragBullet = fragGlassFrag;
|
||||||
fragBullets = 3;
|
fragBullets = 3;
|
||||||
explodeRange = 20f;
|
explodeRange = 20f;
|
||||||
collidesGround = true;
|
collidesGround = true;
|
||||||
|
|||||||
@@ -121,13 +121,14 @@ public class StatusEffects implements ContentList{
|
|||||||
|
|
||||||
boss = new StatusEffect("boss"){{
|
boss = new StatusEffect("boss"){{
|
||||||
permanent = true;
|
permanent = true;
|
||||||
|
damageMultiplier = 1.5f;
|
||||||
|
armorMultiplier = 1.5f;
|
||||||
}};
|
}};
|
||||||
|
|
||||||
shocked = new StatusEffect("shocked");
|
shocked = new StatusEffect("shocked");
|
||||||
|
|
||||||
blasted = new StatusEffect("blasted");
|
blasted = new StatusEffect("blasted");
|
||||||
|
|
||||||
//no effects, just small amounts of damage.
|
|
||||||
corroded = new StatusEffect("corroded"){{
|
corroded = new StatusEffect("corroded"){{
|
||||||
damage = 0.1f;
|
damage = 0.1f;
|
||||||
}};
|
}};
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class UnitTypes implements ContentList{
|
|||||||
//region definitions
|
//region definitions
|
||||||
|
|
||||||
//ground
|
//ground
|
||||||
public static @EntityDef({Unitc.class, Mechc.class}) UnitType mace, dagger, crawler, fortress, vestige, cataclyst;
|
public static @EntityDef({Unitc.class, Mechc.class}) UnitType mace, dagger, crawler, fortress, scepter, reign;
|
||||||
|
|
||||||
//ground + builder
|
//ground + builder
|
||||||
public static @EntityDef({Unitc.class, Mechc.class, Builderc.class}) UnitType nova;
|
public static @EntityDef({Unitc.class, Mechc.class, Builderc.class}) UnitType nova;
|
||||||
@@ -130,16 +130,17 @@ public class UnitTypes implements ContentList{
|
|||||||
}});
|
}});
|
||||||
}};
|
}};
|
||||||
|
|
||||||
vestige = new UnitType("vestige"){{
|
scepter = new UnitType("scepter"){{
|
||||||
speed = 0.35f;
|
speed = 0.35f;
|
||||||
hitsize = 20f;
|
hitsize = 20f;
|
||||||
rotateSpeed = 1.9f;
|
rotateSpeed = 2.1f;
|
||||||
targetAir = false;
|
targetAir = false;
|
||||||
health = 9000;
|
health = 9000;
|
||||||
armor = 14f;
|
armor = 11f;
|
||||||
|
mechLegMoveScl = 1.3f;
|
||||||
|
|
||||||
weapons.add(
|
weapons.add(
|
||||||
new Weapon("chaos"){{
|
new Weapon("scepter-weapon"){{
|
||||||
y = 1f;
|
y = 1f;
|
||||||
x = 16f;
|
x = 16f;
|
||||||
shootY = 8f;
|
shootY = 8f;
|
||||||
@@ -185,6 +186,58 @@ public class UnitTypes implements ContentList{
|
|||||||
);
|
);
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
reign = new UnitType("reign"){{
|
||||||
|
speed = 0.35f;
|
||||||
|
hitsize = 26f;
|
||||||
|
rotateSpeed = 1.65f;
|
||||||
|
targetAir = false;
|
||||||
|
health = 24000;
|
||||||
|
armor = 14f;
|
||||||
|
mechLegMoveScl = 1.75f;
|
||||||
|
|
||||||
|
weapons.add(
|
||||||
|
new Weapon("reign-weapon"){{
|
||||||
|
y = 1f;
|
||||||
|
x = 21.5f;
|
||||||
|
shootY = 11f;
|
||||||
|
reload = 18f;
|
||||||
|
recoil = 5f;
|
||||||
|
shake = 4f;
|
||||||
|
ejectEffect = Fx.shellEjectBig;
|
||||||
|
shootSound = Sounds.artillery;
|
||||||
|
|
||||||
|
bullet = new BasicBulletType(13f, 80){{
|
||||||
|
pierce = true;
|
||||||
|
width = 11f;
|
||||||
|
height = 30f;
|
||||||
|
lifetime = 15f;
|
||||||
|
shootEffect = Fx.shootBig;
|
||||||
|
fragVelocityMin = 0.4f;
|
||||||
|
|
||||||
|
hitEffect = Fx.blastExplosion;
|
||||||
|
splashDamage = 25f;
|
||||||
|
splashDamageRadius = 30f;
|
||||||
|
|
||||||
|
fragBullets = 2;
|
||||||
|
fragLifeMin = 0f;
|
||||||
|
fragCone = 30f;
|
||||||
|
|
||||||
|
fragBullet = new BasicBulletType(9f, 10){{
|
||||||
|
width = 10f;
|
||||||
|
height = 10f;
|
||||||
|
pierce = true;
|
||||||
|
|
||||||
|
lifetime = 20f;
|
||||||
|
hitEffect = Fx.flakExplosion;
|
||||||
|
splashDamage = 23f;
|
||||||
|
splashDamageRadius = 15f;
|
||||||
|
}};
|
||||||
|
}};
|
||||||
|
}}
|
||||||
|
|
||||||
|
);
|
||||||
|
}};
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
//region ground support
|
//region ground support
|
||||||
|
|
||||||
|
|||||||
@@ -163,14 +163,14 @@ public class DefaultWaves{
|
|||||||
spacing = 3;
|
spacing = 3;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
new SpawnGroup(UnitTypes.vestige){{
|
new SpawnGroup(UnitTypes.scepter){{
|
||||||
begin = 41;
|
begin = 41;
|
||||||
unitAmount = 1;
|
unitAmount = 1;
|
||||||
unitScaling = 1;
|
unitScaling = 1;
|
||||||
spacing = 30;
|
spacing = 30;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
new SpawnGroup(UnitTypes.cataclyst){{
|
new SpawnGroup(UnitTypes.reign){{
|
||||||
begin = 81;
|
begin = 81;
|
||||||
unitAmount = 1;
|
unitAmount = 1;
|
||||||
unitScaling = 1;
|
unitScaling = 1;
|
||||||
|
|||||||
@@ -34,7 +34,8 @@ public abstract class SaveFileReader{
|
|||||||
"titan-factory", "legacy-unit-factory",
|
"titan-factory", "legacy-unit-factory",
|
||||||
"fortress-factory", "legacy-unit-factory",
|
"fortress-factory", "legacy-unit-factory",
|
||||||
|
|
||||||
"mass-conveyor", "payload-conveyor"
|
"mass-conveyor", "payload-conveyor",
|
||||||
|
"vestige", "scepter"
|
||||||
);
|
);
|
||||||
|
|
||||||
protected int lastRegionLength;
|
protected int lastRegionLength;
|
||||||
|
|||||||
@@ -92,7 +92,7 @@ public class Administration{
|
|||||||
}else{
|
}else{
|
||||||
if(rate.occurences > Config.interactRateKick.num()){
|
if(rate.occurences > Config.interactRateKick.num()){
|
||||||
action.player.kick("You are interacting with too many blocks.", 1000 * 30);
|
action.player.kick("You are interacting with too many blocks.", 1000 * 30);
|
||||||
}else{
|
}else if(action.player.getInfo().messageTimer.get(60f * 2f)){
|
||||||
action.player.sendMessage("[scarlet]You are interacting with blocks too quickly.");
|
action.player.sendMessage("[scarlet]You are interacting with blocks too quickly.");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -660,6 +660,7 @@ public class Administration{
|
|||||||
public transient String lastSentMessage;
|
public transient String lastSentMessage;
|
||||||
public transient int messageInfractions;
|
public transient int messageInfractions;
|
||||||
public transient Ratekeeper rate = new Ratekeeper();
|
public transient Ratekeeper rate = new Ratekeeper();
|
||||||
|
public transient Interval messageTimer = new Interval();
|
||||||
|
|
||||||
PlayerInfo(String id){
|
PlayerInfo(String id){
|
||||||
this.id = id;
|
this.id = id;
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ public class UnitType extends UnlockableContent{
|
|||||||
public float legLength = 10f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f, legExtension = 0, legPairOffset = 0, legLengthScl = 1f, kinematicScl = 1f, maxStretch = 1.75f;
|
public float legLength = 10f, legSpeed = 0.1f, legTrns = 1f, legBaseOffset = 0f, legMoveSpace = 1f, legExtension = 0, legPairOffset = 0, legLengthScl = 1f, kinematicScl = 1f, maxStretch = 1.75f;
|
||||||
public float legSplashDamage = 0f, legSplashRange = 5;
|
public float legSplashDamage = 0f, legSplashRange = 5;
|
||||||
public boolean flipBackLegs = true;
|
public boolean flipBackLegs = true;
|
||||||
|
public float mechLegMoveScl = 1f;
|
||||||
|
|
||||||
public int itemCapacity = 30;
|
public int itemCapacity = 30;
|
||||||
public int ammoCapacity = 220;
|
public int ammoCapacity = 220;
|
||||||
@@ -254,8 +255,8 @@ public class UnitType extends UnlockableContent{
|
|||||||
//region drawing
|
//region drawing
|
||||||
|
|
||||||
public void draw(Unit unit){
|
public void draw(Unit unit){
|
||||||
Mechc legs = unit instanceof Mechc ? (Mechc)unit : null;
|
Mechc mech = unit instanceof Mechc ? (Mechc)unit : null;
|
||||||
float z = unit.elevation > 0.5f ? (lowAltitude ? Layer.flyingUnitLow : Layer.flyingUnit) : groundLayer;
|
float z = unit.elevation > 0.5f ? (lowAltitude ? Layer.flyingUnitLow : Layer.flyingUnit) : groundLayer + Mathf.clamp(hitsize/4000f, 0, 0.01f);
|
||||||
|
|
||||||
if(unit.controller().isBeingControlled(player.unit())){
|
if(unit.controller().isBeingControlled(player.unit())){
|
||||||
drawControl(unit);
|
drawControl(unit);
|
||||||
@@ -268,11 +269,11 @@ public class UnitType extends UnlockableContent{
|
|||||||
|
|
||||||
Draw.z(z - 0.02f);
|
Draw.z(z - 0.02f);
|
||||||
|
|
||||||
if(legs != null){
|
if(mech != null){
|
||||||
drawMech((Unit & Mechc)legs);
|
drawMech((Unit & Mechc)mech);
|
||||||
|
|
||||||
float ft = Mathf.sin(legs.walkTime(), 3f, 3f);
|
float ft = Mathf.sin(mech.walkTime(), 3f * mechLegMoveScl, 3f);
|
||||||
legOffset.trns(legs.baseRotation(), 0f, Mathf.lerp(ft * 0.18f * sway, 0f, unit.elevation));
|
legOffset.trns(mech.baseRotation(), 0f, Mathf.lerp(ft * 0.18f * sway, 0f, unit.elevation));
|
||||||
unit.trns(legOffset.x, legOffset.y);
|
unit.trns(legOffset.x, legOffset.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,7 +301,7 @@ public class UnitType extends UnlockableContent{
|
|||||||
drawShield(unit);
|
drawShield(unit);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(legs != null){
|
if(mech != null){
|
||||||
unit.trns(-legOffset.x, -legOffset.y);
|
unit.trns(-legOffset.x, -legOffset.y);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -540,7 +541,7 @@ public class UnitType extends UnlockableContent{
|
|||||||
Draw.mixcol(Color.white, unit.hitTime);
|
Draw.mixcol(Color.white, unit.hitTime);
|
||||||
|
|
||||||
float e = unit.elevation;
|
float e = unit.elevation;
|
||||||
float sin = Mathf.lerp(Mathf.sin(unit.walkTime(), 3f, 1f), 0f, e);
|
float sin = Mathf.lerp(Mathf.sin(unit.walkTime(), 3f * mechLegMoveScl, 1f), 0f, e);
|
||||||
float ft = sin*(2.5f + (unit.hitSize-8f)/2f);
|
float ft = sin*(2.5f + (unit.hitSize-8f)/2f);
|
||||||
float boostTrns = e * 2f;
|
float boostTrns = e * 2f;
|
||||||
|
|
||||||
|
|||||||
@@ -133,7 +133,7 @@ public class ForceProjector extends Block{
|
|||||||
if(buildup >= breakage && !broken){
|
if(buildup >= breakage && !broken){
|
||||||
broken = true;
|
broken = true;
|
||||||
buildup = breakage;
|
buildup = breakage;
|
||||||
Fx.shieldBreak.at(x, y, radius, team.color);
|
Fx.shieldBreak.at(x, y, realRadius(), team.color);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(hit > 0f){
|
if(hit > 0f){
|
||||||
|
|||||||