Added TeslaOrb entity and implemented tesla turrets
BIN
core/assets-raw/sprites/blocks/plasmaturret.png
Normal file
After Width: | Height: | Size: 369 B |
BIN
core/assets-raw/sprites/blocks/waveturret.png
Normal file
After Width: | Height: | Size: 384 B |
Before Width: | Height: | Size: 308 B After Width: | Height: | Size: 307 B |
Before Width: | Height: | Size: 274 B |
Before Width: | Height: | Size: 301 B |
Before Width: | Height: | Size: 296 B |
Before Width: | Height: | Size: 281 B |
BIN
core/assets-raw/sprites/weapons/blaster.png
Normal file
After Width: | Height: | Size: 273 B |
BIN
core/assets-raw/sprites/weapons/flamethrower.png
Normal file
After Width: | Height: | Size: 300 B |
BIN
core/assets-raw/sprites/weapons/mortar.png
Normal file
After Width: | Height: | Size: 297 B |
BIN
core/assets-raw/sprites/weapons/multigun.png
Normal file
After Width: | Height: | Size: 282 B |
BIN
core/assets-raw/sprites/weapons/railgun.png
Normal file
After Width: | Height: | Size: 295 B |
BIN
core/assets-raw/sprites/weapons/triblaster.png
Normal file
After Width: | Height: | Size: 310 B |
@ -13,539 +13,553 @@ blank
|
||||
index: -1
|
||||
blocks/block
|
||||
rotate: false
|
||||
xy: 199, 23
|
||||
xy: 271, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/coal1
|
||||
rotate: false
|
||||
xy: 219, 23
|
||||
xy: 291, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/coal2
|
||||
rotate: false
|
||||
xy: 229, 23
|
||||
xy: 301, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/coal3
|
||||
rotate: false
|
||||
xy: 239, 23
|
||||
xy: 311, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/coaldrill
|
||||
rotate: false
|
||||
xy: 249, 23
|
||||
xy: 321, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/conduit
|
||||
rotate: false
|
||||
xy: 259, 23
|
||||
xy: 331, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/conduitbottom
|
||||
rotate: false
|
||||
xy: 269, 23
|
||||
xy: 341, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/conduitliquid
|
||||
rotate: false
|
||||
xy: 279, 23
|
||||
xy: 351, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/conduittop
|
||||
rotate: false
|
||||
xy: 289, 23
|
||||
xy: 361, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/conveyor
|
||||
rotate: false
|
||||
xy: 299, 23
|
||||
xy: 371, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/conveyormove
|
||||
rotate: false
|
||||
xy: 309, 23
|
||||
xy: 381, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/core
|
||||
rotate: false
|
||||
xy: 319, 23
|
||||
xy: 391, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/cross
|
||||
rotate: false
|
||||
xy: 329, 23
|
||||
xy: 401, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/crucible
|
||||
rotate: false
|
||||
xy: 339, 23
|
||||
xy: 411, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/deepwater
|
||||
rotate: false
|
||||
xy: 349, 23
|
||||
xy: 421, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/dirt1
|
||||
rotate: false
|
||||
xy: 359, 23
|
||||
xy: 431, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/dirt2
|
||||
rotate: false
|
||||
xy: 369, 23
|
||||
xy: 441, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/dirt3
|
||||
rotate: false
|
||||
xy: 379, 23
|
||||
xy: 451, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/dirtblock
|
||||
rotate: false
|
||||
xy: 389, 23
|
||||
xy: 461, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/dirtedge
|
||||
rotate: false
|
||||
xy: 37, 19
|
||||
xy: 85, 19
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/doubleturret
|
||||
rotate: false
|
||||
xy: 65, 7
|
||||
xy: 113, 7
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/drill
|
||||
rotate: false
|
||||
xy: 399, 23
|
||||
xy: 471, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/flameturret
|
||||
rotate: false
|
||||
xy: 79, 21
|
||||
xy: 127, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/grass1
|
||||
rotate: false
|
||||
xy: 419, 23
|
||||
xy: 491, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/grass2
|
||||
rotate: false
|
||||
xy: 429, 23
|
||||
xy: 501, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/grass3
|
||||
rotate: false
|
||||
xy: 439, 23
|
||||
xy: 128, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/grassblock
|
||||
rotate: false
|
||||
xy: 449, 23
|
||||
xy: 128, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/grassblock2
|
||||
rotate: false
|
||||
xy: 459, 23
|
||||
xy: 138, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/grassedge
|
||||
rotate: false
|
||||
xy: 37, 5
|
||||
xy: 85, 5
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/iron1
|
||||
rotate: false
|
||||
xy: 90, 11
|
||||
xy: 168, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/iron2
|
||||
rotate: false
|
||||
xy: 90, 1
|
||||
xy: 178, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/iron3
|
||||
rotate: false
|
||||
xy: 100, 11
|
||||
xy: 178, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/irondrill
|
||||
rotate: false
|
||||
xy: 100, 1
|
||||
xy: 188, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/ironwall
|
||||
rotate: false
|
||||
xy: 110, 11
|
||||
xy: 188, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/junction
|
||||
rotate: false
|
||||
xy: 110, 1
|
||||
xy: 198, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/laserturret
|
||||
rotate: false
|
||||
xy: 91, 21
|
||||
xy: 139, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/machineturret
|
||||
rotate: false
|
||||
xy: 103, 21
|
||||
xy: 151, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/megarepairturret
|
||||
rotate: false
|
||||
xy: 115, 21
|
||||
xy: 163, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/mortarturret
|
||||
rotate: false
|
||||
xy: 127, 21
|
||||
xy: 175, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/mossblock
|
||||
rotate: false
|
||||
xy: 120, 1
|
||||
xy: 208, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/mossstone
|
||||
rotate: false
|
||||
xy: 120, 1
|
||||
xy: 208, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/omnidrill
|
||||
rotate: false
|
||||
xy: 130, 11
|
||||
xy: 208, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/pump
|
||||
rotate: false
|
||||
xy: 140, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/repairturret
|
||||
rotate: false
|
||||
xy: 139, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/rock
|
||||
rotate: false
|
||||
xy: 140, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/rock2
|
||||
rotate: false
|
||||
xy: 150, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/rock2shadow
|
||||
rotate: false
|
||||
xy: 150, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/rockshadow
|
||||
rotate: false
|
||||
xy: 160, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/router
|
||||
rotate: false
|
||||
xy: 160, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/shadow
|
||||
rotate: false
|
||||
xy: 151, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/shotgunturret
|
||||
rotate: false
|
||||
xy: 163, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/shrub
|
||||
rotate: false
|
||||
xy: 170, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/shrubshadow
|
||||
rotate: false
|
||||
xy: 170, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/smelter
|
||||
rotate: false
|
||||
xy: 180, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/sniperturret
|
||||
rotate: false
|
||||
xy: 175, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/steelconveyor
|
||||
rotate: false
|
||||
xy: 180, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/steelconveyormove
|
||||
rotate: false
|
||||
xy: 190, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/steelwall
|
||||
rotate: false
|
||||
xy: 190, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stone
|
||||
rotate: false
|
||||
xy: 51, 19
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stone1
|
||||
rotate: false
|
||||
xy: 200, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stone2
|
||||
rotate: false
|
||||
xy: 200, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stone3
|
||||
rotate: false
|
||||
xy: 210, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stoneblock
|
||||
rotate: false
|
||||
xy: 210, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stoneblock2
|
||||
rotate: false
|
||||
xy: 220, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stoneblock3
|
||||
rotate: false
|
||||
xy: 220, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stonedrill
|
||||
rotate: false
|
||||
xy: 230, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stoneedge
|
||||
rotate: false
|
||||
xy: 51, 5
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stonewall
|
||||
rotate: false
|
||||
xy: 230, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titanium1
|
||||
rotate: false
|
||||
xy: 240, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titanium2
|
||||
rotate: false
|
||||
xy: 240, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titanium3
|
||||
rotate: false
|
||||
xy: 250, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titaniumdrill
|
||||
rotate: false
|
||||
xy: 250, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titaniumwall
|
||||
rotate: false
|
||||
xy: 260, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/turret
|
||||
blocks/plasmaturret
|
||||
rotate: false
|
||||
xy: 187, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/pump
|
||||
rotate: false
|
||||
xy: 218, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/repairturret
|
||||
rotate: false
|
||||
xy: 199, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/rock
|
||||
rotate: false
|
||||
xy: 228, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/rock2
|
||||
rotate: false
|
||||
xy: 228, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/rock2shadow
|
||||
rotate: false
|
||||
xy: 238, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/rockshadow
|
||||
rotate: false
|
||||
xy: 238, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/router
|
||||
rotate: false
|
||||
xy: 248, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/shadow
|
||||
rotate: false
|
||||
xy: 211, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/shotgunturret
|
||||
rotate: false
|
||||
xy: 223, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/shrub
|
||||
rotate: false
|
||||
xy: 248, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/shrubshadow
|
||||
rotate: false
|
||||
xy: 258, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/smelter
|
||||
rotate: false
|
||||
xy: 258, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/sniperturret
|
||||
rotate: false
|
||||
xy: 235, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/steelconveyor
|
||||
rotate: false
|
||||
xy: 268, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/steelconveyormove
|
||||
rotate: false
|
||||
xy: 268, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/steelwall
|
||||
rotate: false
|
||||
xy: 278, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stone
|
||||
rotate: false
|
||||
xy: 99, 19
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stone1
|
||||
rotate: false
|
||||
xy: 278, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stone2
|
||||
rotate: false
|
||||
xy: 288, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stone3
|
||||
rotate: false
|
||||
xy: 288, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stoneblock
|
||||
rotate: false
|
||||
xy: 298, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stoneblock2
|
||||
rotate: false
|
||||
xy: 298, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stoneblock3
|
||||
rotate: false
|
||||
xy: 308, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stonedrill
|
||||
rotate: false
|
||||
xy: 308, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stoneedge
|
||||
rotate: false
|
||||
xy: 99, 5
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/stonewall
|
||||
rotate: false
|
||||
xy: 318, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titanium1
|
||||
rotate: false
|
||||
xy: 318, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titanium2
|
||||
rotate: false
|
||||
xy: 328, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titanium3
|
||||
rotate: false
|
||||
xy: 328, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titaniumdrill
|
||||
rotate: false
|
||||
xy: 338, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/titaniumwall
|
||||
rotate: false
|
||||
xy: 338, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/turret
|
||||
rotate: false
|
||||
xy: 247, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/water
|
||||
rotate: false
|
||||
xy: 260, 3
|
||||
xy: 348, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/wateredge
|
||||
rotate: false
|
||||
xy: 65, 19
|
||||
xy: 113, 19
|
||||
size: 12, 12
|
||||
orig: 12, 12
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
blocks/waveturret
|
||||
rotate: false
|
||||
xy: 259, 21
|
||||
size: 10, 10
|
||||
orig: 10, 10
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
bullet
|
||||
rotate: false
|
||||
xy: 209, 23
|
||||
xy: 281, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
@ -559,77 +573,77 @@ circle
|
||||
index: -1
|
||||
enemies/bossmech
|
||||
rotate: false
|
||||
xy: 21, 17
|
||||
xy: 21, 1
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
enemies/fastmech
|
||||
rotate: false
|
||||
xy: 409, 23
|
||||
xy: 481, 23
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
enemies/firemech
|
||||
rotate: false
|
||||
xy: 21, 1
|
||||
xy: 37, 17
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
enemies/mech1
|
||||
rotate: false
|
||||
xy: 120, 11
|
||||
xy: 198, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
icon-coal
|
||||
rotate: false
|
||||
xy: 469, 23
|
||||
xy: 138, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
icon-dirium
|
||||
rotate: false
|
||||
xy: 479, 23
|
||||
xy: 148, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
icon-iron
|
||||
rotate: false
|
||||
xy: 489, 23
|
||||
xy: 148, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
icon-steel
|
||||
rotate: false
|
||||
xy: 499, 23
|
||||
xy: 158, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
icon-stone
|
||||
rotate: false
|
||||
xy: 80, 11
|
||||
xy: 158, 1
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
icon-titanium
|
||||
rotate: false
|
||||
xy: 80, 1
|
||||
xy: 168, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
laser
|
||||
rotate: false
|
||||
xy: 77, 5
|
||||
xy: 125, 5
|
||||
size: 1, 12
|
||||
orig: 1, 12
|
||||
offset: 0, 0
|
||||
@ -643,36 +657,50 @@ laserend
|
||||
index: -1
|
||||
player
|
||||
rotate: false
|
||||
xy: 130, 1
|
||||
xy: 218, 11
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
weapon-blaster
|
||||
weapons/blaster
|
||||
rotate: false
|
||||
xy: 270, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
xy: 21, 17
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
weapon-flamethrower
|
||||
weapons/flamethrower
|
||||
rotate: false
|
||||
xy: 270, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
xy: 37, 1
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
weapon-multigun
|
||||
weapons/mortar
|
||||
rotate: false
|
||||
xy: 280, 13
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
xy: 53, 17
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
weapon-trishot
|
||||
weapons/multigun
|
||||
rotate: false
|
||||
xy: 280, 3
|
||||
size: 8, 8
|
||||
orig: 8, 8
|
||||
xy: 53, 1
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
weapons/railgun
|
||||
rotate: false
|
||||
xy: 69, 17
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
weapons/triblaster
|
||||
rotate: false
|
||||
xy: 69, 1
|
||||
size: 14, 14
|
||||
orig: 14, 14
|
||||
offset: 0, 0
|
||||
index: -1
|
||||
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.7 KiB |
@ -11,12 +11,12 @@ import com.badlogic.gdx.utils.Array;
|
||||
import io.anuke.mindustry.GameState.State;
|
||||
import io.anuke.mindustry.ai.Pathfind;
|
||||
import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.mindustry.entities.Weapon;
|
||||
import io.anuke.mindustry.entities.enemies.*;
|
||||
import io.anuke.mindustry.input.AndroidInput;
|
||||
import io.anuke.mindustry.input.GestureHandler;
|
||||
import io.anuke.mindustry.input.Input;
|
||||
import io.anuke.mindustry.io.SaveIO;
|
||||
import io.anuke.mindustry.resource.Weapon;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.World;
|
||||
import io.anuke.mindustry.world.blocks.ProductionBlocks;
|
||||
|
@ -21,6 +21,7 @@ public class Inventory{
|
||||
items.put(Item.steel, 2000000);
|
||||
items.put(Item.coal, 2000000);
|
||||
items.put(Item.titanium, 2000000);
|
||||
items.put(Item.dirium, 2000000);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,7 +16,6 @@ import com.badlogic.gdx.utils.Align;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
|
||||
import io.anuke.mindustry.GameState.State;
|
||||
import io.anuke.mindustry.entities.Weapon;
|
||||
import io.anuke.mindustry.input.AndroidInput;
|
||||
import io.anuke.mindustry.resource.*;
|
||||
import io.anuke.mindustry.ui.*;
|
||||
@ -551,8 +550,8 @@ public class UI extends SceneModule{
|
||||
weapontable.clearChildren();
|
||||
|
||||
for(Weapon weapon : control.getWeapons()){
|
||||
ImageButton button = new ImageButton(Draw.region("weapon-"+weapon.name()), "static");
|
||||
button.getImageCell().size(40);
|
||||
ImageButton button = new ImageButton(Draw.region(weapon.name()), "static");
|
||||
button.getImageCell().size(14*3);
|
||||
button.setDisabled(true);
|
||||
|
||||
if(weapon != player.weapon)
|
||||
|
@ -108,6 +108,17 @@ public abstract class BulletType extends BaseBulletType<Bullet>{
|
||||
Draw.reset();
|
||||
}
|
||||
},
|
||||
plasmaflame = new BulletType(0.8f, 15){
|
||||
{
|
||||
lifetime = 65f;
|
||||
}
|
||||
public void draw(Bullet b){
|
||||
Draw.color(Color.valueOf("c2efd7"), Color.valueOf("72deaf"), b.time/lifetime);
|
||||
float size = 7f-b.time/lifetime*6f;
|
||||
Draw.rect("circle", b.x, b.y, size, size);
|
||||
Draw.reset();
|
||||
}
|
||||
},
|
||||
flameshot = new BulletType(0.5f, 3){
|
||||
public void draw(Bullet b){
|
||||
Draw.color(Color.ORANGE, Color.SCARLET, b.time/lifetime);
|
||||
|
@ -8,6 +8,7 @@ import com.badlogic.gdx.math.Vector2;
|
||||
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.resource.Recipe;
|
||||
import io.anuke.mindustry.resource.Weapon;
|
||||
import io.anuke.ucore.core.*;
|
||||
import io.anuke.ucore.entities.DestructibleEntity;
|
||||
import io.anuke.ucore.util.Angles;
|
||||
|
5
core/src/io/anuke/mindustry/entities/StatusEffect.java
Normal file
@ -0,0 +1,5 @@
|
||||
package io.anuke.mindustry.entities;
|
||||
|
||||
public enum StatusEffect{
|
||||
none;
|
||||
}
|
127
core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java
Normal file
@ -0,0 +1,127 @@
|
||||
package io.anuke.mindustry.entities.effect;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.ObjectSet;
|
||||
|
||||
import io.anuke.mindustry.entities.enemies.Enemy;
|
||||
import io.anuke.ucore.core.Draw;
|
||||
import io.anuke.ucore.core.Effects;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.entities.Entities;
|
||||
import io.anuke.ucore.entities.Entity;
|
||||
import io.anuke.ucore.entities.SolidEntity;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
import io.anuke.ucore.util.Tmp;
|
||||
|
||||
public class TeslaOrb extends Entity{
|
||||
private Array<Vector2> points = new Array<>();
|
||||
private ObjectSet<Enemy> hit = new ObjectSet<>();
|
||||
private int damage = 0;
|
||||
private float range = 0;
|
||||
private float lifetime = 30f;
|
||||
private float life = 0f;
|
||||
|
||||
public TeslaOrb(float x, float y, float range, int damage){
|
||||
set(x, y);
|
||||
this.damage = damage;
|
||||
this.range = range;
|
||||
}
|
||||
|
||||
void shock(){
|
||||
float stopchance = 0.1f;
|
||||
float curx = x, cury = y;
|
||||
float shake = 3f;
|
||||
|
||||
outer:
|
||||
while(true){
|
||||
if(Mathf.chance(stopchance)){
|
||||
break;
|
||||
}
|
||||
Array<SolidEntity> enemies = Entities.getNearby(curx, cury, range);
|
||||
|
||||
for(SolidEntity entity : enemies){
|
||||
if(entity instanceof Enemy && entity.distanceTo(curx, cury) < range
|
||||
&& !hit.contains((Enemy)entity)){
|
||||
hit.add((Enemy)entity);
|
||||
points.add(new Vector2(entity.x + Mathf.range(shake), entity.y + Mathf.range(shake)));
|
||||
damageEnemy((Enemy)entity);
|
||||
curx = entity.x;
|
||||
cury = entity.y;
|
||||
continue outer;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if(points.size == 0){
|
||||
remove();
|
||||
}
|
||||
}
|
||||
|
||||
void damageEnemy(Enemy enemy){
|
||||
//TODO
|
||||
enemy.damage(damage);
|
||||
Effects.effect("laserhit", enemy.x + Mathf.range(2f), enemy.y + Mathf.range(2f));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(){
|
||||
life += Timers.delta();
|
||||
|
||||
if(life >= lifetime){
|
||||
remove();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void drawOver(){
|
||||
if(points.size == 0) return;
|
||||
|
||||
float range = 1f;
|
||||
|
||||
Vector2 previous = Tmp.v1.set(x, y);
|
||||
|
||||
for(Vector2 enemy : points){
|
||||
|
||||
|
||||
float x1 = previous.x + Mathf.range(range),
|
||||
y1 = previous.y + Mathf.range(range),
|
||||
x2 = enemy.x + Mathf.range(range),
|
||||
y2 = enemy.y + Mathf.range(range);
|
||||
|
||||
Draw.color(Color.WHITE);
|
||||
Draw.alpha(1f-life/lifetime);
|
||||
|
||||
Draw.thick(3f - life/lifetime*2f);
|
||||
Draw.line(x1, y1, x2, y2);
|
||||
|
||||
float rad = 7f - life/lifetime*5f;
|
||||
|
||||
Draw.rect("circle", x2, y2, rad, rad);
|
||||
|
||||
if(previous.epsilonEquals(x, y, 0.001f)){
|
||||
Draw.rect("circle", x, y, rad, rad);
|
||||
}
|
||||
|
||||
//Draw.color(Color.WHITE);
|
||||
|
||||
//Draw.thick(2f - life/lifetime*2f);
|
||||
//Draw.line(x1, y1, x2, y2);
|
||||
|
||||
Draw.reset();
|
||||
|
||||
previous = enemy;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void added(){
|
||||
Timers.run(1f, ()->{
|
||||
shock();
|
||||
});
|
||||
|
||||
}
|
||||
}
|
@ -4,9 +4,7 @@ import com.badlogic.gdx.math.Vector2;
|
||||
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.ai.Pathfind;
|
||||
import io.anuke.mindustry.entities.Bullet;
|
||||
import io.anuke.mindustry.entities.BulletType;
|
||||
import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.mindustry.entities.*;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.World;
|
||||
import io.anuke.ucore.core.Draw;
|
||||
@ -30,6 +28,7 @@ public class Enemy extends DestructibleEntity{
|
||||
public Vector2 direction = new Vector2();
|
||||
public float xvelocity, yvelocity;
|
||||
public Entity target;
|
||||
public StatusEffect effect = StatusEffect.none;
|
||||
|
||||
|
||||
public Enemy(int spawn){
|
||||
|
@ -6,8 +6,8 @@ import com.badlogic.gdx.Input.Buttons;
|
||||
import com.badlogic.gdx.Input.Keys;
|
||||
|
||||
import io.anuke.mindustry.Inventory;
|
||||
import io.anuke.mindustry.entities.Weapon;
|
||||
import io.anuke.mindustry.resource.ItemStack;
|
||||
import io.anuke.mindustry.resource.Weapon;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.World;
|
||||
import io.anuke.mindustry.world.blocks.Blocks;
|
||||
|
@ -15,9 +15,9 @@ import com.badlogic.gdx.utils.TimeUtils;
|
||||
import com.badlogic.gdx.utils.reflect.ClassReflection;
|
||||
|
||||
import io.anuke.mindustry.*;
|
||||
import io.anuke.mindustry.entities.Weapon;
|
||||
import io.anuke.mindustry.entities.enemies.*;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.resource.Weapon;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.World;
|
||||
|
@ -3,7 +3,8 @@ package io.anuke.mindustry.resource;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
|
||||
public enum Liquid{
|
||||
water(Color.ROYAL);
|
||||
water(Color.ROYAL),
|
||||
plasma(Color.CORAL);
|
||||
|
||||
public final Color color;
|
||||
|
||||
|
@ -27,9 +27,11 @@ public enum Recipe{
|
||||
sniperturret(defense, WeaponBlocks.sniperturret, stack(Item.iron, 30), stack(Item.steel, 20)),
|
||||
laserturret(defense, WeaponBlocks.laserturret, stack(Item.steel, 20), stack(Item.titanium, 20)),
|
||||
mortarturret(defense, WeaponBlocks.mortarturret, stack(Item.steel, 40), stack(Item.titanium, 30)),
|
||||
waveturret(defense, WeaponBlocks.teslaturret, stack(Item.steel, 20), stack(Item.titanium, 20), stack(Item.dirium, 20)),
|
||||
plasmaturret(defense, WeaponBlocks.plasmaturret, stack(Item.steel, 40), stack(Item.titanium, 30), stack(Item.dirium, 25)),
|
||||
|
||||
healturret(defense, WeaponBlocks.repairturret, stack(Item.iron, 45)),
|
||||
megahealturret(defense, WeaponBlocks.megarepairturret, stack(Item.iron, 30), stack(Item.steel, 40)),
|
||||
healturret(defense, WeaponBlocks.repairturret, stack(Item.iron, 50)),
|
||||
megahealturret(defense, WeaponBlocks.megarepairturret, stack(Item.iron, 30), stack(Item.steel, 50)),
|
||||
|
||||
drill(production, ProductionBlocks.stonedrill, stack(Item.stone, 6)),
|
||||
irondrill(production, ProductionBlocks.irondrill, stack(Item.stone, 40)),
|
||||
|
@ -1,11 +1,12 @@
|
||||
package io.anuke.mindustry.entities;
|
||||
package io.anuke.mindustry.resource;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.math.MathUtils;
|
||||
import com.badlogic.gdx.math.Vector2;
|
||||
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.resource.ItemStack;
|
||||
import io.anuke.mindustry.entities.Bullet;
|
||||
import io.anuke.mindustry.entities.BulletType;
|
||||
import io.anuke.mindustry.entities.Player;
|
||||
import io.anuke.ucore.core.Effects;
|
||||
import io.anuke.ucore.entities.Entity;
|
||||
import io.anuke.ucore.util.Angles;
|
||||
@ -23,7 +24,7 @@ public enum Weapon{
|
||||
Effects.effect("shoot3", p.x + vector.x, p.y+vector.y);
|
||||
}
|
||||
},
|
||||
trishot(13, BulletType.shot, "Shoots 3 bullets in a spread.", stack(Item.iron, 40)){
|
||||
triblaster(13, BulletType.shot, "Shoots 3 bullets in a spread.", stack(Item.iron, 40)){
|
||||
|
||||
@Override
|
||||
public void shoot(Player p){
|
||||
@ -63,9 +64,36 @@ public enum Weapon{
|
||||
|
||||
bullet(p, p.x, p.y, ang + Mathf.range(12));
|
||||
}
|
||||
},
|
||||
//TODO
|
||||
railgun(40, BulletType.sniper, "Shoots a stream of fire.", stack(Item.steel, 60), stack(Item.coal, 60)){
|
||||
|
||||
{
|
||||
shootsound = "flame2";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shoot(Player p){
|
||||
float ang = mouseAngle(p);
|
||||
|
||||
bullet(p, p.x, p.y, ang);
|
||||
}
|
||||
},
|
||||
//TODO
|
||||
mortar(20, BulletType.shell, "Shoots a stream of fire.", stack(Item.steel, 60), stack(Item.coal, 60)){
|
||||
|
||||
{
|
||||
shootsound = "flame2";
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shoot(Player p){
|
||||
float ang = mouseAngle(p);
|
||||
bullet(p, p.x, p.y, ang);
|
||||
}
|
||||
};
|
||||
float reload;
|
||||
BulletType type;
|
||||
public float reload;
|
||||
public BulletType type;
|
||||
public String shootsound = "shoot";
|
||||
public boolean unlocked;
|
||||
public ItemStack[] requirements;
|
@ -7,8 +7,8 @@ import com.badlogic.gdx.graphics.Color;
|
||||
import io.anuke.mindustry.GameState;
|
||||
import io.anuke.mindustry.GameState.State;
|
||||
import io.anuke.mindustry.Inventory;
|
||||
import io.anuke.mindustry.entities.Weapon;
|
||||
import io.anuke.mindustry.resource.ItemStack;
|
||||
import io.anuke.mindustry.resource.Weapon;
|
||||
import io.anuke.ucore.core.Draw;
|
||||
import io.anuke.ucore.core.Effects;
|
||||
import io.anuke.ucore.function.Listenable;
|
||||
@ -45,8 +45,8 @@ public class UpgradeDialog extends Dialog{
|
||||
for(Weapon weapon : Weapon.values()){
|
||||
TextButton button = new TextButton(weapon.name());
|
||||
|
||||
Image img = new Image(Draw.region("weapon-"+weapon.name()));
|
||||
button.add(img).size(8*5);
|
||||
Image img = new Image(Draw.region(weapon.name()));
|
||||
button.add(img).size(14*4);
|
||||
button.getCells().reverse();
|
||||
button.row();
|
||||
button.pack();
|
||||
|
@ -58,7 +58,7 @@ public class Generator{
|
||||
floor = Blocks.iron;
|
||||
}
|
||||
|
||||
if(Noise.nnoise(x, y, 6, 1) > 0.242){
|
||||
if(Noise.nnoise(x, y, 6, 1) > 0.24){
|
||||
floor = Blocks.coal;
|
||||
}
|
||||
|
||||
|
@ -2,7 +2,9 @@ package io.anuke.mindustry.world.blocks;
|
||||
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
|
||||
import io.anuke.mindustry.Vars;
|
||||
import io.anuke.mindustry.entities.BulletType;
|
||||
import io.anuke.mindustry.entities.effect.TeslaOrb;
|
||||
import io.anuke.mindustry.resource.Item;
|
||||
import io.anuke.mindustry.world.Block;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
@ -10,6 +12,7 @@ import io.anuke.mindustry.world.blocks.types.LaserTurret;
|
||||
import io.anuke.mindustry.world.blocks.types.RepairTurret;
|
||||
import io.anuke.mindustry.world.blocks.types.Turret;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.util.Angles;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
public class WeaponBlocks{
|
||||
@ -130,6 +133,40 @@ public class WeaponBlocks{
|
||||
}
|
||||
},
|
||||
|
||||
//TODO
|
||||
teslaturret = new Turret("waveturret"){
|
||||
{
|
||||
formalName = "tesla turret";
|
||||
range = 70;
|
||||
reload = 20f;
|
||||
bullet = BulletType.shell;
|
||||
ammo = Item.stone;
|
||||
health = 1100;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void shoot(Tile tile){
|
||||
TurretEntity entity = tile.entity();
|
||||
Angles.translation(entity.rotation, 4);
|
||||
|
||||
new TeslaOrb(tile.worldx() + Angles.x(), tile.worldy() + Angles.y(),
|
||||
70, (int)(10*Vars.multiplier)).add();
|
||||
}
|
||||
},
|
||||
|
||||
//TODO
|
||||
plasmaturret = new Turret("plasmaturret"){
|
||||
{
|
||||
inaccuracy = 7f;
|
||||
formalName = "plasma turret";
|
||||
range = 60f;
|
||||
reload = 3f;
|
||||
bullet = BulletType.plasmaflame;
|
||||
ammo = Item.stone;
|
||||
health = 180;
|
||||
}
|
||||
},
|
||||
|
||||
repairturret = new RepairTurret("repairturret"){
|
||||
{
|
||||
formalName = "heal turret";
|
||||
|
@ -27,6 +27,7 @@ public class Turret extends Block{
|
||||
|
||||
protected float range = 50f;
|
||||
protected float reload = 10f;
|
||||
protected float inaccuracy = 0f;
|
||||
protected String shootsound = "shoot";
|
||||
protected BulletType bullet = BulletType.iron;
|
||||
protected Item ammo;
|
||||
@ -131,8 +132,10 @@ public class Turret extends Block{
|
||||
protected void shoot(Tile tile){
|
||||
TurretEntity entity = tile.entity();
|
||||
|
||||
vector.set(0, 4).setAngle(entity.rotation);
|
||||
Bullet out = new Bullet(bullet, tile.entity, tile.worldx()+vector.x, tile.worldy()+vector.y, entity.rotation).add();
|
||||
float inac = Mathf.range(inaccuracy);
|
||||
|
||||
vector.set(0, 4).setAngle(entity.rotation + inac);
|
||||
Bullet out = new Bullet(bullet, tile.entity, tile.worldx()+vector.x, tile.worldy()+vector.y, entity.rotation + inac).add();
|
||||
out.damage = (int)(bullet.damage*Vars.multiplier);
|
||||
}
|
||||
|
||||
|
BIN
desktop/gifexport/recording1506016206.gif
Normal file
After Width: | Height: | Size: 2.0 MiB |
BIN
desktop/gifexport/recording1506016233.gif
Normal file
After Width: | Height: | Size: 3.4 MiB |
BIN
desktop/gifexport/recording1506016803.gif
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
desktop/gifexport/recording1506016819.gif
Normal file
After Width: | Height: | Size: 4.0 MiB |
BIN
desktop/gifexport/recording1506016935.gif
Normal file
After Width: | Height: | Size: 1.0 MiB |
BIN
desktop/gifexport/recording1506017144.gif
Normal file
After Width: | Height: | Size: 1.5 MiB |