Skip to content

Commit eb91dc0

Browse files
committed
Vanstar unit stuff
1 parent 05d68e3 commit eb91dc0

5 files changed

Lines changed: 235 additions & 61 deletions

File tree

assets/bundles/bundle.properties

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -350,18 +350,23 @@ block.exogenesis-focalPoint.description =
350350

351351
block.exogenesis-light.name = Light
352352
block.exogenesis-light.description =
353-
bullet.exogenesis-light-kinetic-beam = [#ebb778]kinetic [sky]Beam[]
354-
bullet.exogenesis-light-piercer-rounds = [#e2f5fb]Piercer [sky]Rounds[]
355353

356354
block.exogenesis-bliss.name = Bliss
357355
block.exogenesis-bliss.description =
356+
bullet.exogenesis-bliss-base-rounds = [#ebb778]Base [sky]Beam[]
357+
bullet.exogenesis-bliss-piercer-rounds = [#e2f5fb]Piercer [sky]Rounds[]
358+
358359
block.exogenesis-gale.name = Gale
359360
block.exogenesis-gale.description =
360361
block.exogenesis-cleanser.name = Cleanser
361362
block.exogenesis-cleanser.description =
362363
#3x3
364+
363365
block.exogenesis-tanons.name = Tanons
364366
block.exogenesis-tanons.description =
367+
bullet.exogenesis-tanons-thunderbolt-rounds = [#fee761]Thunderbolt [sky]rounds[]
368+
bullet.exogenesis-tanons-ball-lightning-rounds = [#fee761]Ball lightning [sky]Rounds[]
369+
365370
block.exogenesis-glory.name = Glory
366371
block.exogenesis-glory.description =
367372
block.exogenesis-essence.name = Essence
@@ -371,6 +376,9 @@ block.exogenesis-sanctify.description =
371376
#4x4
372377
block.exogenesis-excalibur.name = Excalibur
373378
block.exogenesis-excalibur.description =
379+
bullet.exogenesis-excalibur-energy-artillery-rounds = [#5f97eb]Energy [sky]artillery[]
380+
bullet.exogenesis-excalibur-thermal-bombardment-rounds = [#e34047]Thermal [sky]bombardment[]
381+
374382
block.exogenesis-godsent.name = Godsent
375383
block.exogenesis-godsent.description =
376384
block.exogenesis-eminence.name = Eminence

src/exogenesis/content/ExoFx.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,11 @@ public class ExoFx{
206206
stroke(1.25f);
207207
lineAngle(e.x, e.y, e.rotation, e.fout() * 4f);
208208
}),
209+
decayEffectYellow = new Effect(24f, e -> {
210+
color(ExoPal.empyrean, Color.white, e.fin());
211+
stroke(1.25f);
212+
lineAngle(e.x, e.y, e.rotation, e.fout() * 4f);
213+
}),
209214

210215
decayEffectLong = new Effect(47f, e -> {
211216
color(Color.white, e.color, e.fin());

src/exogenesis/content/ExoVanstarBlocks.java

Lines changed: 216 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import exogenesis.world.draw.DrawLoopPart;
1111
import exogenesis.world.meta.ExoEnv;
1212
import exogenesis.world.power.LightningRod;
13+
import exogenesis.world.turrets.PowerShootTypeTurret;
1314
import exogenesis.world.turrets.SpeedupTurret;
1415
import exogenesis.graphics.ExoPal;
1516
import arc.util.Tmp;
@@ -1069,7 +1070,7 @@ public static void load(){
10691070
smokeEffect = Fx.colorSparkBig;
10701071
}};
10711072
}};
1072-
bliss = new PowerTurret("bliss"){{
1073+
bliss = new PowerShootTypeTurret("bliss"){{
10731074
requirements(Category.turret, with(ExoItems.oltuxium, 30, ExoItems.exoGraphite, 30));
10741075
researchCostMultiplier = 0.1f;
10751076
envEnabled = ExoEnv.stormWorld | Env.terrestrial;
@@ -1102,7 +1103,8 @@ public static void load(){
11021103
}}
11031104
);
11041105
}};
1105-
shootType = new ExoBasicBulletType(7, 8){{
1106+
ammo(
1107+
new ExoBasicBulletType(7, 8){{
11061108
homingRange = 100;
11071109
homingPower = 0.075f;
11081110
homingDelay = 6;
@@ -1129,7 +1131,30 @@ public static void load(){
11291131
shootEffect = Fx.colorSparkBig;
11301132
hitEffect = despawnEffect = ExoFx.empyreanStarHitSmall;
11311133
smokeEffect = Fx.colorSpark;
1132-
}};
1134+
}}, "base-rounds",
1135+
shootType = new ExoBasicBulletType(18.5f, 5){{
1136+
addDamageMultiplier(
1137+
ExoDamageTypes.pierce, 0.5f,
1138+
ExoDamageTypes.energy, 0.5f
1139+
);
1140+
width = 9;
1141+
height = 14;
1142+
shrinkY = shrinkX = 0f;
1143+
backSprite = "large-bomb-back";
1144+
sprite = "mine-bullet";
1145+
trailWidth = 2f;
1146+
trailLength = 4;
1147+
velocityRnd = 0.11f;
1148+
shootEffect = Fx.shootBigColor;
1149+
smokeEffect = Fx.shootSmokeDisperse;
1150+
backColor = trailColor = hitColor = Color.sky;
1151+
lifetime = 14f;
1152+
1153+
hitEffect = despawnEffect = Fx.hitBulletColor;
1154+
}}, "piercer-rounds"
1155+
1156+
);
1157+
11331158
}};
11341159
cleanser = new PowerTurret("cleanser"){{
11351160
requirements(Category.turret, with(ExoItems.oltuxium, 35, ExoItems.cobolt, 20, ExoItems.peridotite, 20));
@@ -1568,9 +1593,9 @@ ExoItems.peridotite, new BasicBulletType(0f, 0) {{
15681593
ammoMultiplier = 1f;
15691594
fragLifeMin = 1f;
15701595
fragVelocityMin = 1;
1571-
fragBullets = 8;
1596+
fragBullets = 10;
15721597
fragRandomSpread = 0;
1573-
fragSpread = 60;
1598+
fragSpread = 36;
15741599
fragBullet = new ExoBasicBulletType(6, 10){{
15751600
lifetime = 50f;
15761601
width = 6.5f;
@@ -1651,7 +1676,7 @@ ExoItems.peridotite, new BasicBulletType(0f, 0) {{
16511676
}};
16521677

16531678
//tier 2
1654-
tanons = new PowerTurret("tanons"){{
1679+
tanons = new PowerShootTypeTurret("tanons"){{
16551680
requirements(Category.turret, with(ExoItems.exoSilicon, 110, ExoItems.cobolt, 130, ExoItems.magnetite, 40, ExoItems.empyreanPlating, 50, ExoItems.rustyCopper, 100));
16561681
researchCostMultiplier = 0.6f;
16571682
range = 250f;
@@ -1666,28 +1691,95 @@ ExoItems.peridotite, new BasicBulletType(0f, 0) {{
16661691
size = 3;
16671692
scaledHealth = 280;
16681693
rotateSpeed = 5;
1669-
shootSound = Sounds.spark;
16701694
coolant = consume(new ConsumeLiquid(ExoLiquids.ichorium, 0.4f));
16711695
shoot = new ShootPattern(){{
16721696
shotDelay = 3.7f;
16731697
shots = 6;
16741698
}};
16751699
consumePower(11f);
16761700
drawer = new DrawTurret("elecian-");
1677-
shootType = new PosLightningType(32f){{
1678-
lightningColor = hitColor = ExoPal.empyrean;
1679-
addDamageMultiplier(
1680-
energy, 1f
1681-
);
1682-
boltNum = 1;
1683-
lightningDamage = 8;
1684-
lightning = 5;
1685-
lightningLength = 3;
1686-
lightningLengthRand = 7;
1687-
maxRange = rangeOverride = 250f;
1688-
hitEffect = Fx.hitLaserColor;
1689-
smokeEffect = Fx.shootBigSmoke2;
1690-
}};
1701+
ammo(
1702+
new PosLightningType(72f){{
1703+
lightningColor = hitColor = ExoPal.empyrean;
1704+
addDamageMultiplier(
1705+
energy, 1f
1706+
);
1707+
shootSound = Sounds.spark;
1708+
boltNum = 1;
1709+
lightningDamage = 8;
1710+
lightning = 5;
1711+
lightningLength = 3;
1712+
lightningLengthRand = 7;
1713+
maxRange = rangeOverride = 250f;
1714+
hitEffect = Fx.hitLaserColor;
1715+
smokeEffect = Fx.shootBigSmoke2;
1716+
}}, "thunderbolts-rounds",
1717+
shootType = new DecayBulletType(2.5f, 20f){{
1718+
drag = 0.002f;
1719+
lifetime = 78f;
1720+
addDamageMultiplier(
1721+
energy, 1f
1722+
);
1723+
shootSound = Sounds.blaster;
1724+
backMinRadius = 3f;
1725+
frontMinRadius = 1.2f;
1726+
backRadius = 6f;
1727+
frontRadius = 2.75f;
1728+
sprite = "circle-bullet";
1729+
hittable = absorbable = collides = false;
1730+
backColor = trailColor = hitColor = lightColor = ExoPal.empyrean;
1731+
minInterval = 2f;
1732+
maxInterval = 5.75f;
1733+
shootEffect = ExoFx.empyreanStarHitSmaller;
1734+
smokeEffect = Fx.none;
1735+
hitEffect = Fx.colorSparkBig;
1736+
despawnEffect = ExoHitFx.lightHitLarge;
1737+
decayEffect = ExoFx.decayEffectLong;
1738+
height = 18f;
1739+
width = 12f;
1740+
decayBullet = new ExoBasicBulletType(4.8f, 14f){{
1741+
drag = 0.04f;
1742+
lifetime = 18f;
1743+
addDamageMultiplier(
1744+
energy, 1f
1745+
1746+
);
1747+
sprite = "circle-bullet";
1748+
pierce = true;
1749+
pierceCap = 3;
1750+
height = 9f;
1751+
width = 9f;
1752+
backColor = trailColor = hitColor = lightColor = ExoPal.empyrean;
1753+
hitEffect = Fx.hitLancer;
1754+
despawnEffect = Fx.colorSparkBig;
1755+
frontColor = ExoPal.empyrean;
1756+
hittable = false;
1757+
}
1758+
1759+
@Override
1760+
public void draw(Bullet b){
1761+
Draw.color(backColor);
1762+
Fill.circle(b.x, b.y, 2.5f + (b.fout() * 3f));
1763+
Draw.color(frontColor);
1764+
Fill.circle(b.x, b.y, 1.75f + (b.fout() * 2.75f));
1765+
}
1766+
1767+
@Override
1768+
public void update(Bullet b){
1769+
super.update(b);
1770+
if(Mathf.chance(0.8f)){
1771+
ExoFx.decayEffectYellow.at(b, b.rotation() + 180f);
1772+
}
1773+
}
1774+
};
1775+
fragBullet = decayBullet;
1776+
fragBullets = 3;
1777+
fragVelocityMin = 0.75f;
1778+
fragVelocityMax = 1.25f;
1779+
fragLifeMin = 1.2f;
1780+
fragLifeMax = 1.3f;
1781+
}}, "ball-lightning-rounds"
1782+
);;
16911783
}};
16921784
essence = new SpeedupTurret("essence"){{
16931785
requirements(Category.turret, with(ExoItems.cobolt, 200, ExoItems.iron, 90, ExoItems.exoSilicon, 100, ExoItems.exoGraphite, 100, ExoItems.empyreanPlating, 80));
@@ -1804,7 +1896,7 @@ ExoItems.peridotite, new BasicBulletType(0f, 0) {{
18041896
}};
18051897
}};
18061898

1807-
excalibur = new PowerTurret("excalibur"){{
1899+
excalibur = new PowerShootTypeTurret("excalibur"){{
18081900
requirements(Category.turret, with(ExoItems.cobolt, 320, ExoItems.oltuxium, 80, ExoItems.rustyCopper, 360, ExoItems.empyreanPlating, 100, ExoItems.ameythystGeode, 100, ExoItems.litusiumAlloy, 70));
18091901
researchCostMultiplier = 0.7f;
18101902
range = 670f;
@@ -1843,43 +1935,112 @@ ExoItems.peridotite, new BasicBulletType(0f, 0) {{
18431935
}}
18441936
);
18451937
}};
1846-
shootType = new ExoArtilleryBulletType(){{
1847-
hitEffect = new MultiEffect(Fx.titanExplosion, ExoFx.empyreanExplosion, Fx.flakExplosionBig);
1848-
despawnEffect = Fx.none;
1849-
addDamageMultiplier(
1850-
explosive, 0.8f,
1851-
energy, 0.2f
1852-
);
1853-
speed = 4.5f;
1854-
damage = 50;
1855-
sprite = "shell";
1856-
knockback = 2f;
1857-
lifetime = 220f;
1858-
height = 27f;
1859-
width = 21f;
1860-
splashDamageRadius = 65f;
1861-
splashDamage = 150f;
1862-
scaledSplashDamage = true;
1863-
backColor = hitColor = trailColor = ExoPal.empyreanIndigo;
1864-
frontColor = Color.white;
1865-
hitSound = Sounds.titanExplosion;
1938+
ammo(
1939+
new ExoArtilleryBulletType(){{
1940+
hitEffect = new MultiEffect(Fx.titanExplosion, ExoFx.empyreanExplosion, Fx.flakExplosionBig);
1941+
despawnEffect = Fx.none;
1942+
addDamageMultiplier(
1943+
explosive, 0.8f,
1944+
energy, 0.2f
1945+
);
1946+
speed = 4.5f;
1947+
damage = 50;
1948+
sprite = "shell";
1949+
knockback = 2f;
1950+
lifetime = 220f;
1951+
height = 27f;
1952+
width = 21f;
1953+
splashDamageRadius = 65f;
1954+
splashDamage = 150f;
1955+
scaledSplashDamage = true;
1956+
backColor = hitColor = trailColor = ExoPal.empyreanIndigo;
1957+
frontColor = Color.white;
1958+
hitSound = Sounds.titanExplosion;
18661959

1867-
status = StatusEffects.blasted;
1960+
status = StatusEffects.blasted;
18681961

1869-
trailLength = 32;
1870-
trailWidth = 3f;
1871-
trailSinScl = 2.5f;
1872-
trailSinMag = 0.5f;
1873-
despawnShake = 7f;
1962+
trailLength = 32;
1963+
trailWidth = 3f;
1964+
trailSinScl = 2.5f;
1965+
trailSinMag = 0.5f;
1966+
despawnShake = 7f;
18741967

1875-
shootEffect = Fx.shootTitan;
1876-
smokeEffect = Fx.blastExplosion;
1968+
shootEffect = Fx.shootTitan;
1969+
smokeEffect = Fx.blastExplosion;
18771970

1878-
trailInterp = v -> Math.max(Mathf.slope(v), 0.8f);
1879-
shrinkX = 0.2f;
1880-
shrinkY = 0.1f;
1881-
buildingDamageMultiplier = 0.3f;
1882-
}};
1971+
trailInterp = v -> Math.max(Mathf.slope(v), 0.8f);
1972+
shrinkX = 0.2f;
1973+
shrinkY = 0.1f;
1974+
buildingDamageMultiplier = 0.3f;
1975+
}}, "energy-artillery",
1976+
shootType = new ExoArtilleryBulletType(){{
1977+
hitEffect = new MultiEffect(Fx.titanExplosion, ExoHitFx.titanExplosionFragExo, Fx.flakExplosionBig);
1978+
despawnEffect = Fx.none;
1979+
addDamageMultiplier(
1980+
explosive, 0.5f,
1981+
thermal, 0.5f
1982+
);
1983+
reloadMultiplier = 0.5f;
1984+
inaccuracy = 7;
1985+
ammoMultiplier = 3;
1986+
lifeScaleRandMin = 0.6f;
1987+
lifeScaleRandMax = 1f;
1988+
speed = 4.5f;
1989+
damage = 50;
1990+
sprite = "shell";
1991+
lifetime = 220f;
1992+
height = 27f;
1993+
width = 21f;
1994+
splashDamageRadius = 85f;
1995+
splashDamage = 80f;
1996+
scaledSplashDamage = true;
1997+
backColor = hitColor = trailColor = ExoPal.thermalColor;
1998+
frontColor = Color.white;
1999+
hitSound = Sounds.titanExplosion;
2000+
status = StatusEffects.melting;
2001+
trailLength = 32;
2002+
trailWidth = 3f;
2003+
trailSinScl = 2.5f;
2004+
trailSinMag = 0.5f;
2005+
despawnShake = 7f;
2006+
shootEffect = Fx.shootTitan;
2007+
smokeEffect = Fx.blastExplosion;
2008+
trailInterp = v -> Math.max(Mathf.slope(v), 0.8f);
2009+
shrinkX = 0.2f;
2010+
shrinkY = 0.1f;
2011+
buildingDamageMultiplier = 0.3f;
2012+
fragBullets = 12;
2013+
fragOnAbsorb = true;
2014+
fragVelocityMin = 0.75f;
2015+
fragVelocityMax = 1.25f;
2016+
fragLifeMin = 0.85f;
2017+
fragLifeMax = 1.2f;
2018+
fragBullet = new ExoArtilleryBulletType(){{
2019+
hitEffect = new MultiEffect(ExoHitFx.titanExplosionFragExo, ExoHitFx.titanLightSmallExo, new WaveEffect(){{
2020+
lifetime = 8f;
2021+
strokeFrom = 1f;
2022+
sizeTo = 15f;
2023+
}});
2024+
sprite = "shell";
2025+
addDamageMultiplier(
2026+
explosive, 0.5f,
2027+
thermal, 0.5f
2028+
);
2029+
speed = 2.5f;
2030+
despawnEffect = Fx.hitBulletColor;
2031+
width = 12f;
2032+
height = 18f;
2033+
lifetime = 50f;
2034+
splashDamageRadius = 62f;
2035+
splashDamage = 20f;
2036+
scaledSplashDamage = true;
2037+
backColor = hitColor = ExoPal.thermalColor;
2038+
buildingDamageMultiplier = 0.25f;
2039+
shrinkY = 0.3f;
2040+
}};
2041+
}}, "thermal-bombardment"
2042+
2043+
);
18832044
}};
18842045
aspect = new PowerTurret("aspect"){{
18852046
requirements(Category.turret, with(ExoItems.rustyCopper, 160, ExoItems.cobolt, 200, ExoItems.iron, 100, ExoItems.ameythystGeode, 150, ExoItems.litusiumAlloy, 100, ExoItems.quartz, 80));

0 commit comments

Comments
 (0)