1
0
mirror of https://github.com/veden/Rampant.git synced 2025-03-11 14:49:32 +02:00

function renaming

This commit is contained in:
Aaron Veden 2018-01-23 13:39:32 -08:00
parent d6685f3cb6
commit 38f4c98559
22 changed files with 270 additions and 791 deletions

View File

@ -1,4 +1,4 @@
local acidBall = require("prototypes/utils/AttackAcidBall")
local acidBall = require("prototypes/utils/AttackBall")
if settings.startup["rampant-useDumbProjectiles"].value then
acidBall.generateLegacy()
@ -12,13 +12,14 @@ if settings.startup["rampant-newEnemies"].value then
require("prototypes/Physical")
require("prototypes/Suicide")
require("prototypes/Fire")
require("prototypes/Inferno")
require("prototypes/Electric")
require("prototypes/Nuclear")
require("prototypes/Inferno")
-- require("prototypes/Fast")
-- require("prototypes/Troll")
-- require("prototypes/Decaying")
-- require("prototypes/Undying")
-- require("prototypes/Wasp")
-- require("prototypes/Laser")
require("prototypes/Electric")
end

View File

@ -81,6 +81,6 @@
(define (run)
(copyFiles modFolder)
(copyFiles zipModFolder)
;;(copyFiles zipModFolder)
;;(makeZip modFolder)
(system*/exit-code "/data/games/factorio/bin/x64/factorio")))

View File

