Re-definition of all ammo and new turrets
BIN
core/assets-raw/sprites/blocks/turrets/bases/block-4-top.png
Normal file
|
After Width: | Height: | Size: 542 B |
BIN
core/assets-raw/sprites/blocks/turrets/bases/block-4.png
Normal file
|
After Width: | Height: | Size: 537 B |
BIN
core/assets-raw/sprites/blocks/turrets/turrets/meltdown.png
Normal file
|
After Width: | Height: | Size: 897 B |
|
Before Width: | Height: | Size: 682 B After Width: | Height: | Size: 682 B |
|
Before Width: | Height: | Size: 827 B After Width: | Height: | Size: 809 B |
|
Before Width: | Height: | Size: 536 B |
|
Before Width: | Height: | Size: 471 B |
|
Before Width: | Height: | Size: 422 B |
|
Before Width: | Height: | Size: 167 B |
|
Before Width: | Height: | Size: 379 B |
|
Before Width: | Height: | Size: 387 B |
|
Before Width: | Height: | Size: 180 B |
|
Before Width: | Height: | Size: 414 B |
BIN
core/assets-raw/sprites/items/item-thermite.png
Normal file
|
After Width: | Height: | Size: 234 B |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 110 KiB |
@@ -1,57 +0,0 @@
|
|||||||
package io.anuke.mindustry.content;
|
|
||||||
|
|
||||||
import com.badlogic.gdx.graphics.Color;
|
|
||||||
import io.anuke.mindustry.type.Item;
|
|
||||||
import io.anuke.mindustry.type.ItemType;
|
|
||||||
|
|
||||||
public class AmmoItems {
|
|
||||||
public static final Item
|
|
||||||
|
|
||||||
leadBullet = new Item("lead-bullet", Color.valueOf("8e85a2")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
armorPiercingBullet = new Item("armor-piercing-bullet", Color.valueOf("f9a3c7")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
homingBullet = new Item("homing-bullet", Color.valueOf("6a6c72")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
tracerBullet = new Item("tracer-bullet", Color.valueOf("ffe58b")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
compositeFlak = new Item("composite-flak", Color.valueOf("e9ead3")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
explosiveShell = new Item("explosive-shell", Color.valueOf("ff795e")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
fragShell = new Item("frag-shell", Color.valueOf("e9ead3")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
thoriumShell = new Item("thorium-shell", Color.valueOf("f9a3c7")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
swarmMissile = new Item("swarm-missile", Color.valueOf("ff795e")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
scytheMissile = new Item("scythe-missile", Color.valueOf("f9a3c7")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
incendiaryMortarShell = new Item("incendiary-mortar-shell", Color.valueOf("ffe58b")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}},
|
|
||||||
|
|
||||||
surgeMortarShell = new Item("surge-mortar-shell", Color.valueOf("bcddff")){{
|
|
||||||
type = ItemType.ammo;
|
|
||||||
}};
|
|
||||||
}
|
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
package io.anuke.mindustry.content;
|
package io.anuke.mindustry.content;
|
||||||
|
|
||||||
import io.anuke.mindustry.content.bullets.ShellBullets;
|
import io.anuke.mindustry.content.bullets.*;
|
||||||
import io.anuke.mindustry.content.bullets.StandardBullets;
|
|
||||||
import io.anuke.mindustry.content.bullets.TurretBullets;
|
|
||||||
import io.anuke.mindustry.content.fx.ShootFx;
|
import io.anuke.mindustry.content.fx.ShootFx;
|
||||||
import io.anuke.mindustry.type.AmmoType;
|
import io.anuke.mindustry.type.AmmoType;
|
||||||
|
|
||||||
@@ -10,99 +8,146 @@ public class AmmoTypes {
|
|||||||
//TODO add definitions for all ammo types
|
//TODO add definitions for all ammo types
|
||||||
public static final AmmoType
|
public static final AmmoType
|
||||||
|
|
||||||
basicIron = new AmmoType(Items.iron, StandardBullets.basicIron, 5){{
|
//bullets
|
||||||
|
|
||||||
|
bulletIron = new AmmoType(Items.iron, StandardBullets.iron, 5){{
|
||||||
shootEffect = ShootFx.shootSmall;
|
shootEffect = ShootFx.shootSmall;
|
||||||
smokeEffect = ShootFx.shootSmallSmoke;
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
basicLead = new AmmoType(Items.lead, StandardBullets.basicLead, 5){{
|
bulletLead = new AmmoType(Items.lead, StandardBullets.lead, 5){{
|
||||||
shootEffect = ShootFx.shootSmall;
|
shootEffect = ShootFx.shootSmall;
|
||||||
smokeEffect = ShootFx.shootSmallSmoke;
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
standardLead = new AmmoType(AmmoItems.leadBullet, StandardBullets.standardLead, 5){{
|
bulletSteel = new AmmoType(Items.steel, StandardBullets.steel, 5){{
|
||||||
shootEffect = ShootFx.shootSmall;
|
shootEffect = ShootFx.shootSmall;
|
||||||
smokeEffect = ShootFx.shootSmallSmoke;
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
standardArmorPiercing = new AmmoType(AmmoItems.armorPiercingBullet, StandardBullets.standardArmorPiercing, 5){{
|
bulletThorium = new AmmoType(Items.thorium, StandardBullets.thorium, 5){{
|
||||||
shootEffect = ShootFx.shootBig;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke;
|
|
||||||
}},
|
|
||||||
|
|
||||||
standardHoming = new AmmoType(AmmoItems.homingBullet, StandardBullets.standardHoming, 5){{
|
|
||||||
shootEffect = ShootFx.shootBig;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke;
|
|
||||||
}},
|
|
||||||
|
|
||||||
standardTracer = new AmmoType(AmmoItems.tracerBullet, StandardBullets.standardTracer, 5){{
|
|
||||||
shootEffect = ShootFx.shootBig;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke;
|
|
||||||
}},
|
|
||||||
|
|
||||||
basicLeadFlak = new AmmoType(Items.lead, StandardBullets.basicLeadFlak, 5){{
|
|
||||||
shootEffect = ShootFx.shootSmall;
|
shootEffect = ShootFx.shootSmall;
|
||||||
smokeEffect = ShootFx.shootSmallSmoke;
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
standardLeadFlak = new AmmoType(AmmoItems.leadBullet, StandardBullets.standardLeadFlak, 5){{
|
bulletSilicon = new AmmoType(Items.silicon, StandardBullets.homing, 5){{
|
||||||
shootEffect = ShootFx.shootSmall;
|
shootEffect = ShootFx.shootSmall;
|
||||||
smokeEffect = ShootFx.shootSmallSmoke;
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
compositeFlak = new AmmoType(AmmoItems.compositeFlak, StandardBullets.compositeFlak, 5){{
|
bulletThermite = new AmmoType(Items.thermite, StandardBullets.tracer, 5){{
|
||||||
shootEffect = ShootFx.shootSmall;
|
shootEffect = ShootFx.shootSmall;
|
||||||
smokeEffect = ShootFx.shootSmallSmoke;
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
|
//flak
|
||||||
|
|
||||||
|
flakLead = new AmmoType(Items.lead, FlakBullets.lead, 5){{
|
||||||
|
shootEffect = ShootFx.shootSmall;
|
||||||
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
|
}},
|
||||||
|
|
||||||
|
flakExplosive = new AmmoType(Items.rdx, FlakBullets.explosive, 5){{
|
||||||
|
shootEffect = ShootFx.shootSmall;
|
||||||
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
|
}},
|
||||||
|
|
||||||
|
flakPlastic = new AmmoType(Items.plastic, FlakBullets.plastic, 5){{
|
||||||
|
shootEffect = ShootFx.shootSmall;
|
||||||
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
|
}},
|
||||||
|
|
||||||
|
flakSurge = new AmmoType(Items.densealloy, FlakBullets.surge, 5){{
|
||||||
|
shootEffect = ShootFx.shootSmall;
|
||||||
|
smokeEffect = ShootFx.shootSmallSmoke;
|
||||||
|
}},
|
||||||
|
|
||||||
|
//shells
|
||||||
|
|
||||||
|
shellLead = new AmmoType(Items.lead, ShellBullets.lead, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
shellExplosive = new AmmoType(Items.rdx, ShellBullets.explosive, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
shellPlastic = new AmmoType(Items.plastic, ShellBullets.plastic, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
shellThorium = new AmmoType(Items.thorium, ShellBullets.thorium, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
//missiles
|
||||||
|
|
||||||
|
missileExplosive = new AmmoType(Items.rdx, MissileBullets.explosive, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
missileIncindiary = new AmmoType(Items.thermite, MissileBullets.incindiary, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
missileSurge = new AmmoType(Items.densealloy, MissileBullets.surge, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
//artillery
|
||||||
|
|
||||||
|
artilleryLead = new AmmoType(Items.lead, ArtilleryBullets.lead, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
artilleryThorium = new AmmoType(Items.thorium, ArtilleryBullets.thorium, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
artilleryPlastic = new AmmoType(Items.plastic, ArtilleryBullets.plastic, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
artilleryHoming = new AmmoType(Items.silicon, ArtilleryBullets.homing, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
artilleryIncindiary = new AmmoType(Items.thermite, ArtilleryBullets.incindiary, 1){{
|
||||||
|
shootEffect = ShootFx.shootBig2;
|
||||||
|
smokeEffect = ShootFx.shootBigSmoke2;
|
||||||
|
}},
|
||||||
|
|
||||||
|
//flame
|
||||||
|
|
||||||
basicFlame = new AmmoType(Liquids.oil, TurretBullets.basicFlame, 0.3f){{
|
basicFlame = new AmmoType(Liquids.oil, TurretBullets.basicFlame, 0.3f){{
|
||||||
shootEffect = ShootFx.shootSmallFlame;
|
shootEffect = ShootFx.shootSmallFlame;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
basicLeadShell = new AmmoType(Items.lead, ShellBullets.basicLeadShell, 1){{
|
//power
|
||||||
shootEffect = ShootFx.shootBig2;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke2;
|
|
||||||
}},
|
|
||||||
|
|
||||||
explosiveFragShell = new AmmoType(AmmoItems.explosiveShell, ShellBullets.explosiveShell, 1){{
|
|
||||||
shootEffect = ShootFx.shootBig2;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke2;
|
|
||||||
}},
|
|
||||||
|
|
||||||
fragShell = new AmmoType(AmmoItems.fragShell, ShellBullets.fragShell, 1){{
|
|
||||||
shootEffect = ShootFx.shootBig2;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke2;
|
|
||||||
}},
|
|
||||||
|
|
||||||
standardThoriumShell = new AmmoType(AmmoItems.thoriumShell, ShellBullets.thoriumShell, 1){{
|
|
||||||
shootEffect = ShootFx.shootBig2;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke2;
|
|
||||||
}},
|
|
||||||
|
|
||||||
swarmMissile = new AmmoType(AmmoItems.swarmMissile, ShellBullets.swarmMissile, 1){{
|
|
||||||
shootEffect = ShootFx.shootBig2;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke2;
|
|
||||||
}},
|
|
||||||
|
|
||||||
scytheMissile = new AmmoType(AmmoItems.scytheMissile, ShellBullets.scytheMissile, 1){{
|
|
||||||
shootEffect = ShootFx.shootBig2;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke2;
|
|
||||||
}},
|
|
||||||
|
|
||||||
incendiaryMortar = new AmmoType(AmmoItems.incendiaryMortarShell, ShellBullets.incendiaryMortar, 1){{
|
|
||||||
shootEffect = ShootFx.shootBig2;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke2;
|
|
||||||
}},
|
|
||||||
|
|
||||||
surgeMortar = new AmmoType(AmmoItems.surgeMortarShell, ShellBullets.surgeMortar, 1){{
|
|
||||||
shootEffect = ShootFx.shootBig2;
|
|
||||||
smokeEffect = ShootFx.shootBigSmoke2;
|
|
||||||
}},
|
|
||||||
|
|
||||||
lancerLaser = new AmmoType(TurretBullets.lancerLaser),
|
lancerLaser = new AmmoType(TurretBullets.lancerLaser),
|
||||||
|
|
||||||
lightning = new AmmoType(TurretBullets.lightning),
|
lightning = new AmmoType(TurretBullets.lightning),
|
||||||
|
|
||||||
|
spectreLaser = new AmmoType(TurretBullets.lancerLaser),
|
||||||
|
|
||||||
|
meltdownLaser = new AmmoType(TurretBullets.lancerLaser),
|
||||||
|
|
||||||
|
fuseShotgun = new AmmoType(Items.iron, TurretBullets.fuseShot, 0.1f),
|
||||||
|
|
||||||
|
//liquid
|
||||||
|
|
||||||
oil = new AmmoType(Liquids.oil, TurretBullets.oilShot, 0.3f),
|
oil = new AmmoType(Liquids.oil, TurretBullets.oilShot, 0.3f),
|
||||||
|
|
||||||
water = new AmmoType(Liquids.water, TurretBullets.waterShot, 0.3f),
|
water = new AmmoType(Liquids.water, TurretBullets.waterShot, 0.3f),
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ public class Items {
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
titanium = new Item("titanium", Color.valueOf("8da1e3")){{
|
titanium = new Item("titanium", Color.valueOf("8da1e3")){{
|
||||||
|
type = ItemType.material;
|
||||||
hardness = 3;
|
hardness = 3;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
@@ -62,12 +63,16 @@ public class Items {
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
sand = new Item("sand", Color.valueOf("e3d39e")){{
|
sand = new Item("sand", Color.valueOf("e3d39e")){{
|
||||||
|
|
||||||
fluxiness = 0.5f;
|
fluxiness = 0.5f;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
rdx = new Item("rdx", Color.valueOf("ff795e")){{
|
rdx = new Item("rdx", Color.valueOf("ff795e")){{
|
||||||
flammability = 0.2f;
|
flammability = 0.2f;
|
||||||
explosiveness = 0.6f;
|
explosiveness = 0.6f;
|
||||||
|
}},
|
||||||
|
|
||||||
|
thermite = new Item("thermite", Color.valueOf("ff795e")){{
|
||||||
|
flammability = 0.7f;
|
||||||
|
explosiveness = 0.2f;
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ public class Recipes {
|
|||||||
new Recipe(weapon, WeaponBlocks.crux, new ItemStack(Items.steel, 25), new ItemStack(Items.titanium, 15));
|
new Recipe(weapon, WeaponBlocks.crux, new ItemStack(Items.steel, 25), new ItemStack(Items.titanium, 15));
|
||||||
new Recipe(weapon, WeaponBlocks.arc, new ItemStack(Items.steel, 20), new ItemStack(Items.titanium, 25), new ItemStack(Items.densealloy, 15));
|
new Recipe(weapon, WeaponBlocks.arc, new ItemStack(Items.steel, 20), new ItemStack(Items.titanium, 25), new ItemStack(Items.densealloy, 15));
|
||||||
new Recipe(weapon, WeaponBlocks.swarmer, new ItemStack(Items.steel, 80), new ItemStack(Items.titanium, 70), new ItemStack(Items.densealloy, 60));
|
new Recipe(weapon, WeaponBlocks.swarmer, new ItemStack(Items.steel, 80), new ItemStack(Items.titanium, 70), new ItemStack(Items.densealloy, 60));
|
||||||
|
new Recipe(weapon, WeaponBlocks.ripple, new ItemStack(Items.steel, 80), new ItemStack(Items.titanium, 70), new ItemStack(Items.densealloy, 60));
|
||||||
new Recipe(weapon, WeaponBlocks.fuse, new ItemStack(Items.steel, 70), new ItemStack(Items.titanium, 50), new ItemStack(Items.densealloy, 55));
|
new Recipe(weapon, WeaponBlocks.fuse, new ItemStack(Items.steel, 70), new ItemStack(Items.titanium, 50), new ItemStack(Items.densealloy, 55));
|
||||||
new Recipe(weapon, WeaponBlocks.spectre, new ItemStack(Items.steel, 70), new ItemStack(Items.titanium, 50), new ItemStack(Items.densealloy, 55));
|
new Recipe(weapon, WeaponBlocks.spectre, new ItemStack(Items.steel, 70), new ItemStack(Items.titanium, 50), new ItemStack(Items.densealloy, 55));
|
||||||
new Recipe(weapon, WeaponBlocks.meltdown, new ItemStack(Items.steel, 70), new ItemStack(Items.titanium, 50), new ItemStack(Items.densealloy, 55));
|
new Recipe(weapon, WeaponBlocks.meltdown, new ItemStack(Items.steel, 70), new ItemStack(Items.titanium, 50), new ItemStack(Items.densealloy, 55));
|
||||||
|
|||||||
@@ -11,6 +11,6 @@ public class Weapons {
|
|||||||
reload = 15f;
|
reload = 15f;
|
||||||
roundrobin = true;
|
roundrobin = true;
|
||||||
ejectEffect = ShootFx.shellEjectSmall;
|
ejectEffect = ShootFx.shellEjectSmall;
|
||||||
setAmmo(AmmoTypes.basicIron);
|
setAmmo(AmmoTypes.bulletIron);
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ public class Blocks {
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
space = new Floor("space") {{
|
space = new Floor("space") {{
|
||||||
|
placeableOn = false;
|
||||||
variants = 0;
|
variants = 0;
|
||||||
cacheLayer = CacheLayer.space;
|
cacheLayer = CacheLayer.space;
|
||||||
solid = true;
|
solid = true;
|
||||||
@@ -62,6 +63,7 @@ public class Blocks {
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
water = new Floor("water") {{
|
water = new Floor("water") {{
|
||||||
|
placeableOn = false;
|
||||||
liquidColor = Color.valueOf("546bb3");
|
liquidColor = Color.valueOf("546bb3");
|
||||||
speedMultiplier = 0.5f;
|
speedMultiplier = 0.5f;
|
||||||
variants = 0;
|
variants = 0;
|
||||||
@@ -73,6 +75,7 @@ public class Blocks {
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
lava = new Floor("lava") {{
|
lava = new Floor("lava") {{
|
||||||
|
placeableOn = false;
|
||||||
liquidColor = Color.valueOf("ed5334");
|
liquidColor = Color.valueOf("ed5334");
|
||||||
speedMultiplier = 0.2f;
|
speedMultiplier = 0.2f;
|
||||||
damageTaken = 0.1f;
|
damageTaken = 0.1f;
|
||||||
@@ -85,6 +88,7 @@ public class Blocks {
|
|||||||
}},
|
}},
|
||||||
|
|
||||||
oil = new Floor("oil") {{
|
oil = new Floor("oil") {{
|
||||||
|
placeableOn = false;
|
||||||
liquidColor = Color.valueOf("292929");
|
liquidColor = Color.valueOf("292929");
|
||||||
status = StatusEffects.oiled;
|
status = StatusEffects.oiled;
|
||||||
statusIntensity = 1f;
|
statusIntensity = 1f;
|
||||||
|
|||||||
@@ -15,14 +15,14 @@ public class WeaponBlocks{
|
|||||||
public static Block
|
public static Block
|
||||||
|
|
||||||
duo = new DoubleTurret("duo"){{
|
duo = new DoubleTurret("duo"){{
|
||||||
ammoTypes = new AmmoType[]{AmmoTypes.basicIron, AmmoTypes.basicLead, AmmoTypes.standardLead, AmmoTypes.standardTracer};
|
ammoTypes = new AmmoType[]{AmmoTypes.bulletIron, AmmoTypes.bulletLead, AmmoTypes.bulletSteel, AmmoTypes.bulletThermite};
|
||||||
reload = 25f;
|
reload = 25f;
|
||||||
restitution = 0.03f;
|
restitution = 0.03f;
|
||||||
ammoUseEffect = ShootFx.shellEjectSmall;
|
ammoUseEffect = ShootFx.shellEjectSmall;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
scatter = new BurstTurret("scatter") {{
|
scatter = new BurstTurret("scatter") {{
|
||||||
ammoTypes = new AmmoType[]{AmmoTypes.basicLeadFlak, AmmoTypes.standardLeadFlak, AmmoTypes.compositeFlak};
|
ammoTypes = new AmmoType[]{AmmoTypes.flakLead, AmmoTypes.flakExplosive, AmmoTypes.flakPlastic};
|
||||||
ammoPerShot = 1;
|
ammoPerShot = 1;
|
||||||
shots = 3;
|
shots = 3;
|
||||||
reload = 60f;
|
reload = 60f;
|
||||||
@@ -39,9 +39,11 @@ public class WeaponBlocks{
|
|||||||
shootCone = 50f;
|
shootCone = 50f;
|
||||||
ammoUseEffect = ShootFx.shellEjectSmall;
|
ammoUseEffect = ShootFx.shellEjectSmall;
|
||||||
|
|
||||||
drawer = (tile, entity) -> {
|
drawer = (tile, entity) -> Draw.rect(entity.target != null ? name + "-shoot" : name, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
|
||||||
Draw.rect(entity.target != null ? name + "-shoot" : name, tile.drawx() + tr2.x, tile.drawy() + tr2.y, entity.rotation - 90);
|
}},
|
||||||
};
|
|
||||||
|
hail = new ItemTurret("hail") {{
|
||||||
|
ammoTypes = new AmmoType[]{AmmoTypes.artilleryLead, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary};
|
||||||
}},
|
}},
|
||||||
|
|
||||||
wave = new LiquidTurret("wave") {{
|
wave = new LiquidTurret("wave") {{
|
||||||
@@ -67,7 +69,7 @@ public class WeaponBlocks{
|
|||||||
crux = new ItemTurret("crux"){{
|
crux = new ItemTurret("crux"){{
|
||||||
size = 2;
|
size = 2;
|
||||||
range = 100f;
|
range = 100f;
|
||||||
ammoTypes = new AmmoType[]{AmmoTypes.basicLeadShell, AmmoTypes.explosiveFragShell, AmmoTypes.fragShell, AmmoTypes.standardThoriumShell};
|
ammoTypes = new AmmoType[]{AmmoTypes.shellExplosive, AmmoTypes.shellLead, AmmoTypes.shellPlastic, AmmoTypes.shellThorium};
|
||||||
reload = 70f;
|
reload = 70f;
|
||||||
restitution = 0.03f;
|
restitution = 0.03f;
|
||||||
ammoEjectBack = 3f;
|
ammoEjectBack = 3f;
|
||||||
@@ -122,21 +124,54 @@ public class WeaponBlocks{
|
|||||||
size = 2;
|
size = 2;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
swarmer = new ItemTurret("missileturret") {{
|
swarmer = new ItemTurret("swarmer") {{
|
||||||
ammoTypes = new AmmoType[]{AmmoTypes.basicLeadShell, AmmoTypes.explosiveFragShell, AmmoTypes.fragShell, AmmoTypes.standardThoriumShell};
|
ammoTypes = new AmmoType[]{AmmoTypes.missileExplosive, AmmoTypes.missileIncindiary, AmmoTypes.missileSurge};
|
||||||
size = 2;
|
size = 2;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
fuse = new ItemTurret("fuse") {{
|
ripple = new ItemTurret("ripple") {{
|
||||||
ammoTypes = new AmmoType[]{AmmoTypes.basicLeadShell, AmmoTypes.explosiveFragShell, AmmoTypes.fragShell, AmmoTypes.standardThoriumShell};
|
ammoTypes = new AmmoType[]{AmmoTypes.artilleryLead, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary, AmmoTypes.artilleryPlastic, AmmoTypes.artilleryThorium};
|
||||||
size = 3;
|
size = 3;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
spectre = new PowerTurret("spectre") {{
|
cyclone = new ItemTurret("cyclone") {{
|
||||||
|
ammoTypes = new AmmoType[]{AmmoTypes.flakLead, AmmoTypes.flakExplosive, AmmoTypes.flakPlastic, AmmoTypes.flakSurge};
|
||||||
size = 3;
|
size = 3;
|
||||||
}},
|
}},
|
||||||
|
|
||||||
|
fuse = new ItemTurret("fuse") {{
|
||||||
|
//TODO make it use power
|
||||||
|
ammoTypes = new AmmoType[]{AmmoTypes.fuseShotgun};
|
||||||
|
size = 3;
|
||||||
|
}},
|
||||||
|
|
||||||
|
spectre = new LaserTurret("spectre") {{
|
||||||
|
range = 70f;
|
||||||
|
chargeTime = 70f;
|
||||||
|
chargeMaxDelay = 30f;
|
||||||
|
chargeEffects = 7;
|
||||||
|
shootType = AmmoTypes.spectreLaser;
|
||||||
|
recoil = 2f;
|
||||||
|
reload = 130f;
|
||||||
|
cooldown = 0.03f;
|
||||||
|
shootEffect = ShootFx.lancerLaserShoot;
|
||||||
|
smokeEffect = ShootFx.lancerLaserShootSmoke;
|
||||||
|
chargeEffect = ShootFx.lancerLaserCharge;
|
||||||
|
chargeBeginEffect = ShootFx.lancerLaserChargeBegin;
|
||||||
|
heatColor = Color.RED;
|
||||||
|
size = 3;
|
||||||
|
}},
|
||||||
|
|
||||||
|
eraser = new ItemTurret("eraser"){{
|
||||||
|
ammoTypes = new AmmoType[]{AmmoTypes.bulletIron, AmmoTypes.bulletLead, AmmoTypes.bulletSteel, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon};
|
||||||
|
reload = 25f;
|
||||||
|
restitution = 0.03f;
|
||||||
|
ammoUseEffect = ShootFx.shellEjectSmall;
|
||||||
|
size = 4;
|
||||||
|
}},
|
||||||
|
|
||||||
meltdown = new PowerTurret("meltdown") {{
|
meltdown = new PowerTurret("meltdown") {{
|
||||||
size = 3;
|
shootType = AmmoTypes.meltdownLaser;
|
||||||
|
size = 4;
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,81 @@
|
|||||||
|
package io.anuke.mindustry.content.bullets;
|
||||||
|
|
||||||
|
import io.anuke.mindustry.content.fx.BulletFx;
|
||||||
|
import io.anuke.mindustry.entities.bullet.BasicBulletType;
|
||||||
|
import io.anuke.mindustry.entities.bullet.BulletType;
|
||||||
|
|
||||||
|
public class ArtilleryBullets {
|
||||||
|
public static final BulletType
|
||||||
|
|
||||||
|
lead = new BasicBulletType(3f, 0) {
|
||||||
|
{
|
||||||
|
hiteffect = BulletFx.flakExplosion;
|
||||||
|
knockback = 0.8f;
|
||||||
|
lifetime = 90f;
|
||||||
|
drag = 0.01f;
|
||||||
|
bulletWidth = bulletHeight = 9f;
|
||||||
|
bulletSprite = "frag";
|
||||||
|
bulletShrink = 0.1f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
thorium = new BasicBulletType(3f, 0) {
|
||||||
|
{
|
||||||
|
hiteffect = BulletFx.flakExplosion;
|
||||||
|
knockback = 0.8f;
|
||||||
|
lifetime = 90f;
|
||||||
|
drag = 0.01f;
|
||||||
|
bulletWidth = bulletHeight = 9f;
|
||||||
|
bulletSprite = "frag";
|
||||||
|
bulletShrink = 0.1f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
plastic = new BasicBulletType(3f, 0) {
|
||||||
|
{
|
||||||
|
hiteffect = BulletFx.flakExplosion;
|
||||||
|
knockback = 0.8f;
|
||||||
|
lifetime = 90f;
|
||||||
|
drag = 0.01f;
|
||||||
|
bulletWidth = bulletHeight = 9f;
|
||||||
|
bulletSprite = "frag";
|
||||||
|
bulletShrink = 0.1f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
homing = new BasicBulletType(3f, 0) {
|
||||||
|
{
|
||||||
|
hiteffect = BulletFx.flakExplosion;
|
||||||
|
knockback = 0.8f;
|
||||||
|
lifetime = 90f;
|
||||||
|
drag = 0.01f;
|
||||||
|
bulletWidth = bulletHeight = 9f;
|
||||||
|
bulletSprite = "frag";
|
||||||
|
bulletShrink = 0.1f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
incindiary = new BasicBulletType(3f, 0) {
|
||||||
|
{
|
||||||
|
hiteffect = BulletFx.flakExplosion;
|
||||||
|
knockback = 0.8f;
|
||||||
|
lifetime = 90f;
|
||||||
|
drag = 0.01f;
|
||||||
|
bulletWidth = bulletHeight = 9f;
|
||||||
|
bulletSprite = "frag";
|
||||||
|
bulletShrink = 0.1f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
surge = new BasicBulletType(3f, 0) {
|
||||||
|
{
|
||||||
|
hiteffect = BulletFx.flakExplosion;
|
||||||
|
knockback = 0.8f;
|
||||||
|
lifetime = 90f;
|
||||||
|
drag = 0.01f;
|
||||||
|
bulletWidth = bulletHeight = 9f;
|
||||||
|
bulletSprite = "frag";
|
||||||
|
bulletShrink = 0.1f;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
36
core/src/io/anuke/mindustry/content/bullets/FlakBullets.java
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
package io.anuke.mindustry.content.bullets;
|
||||||
|
|
||||||
|
import io.anuke.mindustry.entities.bullet.BasicBulletType;
|
||||||
|
import io.anuke.mindustry.entities.bullet.BulletType;
|
||||||
|
|
||||||
|
public class FlakBullets {
|
||||||
|
public static final BulletType
|
||||||
|
|
||||||
|
lead = new BasicBulletType(3f, 5) {
|
||||||
|
{
|
||||||
|
bulletWidth = 7f;
|
||||||
|
bulletHeight = 9f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
plastic = new BasicBulletType(3f, 5) {
|
||||||
|
{
|
||||||
|
bulletWidth = 7f;
|
||||||
|
bulletHeight = 9f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
explosive = new BasicBulletType(3f, 5) {
|
||||||
|
{
|
||||||
|
bulletWidth = 7f;
|
||||||
|
bulletHeight = 9f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
surge = new BasicBulletType(3f, 5) {
|
||||||
|
{
|
||||||
|
bulletWidth = 7f;
|
||||||
|
bulletHeight = 9f;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package io.anuke.mindustry.content.bullets;
|
||||||
|
|
||||||
|
import io.anuke.mindustry.entities.bullet.BasicBulletType;
|
||||||
|
import io.anuke.mindustry.entities.bullet.BulletType;
|
||||||
|
|
||||||
|
public class MissileBullets {
|
||||||
|
public static final BulletType
|
||||||
|
|
||||||
|
explosive = new BasicBulletType(3f, 5) {
|
||||||
|
{
|
||||||
|
bulletWidth = 7f;
|
||||||
|
bulletHeight = 9f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
incindiary = new BasicBulletType(3f, 5) {
|
||||||
|
{
|
||||||
|
bulletWidth = 7f;
|
||||||
|
bulletHeight = 9f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
surge = new BasicBulletType(3f, 5) {
|
||||||
|
{
|
||||||
|
bulletWidth = 7f;
|
||||||
|
bulletHeight = 9f;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -8,20 +8,20 @@ import io.anuke.mindustry.entities.bullet.BulletType;
|
|||||||
public class ShellBullets {
|
public class ShellBullets {
|
||||||
public static final BulletType
|
public static final BulletType
|
||||||
|
|
||||||
basicLeadShell = new BasicBulletType(3f, 0) {
|
lead = new BasicBulletType(3f, 0) {
|
||||||
{
|
{
|
||||||
hiteffect = BulletFx.flakExplosion;
|
hiteffect = BulletFx.flakExplosion;
|
||||||
knockback = 0.8f;
|
knockback = 0.8f;
|
||||||
lifetime = 90f;
|
lifetime = 90f;
|
||||||
drag = 0.01f;
|
drag = 0.01f;
|
||||||
bulletWidth = bulletHeight = 9f;
|
bulletWidth = bulletHeight = 9f;
|
||||||
fragBullet = basicLeadShard;
|
fragBullet = leadShard;
|
||||||
bulletSprite = "frag";
|
bulletSprite = "frag";
|
||||||
bulletShrink = 0.1f;
|
bulletShrink = 0.1f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
basicLeadShard = new BasicBulletType(3f, 0) {
|
leadShard = new BasicBulletType(3f, 0) {
|
||||||
{
|
{
|
||||||
drag = 0.1f;
|
drag = 0.1f;
|
||||||
hiteffect = Fx.none;
|
hiteffect = Fx.none;
|
||||||
@@ -34,66 +34,14 @@ public class ShellBullets {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
explosiveShell = new BasicBulletType(3f, 0) {
|
thorium = new BasicBulletType(3f, 0) {
|
||||||
{
|
{
|
||||||
hiteffect = BulletFx.flakExplosion;
|
hiteffect = BulletFx.flakExplosion;
|
||||||
knockback = 0.8f;
|
knockback = 0.8f;
|
||||||
lifetime = 90f;
|
lifetime = 90f;
|
||||||
drag = 0.01f;
|
drag = 0.01f;
|
||||||
bulletWidth = bulletHeight = 9f;
|
bulletWidth = bulletHeight = 9f;
|
||||||
fragBullet = basicLeadShard;
|
fragBullet = leadShard;
|
||||||
bulletSprite = "frag";
|
|
||||||
bulletShrink = 0.1f;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
explosiveShard = new BasicBulletType(3f, 0) {
|
|
||||||
{
|
|
||||||
drag = 0.1f;
|
|
||||||
hiteffect = Fx.none;
|
|
||||||
despawneffect = Fx.none;
|
|
||||||
hitsize = 4;
|
|
||||||
lifetime = 20f;
|
|
||||||
bulletWidth = 9f;
|
|
||||||
bulletHeight = 11f;
|
|
||||||
bulletShrink = 1f;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
fragShell = new BasicBulletType(3f, 0) {
|
|
||||||
{
|
|
||||||
hiteffect = BulletFx.flakExplosion;
|
|
||||||
knockback = 0.8f;
|
|
||||||
lifetime = 90f;
|
|
||||||
drag = 0.01f;
|
|
||||||
bulletWidth = bulletHeight = 9f;
|
|
||||||
fragBullet = basicLeadShard;
|
|
||||||
bulletSprite = "frag";
|
|
||||||
bulletShrink = 0.1f;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
fragShard = new BasicBulletType(3f, 0) {
|
|
||||||
{
|
|
||||||
drag = 0.1f;
|
|
||||||
hiteffect = Fx.none;
|
|
||||||
despawneffect = Fx.none;
|
|
||||||
hitsize = 4;
|
|
||||||
lifetime = 20f;
|
|
||||||
bulletWidth = 9f;
|
|
||||||
bulletHeight = 11f;
|
|
||||||
bulletShrink = 1f;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
thoriumShell = new BasicBulletType(3f, 0) {
|
|
||||||
{
|
|
||||||
hiteffect = BulletFx.flakExplosion;
|
|
||||||
knockback = 0.8f;
|
|
||||||
lifetime = 90f;
|
|
||||||
drag = 0.01f;
|
|
||||||
bulletWidth = bulletHeight = 9f;
|
|
||||||
fragBullet = basicLeadShard;
|
|
||||||
bulletSprite = "frag";
|
bulletSprite = "frag";
|
||||||
bulletShrink = 0.1f;
|
bulletShrink = 0.1f;
|
||||||
}
|
}
|
||||||
@@ -112,53 +60,66 @@ public class ShellBullets {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
swarmMissile = new BasicBulletType(3f, 0) {
|
plastic = new BasicBulletType(3f, 0) {
|
||||||
{
|
{
|
||||||
hiteffect = BulletFx.flakExplosion;
|
hiteffect = BulletFx.flakExplosion;
|
||||||
knockback = 0.8f;
|
knockback = 0.8f;
|
||||||
lifetime = 90f;
|
lifetime = 90f;
|
||||||
drag = 0.01f;
|
drag = 0.01f;
|
||||||
bulletWidth = bulletHeight = 9f;
|
bulletWidth = bulletHeight = 9f;
|
||||||
fragBullet = basicLeadShard;
|
fragBullet = leadShard;
|
||||||
bulletSprite = "frag";
|
bulletSprite = "frag";
|
||||||
bulletShrink = 0.1f;
|
bulletShrink = 0.1f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
scytheMissile = new BasicBulletType(3f, 0) {
|
plasticShard = new BasicBulletType(3f, 0) {
|
||||||
|
{
|
||||||
|
drag = 0.1f;
|
||||||
|
hiteffect = Fx.none;
|
||||||
|
despawneffect = Fx.none;
|
||||||
|
hitsize = 4;
|
||||||
|
lifetime = 20f;
|
||||||
|
bulletWidth = 9f;
|
||||||
|
bulletHeight = 11f;
|
||||||
|
bulletShrink = 1f;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
explosive = new BasicBulletType(3f, 0) {
|
||||||
{
|
{
|
||||||
hiteffect = BulletFx.flakExplosion;
|
hiteffect = BulletFx.flakExplosion;
|
||||||
knockback = 0.8f;
|
knockback = 0.8f;
|
||||||
lifetime = 90f;
|
lifetime = 90f;
|
||||||
drag = 0.01f;
|
drag = 0.01f;
|
||||||
bulletWidth = bulletHeight = 9f;
|
bulletWidth = bulletHeight = 9f;
|
||||||
fragBullet = basicLeadShard;
|
fragBullet = leadShard;
|
||||||
bulletSprite = "frag";
|
bulletSprite = "frag";
|
||||||
bulletShrink = 0.1f;
|
bulletShrink = 0.1f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
incendiaryMortar = new BasicBulletType(3f, 0) {
|
explosiveShard = new BasicBulletType(3f, 0) {
|
||||||
{
|
{
|
||||||
hiteffect = BulletFx.flakExplosion;
|
drag = 0.1f;
|
||||||
knockback = 0.8f;
|
hiteffect = Fx.none;
|
||||||
lifetime = 90f;
|
despawneffect = Fx.none;
|
||||||
drag = 0.01f;
|
hitsize = 4;
|
||||||
bulletWidth = bulletHeight = 9f;
|
lifetime = 20f;
|
||||||
fragBullet = basicLeadShard;
|
bulletWidth = 9f;
|
||||||
bulletSprite = "frag";
|
bulletHeight = 11f;
|
||||||
bulletShrink = 0.1f;
|
bulletShrink = 1f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
surgeMortar = new BasicBulletType(3f, 0) {
|
incindiary = new BasicBulletType(3f, 0) {
|
||||||
{
|
{
|
||||||
hiteffect = BulletFx.flakExplosion;
|
hiteffect = BulletFx.flakExplosion;
|
||||||
knockback = 0.8f;
|
knockback = 0.8f;
|
||||||
lifetime = 90f;
|
lifetime = 90f;
|
||||||
drag = 0.01f;
|
drag = 0.01f;
|
||||||
bulletWidth = bulletHeight = 9f;
|
bulletWidth = bulletHeight = 9f;
|
||||||
fragBullet = basicLeadShard;
|
fragBullet = leadShard;
|
||||||
bulletSprite = "frag";
|
bulletSprite = "frag";
|
||||||
bulletShrink = 0.1f;
|
bulletShrink = 0.1f;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,63 +6,42 @@ import io.anuke.mindustry.entities.bullet.BulletType;
|
|||||||
public class StandardBullets {
|
public class StandardBullets {
|
||||||
public static final BulletType
|
public static final BulletType
|
||||||
|
|
||||||
basicIron = new BasicBulletType(3f, 5) {
|
iron = new BasicBulletType(3f, 5) {
|
||||||
{
|
{
|
||||||
bulletWidth = 7f;
|
bulletWidth = 7f;
|
||||||
bulletHeight = 9f;
|
bulletHeight = 9f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
basicLead = new BasicBulletType(3f, 5) {
|
lead = new BasicBulletType(3f, 5) {
|
||||||
{
|
{
|
||||||
bulletWidth = 7f;
|
bulletWidth = 7f;
|
||||||
bulletHeight = 9f;
|
bulletHeight = 9f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
standardLead = new BasicBulletType(3f, 5) {
|
steel = new BasicBulletType(3f, 5) {
|
||||||
{
|
{
|
||||||
bulletWidth = 7f;
|
bulletWidth = 7f;
|
||||||
bulletHeight = 9f;
|
bulletHeight = 9f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
standardArmorPiercing = new BasicBulletType(3f, 5) {
|
thorium = new BasicBulletType(3f, 5) {
|
||||||
{
|
{
|
||||||
bulletWidth = 7f;
|
bulletWidth = 7f;
|
||||||
bulletHeight = 9f;
|
bulletHeight = 9f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
standardHoming = new BasicBulletType(3f, 5) {
|
homing = new BasicBulletType(3f, 5) {
|
||||||
{
|
{
|
||||||
bulletWidth = 7f;
|
bulletWidth = 7f;
|
||||||
bulletHeight = 9f;
|
bulletHeight = 9f;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
standardTracer = new BasicBulletType(3f, 5) {
|
tracer = new BasicBulletType(3f, 5) {
|
||||||
{
|
|
||||||
bulletWidth = 7f;
|
|
||||||
bulletHeight = 9f;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
basicLeadFlak = new BasicBulletType(3f, 5) {
|
|
||||||
{
|
|
||||||
bulletWidth = 7f;
|
|
||||||
bulletHeight = 9f;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
standardLeadFlak = new BasicBulletType(3f, 5) {
|
|
||||||
{
|
|
||||||
bulletWidth = 7f;
|
|
||||||
bulletHeight = 9f;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
compositeFlak = new BasicBulletType(3f, 5) {
|
|
||||||
{
|
{
|
||||||
bulletWidth = 7f;
|
bulletWidth = 7f;
|
||||||
bulletHeight = 9f;
|
bulletHeight = 9f;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class TurretBullets {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void draw(Bullet b) {
|
public void draw(Bullet b) {
|
||||||
//TODO add color to the bullet
|
//TODO add color to the bullet depending on the color of the flame it came from
|
||||||
Draw.color(Palette.lightFlame, Palette.darkFlame, Color.GRAY, b.fin());
|
Draw.color(Palette.lightFlame, Palette.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();
|
Draw.reset();
|
||||||
@@ -117,6 +117,10 @@ public class TurretBullets {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
fuseShot = new BulletType(0.01f, 100) {
|
||||||
|
//TODO
|
||||||
|
},
|
||||||
|
|
||||||
waterShot = new LiquidBulletType(Liquids.water) {
|
waterShot = new LiquidBulletType(Liquids.water) {
|
||||||
{
|
{
|
||||||
status = StatusEffects.wet;
|
status = StatusEffects.wet;
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package io.anuke.mindustry.core;
|
|||||||
|
|
||||||
import io.anuke.mindustry.content.*;
|
import io.anuke.mindustry.content.*;
|
||||||
import io.anuke.mindustry.content.blocks.*;
|
import io.anuke.mindustry.content.blocks.*;
|
||||||
|
import io.anuke.mindustry.content.bullets.*;
|
||||||
import io.anuke.mindustry.entities.StatusEffect;
|
import io.anuke.mindustry.entities.StatusEffect;
|
||||||
|
import io.anuke.mindustry.entities.bullet.BulletType;
|
||||||
import io.anuke.mindustry.entities.units.UnitType;
|
import io.anuke.mindustry.entities.units.UnitType;
|
||||||
import io.anuke.mindustry.type.Liquid;
|
import io.anuke.mindustry.type.Liquid;
|
||||||
import io.anuke.mindustry.world.Block;
|
import io.anuke.mindustry.world.Block;
|
||||||
@@ -30,7 +32,6 @@ public class ContentLoader {
|
|||||||
|
|
||||||
//items
|
//items
|
||||||
new Items(),
|
new Items(),
|
||||||
new AmmoItems(),
|
|
||||||
|
|
||||||
//liquids
|
//liquids
|
||||||
new Liquids(),
|
new Liquids(),
|
||||||
@@ -44,6 +45,15 @@ public class ContentLoader {
|
|||||||
//units
|
//units
|
||||||
new UnitTypes(),
|
new UnitTypes(),
|
||||||
|
|
||||||
|
|
||||||
|
//bullets
|
||||||
|
new ArtilleryBullets(),
|
||||||
|
new FlakBullets(),
|
||||||
|
new MissileBullets(),
|
||||||
|
new ShellBullets(),
|
||||||
|
new StandardBullets(),
|
||||||
|
new TurretBullets(),
|
||||||
|
|
||||||
//ammotypes
|
//ammotypes
|
||||||
new AmmoTypes(),
|
new AmmoTypes(),
|
||||||
|
|
||||||
@@ -59,9 +69,9 @@ public class ContentLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Log.info("--- CONTENT INFO ---");
|
Log.info("--- CONTENT INFO ---");
|
||||||
Log.info("Blocks loaded: {0}\nItems loaded: {1}\nLiquids loaded: {2}\nUpgrades loaded: {3}\nUnits loaded: {4}\nAmmo types loaded: {5}\nStatus effects loaded: {6}\nRecipes loaded: {7}\nTotal content classes: {8}",
|
Log.info("Blocks loaded: {0}\nItems loaded: {1}\nLiquids loaded: {2}\nUpgrades loaded: {3}\nUnits loaded: {4}\nAmmo types loaded: {5}\nBullet types loaded: {6}\nStatus effects loaded: {7}\nRecipes loaded: {8}\nTotal content classes: {9}",
|
||||||
Block.getAllBlocks().size, io.anuke.mindustry.type.Item.getAllItems().size, Liquid.getAllLiquids().size,
|
Block.getAllBlocks().size, io.anuke.mindustry.type.Item.getAllItems().size, Liquid.getAllLiquids().size,
|
||||||
io.anuke.mindustry.type.Mech.getAllUpgrades().size, UnitType.getAllTypes().size, io.anuke.mindustry.type.AmmoType.getAllTypes().size, StatusEffect.getAllEffects().size, io.anuke.mindustry.type.Recipe.getAllRecipes().size, content.length);
|
io.anuke.mindustry.type.Mech.getAllUpgrades().size, UnitType.getAllTypes().size, io.anuke.mindustry.type.AmmoType.getAllTypes().size, BulletType.all().size, StatusEffect.getAllEffects().size, io.anuke.mindustry.type.Recipe.getAllRecipes().size, content.length);
|
||||||
|
|
||||||
Log.info("-------------------");
|
Log.info("-------------------");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class Logic extends Module {
|
|||||||
for(int i = 0; i < 10; i ++){
|
for(int i = 0; i < 10; i ++){
|
||||||
BaseUnit unit = new BaseUnit(UnitTypes.vtol, Team.red);
|
BaseUnit unit = new BaseUnit(UnitTypes.vtol, Team.red);
|
||||||
Vector2 offset = new Vector2().setToRandomDirection().scl(world.width()/2f*tilesize).add(world.width()/2f*tilesize, world.height()/2f*tilesize);
|
Vector2 offset = new Vector2().setToRandomDirection().scl(world.width()/2f*tilesize).add(world.width()/2f*tilesize, world.height()/2f*tilesize);
|
||||||
unit.inventory.addAmmo(AmmoTypes.basicIron);
|
unit.inventory.addAmmo(AmmoTypes.bulletIron);
|
||||||
unit.inventory.setInfiniteAmmo(true);
|
unit.inventory.setInfiniteAmmo(true);
|
||||||
unit.set(offset.x, offset.y).add();
|
unit.set(offset.x, offset.y).add();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import com.badlogic.gdx.graphics.Color;
|
|||||||
import com.badlogic.gdx.utils.IntMap;
|
import com.badlogic.gdx.utils.IntMap;
|
||||||
import com.badlogic.gdx.utils.IntSet;
|
import com.badlogic.gdx.utils.IntSet;
|
||||||
import io.anuke.mindustry.core.GameState.State;
|
import io.anuke.mindustry.core.GameState.State;
|
||||||
import io.anuke.mindustry.entities.bullet.BulletType;
|
|
||||||
import io.anuke.mindustry.entities.Player;
|
import io.anuke.mindustry.entities.Player;
|
||||||
import io.anuke.mindustry.entities.SyncEntity;
|
import io.anuke.mindustry.entities.SyncEntity;
|
||||||
|
import io.anuke.mindustry.entities.bullet.BulletType;
|
||||||
import io.anuke.mindustry.entities.units.BaseUnit;
|
import io.anuke.mindustry.entities.units.BaseUnit;
|
||||||
import io.anuke.mindustry.net.Net;
|
import io.anuke.mindustry.net.Net;
|
||||||
import io.anuke.mindustry.net.Net.SendMode;
|
import io.anuke.mindustry.net.Net.SendMode;
|
||||||
@@ -19,7 +19,6 @@ import io.anuke.mindustry.world.Build;
|
|||||||
import io.anuke.mindustry.world.Tile;
|
import io.anuke.mindustry.world.Tile;
|
||||||
import io.anuke.ucore.core.Effects;
|
import io.anuke.ucore.core.Effects;
|
||||||
import io.anuke.ucore.core.Timers;
|
import io.anuke.ucore.core.Timers;
|
||||||
import io.anuke.ucore.entities.BaseBulletType;
|
|
||||||
import io.anuke.ucore.entities.Entities;
|
import io.anuke.ucore.entities.Entities;
|
||||||
import io.anuke.ucore.entities.EntityGroup;
|
import io.anuke.ucore.entities.EntityGroup;
|
||||||
import io.anuke.ucore.modules.Module;
|
import io.anuke.ucore.modules.Module;
|
||||||
@@ -208,7 +207,7 @@ public class NetClient extends Module {
|
|||||||
});
|
});
|
||||||
|
|
||||||
Net.handleClient(EntityShootPacket.class, packet -> {
|
Net.handleClient(EntityShootPacket.class, packet -> {
|
||||||
BulletType type = BaseBulletType.getByID(packet.bulletid);
|
BulletType type = BulletType.getByID(packet.bulletid);
|
||||||
EntityGroup group = Entities.getGroup(packet.groupid);
|
EntityGroup group = Entities.getGroup(packet.groupid);
|
||||||
SyncEntity owner = (SyncEntity) group.getByID(packet.entityid);
|
SyncEntity owner = (SyncEntity) group.getByID(packet.entityid);
|
||||||
|
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ public class NetServer extends Module{
|
|||||||
Net.handleServer(EntityShootPacket.class, (id, packet) -> {
|
Net.handleServer(EntityShootPacket.class, (id, packet) -> {
|
||||||
Player player = connections.get(id);
|
Player player = connections.get(id);
|
||||||
|
|
||||||
BulletType type = BaseBulletType.getByID(packet.bulletid);
|
BulletType type = BulletType.getByID(packet.bulletid);
|
||||||
Weapon weapon = Upgrade.getByID((byte)packet.data);
|
Weapon weapon = Upgrade.getByID((byte)packet.data);
|
||||||
|
|
||||||
if(!player.upgrades.contains(weapon, true)){
|
if(!player.upgrades.contains(weapon, true)){
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package io.anuke.mindustry.entities.bullet;
|
package io.anuke.mindustry.entities.bullet;
|
||||||
|
|
||||||
|
import com.badlogic.gdx.utils.Array;
|
||||||
import io.anuke.mindustry.content.StatusEffects;
|
import io.anuke.mindustry.content.StatusEffects;
|
||||||
import io.anuke.mindustry.content.fx.BulletFx;
|
import io.anuke.mindustry.content.fx.BulletFx;
|
||||||
import io.anuke.mindustry.entities.StatusEffect;
|
import io.anuke.mindustry.entities.StatusEffect;
|
||||||
@@ -7,6 +8,10 @@ import io.anuke.ucore.core.Effects;
|
|||||||
import io.anuke.ucore.entities.BaseBulletType;
|
import io.anuke.ucore.entities.BaseBulletType;
|
||||||
|
|
||||||
public abstract class BulletType extends BaseBulletType<Bullet>{
|
public abstract class BulletType extends BaseBulletType<Bullet>{
|
||||||
|
private static int lastid = 0;
|
||||||
|
private static Array<BulletType> types = new Array<>();
|
||||||
|
|
||||||
|
public final int id;
|
||||||
/**Knockback in velocity.*/
|
/**Knockback in velocity.*/
|
||||||
public float knockback;
|
public float knockback;
|
||||||
/**Whether this bullet hits tiles.*/
|
/**Whether this bullet hits tiles.*/
|
||||||
@@ -19,11 +24,14 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
|
|||||||
public float armorPierce = 0f;
|
public float armorPierce = 0f;
|
||||||
|
|
||||||
public BulletType(float speed, float damage){
|
public BulletType(float speed, float damage){
|
||||||
|
this.id = lastid ++;
|
||||||
this.speed = speed;
|
this.speed = speed;
|
||||||
this.damage = damage;
|
this.damage = damage;
|
||||||
lifetime = 40f;
|
lifetime = 40f;
|
||||||
hiteffect = BulletFx.hitBulletSmall;
|
hiteffect = BulletFx.hitBulletSmall;
|
||||||
despawneffect = BulletFx.despawn;
|
despawneffect = BulletFx.despawn;
|
||||||
|
|
||||||
|
types.add(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -35,4 +43,12 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
|
|||||||
public void despawned(Bullet b){
|
public void despawned(Bullet b){
|
||||||
Effects.effect(despawneffect, b.x, b.y, b.angle());
|
Effects.effect(despawneffect, b.x, b.y, b.angle());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static BulletType getByID(int id){
|
||||||
|
return types.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Array<BulletType> all(){
|
||||||
|
return types;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ public class Brute extends GroundUnitType {
|
|||||||
|
|
||||||
public Brute(String name) {
|
public Brute(String name) {
|
||||||
super(name);
|
super(name);
|
||||||
setAmmo(AmmoTypes.basicIron);
|
setAmmo(AmmoTypes.bulletIron);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public class Cruiser extends FlyingUnitType {
|
|||||||
|
|
||||||
public Cruiser(){
|
public Cruiser(){
|
||||||
super("vtol");
|
super("vtol");
|
||||||
setAmmo(AmmoTypes.basicIron);
|
setAmmo(AmmoTypes.bulletIron);
|
||||||
speed = 0.2f;
|
speed = 0.2f;
|
||||||
maxVelocity = 1.4f;
|
maxVelocity = 1.4f;
|
||||||
health = 300f;
|
health = 300f;
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ public class Scout extends GroundUnitType {
|
|||||||
|
|
||||||
public Scout(){
|
public Scout(){
|
||||||
super("scout");
|
super("scout");
|
||||||
setAmmo(AmmoTypes.basicIron);
|
setAmmo(AmmoTypes.bulletIron);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ public class Vtol extends FlyingUnitType {
|
|||||||
|
|
||||||
public Vtol(){
|
public Vtol(){
|
||||||
super("vtol");
|
super("vtol");
|
||||||
setAmmo(AmmoTypes.basicIron);
|
setAmmo(AmmoTypes.bulletIron);
|
||||||
speed = 0.3f;
|
speed = 0.3f;
|
||||||
maxVelocity = 2f;
|
maxVelocity = 2f;
|
||||||
reload = 7;
|
reload = 7;
|
||||||
|
|||||||
@@ -304,7 +304,6 @@ public enum PlaceMode{
|
|||||||
|
|
||||||
Graphics.flush();
|
Graphics.flush();
|
||||||
}
|
}
|
||||||
//Lines.crect(x, y, block.size * tilesize, block.size * tilesize);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void released(InputHandler input, int tilex, int tiley, int endx, int endy){
|
public void released(InputHandler input, int tilex, int tiley, int endx, int endy){
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ public class AmmoType {
|
|||||||
/**The item used. Always null if liquid isn't.*/
|
/**The item used. Always null if liquid isn't.*/
|
||||||
public final Item item;
|
public final Item item;
|
||||||
/**The liquid used. Always null if item isn't.*/
|
/**The liquid used. Always null if item isn't.*/
|
||||||
public final io.anuke.mindustry.type.Liquid liquid;
|
public final Liquid liquid;
|
||||||
/**The resulting bullet.*/
|
/**The resulting bullet.*/
|
||||||
public final BulletType bullet;
|
public final BulletType bullet;
|
||||||
/**For item ammo, this is amount given per ammo item.
|
/**For item ammo, this is amount given per ammo item.
|
||||||
@@ -48,7 +48,7 @@ public class AmmoType {
|
|||||||
this.quantityMultiplier = multiplier;
|
this.quantityMultiplier = multiplier;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AmmoType(io.anuke.mindustry.type.Liquid liquid, BulletType result, float multiplier){
|
public AmmoType(Liquid liquid, BulletType result, float multiplier){
|
||||||
this.item = null;
|
this.item = null;
|
||||||
this.liquid = liquid;
|
this.liquid = liquid;
|
||||||
this.bullet = result;
|
this.bullet = result;
|
||||||
|
|||||||
@@ -30,9 +30,7 @@ import io.anuke.ucore.util.Bundles;
|
|||||||
import io.anuke.ucore.util.EnumSet;
|
import io.anuke.ucore.util.EnumSet;
|
||||||
import io.anuke.ucore.util.Mathf;
|
import io.anuke.ucore.util.Mathf;
|
||||||
|
|
||||||
import static io.anuke.mindustry.Vars.state;
|
import static io.anuke.mindustry.Vars.*;
|
||||||
import static io.anuke.mindustry.Vars.tilesize;
|
|
||||||
import static io.anuke.mindustry.Vars.world;
|
|
||||||
|
|
||||||
public class Block extends BaseBlock {
|
public class Block extends BaseBlock {
|
||||||
private static int lastid;
|
private static int lastid;
|
||||||
@@ -135,11 +133,22 @@ public class Block extends BaseBlock {
|
|||||||
public boolean isLayer2(Tile tile){return true;}
|
public boolean isLayer2(Tile tile){return true;}
|
||||||
public void drawLayer(Tile tile){}
|
public void drawLayer(Tile tile){}
|
||||||
public void drawLayer2(Tile tile){}
|
public void drawLayer2(Tile tile){}
|
||||||
|
|
||||||
|
/**Draw the block overlay that is shown when a cursor is over the block.*/
|
||||||
public void drawSelect(Tile tile){}
|
public void drawSelect(Tile tile){}
|
||||||
|
|
||||||
|
/**Drawn when you are placing a block.*/
|
||||||
public void drawPlace(int x, int y, int rotation, boolean valid){}
|
public void drawPlace(int x, int y, int rotation, boolean valid){}
|
||||||
|
|
||||||
|
/**Called after the block is placed.*/
|
||||||
public void placed(Tile tile){}
|
public void placed(Tile tile){}
|
||||||
|
|
||||||
|
/**Called every frame a unit is on this tile.*/
|
||||||
public void unitOn(Tile tile, Unit unit){}
|
public void unitOn(Tile tile, Unit unit){}
|
||||||
|
|
||||||
|
/**Returns whether ot not this block can be place on the specified tile.*/
|
||||||
|
public boolean canPlaceOn(Tile tile){ return true; }
|
||||||
|
|
||||||
/**Called after all blocks are created.*/
|
/**Called after all blocks are created.*/
|
||||||
public void init(){
|
public void init(){
|
||||||
setStats();
|
setStats();
|
||||||
@@ -147,14 +156,25 @@ public class Block extends BaseBlock {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**Called after texture atlas is loaded.*/
|
/**Called after texture atlas is loaded.*/
|
||||||
public void load(){
|
public void load(){}
|
||||||
|
|
||||||
|
/**Called when the block is tapped.*/
|
||||||
|
public void tapped(Tile tile, Player player){}
|
||||||
|
|
||||||
|
/**Called when this block is tapped to build a UI on the table.
|
||||||
|
* {@link #isConfigurable(Tile)} able} must return true for this to be called.*/
|
||||||
|
public void buildTable(Tile tile, Table table) {}
|
||||||
|
|
||||||
|
//TODO make it a boolean?
|
||||||
|
/**Returns whether this tile can be configured.*/
|
||||||
|
public boolean isConfigurable(Tile tile){
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void tapped(Tile tile, Player player){}
|
//TODO remove this
|
||||||
public void buildTable(Tile tile, Table table) {}
|
|
||||||
public void configure(Tile tile, byte data){}
|
public void configure(Tile tile, byte data){}
|
||||||
|
|
||||||
|
//TODO remove this
|
||||||
public void setConfigure(Tile tile, byte data){
|
public void setConfigure(Tile tile, byte data){
|
||||||
configure(tile, data);
|
configure(tile, data);
|
||||||
if(Net.active()) NetEvents.handleBlockConfig(tile, data);
|
if(Net.active()) NetEvents.handleBlockConfig(tile, data);
|
||||||
@@ -178,10 +198,6 @@ public class Block extends BaseBlock {
|
|||||||
tile.block().size * tilesize / 2f + 1f);
|
tile.block().size * tilesize / 2f + 1f);
|
||||||
Draw.reset();
|
Draw.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isConfigurable(Tile tile){
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setStats(){
|
public void setStats(){
|
||||||
stats.add("size", size);
|
stats.add("size", size);
|
||||||
|
|||||||
@@ -137,8 +137,8 @@ public class Build {
|
|||||||
return true;
|
return true;
|
||||||
}else {
|
}else {
|
||||||
return (tile.getTeam() == Team.none || tile.getTeam() == team) && tile.floor().placeableOn
|
return (tile.getTeam() == Team.none || tile.getTeam() == team) && tile.floor().placeableOn
|
||||||
&& ((type.canReplace(tile.block()) && !(type == tile.block() && rotation == tile.getRotation() && type.rotate)) || tile.block().alwaysReplace)
|
&& ((type.canReplace(tile.block()) && !(type == tile.block() && rotation == tile.getRotation() && type.rotate)) || tile.block().alwaysReplace || tile.block() == Blocks.air)
|
||||||
&& tile.block().isMultiblock() == type.isMultiblock() || tile.block() == Blocks.air;
|
&& tile.block().isMultiblock() == type.isMultiblock() && type.canPlaceOn(tile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||