1010import exogenesis .world .draw .DrawLoopPart ;
1111import exogenesis .world .meta .ExoEnv ;
1212import exogenesis .world .power .LightningRod ;
13+ import exogenesis .world .turrets .PowerShootTypeTurret ;
1314import exogenesis .world .turrets .SpeedupTurret ;
1415import exogenesis .graphics .ExoPal ;
1516import 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