@ -1,6 +1,6 @@
-- imports
local acidBall = require("utils/AttackAcidBall")
local acidBall = require("utils/AttackBall")
local biterUtils = require("utils/BiterUtils")
local smokeUtils = require("utils/SmokeUtils")
local swarmUtils = require("SwarmUtils")
@ -24,8 +24,8 @@ local makeSmokeSoft = smokeUtils.makeSmokeSoft
local buildUnitSpawner = swarmUtils.buildUnitSpawner
local buildWorm = swarmUtils.buildWorm
local createAcidBall = acidBall.createAcidBall
local createFireAttack = biterUtils.createFireAttack
local createAttackBall = acidBall.createAttackBall
local createStreamAttack = biterUtils.createStreamAttack
local createMeleeAttack = biterUtils.createMeleeAttack
makeSmokeSoft({name="acid", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
@ -1163,8 +1163,7 @@ buildUnitSpawner(
},
function (attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
return createStreamAttack(attributes, createAttackBall(attributes))
end,
{
@ -1514,8 +1513,7 @@ buildWorm(
},
function (attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
return createStreamAttack(attributes, createAttackBall(attributes))
end,
ACID_WORM_VARIATIONS,

View File

@ -583,9 +583,8 @@ buildUnitSpawner(
},
function (attributes)
makeBeam(attributes)
return createElectricAttack(attributes,
attributes.name .. "-beam-rampant",
makeBeam(attributes),
biterattackanimation(attributes.scale, attributes.tint1, attributes.tint2))
end,

View File

@ -1,6 +1,6 @@
-- imports
local acidBall = require("utils/AttackAcidBall")
local acidBall = require("utils/AttackBall")
local biterUtils = require("utils/BiterUtils")
local smokeUtils = require("utils/SmokeUtils")
local swarmUtils = require("SwarmUtils")
@ -24,8 +24,8 @@ local makeSmokeSoft = smokeUtils.makeSmokeSoft
local buildUnitSpawner = swarmUtils.buildUnitSpawner
local buildWorm = swarmUtils.buildWorm
local createAcidBall = acidBall.createAcidBall
local createFireAttack = biterUtils.createFireAttack
local createAttackBall = acidBall.createAttackBall
local createStreamAttack = biterUtils.createStreamAttack
local createMeleeAttack = biterUtils.createMeleeAttack
makeSmokeSoft({name="fire", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
@ -1088,8 +1088,7 @@ buildUnitSpawner(
},
function (attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
return createStreamAttack(attributes, createAttackBall(attributes))
end,
{
@ -1405,9 +1404,8 @@ buildWorm(
}
},
function (attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
function (attributes)
return createStreamAttack(attributes, createAttackBall(attributes))
end,
FIRE_WORM_VARIATIONS,

View File

@ -1,6 +1,6 @@
-- imports
local acidBall = require("utils/AttackAcidBall")
local attackFlame = require("utils/AttackFlame")
local biterUtils = require("utils/BiterUtils")
local smokeUtils = require("utils/SmokeUtils")
local swarmUtils = require("SwarmUtils")
@ -10,11 +10,11 @@ local constants = require("Constants")
-- constants
local INFERNAL_NEST_TIERS = constants.INFERNAL_NEST_TIERS
local INFERNAL_NEST_VARIATIONS = constants.INFERNAL_NEST_VARIATIONS
local INFERNO_NEST_TIERS = constants.INFERNO_NEST_TIERS
local INFERNO_NEST_VARIATIONS = constants.INFERNO_NEST_VARIATIONS
local INFERNAL_WORM_TIERS = constants.INFERNAL_WORM_TIERS
local INFERNAL_WORM_VARIATIONS = constants.INFERNAL_WORM_VARIATIONS
local INFERNO_WORM_TIERS = constants.INFERNO_WORM_TIERS
local INFERNO_WORM_VARIATIONS = constants.INFERNO_WORM_VARIATIONS
-- imported functions
@ -24,534 +24,13 @@ local makeSmokeSoft = smokeUtils.makeSmokeSoft
local buildUnitSpawner = swarmUtils.buildUnitSpawner
local buildWorm = swarmUtils.buildWorm
local createAcidBall = acidBall.createAcidBall
local createFlameAttack = biterUtils.createFlameAttack
local createMeleeAttack = biterUtils.createMeleeAttack
local createAttackFlame = attackFlame.createAttackFlame
local createStreamAttack = biterUtils.createStreamAttack
makeSmokeSoft({name="inferno", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
-- inferno biters
buildUnitSpawner(
{
unit = {
name = "inferno-biter",
attributes = {
explosion = "blood-explosion-small"
},
attack = {
damageType = "inferno"
},
resistances = {},
type = "biter",
scales = {
[1] = 0.5,
[2] = 0.6,
[3] = 0.7,
[4] = 0.8,
[5] = 0.9,
[6] = 1,
[7] = 1.1,
[8] = 1.2,
[9] = 1.3,
[10] = 1.4
},
tint1 = {r=1, g=0, b=0, a=0.65},
tint2 = {r=1, g=0, b=0, a=0.4}
},
unitSpawner = {
name = "inferno-biter-nest",
attributes = {},
resistances = {},
scales = {
[1] = 0.5,
[2] = 0.5,
[3] = 0.5,
[4] = 0.5,
[5] = 0.5,
[6] = 0.5,
[7] = 0.5,
[8] = 0.5,
[9] = 0.5,
[10] = 0.5
},
tint = {r=1.0, g=0, b=0, a=1.0}
}
},
{
unit = {
{
type = "attribute",
name = "health",
[1] = 15,
[2] = 75,
[3] = 150,
[4] = 250,
[5] = 400,
[6] = 750,
[7] = 1500,
[8] = 3000,
[9] = 5000,
[10] = 10000
},
{
type = "attack",
name = "cooldown",
[1] = 35,
[2] = 35,
[3] = 35,
[4] = 35,
[5] = 35,
[6] = 35,
[7] = 50,
[8] = 50,
[9] = 55,
[10] = 57
},
{
type = "attribute",
name = "spawningTimeModifer",
[1] = 0,
[2] = 0,
[3] = 1,
[4] = 2,
[5] = 3,
[6] = 7,
[7] = 10,
[8] = 10,
[9] = 12,
[10] = 12
},
{
type = "attribute",
name = "pollutionToAttack",
[1] = 200,
[2] = 750,
[3] = 1750,
[4] = 3500,
[5] = 5000,
[6] = 10000,
[7] = 20000,
[8] = 25000,
[9] = 30000,
[10] = 40000
},
{
type = "attack",
name = "damage",
[1] = 7,
[2] = 15,
[3] = 22.5,
[4] = 35,
[5] = 45,
[6] = 60,
[7] = 75,
[8] = 90,
[9] = 150,
[10] = 200
},
{
type = "attribute",
name = "healing",
[1] = 0.01,
[2] = 0.01,
[3] = 0.015,
[4] = 0.02,
[5] = 0.05,
[6] = 0.075,
[7] = 0.1,
[8] = 0.12,
[9] = 0.14,
[10] = 0.16
},
{
type = "attribute",
name = "movement",
[1] = 0.2,
[2] = 0.19,
[3] = 0.185,
[4] = 0.18,
[5] = 0.175,
[6] = 0.17,
[7] = 0.17,
[8] = 0.17,
[9] = 0.17,
[10] = 0.17
},
{
type = "attribute",
name = "distancePerFrame",
[1] = 0.1,
[2] = 0.125,
[3] = 0.15,
[4] = 0.19,
[5] = 0.195,
[6] = 0.2,
[7] = 0.2,
[8] = 0.2,
[9] = 0.2,
[10] = 0.2
},
{
type = "resistance",
name = "physical",
decrease = {
[1] = 0,
[2] = 0,
[3] = 4,
[4] = 5,
[5] = 6,
[6] = 8,
[7] = 10,
[8] = 12,
[9] = 14,
[10] = 15
},
percent = {
[1] = 0,
[2] = 0,
[3] = 0,
[4] = 10,
[5] = 12,
[6] = 12,
[7] = 13,
[8] = 13,
[9] = 14,
[10] = 15
}
},
{
type = "resistance",
name = "explosion",
decrease = {
[1] = 0,
[2] = 0,
[3] = 0,
[4] = 0,
[5] = 0,
[6] = 0,
[7] = 10,
[8] = 12,
[9] = 14,
[10] = 15
},
percent = {
[1] = 0,
[2] = 0,
[3] = 0,
[4] = 10,
[5] = 12,
[6] = 12,
[7] = 13,
[8] = 13,
[9] = 14,
[10] = 15
}
},
{
type = "resistance",
name = "fire",
decrease = {
[1] = 10,
[2] = 10,
[3] = 14,
[4] = 14,
[5] = 16,
[6] = 16,
[7] = 18,
[8] = 18,
[9] = 20,
[10] = 20
},
percent = {
[1] = 75,
[2] = 75,
[3] = 80,
[4] = 85,
[5] = 85,
[6] = 90,
[7] = 90,
[8] = 95,
[9] = 95,
[10] = 97
}
},
{
type = "attack",
name = "range",
[1] = 0.5,
[2] = 0.5,
[3] = 0.75,
[4] = 0.75,
[5] = 1.0,
[6] = 1.0,
[7] = 1.25,
[8] = 1.50,
[9] = 1.75,
[10] = 2.0
}
},
unitSpawner = {
{
type = "attribute",
name = "health",
[1] = 350,
[2] = 500,
[3] = 750,
[4] = 1500,
[5] = 2500,
[6] = 3500,
[7] = 5000,
[8] = 7000,
[9] = 10000,
[10] = 15000
},
{
type = "attribute",
name = "healing",
[1] = 0.02,
[2] = 0.02,
[3] = 0.022,
[4] = 0.024,
[5] = 0.026,
[6] = 0.028,
[7] = 0.03,
[8] = 0.032,
[9] = 0.034,
[10] = 0.036
},
{
type = "attribute",
name = "spawingCooldownStart",
[1] = 360,
[2] = 360,
[3] = 355,
[4] = 355,
[5] = 350,
[6] = 350,
[7] = 345,
[8] = 345,
[9] = 340,
[10] = 340
},
{
type = "attribute",
name = "spawingCooldownEnd",
[1] = 150,
[2] = 150,
[3] = 145,
[4] = 145,
[5] = 140,
[6] = 140,
[7] = 135,
[8] = 135,
[9] = 130,
[10] = 130
},
{
type = "attribute",
name = "evolutionRequirement",
[1] = 0,
[2] = 0.12,
[3] = 0.22,
[4] = 0.32,
[5] = 0.42,
[6] = 0.52,
[7] = 0.62,
[8] = 0.72,
[9] = 0.82,
[10] = 0.92
},
{
type = "attribute",
name = "unitsOwned",
[1] = 7,
[2] = 7,
[3] = 8,
[4] = 8,
[5] = 9,
[6] = 9,
[7] = 10,
[8] = 10,
[9] = 11,
[10] = 11
},
{
type = "attribute",
name = "unitsToSpawn",
[1] = 5,
[2] = 5,
[3] = 6,
[4] = 6,
[5] = 7,
[6] = 7,
[7] = 8,
[8] = 8,
[9] = 9,
[10] = 9
},
{
type = "resistance",
name = "physical",
decrease = {
[1] = 2,
[2] = 2,
[3] = 4,
[4] = 4,
[5] = 6,
[6] = 6,
[7] = 10,
[8] = 12,
[9] = 12,
[10] = 14
},
percent = {
[1] = 15,
[2] = 15,
[3] = 17,
[4] = 17,
[5] = 18,
[6] = 18,
[7] = 19,
[8] = 19,
[9] = 20,
[10] = 20
}
},
{
type = "resistance",
name = "explosion",
decrease = {
[1] = 5,
[2] = 5,
[3] = 6,
[4] = 6,
[5] = 7,
[6] = 7,
[7] = 8,
[8] = 8,
[9] = 9,
[10] = 9
},
percent = {
[1] = 15,
[2] = 15,
[3] = 17,
[4] = 17,
[5] = 18,
[6] = 18,
[7] = 19,
[8] = 19,
[9] = 20,
[10] = 20
}
},
{
type = "resistance",
name = "fire",
decrease = {
[1] = 10,
[2] = 10,
[3] = 14,
[4] = 14,
[5] = 16,
[6] = 16,
[7] = 18,
[8] = 18,
[9] = 20,
[10] = 20
},
percent = {
[1] = 75,
[2] = 75,
[3] = 80,
[4] = 85,
[5] = 85,
[6] = 90,
[7] = 90,
[8] = 95,
[9] = 95,
[10] = 97
}
}
},
probabilityTable = {
[1] = 1,
[2] = 1,
[3] = 1,
[4] = 1,
[5] = 1,
[6] = 1,
[7] = 1,
[8] = 1,
[9] = 1,
[10] = 1,
}
},
createMeleeAttack,
{
unit = 10,
unitSpawner = INFERNAL_NEST_VARIATIONS
},
{
unit = 10,
unitSpawner = INFERNAL_NEST_TIERS
}
)
local softSmoke = makeSmokeSoft({name="inferno", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
local smokeGlow = makeSmokeWithGlow({name="inferno", smokeWithGlowTint=makeColor(0.3, 0.75, 0.3, 0.1)})
local smokeWithoutGlow = makeSmokeWithoutGlow({name="inferno", smokeWithoutGlowTint=makeColor(0.3, 0.75, 0.3, 0.1)})
local smokeFuel = makeSmokeAddingFuel({name="inferno"})
-- inferno spitters
buildUnitSpawner(
@ -563,8 +42,11 @@ buildUnitSpawner(
explosion = "blood-explosion-small"
},
attack = {
damageType = "inferno",
softSmokeName = "inferno-soft-smoke-rampant"
damageType = "fire",
softSmokeName = softSmoke,
smokeWithGlowName = smokeGlow,
smokeWithoutGlowName = smokeWithoutGlow,
smokeAddingFuelName = smokeFuel
},
resistances = {},
@ -1087,18 +569,17 @@ buildUnitSpawner(
},
function (attributes)
createAcidBall(attributes)
return createFlameAttack(attributes, attributes.name .. "-stream-rampant")
return createStreamAttack(attributes, createAttackFlame(attributes))
end,
{
unit = 10,
unitSpawner = INFERNAL_NEST_VARIATIONS
unitSpawner = INFERNO_NEST_VARIATIONS
},
{
unit = 10,
unitSpawner = INFERNAL_NEST_TIERS
unitSpawner = INFERNO_NEST_TIERS
}
)
@ -1109,7 +590,7 @@ buildWorm(
attributes = {},
attack = {
damageType = "inferno",
damageType = "fire",
softSmokeName = "inferno-soft-smoke-rampant"
},
resistances = {},
@ -1405,10 +886,9 @@ buildWorm(
},
function (attributes)
createAcidBall(attributes)
return createFlameAttack(attributes, attributes.name .. "-stream-rampant")
return createStreamAttack(attributes, createAttackFlame(attributes))
end,
INFERNAL_WORM_VARIATIONS,
INFERNAL_WORM_TIERS
INFERNO_WORM_VARIATIONS,
INFERNO_WORM_TIERS
)

View File

@ -1,6 +1,6 @@
-- imports
local acidBall = require("utils/AttackAcidBall")
local acidBall = require("utils/AttackBall")
local biterUtils = require("utils/BiterUtils")
local smokeUtils = require("utils/SmokeUtils")
local swarmUtils = require("SwarmUtils")
@ -24,8 +24,8 @@ local makeSmokeSoft = smokeUtils.makeSmokeSoft
local buildUnitSpawner = swarmUtils.buildUnitSpawner
local buildWorm = swarmUtils.buildWorm
local createAcidBall = acidBall.createAcidBall
local createFireAttack = biterUtils.createFireAttack
local createAttackBall = acidBall.createAttackBall
local createStreamAttack = biterUtils.createStreamAttack
local createMeleeAttack = biterUtils.createMeleeAttack
makeSmokeSoft({name="neutral", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
@ -1022,8 +1022,8 @@ buildUnitSpawner(
},
function (attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
createAttackBall(attributes)
return createStreamAttack(attributes, attributes.name .. "-stream-rampant")
end,
{
@ -1339,8 +1339,8 @@ buildWorm(
},
function (attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
createAttackBall(attributes)
return createStreamAttack(attributes, attributes.name .. "-stream-rampant")
end,
NEUTRAL_WORM_VARIATIONS,

View File

@ -1,6 +1,6 @@
-- imports
local acidBall = require("utils/AttackAcidBall")
local acidBall = require("utils/AttackBall")
local biterUtils = require("utils/BiterUtils")
local stickerUtils = require("utils/StickerUtils")
local smokeUtils = require("utils/SmokeUtils")
@ -26,8 +26,8 @@ local makeSmokeSoft = smokeUtils.makeSmokeSoft
local makeSticker = stickerUtils.makeSticker
local buildUnitSpawner = swarmUtils.buildUnitSpawner
local buildWorm = swarmUtils.buildWorm
local createAcidBall = acidBall.createAcidBall
local createFireAttack = biterUtils.createFireAttack
local createAttackBall = acidBall.createAttackBall
local createStreamAttack = biterUtils.createStreamAttack
local createSuicideAttack = biterUtils.createSuicideAttack
makeSmokeSoft({name="nuclear", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
@ -909,8 +909,7 @@ buildWorm(
function (attributes)
makeSticker(attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
return createStreamAttack(attributes, createAttackBall(attributes))
end,
NUCLEAR_WORM_VARIATIONS,

View File

@ -1,6 +1,6 @@
-- imports
local physicalBall = require("utils/AttackAcidBall")
local physicalBall = require("utils/AttackBall")
local biterUtils = require("utils/BiterUtils")
local smokeUtils = require("utils/SmokeUtils")
local swarmUtils = require("SwarmUtils")
@ -24,8 +24,8 @@ local makeSmokeSoft = smokeUtils.makeSmokeSoft
local buildUnitSpawner = swarmUtils.buildUnitSpawner
local buildWorm = swarmUtils.buildWorm
local createAcidBall = physicalBall.createAcidBall
local createFireAttack = biterUtils.createFireAttack
local createAttackBall = physicalBall.createAttackBall
local createStreamAttack = biterUtils.createStreamAttack
local createMeleeAttack = biterUtils.createMeleeAttack
makeSmokeSoft({name="physical", softSmokeTint=makeColor(0.75, 0.75, 0.75, 0.1)})
@ -843,8 +843,7 @@ buildWorm(
},
function (attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
return createStreamAttack(attributes, createAttackBall(attributes))
end,
PHYSICAL_WORM_VARIATIONS,

View File

@ -1,6 +1,6 @@
-- imports
local acidBall = require("utils/AttackAcidBall")
local acidBall = require("utils/AttackBall")
local biterUtils = require("utils/BiterUtils")
local stickerUtils = require("utils/StickerUtils")
local smokeUtils = require("utils/SmokeUtils")
@ -26,8 +26,8 @@ local makeSmokeSoft = smokeUtils.makeSmokeSoft
local makeSticker = stickerUtils.makeSticker
local buildUnitSpawner = swarmUtils.buildUnitSpawner
local buildWorm = swarmUtils.buildWorm
local createAcidBall = acidBall.createAcidBall
local createFireAttack = biterUtils.createFireAttack
local createAttackBall = acidBall.createAttackBall
local createStreamAttack = biterUtils.createStreamAttack
local createSuicideAttack = biterUtils.createSuicideAttack
makeSmokeSoft({name="suicide", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
@ -935,8 +935,7 @@ buildWorm(
function (attributes)
makeSticker(attributes)
createAcidBall(attributes)
return createFireAttack(attributes, attributes.name .. "-stream-rampant")
return createStreamAttack(attributes, createAttackBall(attributes))
end,
SUICIDE_WORM_VARIATIONS,

View File

@ -327,8 +327,7 @@ function swarmUtils.buildUnitSpawner(templates, upgradeTable, attackGenerator, v
variations.unit,
tiers.unit)
for t=1, tiers.unitSpawner do
for t=1, tiers.unitSpawner do
for i=1,variations.unitSpawner do
local unitSpawner = deepcopy(templates.unitSpawner)
unitSpawner.name = unitSpawner.name .. "-v" .. i .. "-t" .. t
@ -354,7 +353,6 @@ end
function swarmUtils.buildWorm(template, upgradeTable, attackGenerator, variations, tiers)
for t=1, tiers do
for i=1,variations do
local worm = deepcopy(template)
worm.name = worm.name .. "-v" .. i .. "-t" .. t

View File

@ -1,82 +0,0 @@
-- import
local streamUtils = require("StreamUtils")
local colorUtils = require("ColorUtils")
local smokeUtils = require("SmokeUtils")
-- imported functions
local makeSmokeSoft = smokeUtils.makeSmokeSoft
local makeStream = streamUtils.makeStream
local makeColor = colorUtils.makeColor
-- dumb acid projectiles
local acidBall = {}
function acidBall.createAcidBall(attributes)
local templateDamage = { amount = attributes.damage, type = attributes.damageType or "acid" }
local templateArea = {
type = "area",
radius = attributes.radius,
action_delivery =
{
{
type = "instant",
target_effects = (attributes.areaEffects and attributes.areaEffects(attributes)) or
{
{
type = "damage",
damage = templateDamage
}
}
}
}
}
local templateActions = {
templateArea,
{
type = "direct",
action_delivery = {
type = "instant",
target_effects = (attributes.pointEffects and attributes.pointEffects(attributes)) or
{
type= "create-entity",
entity_name = attributes.crater or "acid-splash-purple"
}
}
}
}
local template = {
name = attributes.name,
particleTint = attributes.pTint,
spineAnimationTint = attributes.sTint,
softSmokeTint = attributes.smTint,
softSmokeName = attributes.softSmokeName,
particleVertialAcceleration = attributes.particleVertialAcceleration,
particleHoizontalSpeed = attributes.particleHoizontalSpeed,
particleHoizontalSpeedDeviation = attributes.particleHoizontalSpeedDeviation,
actions = templateActions
}
makeStream(template)
end
function acidBall.generateLegacy()
makeSmokeSoft({name="acid-ball", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
acidBall.createAcidBall({name="acid-ball", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=4, radius=1.2})
acidBall.createAcidBall({name="acid-ball-1", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=9, radius=1.3})
acidBall.createAcidBall({name="acid-ball-2", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=14, radius=1.4})
acidBall.createAcidBall({name="acid-ball-3", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=23, radius=1.5})
acidBall.createAcidBall({name="wide-acid-ball", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=18, radius=3})
acidBall.createAcidBall({name="acid-ball-4", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=25, radius=1.75})
acidBall.createAcidBall({name="acid-ball-5", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=50, radius=2})
acidBall.createAcidBall({name="acid-ball-6", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=70, radius=2.5})
end
return acidBall

View File

@ -1,81 +0,0 @@
local attackFlame = {}
-- imported
local streamUtils = require("StreamUtils")
local colorUtils = require("ColorUtils")
local fireUtils = require("FireUtils")
local stickerUtils = require("StickerUtils")
-- imported functions
local makeColor = colorUtils.makeColor
local makeStream = streamUtils.makeStream
local makeFire = fireUtils.makeFire
local makeSticker = stickerUtils.makeSticker
local makeSpreadEffect = fireUtils.makeSpreadEffect
-- module code
function attackFlame.makeAttackFlame(attributes)
local name = attributes.name .. "-flame-rampant"
local spawnEntityName = makeSpreadEffect({
name = name,
smokeWithoutGlowTint = makeColor(0.25,0.75,0.1, 0.25)
})
local fireName = makeFire({
name = name,
fireTint = {r=0, g=0.9, b=0, a=0.5},
smokeWithGlowTint = {r=0.2, g=0.8, b=0.2, a=0.25},
spawnEntityName = spawnEntityName
})
local stickerName = makeSticker({
name = name,
spawnEntityName = spawnEntityName
})
makeStream({
name = name,
particleTint = {r=0, g=1, b=1, a=0.5},
spineAnimationTint = {r=0, g=1, b=1, a=0.5},
softSmokeTint = makeColor(0.3, 0.75, 0.3, 0.1),
actions = {
{
type = "area",
radius = 2.5,
action_delivery =
{
type = "instant",
target_effects =
{
{
type = "create-sticker",
sticker = stickerName
},
{
type = "damage",
damage = { amount = 1, type = "fire" }
},
{
type = "damage",
damage = { amount = 1, type = "acid" }
}
}
}
},
{
type = "direct",
action_delivery = {
type = "instant",
target_effects = {
type= "create-fire",
entity_name = fireName
}
}
}
}
})
end
return attackFlame

82
prototypes/utils/AttackBall.lua Executable file
View File

@ -0,0 +1,82 @@
-- import
local streamUtils = require("StreamUtils")
local colorUtils = require("ColorUtils")
local smokeUtils = require("SmokeUtils")
-- imported functions
local makeSmokeSoft = smokeUtils.makeSmokeSoft
local makeStream = streamUtils.makeStream
local makeColor = colorUtils.makeColor
-- dumb acid projectiles
local AttackBall = {}
function AttackBall.createAttackBall(attributes)
local templateDamage = { amount = attributes.damage, type = attributes.damageType or "acid" }
local templateArea = {
type = "area",
radius = attributes.radius,
action_delivery =
{
{
type = "instant",
target_effects = (attributes.areaEffects and attributes.areaEffects(attributes)) or
{
{
type = "damage",
damage = templateDamage
}
}
}
}
}
local templateActions = {
templateArea,
{
type = "direct",
action_delivery = {
type = "instant",
target_effects = (attributes.pointEffects and attributes.pointEffects(attributes)) or
{
type= "create-entity",
entity_name = attributes.crater or "acid-splash-purple"
}
}
}
}
local template = {
name = attributes.name,
particleTint = attributes.pTint,
spineAnimationTint = attributes.sTint,
softSmokeTint = attributes.smTint,
softSmokeName = attributes.softSmokeName,
particleVertialAcceleration = attributes.particleVertialAcceleration,
particleHoizontalSpeed = attributes.particleHoizontalSpeed,
particleHoizontalSpeedDeviation = attributes.particleHoizontalSpeedDeviation,
actions = templateActions
}
return makeStream(template)
end
function AttackBall.generateLegacy()
makeSmokeSoft({name="acid-ball", softSmokeTint=makeColor(0.3, 0.75, 0.3, 0.1)})
AttackBall.createAttackBall({name="acid-ball", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=4, radius=1.2})
AttackBall.createAttackBall({name="acid-ball-1", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=9, radius=1.3})
AttackBall.createAttackBall({name="acid-ball-2", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=14, radius=1.4})
AttackBall.createAttackBall({name="acid-ball-3", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=23, radius=1.5})
AttackBall.createAttackBall({name="wide-acid-ball", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=18, radius=3})
AttackBall.createAttackBall({name="acid-ball-4", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=25, radius=1.75})
AttackBall.createAttackBall({name="acid-ball-5", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=50, radius=2})
AttackBall.createAttackBall({name="acid-ball-6", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="acid-ball-soft-smoke-rampant", damage=70, radius=2.5})
end
return AttackBall

View File

@ -0,0 +1,84 @@
local attackFlame = {}
-- imported
local streamUtils = require("StreamUtils")
local colorUtils = require("ColorUtils")
local fireUtils = require("FireUtils")
local stickerUtils = require("StickerUtils")
-- imported functions
local makeColor = colorUtils.makeColor
local makeStream = streamUtils.makeStream
local makeFire = fireUtils.makeFire
local makeSticker = stickerUtils.makeSticker
local makeSpreadEffect = fireUtils.makeSpreadEffect
-- module code
function attackFlame.createAttackFlame(attributes)
local spawnEntityName = makeSpreadEffect({
name = attributes.name,
smokeWithoutGlowName = attributes.smokeWithoutGlowName
})
local fireName = makeFire({
name = attributes.name,
fireTint = attributes.fTint or {r=0, g=0.9, b=0, a=0.5},
smokeWithGlowTint = attributes.smokeWithGlowName,
smokeWithoutGlowName = attributes.smokeWithoutGlowName,
spawnEntityName = spawnEntityName,
damageMaxMultipler = attributes.damageMaxMultipler,
multiplerIncrease = attributes.multiplerIncrease,
multiplerDecrease = attributes.multiplerDecrease
})
local stickerName = makeSticker({
name = attributes.name,
spawnEntityName = spawnEntityName,
stickerAnimation = attributes.stickerAnimation,
stickerDuration = attributes.stickerDuration,
stickerDamagePerTick = attributes.stickerDamagePerTick,
fireSpreadRadius = attributes.fireSpreadRadius
})
return makeStream({
name = attributes.name,
particleTint = attributes.pTint or {r=0, g=1, b=1, a=0.5},
spineAnimationTint = attributes.sTint or {r=0, g=1, b=1, a=0.5},
softSmokeTint = attributes.softSmokeName or makeColor(0.3, 0.75, 0.3, 0.1),
actions = {
{
type = "area",
radius = attributes.radius or 2.5,
action_delivery =
{
type = "instant",
target_effects =
{
{
type = "create-sticker",
sticker = stickerName
},
{
type = "damage",
damage = { amount = attributes.damage, type = attributes.damageType or "fire" }
}
}
}
},
{
type = "direct",
action_delivery = {
type = "instant",
target_effects = {
type= "create-fire",
entity_name = fireName
}
}
}
}
})
end
return attackFlame

View File

@ -145,9 +145,12 @@ function beamUtils.makeBeam(attributes)
volume = 0.7
}
}
result.name = attributes.name .. "-beam-rampant"
local name = attributes.name .. "-beam-rampant"
result.name = name
data:extend({result})
return name
end
return beamUtils

View File

@ -520,7 +520,7 @@ function biterFunctions.createMeleeAttack(attributes)
}
end
function biterFunctions.createFireAttack(attributes, fireAttack)
function biterFunctions.createStreamAttack(attributes, fireAttack)
local attack = {
type = "stream",
ammo_category = "flamethrower",

View File

@ -119,9 +119,9 @@ function fireUtils.makeFire(attributes)
color = attributes.fireTint,
damage_per_tick = attributes.damagePerTick or { amount = 45/60, type = "fire" },
maximum_damage_multiplier = 6,
damage_multiplier_increase_per_added_fuel = 1,
damage_multiplier_decrease_per_tick = 0.005,
maximum_damage_multiplier = attributes.damageMaxMultipler or 6,
damage_multiplier_increase_per_added_fuel = attributes.mutliplerIncrease or 1,
damage_multiplier_decrease_per_tick = attributes.mutliplerDecrease or 0.005,
spawn_entity = spawnEntityName,

View File

@ -13,11 +13,12 @@ local makeSmokeSoft = smokeUtils.makeSmokeSoft
function streamUtils.makeStream(info)
local attributes = util.table.deepcopy(info)
local softSmokeName = attributes.softSmokeName or makeSmokeSoft(attributes)
local name = attributes.name .. "-stream-rampant"
data:extend(
{
{
type = "stream",
name = attributes.name .. "-stream-rampant",
name = name,
flags = {"not-on-map"},
stream_light = {intensity = 1, size = 4},
ground_light = {intensity = 0.8, size = 4},
@ -84,6 +85,7 @@ function streamUtils.makeStream(info)
}
}
)
return name
end
return streamUtils

View File

@ -5,7 +5,7 @@ local biterUtils = require("BiterUtils")
function bobsUpdates.useDumbProjectiles()
local turrets = data.raw["turret"];
turrets["bob-big-explosive-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["bob-big-explosive-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 26,
@ -16,7 +16,7 @@ function bobsUpdates.useDumbProjectiles()
},
"bob-explosive-ball-stream-rampant")
turrets["bob-big-fire-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["bob-big-fire-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 26,
@ -27,7 +27,7 @@ function bobsUpdates.useDumbProjectiles()
},
"bob-fire-ball-stream-rampant")
turrets["bob-big-poison-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["bob-big-poison-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 26,
@ -38,7 +38,7 @@ function bobsUpdates.useDumbProjectiles()
},
"bob-poison-ball-stream-rampant")
turrets["bob-big-piercing-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["bob-big-piercing-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 26,
@ -49,7 +49,7 @@ function bobsUpdates.useDumbProjectiles()
},
"bob-piercing-ball-stream-rampant")
turrets["bob-big-electric-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["bob-big-electric-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 26,
@ -60,7 +60,7 @@ function bobsUpdates.useDumbProjectiles()
},
"bob-electric-ball-stream-rampant")
turrets["bob-giant-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["bob-giant-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 28,
@ -71,7 +71,7 @@ function bobsUpdates.useDumbProjectiles()
},
"acid-ball-5-stream-rampant")
turrets["bob-behemoth-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["bob-behemoth-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 30,
@ -85,7 +85,7 @@ function bobsUpdates.useDumbProjectiles()
local units = data.raw["unit"]
local unit = units["behemoth-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 16,
@ -99,7 +99,7 @@ function bobsUpdates.useDumbProjectiles()
"acid-ball-3-stream-rampant")
unit = units["bob-big-electric-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 15,
@ -114,7 +114,7 @@ function bobsUpdates.useDumbProjectiles()
"bob-electric-ball-stream-rampant")
unit = units["bob-huge-explosive-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 16,
@ -129,7 +129,7 @@ function bobsUpdates.useDumbProjectiles()
"bob-explosive-ball-stream-rampant")
unit = units["bob-huge-acid-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 16,
@ -143,7 +143,7 @@ function bobsUpdates.useDumbProjectiles()
"wide-acid-ball-stream-rampant")
unit = units["bob-giant-fire-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 16,
@ -157,7 +157,7 @@ function bobsUpdates.useDumbProjectiles()
"bob-fire-ball-stream-rampant")
unit = units["bob-giant-poison-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 16,
@ -171,7 +171,7 @@ function bobsUpdates.useDumbProjectiles()
"bob-poison-ball-stream-rampant")
unit = units["bob-titan-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 16,
@ -185,7 +185,7 @@ function bobsUpdates.useDumbProjectiles()
"bob-titan-ball-stream-rampant")
unit = units["bob-behemoth-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 16,
@ -200,7 +200,7 @@ function bobsUpdates.useDumbProjectiles()
unit = units["bob-leviathan-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 17,

View File

@ -5,7 +5,7 @@ local biterUtils = require("BiterUtils")
function NEUpdates.useNEUnitLaunchers ()
local turrets = data.raw["turret"];
turrets["medium-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["medium-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 25,
@ -17,7 +17,7 @@ function NEUpdates.useNEUnitLaunchers ()
},
"ne-infected-unit-ball-stream-rampant")
turrets["big-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["big-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 30,
@ -38,7 +38,7 @@ function NEUpdates.useDumbProjectiles()
turret = turrets["medium-worm-turret"]
turret["attack_parameters"].range = 22
turret["attack_parameters"] = biterUtils.createFireAttack(
turret["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 25,
@ -52,7 +52,7 @@ function NEUpdates.useDumbProjectiles()
turret = turrets["big-worm-turret"]
turret["attack_parameters"].range = 27
turret["attack_parameters"] = biterUtils.createFireAttack(
turret["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 30,
@ -67,7 +67,7 @@ function NEUpdates.useDumbProjectiles()
local units = data.raw["unit"]
local unit = units["small-spitter-Mk2"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 100,
range = 13,
@ -82,7 +82,7 @@ function NEUpdates.useDumbProjectiles()
"ne-infected-ball-stream-rampant")
unit = units["small-spitter-Mk3"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 100,
range = 13,
@ -98,7 +98,7 @@ function NEUpdates.useDumbProjectiles()
unit = units["medium-spitter-Mk2"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 100,
range = 14,
@ -113,7 +113,7 @@ function NEUpdates.useDumbProjectiles()
"ne-infected-ball-stream-rampant")
unit = units["medium-spitter-Mk3"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 100,
range = 14,
@ -128,7 +128,7 @@ function NEUpdates.useDumbProjectiles()
"ne-mutated-ball-stream-rampant")
unit = units["big-spitter-Mk2"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 100,
range = 15,
@ -144,7 +144,7 @@ function NEUpdates.useDumbProjectiles()
unit = units["big-spitter-Mk3"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 100,
range = 15,

View File

@ -5,7 +5,7 @@ local biterUtils = require("BiterUtils")
function vanillaUpdates.useDumbProjectiles()
local turrets = data.raw["turret"];
turrets["small-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["small-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 21,
@ -17,7 +17,7 @@ function vanillaUpdates.useDumbProjectiles()
},
"acid-ball-2-stream-rampant")
turrets["medium-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["medium-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 25,
@ -30,7 +30,7 @@ function vanillaUpdates.useDumbProjectiles()
"acid-ball-3-stream-rampant")
turrets["big-worm-turret"]["attack_parameters"] = biterUtils.createFireAttack(
turrets["big-worm-turret"]["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 60,
range = 26,
@ -44,7 +44,7 @@ function vanillaUpdates.useDumbProjectiles()
local units = data.raw["unit"];
local unit = units["small-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 100,
range = 13,
@ -58,7 +58,7 @@ function vanillaUpdates.useDumbProjectiles()
"acid-ball-stream-rampant")
unit = units["medium-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 95,
range = 14,
@ -72,7 +72,7 @@ function vanillaUpdates.useDumbProjectiles()
"acid-ball-1-stream-rampant")
unit = units["big-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 15,
@ -86,7 +86,7 @@ function vanillaUpdates.useDumbProjectiles()
"acid-ball-2-stream-rampant")
unit = units["behemoth-spitter"]
unit["attack_parameters"] = biterUtils.createFireAttack(
unit["attack_parameters"] = biterUtils.createStreamAttack(
{
cooldown = 90,
range = 16,