diff --git a/res/bundles/bundle.properties b/res/bundles/bundle.properties index 5ccb1966..8e1df5ec 100644 --- a/res/bundles/bundle.properties +++ b/res/bundles/bundle.properties @@ -189,11 +189,13 @@ block.fos-cuberium-wall-large.description = Protects structures from enemy proje block.fos-helix.name = Helix block.fos-helix.description = Shoots two waving bullets at enemies. block.fos-sticker.name = Sticker -block.fos-sticker.description = Shoots sticky bullets at air enemies. Requires tokicite. +block.fos-sticker.description = Shoots long-range sticky bombs at ground enemies. Requires tokicite. block.fos-dot.name = Dot block.fos-dot.description = Shoots lasers at enemies at a very fast rate. block.fos-particulator.name = Particulator block.fos-particulator.description = Shoots a large projectile that splits into many shards that stay on ground. +block.fos-firefly.name = Firefly +block.fos-firefly.description = Burns ground targets with napalm. block.fos-pulse.name = Pulse block.fos-pulse.description = Disables enemy's weapons. block.fos-thunder.name = Thunder diff --git a/res/bundles/bundle_ru.properties b/res/bundles/bundle_ru.properties index a7e79c9a..f3e2c1c7 100644 --- a/res/bundles/bundle_ru.properties +++ b/res/bundles/bundle_ru.properties @@ -189,11 +189,13 @@ block.fos-cuberium-wall-large.description = Защищает постройки block.fos-helix.name = Спираль block.fos-helix.description = Стреляет двумя волновыми снарядами по вражеским целям. block.fos-sticker.name = Прилипатель -block.fos-sticker.description = Стреляет липучими снарядами по воздушным целям. Требует токицит. +block.fos-sticker.description = Стреляет дальнобойными липучими бомбами по наземным целям. Требует токицит. block.fos-dot.name = Точка block.fos-dot.description = Очень быстро стреляет лазерами по вражеской цели. block.fos-particulator.name = Партикулятор block.fos-particulator.description = Стреляет большим снарядом, разлетающимся на много осколков, которые остаются лежать на земле. +block.fos-firefly.name = Светлячок +block.fos-firefly.description = Поджигает наземные цели с помощью напалма. block.fos-pulse.name = Пульс block.fos-pulse.description = Отключает оружие вражеской цели. block.fos-thunder.name = Гром diff --git a/src/fos/content/FOSBlocks.java b/src/fos/content/FOSBlocks.java index edacd8fc..5aae9a0c 100644 --- a/src/fos/content/FOSBlocks.java +++ b/src/fos/content/FOSBlocks.java @@ -20,6 +20,7 @@ import mindustry.content.*; import mindustry.entities.Effect; import mindustry.entities.bullet.*; +import mindustry.entities.effect.MultiEffect; import mindustry.entities.part.*; import mindustry.entities.pattern.*; import mindustry.gen.Sounds; @@ -36,6 +37,7 @@ import mindustry.world.blocks.production.*; import mindustry.world.blocks.storage.Unloader; import mindustry.world.blocks.units.*; +import mindustry.world.consumers.ConsumeLiquidFlammable; import mindustry.world.draw.*; import mindustry.world.meta.*; import multicraft.*; @@ -64,12 +66,12 @@ public class FOSBlocks { fluidPipe, pumpjack, // POWER - tinWire, copperWire, brassWire, tinWirePole, copperWirePole, brassWirePole, windTurbine, heatGenerator, plasmaLauncher, solarPanelMedium, + tinWire, copperWire, brassWire, tinWirePole, copperWirePole, brassWirePole, windTurbine, burnerGenerator, heatGenerator, plasmaLauncher, solarPanelMedium, copperBattery, brassBattery, // DEFENSE tinWall, tinWallLarge, diamondWall, diamondWallLarge, vanadiumWall, vanadiumWallLarge, cuberiumWall, cuberiumWallLarge, - helix, sticker, dot, particulator, pulse, breakdown, rupture, thunder, cluster, judge, newJudge, + helix, sticker, dot, particulator, firefly, pulse, breakdown, rupture, thunder, cluster, judge, newJudge, matrixShieldProj, landMine, @@ -732,6 +734,91 @@ vanadium, new BasicBulletType(2f, 60){{ coolantMultiplier = 2f; requirements(Category.turret, with(tin, 200, silver, 125, silicon, 175, vanadium, 150)); }}; + firefly = new LiquidTurret("firefly"){{ + health = 2400; + size = 3; + range = 200; + reload = 1f; + inaccuracy = 5f; + shootCone = 30f; + targetAir = false; + targetGround = true; + extinguish = false; + minWarmup = 0.99f; + shootSound = Sounds.flame2; + + var fire = new MultiEffect(Fx.fire, Fx.fireSmoke); + + ammo( + arkycite, new LiquidBulletType(arkycite){{ + lifetime = 50f; + speed = 4f; + //incendAmount = 5; + damage = 15f; + pierce = true; + pierceCap = 2; + despawnHit = true; + fragOnHit = true; + hitEffect = fire; + //scaleLife = true; + + puddleSize = 10f; + puddleAmount = 10f; + puddles = 3; + orbSize = 4f; + + trailEffect = fire; + //trailColor = arkycite.color; + trailParam = 6f; + trailChance = 0.25f; + + status = StatusEffects.burning; + statusDuration = 180f; + }}, + oil, new LiquidBulletType(oil){{ + lifetime = 50f; + speed = 4f; + incendAmount = 10; + incendChance = 1f; + damage = 20f; + pierce = true; + pierceCap = 2; + despawnHit = true; + fragOnHit = true; + hitEffect = fire; + //scaleLife = true; + + puddleSize = 10f; + puddleAmount = 10f; + puddles = 3; + orbSize = 4f; + + trailEffect = fire; + //trailColor = oil.color; + trailParam = 6f; + trailChance = 0.25f; + + status = StatusEffects.melting; + statusDuration = 180f; + }} + ); + drawer = new DrawTurret("lumoni-"){{ + parts.add( + new RegionPart("-blades"){{ + progress = PartProgress.warmup; + minWarmup = 0.5f; + moveY = 2f; + }}, + new RegionPart("-side"){{ + mirror = true; + progress = PartProgress.warmup; + minWarmup = 0.5f; + moveX = moveY = 1.25f; + }} + ); + }}; + requirements(Category.turret, with(tin, 100, copper, 75, vanadium, 100)); + }}; pulse = new TractorBeamTurret("pulse"){{ health = 2400; size = 3; @@ -1303,6 +1390,16 @@ diamond, new MissileBulletType(5f, 5){{ new DrawRegion("-rotator", 15f, true) ); }}; + burnerGenerator = new ConsumeGenerator("burner-generator"){{ + health = 900; + size = 3; + liquidCapacity = 60f; + powerProduction = 15f; + consume(new ConsumeLiquidFlammable(0.4f, 0.5f){{ + filter = l -> l.flammability >= minFlammability && !l.gas; + }}); + requirements(Category.power, with(tin, 75, brass, 150, vanadium, 100)); + }}; heatGenerator = new HeatGenerator("heat-generator"){{ health = 480; size = 2; diff --git a/src/fos/content/LumoniTechTree.java b/src/fos/content/LumoniTechTree.java index 22151d46..bc123fcc 100644 --- a/src/fos/content/LumoniTechTree.java +++ b/src/fos/content/LumoniTechTree.java @@ -120,6 +120,7 @@ public static void load() { // DEFENCE node(helix, Seq.with(new OnSector(ruins)), () -> { node(sticker, () -> { + //node(firefly, /* TODO: sector handicap */ () -> {}); node(particulator, () -> { soontm(); //node(cluster)