Ground support unit implementations

This commit is contained in:
Anuken
2020-07-10 12:14:24 -04:00
parent f39702e1cc
commit baa9f22a0b
35 changed files with 1267 additions and 1106 deletions

View File

@@ -1535,7 +1535,7 @@ public class Blocks implements ContentList{
@Override
public void init(Bullet b){
for(int i = 0; i < rays; i++){
Damage.collideLine(b, b.team(), hitEffect, b.x(), b.y(), b.rotation(), rayLength - Math.abs(i - (rays / 2)) * 20f);
Damage.collideLine(b, b.team(), hitEffect, b.x, b.y, b.rotation(), rayLength - Math.abs(i - (rays / 2)) * 20f);
}
}
@@ -1547,11 +1547,11 @@ public class Blocks implements ContentList{
for(int i = 0; i < 7; i++){
Tmp.v1.trns(b.rotation(), i * 8f);
float sl = Mathf.clamp(b.fout() - 0.5f) * (80f - i * 10);
Drawf.tri(b.x() + Tmp.v1.x, b.y() + Tmp.v1.y, 4f, sl, b.rotation() + 90);
Drawf.tri(b.x() + Tmp.v1.x, b.y() + Tmp.v1.y, 4f, sl, b.rotation() - 90);
Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, 4f, sl, b.rotation() + 90);
Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, 4f, sl, b.rotation() - 90);
}
Drawf.tri(b.x(), b.y(), 20f * b.fout(), (rayLength + 50), b.rotation());
Drawf.tri(b.x(), b.y(), 20f * b.fout(), 10f, b.rotation() + 180f);
Drawf.tri(b.x, b.y, 20f * b.fout(), (rayLength + 50), b.rotation());
Drawf.tri(b.x, b.y, 20f * b.fout(), 10f, b.rotation() + 180f);
Draw.reset();
}
});

View File

@@ -437,31 +437,31 @@ public class Bullets implements ContentList{
@Override
public void init(Bullet b){
b.vel().setLength(0.6f + Mathf.random(2f));
b.vel.setLength(0.6f + Mathf.random(2f));
}
@Override
public void draw(Bullet b){
Draw.color(Pal.lightFlame, Pal.darkFlame, Color.gray, b.fin());
Fill.circle(b.x(), b.y(), 3f * b.fout());
Fill.circle(b.x, b.y, 3f * b.fout());
Draw.reset();
}
@Override
public void update(Bullet b){
if(Mathf.chance(0.04 * Time.delta())){
Tile tile = world.tileWorld(b.x(), b.y());
Tile tile = world.tileWorld(b.x, b.y);
if(tile != null){
Fires.create(tile);
}
}
if(Mathf.chance(0.1 * Time.delta())){
Fx.fireballsmoke.at(b.x(), b.y());
Fx.fireballsmoke.at(b.x, b.y);
}
if(Mathf.chance(0.1 * Time.delta())){
Fx.ballfire.at(b.x(), b.y());
Fx.ballfire.at(b.x, b.y);
}
}
};

View File

@@ -6,6 +6,7 @@ import mindustry.ai.types.*;
import mindustry.annotations.Annotations.*;
import mindustry.ctype.*;
import mindustry.entities.bullet.*;
import mindustry.entities.units.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.type.*;
@@ -55,7 +56,7 @@ public class UnitTypes implements ContentList{
dagger = new UnitType("dagger"){{
speed = 0.5f;
hitsize = 8f;
health = 130;
health = 140;
weapons.add(new Weapon("large-weapon"){{
reload = 14f;
x = 4f;
@@ -69,7 +70,8 @@ public class UnitTypes implements ContentList{
speed = 0.4f;
hitsize = 9f;
range = 10f;
health = 460;
health = 500;
armor = 1f;
immunities.add(StatusEffects.burning);
@@ -88,7 +90,9 @@ public class UnitTypes implements ContentList{
hitsize = 13f;
rotateSpeed = 3f;
targetAir = false;
health = 750;
health = 790;
armor = 4f;
weapons.add(new Weapon("artillery"){{
y = 1f;
x = 9f;
@@ -104,7 +108,7 @@ public class UnitTypes implements ContentList{
width = height = 14f;
collides = true;
collidesTiles = true;
splashDamageRadius = 20f;
splashDamageRadius = 24f;
splashDamage = 38f;
backColor = Pal.bulletYellowBack;
frontColor = Pal.bulletYellow;
@@ -119,10 +123,11 @@ public class UnitTypes implements ContentList{
itemCapacity = 60;
canBoost = true;
boostMultiplier = 1.5f;
speed = 0.5f;
speed = 0.52f;
hitsize = 8f;
health = 100f;
health = 110f;
buildSpeed = 0.8f;
armor = 1f;
weapons.add(new Weapon("heal-weapon"){{
shootY = 2f;
@@ -140,35 +145,63 @@ public class UnitTypes implements ContentList{
itemCapacity = 60;
canBoost = true;
boostMultiplier = 1.5f;
speed = 0.5f;
hitsize = 8f;
health = 100f;
buildSpeed = 0.8f;
speed = 0.48f;
hitsize = 10f;
health = 300f;
buildSpeed = 0.9f;
armor = 3f;
weapons.add(new Weapon("heal-weapon"){{
shootY = 2f;
reload = 24f;
x = 4.5f;
alternate = false;
mineTier = 2;
mineSpeed = 5f;
commandLimit = 8;
abilities.add(new HealFieldAbility(10f, 200f, 60f));
weapons.add(new Weapon("heal-shotgun-weapon"){{
x = 5f;
shake = 2.2f;
y = 0.5f;
shootY = 5f;
shootY = 2.5f;
reload = 38f;
shots = 3;
inaccuracy = 35;
shotDelay = 0.5f;
spacing = 0f;
ejectEffect = Fx.none;
recoil = 2f;
bullet = Bullets.healBullet;
recoil = 2.5f;
shootSound = Sounds.pew;
bullet = new LightningBulletType(){{
lightningColor = hitColor = Pal.heal;
damage = 11f;
lightningLength = 7;
lightningLengthRand = 7;
shootEffect = Fx.shootHeal;
}};
}});
}};
quasar = new UnitType("quasar"){{
mineTier = 1;
hitsize = 9f;
hitsize = 12f;
boostMultiplier = 2f;
itemCapacity = 20;
health = 230f;
buildSpeed = 1.5f;
itemCapacity = 80;
health = 640f;
buildSpeed = 1.7f;
canBoost = true;
armor = 6f;
landShake = 2f;
speed = 0.4f;
hitsize = 10f;
mineTier = 2;
mineSpeed = 7f;
abilities.add(new HealFieldAbility(15f, 170f, 60f));
weapons.add(new Weapon("beam-weapon"){{
shake = 2f;
shootY = 4f;
@@ -178,7 +211,7 @@ public class UnitTypes implements ContentList{
shootSound = Sounds.laser;
bullet = new LaserBulletType(){{
damage = 20f;
damage = 27f;
recoil = 1f;
sideAngle = 45f;
sideWidth = 1f;