mirror of
https://github.com/veden/Rampant.git
synced 2025-01-26 03:20:07 +02:00
added support for artifacts and bobs enemies, ne.
This commit is contained in:
parent
ecce636595
commit
8b3bab5f5d
@ -191,10 +191,10 @@ function upgrade.attempt(natives)
|
||||
game.surfaces[1].print("Rampant - Version 0.16.9")
|
||||
global.version = constants.VERSION_44
|
||||
end
|
||||
if (global.version < constants.VERSION_46) then
|
||||
if (global.version < constants.VERSION_47) then
|
||||
|
||||
game.surfaces[1].print("Rampant - Version 0.16.11")
|
||||
global.version = constants.VERSION_46
|
||||
game.surfaces[1].print("Rampant - Version 0.16.12")
|
||||
global.version = constants.VERSION_47
|
||||
end
|
||||
|
||||
return starting ~= global.version, natives
|
||||
|
@ -1,3 +1,12 @@
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.16.12
|
||||
Date: 1. 28. 2018
|
||||
Bugfixes:
|
||||
- Fixed an error where item could be nil (https://forums.factorio.com/viewtopic.php?f=94&t=31445&start=240#p339033)
|
||||
Improvements:
|
||||
- Added support for bobs and NE artifacts
|
||||
- Added options to include Bobs or NE as factions
|
||||
|
||||
---------------------------------------------------------------------------------------------------
|
||||
Version: 0.16.11
|
||||
Date: 1. 27. 2018
|
||||
|
@ -258,8 +258,7 @@ local function onModSettingsChange(event)
|
||||
upgrade.compareTable(natives, "aiNocturnalMode", settings.global["rampant-permanentNocturnal"].value)
|
||||
upgrade.compareTable(natives, "aiPointsScaler", settings.global["rampant-aiPointsScaler"].value)
|
||||
|
||||
upgrade.compareTable(natives, "newEnemies", settings.startup["rampant-newEnemies"].value)
|
||||
|
||||
upgrade.compareTable(natives, "newEnemies", settings.startup["rampant-newEnemies"].value)
|
||||
upgrade.compareTable(natives, "enemySeed", settings.startup["rampant-enemySeed"].value)
|
||||
|
||||
-- RE-ENABLE WHEN COMPLETE
|
||||
@ -470,7 +469,7 @@ end
|
||||
|
||||
local function onSurfaceTileChange(event)
|
||||
local surfaceIndex = event.surface_index or (event.robot and event.robot.surface.index)
|
||||
if (event.item.name == "landfill") and (surfaceIndex == 1) then
|
||||
if event.item and (event.item.name == "landfill") and (surfaceIndex == 1) then
|
||||
local surface = game.surfaces[1]
|
||||
local chunks = {}
|
||||
local tiles = event.tiles
|
||||
|
@ -17,12 +17,12 @@ if settings.startup["rampant-newEnemies"].value then
|
||||
-- require("prototypes/Wasp")
|
||||
require("prototypes/Laser")
|
||||
|
||||
for k, unitSpawner in pairs(data.raw["unit-spawner"]) do
|
||||
for _, unitSpawner in pairs(data.raw["unit-spawner"]) do
|
||||
if (unitSpawner.name ~= "biter-spawner") then
|
||||
unitSpawner.autoplace = nil
|
||||
end
|
||||
end
|
||||
for k, unitSpawner in pairs(data.raw["turret"]) do
|
||||
for _, unitSpawner in pairs(data.raw["turret"]) do
|
||||
if (unitSpawner.name ~= "small-worm-turret") then
|
||||
unitSpawner.autoplace = nil
|
||||
end
|
||||
|
@ -3,14 +3,6 @@ local bobsUpdates = require("prototypes/utils/UpdatesBobs")
|
||||
local NEUpdates = require("prototypes/utils/UpdatesNE")
|
||||
local constants = require("libs/Constants")
|
||||
|
||||
local function bobsDetected()
|
||||
return settings.startup["bobmods-enemies-aliensdropartifacts"] ~= nil
|
||||
end
|
||||
|
||||
local function NEDetected()
|
||||
return settings.startup["NE_Difficulty"] ~= nil
|
||||
end
|
||||
|
||||
if settings.startup["rampant-removeBloodParticles"].value then
|
||||
local explosions = data.raw["explosion"]
|
||||
|
||||
@ -21,11 +13,11 @@ end
|
||||
|
||||
if settings.startup["rampant-useDumbProjectiles"].value then
|
||||
vanillaUpdates.useDumbProjectiles()
|
||||
if bobsDetected() then
|
||||
if settings.startup["bobmods-enemies-enableartifacts"].value then
|
||||
require("prototypes/utils/AttackBobs")
|
||||
bobsUpdates.useDumbProjectiles()
|
||||
end
|
||||
if NEDetected() then
|
||||
if settings.startup["NE_Difficulty"].value then
|
||||
require("prototypes/utils/AttackNE")
|
||||
NEUpdates.useDumbProjectiles()
|
||||
if settings.startup["rampant-useNEUnitLaunchers"].value then
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name" : "Rampant",
|
||||
"factorio_version" : "0.16",
|
||||
"version" : "0.16.11",
|
||||
"version" : "0.16.12",
|
||||
"title" : "Rampant",
|
||||
"author" : "Veden",
|
||||
"homepage" : "https://forums.factorio.com/viewtopic.php?f=94&t=31445",
|
||||
|
@ -5,12 +5,17 @@ local baseUtils = {}
|
||||
local mathUtils = require("MathUtils")
|
||||
local constants = require("Constants")
|
||||
local chunkPropertyUtils = require("ChunkPropertyUtils")
|
||||
local neUnits = require("NEBaseUtils")
|
||||
local bobsUnits = require("BobsBaseUtils")
|
||||
|
||||
-- constants
|
||||
|
||||
local TIER_SET_10 = constants.TIER_SET_10
|
||||
local TIER_SET_5 = constants.TIER_SET_5
|
||||
|
||||
local ENABLED_BOBS_UNITS = constants.ENABLED_BOBS_UNITS
|
||||
local ENABLED_NE_UNITS = constants.ENABLED_NE_UNITS
|
||||
|
||||
local NEUTRAL_WORM_TIERS = constants.NEUTRAL_WORM_TIERS
|
||||
local NEUTRAL_WORM_VARIATIONS = constants.NEUTRAL_WORM_VARIATIONS
|
||||
local NEUTRAL_NEST_TIERS = constants.NEUTRAL_NEST_TIERS
|
||||
@ -105,6 +110,9 @@ local SENTINEL_IMPASSABLE_CHUNK = constants.SENTINEL_IMPASSABLE_CHUNK
|
||||
local euclideanDistancePoints = mathUtils.euclideanDistancePoints
|
||||
local roundToFloor = mathUtils.roundToFloor
|
||||
|
||||
local processNEUnitClass = neUnits.processNEUnitClass
|
||||
local processBobsUnitClass = bobsUnits.processBobsUnitClass
|
||||
|
||||
local gaussianRandomRange = mathUtils.gaussianRandomRange
|
||||
local gaussianRandomRangeRG = mathUtils.gaussianRandomRangeRG
|
||||
|
||||
@ -405,6 +413,14 @@ function baseUtils.rebuildNativeTables(natives, surface, rg)
|
||||
gaussianRandomRangeRG(evo, evo * 0.2, evo * 0.5, evo * 1.5, rg),
|
||||
natives.evolutionTableAlignment)
|
||||
end
|
||||
|
||||
if ENABLED_NE_UNITS then
|
||||
processNEUnitClass(natives, surface)
|
||||
end
|
||||
|
||||
if ENABLED_BOBS_UNITS then
|
||||
processBobsUnitClass(natives, surface)
|
||||
end
|
||||
|
||||
processUnitClass(NEUTRAL_NEST_VARIATIONS,
|
||||
NEUTRAL_NEST_TIERS,
|
||||
|
123
libs/BobsBaseUtils.lua
Executable file
123
libs/BobsBaseUtils.lua
Executable file
@ -0,0 +1,123 @@
|
||||
local bobs = {}
|
||||
|
||||
-- imports
|
||||
|
||||
local constants = require("Constants")
|
||||
|
||||
-- imported constants
|
||||
|
||||
local EVOLUTION_INCREMENTS = constants.EVOLUTION_INCREMENTS
|
||||
local BASE_ALIGNMENT_BOBS = constants.BASE_ALIGNMENT_BOBS
|
||||
local ENABLED_NE_UNITS = constants.ENABLED_NE_UNITS
|
||||
|
||||
-- imported functions
|
||||
|
||||
local mFloor = math.floor
|
||||
|
||||
-- module code
|
||||
|
||||
local function fileEntity(baseAlignment, entity, evolutionTable, evo)
|
||||
local evoRequirement = mFloor((evo or entity.prototype.build_base_evolution_requirement)/EVOLUTION_INCREMENTS) * EVOLUTION_INCREMENTS
|
||||
local eTable = evolutionTable[baseAlignment]
|
||||
if not eTable then
|
||||
eTable = {}
|
||||
evolutionTable[baseAlignment] = eTable
|
||||
end
|
||||
local aTable = eTable[evoRequirement]
|
||||
if not aTable then
|
||||
aTable = {}
|
||||
eTable[evoRequirement] = aTable
|
||||
end
|
||||
aTable[#aTable+1] = entity.name
|
||||
end
|
||||
|
||||
function bobs.processBobsUnitClass(natives, surface)
|
||||
local position = { x = 0, y = 0 }
|
||||
|
||||
local entity = surface.create_entity({
|
||||
name = "bob-biter-spawner",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-spitter-spawner",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "small-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "medium-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "big-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-explosive-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-fire-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-poison-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-piercing-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-electric-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-giant-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-behemoth-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
end
|
||||
|
||||
return bobs
|
@ -32,7 +32,6 @@ local CHUNK_IMPASSABLE = constants.CHUNK_IMPASSABLE
|
||||
|
||||
local CHUNK_TICK = constants.CHUNK_TICK
|
||||
|
||||
local BASE_SEARCH_RADIUS = constants.BASE_SEARCH_RADIUS
|
||||
local BASE_ALIGNMENT_DEADZONE = constants.BASE_ALIGNMENT_DEADZONE
|
||||
|
||||
local PATH_RATING = constants.PATH_RATING
|
||||
|
@ -19,7 +19,7 @@ constants.VERSION_33 = 33
|
||||
constants.VERSION_38 = 38
|
||||
constants.VERSION_41 = 41
|
||||
constants.VERSION_44 = 44
|
||||
constants.VERSION_46 = 46
|
||||
constants.VERSION_47 = 47
|
||||
|
||||
-- misc
|
||||
|
||||
@ -135,6 +135,8 @@ constants.BASE_ALIGNMENT_ENERGY_THIEF = 17
|
||||
constants.BASE_ALIGNMENT_ELECTRIC = 18
|
||||
constants.BASE_ALIGNMENT_WASP = 19
|
||||
constants.BASE_ALIGNMENT_DEADZONE = 20
|
||||
constants.BASE_ALIGNMENT_NE = 21
|
||||
constants.BASE_ALIGNMENT_BOBS = 22
|
||||
-- constants.BASE_ALIGNMENT_BURROW = 3
|
||||
|
||||
constants.BASE_PROCESS_INTERVAL = constants.TICKS_A_SECOND * 5
|
||||
@ -184,6 +186,21 @@ constants.BASE_ALIGNMENT_EVOLUTION_BASELINE = {
|
||||
[constants.BASE_ALIGNMENT_NUCLEAR] = 0.7
|
||||
}
|
||||
|
||||
constants.ENABLED_NE_UNITS = settings.startup["rampant-enableBobsUnits"].value
|
||||
constants.ENABLED_BOBS_UNITS = settings.startup["rampant-enableNEUnits"].value
|
||||
|
||||
if settings.startup["bobmods-enemies-enableartifacts"].value and constants.ENABLED_BOBS_UNITS then
|
||||
-- local t = constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_NEUTRAL]
|
||||
-- t[#t+1] = constants.BASE_ALIGNMENT_BOBS
|
||||
constants.BASE_ALIGNMENT_EVOLUTION_BASELINE[constants.BASE_ALIGNMENT_BOBS] = 0.1
|
||||
end
|
||||
|
||||
if settings.startup["NE_Difficulty"].value and constants.ENABLED_NE_UNITS then
|
||||
-- local t = constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_NEUTRAL]
|
||||
-- t[#t+1] = constants.BASE_ALIGNMENT_NE
|
||||
constants.BASE_ALIGNMENT_EVOLUTION_BASELINE[constants.BASE_ALIGNMENT_NE] = 0.1
|
||||
end
|
||||
|
||||
-- ai retreat
|
||||
|
||||
constants.NO_RETREAT_BASE_PERCENT = 0.10
|
||||
|
139
libs/NEBaseUtils.lua
Executable file
139
libs/NEBaseUtils.lua
Executable file
@ -0,0 +1,139 @@
|
||||
local ne = {}
|
||||
|
||||
-- imports
|
||||
|
||||
local constants = require("Constants")
|
||||
|
||||
-- imported constants
|
||||
|
||||
local EVOLUTION_INCREMENTS = constants.EVOLUTION_INCREMENTS
|
||||
local BASE_ALIGNMENT_NE = constants.BASE_ALIGNMENT_NE
|
||||
local ENABLED_BOBS_UNITS = constants.ENABLED_BOBS_UNITS
|
||||
|
||||
-- imported functions
|
||||
|
||||
local mFloor = math.floor
|
||||
|
||||
-- module code
|
||||
|
||||
local function fileEntity(baseAlignment, entity, evolutionTable, evo)
|
||||
local evoRequirement = mFloor((evo or entity.prototype.build_base_evolution_requirement)/EVOLUTION_INCREMENTS) * EVOLUTION_INCREMENTS
|
||||
local eTable = evolutionTable[baseAlignment]
|
||||
if not eTable then
|
||||
eTable = {}
|
||||
evolutionTable[baseAlignment] = eTable
|
||||
end
|
||||
local aTable = eTable[evoRequirement]
|
||||
if not aTable then
|
||||
aTable = {}
|
||||
eTable[evoRequirement] = aTable
|
||||
end
|
||||
aTable[#aTable+1] = entity.name
|
||||
end
|
||||
|
||||
function ne.processNEUnitClass(natives, surface)
|
||||
local position = { x = 0, y = 0 }
|
||||
|
||||
local entity = surface.create_entity({
|
||||
name = "biter-spawner",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "spitter-spawner",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
if ENABLED_BOBS_UNITS then
|
||||
entity = surface.create_entity({
|
||||
name = "bob-biter-spawner",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-spitter-spawner",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-fire-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-poison-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-piercing-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-electric-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-giant-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-behemoth-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-explosive-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
end
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "small-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "medium-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "big-worm-turret",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
end
|
||||
|
||||
return ne
|
@ -9036,6 +9036,8 @@ rampant-newEnemyWormVariations=Worm Variations
|
||||
rampant-newEnemyWormTiers=Worm Tiers
|
||||
rampant-newEnemyUnitVariations=Unit Variations
|
||||
rampant-newEnemyUnitTiers=Unit Tiers
|
||||
rampant-enableBobsUnits=Enable Bobs as a faction
|
||||
rampant-enableNEUnits=Enable NE as a faction
|
||||
|
||||
[mod-setting-description]
|
||||
rampant-useDumbProjectiles=Turns off homing projectiles for worms and spitters
|
||||
@ -9070,4 +9072,6 @@ rampant-newEnemyNestTiers=This number corresponds to number of tiers. The higher
|
||||
rampant-newEnemyWormVariations=This number corresponds to the number of variations per tier. The higher the number the smoother the enemy power curve. Min 1, Max 20
|
||||
rampant-newEnemyWormTiers=This number corresponds to number of tiers. The higher the number the smoother the enemy power curve.
|
||||
rampant-newEnemyUnitVariations=This number corresponds to the number of variations per tier. The higher the number the smoother the enemy power curve. Min 1, Max 20
|
||||
rampant-newEnemyUnitTiers=This number corresponds to number of tiers. The higher the number the smoother the enemy power curve.
|
||||
rampant-newEnemyUnitTiers=This number corresponds to number of tiers. The higher the number the smoother the enemy power curve.
|
||||
rampant-enableBobsUnits=Adds bobs spawners, units, and worms to the base upgrade and placement list
|
||||
rampant-enableNEUnits=Adds NE spawners, units, and worms to the base upgrade and placement list
|
@ -21,12 +21,21 @@ local ACID_WORM_VARIATIONS = constants.ACID_WORM_VARIATIONS
|
||||
|
||||
local buildUnitSpawner = swarmUtils.buildUnitSpawner
|
||||
local buildWorm = swarmUtils.buildWorm
|
||||
|
||||
local createAttackBall = acidBall.createAttackBall
|
||||
local createStreamAttack = biterUtils.createStreamAttack
|
||||
local createMeleeAttack = biterUtils.createMeleeAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("green")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("green")
|
||||
local wormLoot = makeWormAlienLootTable("green")
|
||||
|
||||
-- acid biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
@ -54,6 +63,7 @@ buildUnitSpawner(
|
||||
[9] = 1.3,
|
||||
[10] = 1.4
|
||||
},
|
||||
loot = biterLoot,
|
||||
tint1 = {r=0, g=0.85, b=0.13, a=0.65},
|
||||
tint2 = {r=0, g=0.85, b=0.13, a=0.65}
|
||||
},
|
||||
@ -61,6 +71,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "acid-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -561,6 +572,7 @@ buildUnitSpawner(
|
||||
unit = {
|
||||
name = "acid-spitter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -591,6 +603,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "acid-spitter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
|
||||
@ -1113,7 +1126,7 @@ buildUnitSpawner(
|
||||
[10] = 65
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "acid",
|
||||
@ -1179,6 +1192,7 @@ buildWorm(
|
||||
{
|
||||
name = "acid-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
softSmokeName = softSmoke
|
||||
|
@ -24,6 +24,16 @@ local buildWorm = swarmUtils.buildWorm
|
||||
local createElectricAttack = biterUtils.createElectricAttack
|
||||
local makeBeam = beamUtils.makeBeam
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("blue")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("blue")
|
||||
local wormLoot = makeWormAlienLootTable("blue")
|
||||
|
||||
|
||||
|
||||
-- electric biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
@ -33,6 +43,7 @@ buildUnitSpawner(
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
loot = biterLoot,
|
||||
attack = {
|
||||
damageType = "electric"
|
||||
},
|
||||
@ -59,6 +70,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "electric-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -607,6 +619,7 @@ buildWorm(
|
||||
{
|
||||
name = "electric-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
damageType = "electric"
|
||||
|
@ -27,6 +27,16 @@ local createMeleeAttack = biterUtils.createMeleeAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("purple")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("purple")
|
||||
local wormLoot = makeWormAlienLootTable("purple")
|
||||
|
||||
|
||||
|
||||
-- fast biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
@ -39,6 +49,7 @@ buildUnitSpawner(
|
||||
attack = {},
|
||||
resistances = {},
|
||||
|
||||
loot = biterLoot,
|
||||
type = "biter",
|
||||
scales = {
|
||||
[1] = 0.5,
|
||||
@ -59,6 +70,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "fast-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -525,6 +537,7 @@ buildUnitSpawner(
|
||||
unit = {
|
||||
name = "fast-spitter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -555,6 +568,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "fast-spitter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
|
||||
@ -1038,6 +1052,7 @@ buildWorm(
|
||||
{
|
||||
name = "fast-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
softSmokeName = softSmoke
|
||||
|
@ -27,12 +27,23 @@ local createMeleeAttack = biterUtils.createMeleeAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("red")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("red")
|
||||
local wormLoot = makeWormAlienLootTable("red")
|
||||
|
||||
|
||||
|
||||
-- fire biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
unit = {
|
||||
name = "fire-biter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -61,6 +72,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "fire-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -591,6 +603,7 @@ buildUnitSpawner(
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
loot = biterLoot,
|
||||
attack = {
|
||||
damageType = "acid",
|
||||
softSmokeName = softSmoke
|
||||
@ -619,6 +632,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "fire-spitter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
|
||||
@ -1196,6 +1210,7 @@ buildWorm(
|
||||
name = "fire-worm",
|
||||
|
||||
attributes = {},
|
||||
loot = wormLoot,
|
||||
attack = {
|
||||
damageType = "acid",
|
||||
softSmokeName = softSmoke
|
||||
|
@ -30,12 +30,23 @@ local smokeGlow = "the-glow-smoke-rampant"
|
||||
local smokeWithoutGlow = "the-without-glow-smoke-rampant"
|
||||
local smokeFuel = "the-adding-fuel-rampant"
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("orange")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("orange")
|
||||
local wormLoot = makeWormAlienLootTable("orange")
|
||||
|
||||
|
||||
|
||||
-- inferno spitters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
unit = {
|
||||
name = "inferno-spitter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -86,6 +97,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "inferno-spitter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
|
||||
@ -697,6 +709,7 @@ buildWorm(
|
||||
{
|
||||
name = "inferno-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
damageType = "acid",
|
||||
|
@ -27,6 +27,15 @@ local createMeleeAttack = biterUtils.createMeleeAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("blue")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("blue")
|
||||
local wormLoot = makeWormAlienLootTable("blue")
|
||||
|
||||
|
||||
-- laser biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
@ -40,6 +49,7 @@ buildUnitSpawner(
|
||||
attack = {},
|
||||
resistances = {},
|
||||
|
||||
loot = biterLoot,
|
||||
type = "biter",
|
||||
scales = {
|
||||
[1] = 0.5,
|
||||
@ -60,6 +70,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "laser-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -562,6 +573,7 @@ buildUnitSpawner(
|
||||
unit = {
|
||||
name = "laser-spitter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
damageType = "laser",
|
||||
explosion = "blood-explosion-small"
|
||||
@ -593,6 +605,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "laser-spitter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
|
||||
@ -1112,6 +1125,7 @@ buildWorm(
|
||||
{
|
||||
name = "laser-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
damageType = "laser",
|
||||
|
@ -27,12 +27,21 @@ local createMeleeAttack = biterUtils.createMeleeAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable(nil)
|
||||
local spawnerLoot = makeSpawnerAlienLootTable(nil)
|
||||
local wormLoot = makeWormAlienLootTable(nil)
|
||||
|
||||
-- neutral biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
unit = {
|
||||
name = "neutral-biter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -59,6 +68,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "neutral-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -503,6 +513,7 @@ buildUnitSpawner(
|
||||
unit = {
|
||||
name = "neutral-spitter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -533,6 +544,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "neutral-spitter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
|
||||
@ -995,6 +1007,7 @@ buildWorm(
|
||||
{
|
||||
name = "neutral-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
softSmokeName = softSmoke
|
||||
|
@ -29,12 +29,21 @@ local createSuicideAttack = biterUtils.createSuicideAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("yellow")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("yellow")
|
||||
local wormLoot = makeWormAlienLootTable("yellow")
|
||||
|
||||
-- nuclear biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
unit = {
|
||||
name = "nuclear-biter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -64,6 +73,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "nuclear-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -558,6 +568,7 @@ buildWorm(
|
||||
{
|
||||
name = "nuclear-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
stickerAnimation = {
|
||||
|
@ -27,12 +27,23 @@ local createMeleeAttack = biterUtils.createMeleeAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("red")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("red")
|
||||
local wormLoot = makeWormAlienLootTable("red")
|
||||
|
||||
|
||||
|
||||
-- physical biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
unit = {
|
||||
name = "physical-biter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -61,6 +72,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "physical-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -503,6 +515,7 @@ buildWorm(
|
||||
{
|
||||
name = "physical-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {
|
||||
},
|
||||
attack = {
|
||||
|
@ -29,12 +29,24 @@ local createSuicideAttack = biterUtils.createSuicideAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("yellow")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("yellow")
|
||||
local wormLoot = makeWormAlienLootTable("yellow")
|
||||
|
||||
|
||||
|
||||
-- suicide biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
unit = {
|
||||
name = "suicide-biter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -63,6 +75,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "suicide-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -584,6 +597,7 @@ buildWorm(
|
||||
{
|
||||
name = "suicide-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
stickerAnimation = {
|
||||
|
@ -297,6 +297,10 @@ local function buildUnits(template, attackGenerator, upgradeTable, variations, t
|
||||
if unit.attackName then
|
||||
unit.attack.name = unit.attackName .. "-v" .. i .. "-t" .. t
|
||||
end
|
||||
|
||||
if unit.loot then
|
||||
unit.attributes.loot = { unit.loot[t] }
|
||||
end
|
||||
|
||||
local entity
|
||||
if (unit.type == "spitter") then
|
||||
@ -342,6 +346,10 @@ function swarmUtils.buildUnitSpawner(templates, upgradeTable, attackGenerator, v
|
||||
generateApperance(unitSpawner, t)
|
||||
upgradeEntity(unitSpawner, upgradeTable.unitSpawner, t)
|
||||
|
||||
if unitSpawner.loot then
|
||||
unitSpawner.attributes.loot = { unitSpawner.loot[t] }
|
||||
end
|
||||
|
||||
if unitSpawner.autoplace then
|
||||
unitSpawner.attributes["autoplace"] = unitSpawner.autoplace[t]
|
||||
end
|
||||
@ -369,6 +377,10 @@ function swarmUtils.buildWorm(template, upgradeTable, attackGenerator, variation
|
||||
if worm.attackName then
|
||||
worm.attack.name = worm.attackName .. "-v" .. i .. "-t" .. t
|
||||
end
|
||||
|
||||
if worm.loot then
|
||||
worm.attributes.loot = { worm.loot[t] }
|
||||
end
|
||||
|
||||
if worm.autoplace then
|
||||
worm.attributes["autoplace"] = worm.autoplace[t]
|
||||
|
@ -27,12 +27,22 @@ local createMeleeAttack = biterUtils.createMeleeAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("green")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("green")
|
||||
local wormLoot = makeWormAlienLootTable("green")
|
||||
|
||||
-- troll biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
unit = {
|
||||
name = "troll-biter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -59,6 +69,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "troll-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
scales = {
|
||||
@ -533,6 +544,7 @@ buildUnitSpawner(
|
||||
unit = {
|
||||
name = "troll-spitter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
@ -563,6 +575,7 @@ buildUnitSpawner(
|
||||
unitSpawner = {
|
||||
name = "troll-spitter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
|
||||
@ -1056,6 +1069,7 @@ buildWorm(
|
||||
{
|
||||
name = "troll-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {},
|
||||
attack = {
|
||||
softSmokeName = softSmoke
|
||||
|
@ -123,6 +123,7 @@ function biterFunctions.makeBiter(name, biterAttributes, biterAttack, biterResis
|
||||
attack_parameters = biterAttack,
|
||||
vision_distance = biterAttributes.vision or 30,
|
||||
movement_speed = biterAttributes.movement,
|
||||
loot = biterAttributes.loot,
|
||||
spawning_time_modifier = biterAttributes.spawningTimeModifer or 0,
|
||||
distance_per_frame = biterAttributes.distancePerFrame or 0.1,
|
||||
pollution_to_join_attack = biterAttributes.pollutionToAttack or 200,
|
||||
@ -160,6 +161,7 @@ function biterFunctions.makeSpitter(name, biterAttributes, biterAttack, biterRes
|
||||
sticker_box = {{-0.6 * biterAttributes.scale, -0.8 * biterAttributes.scale},
|
||||
{0.6 * biterAttributes.scale, 0}},
|
||||
attack_parameters = biterAttack,
|
||||
loot = biterAttributes.loot,
|
||||
vision_distance = biterAttributes.vision or 30,
|
||||
movement_speed = biterAttributes.movement,
|
||||
spawning_time_modifier = biterAttributes.spawningTimeModifer or 0,
|
||||
@ -190,6 +192,7 @@ function biterFunctions.makeUnitSpawner(name, biterAttributes, biterResistances,
|
||||
max_health = biterAttributes.health,
|
||||
order="b-b-g",
|
||||
subgroup="enemies",
|
||||
loot = biterAttributes.loot,
|
||||
resistances = resistances,
|
||||
working_sound = {
|
||||
sound =
|
||||
@ -261,6 +264,7 @@ function biterFunctions.makeWorm(name, attributes, attack, wormResistances)
|
||||
order="b-b-e",
|
||||
subgroup="enemies",
|
||||
max_health = attributes.health,
|
||||
loot = attributes.loot,
|
||||
resistances = resistances,
|
||||
healing_per_tick = attributes.healing or 0.01,
|
||||
collision_box = {{-1.1 * attributes.scale, -1.0 * attributes.scale}, {1.1 * attributes.scale, 1.0 * attributes.scale}},
|
||||
@ -452,6 +456,128 @@ function biterFunctions.createSuicideAttack(attributes)
|
||||
return o
|
||||
end
|
||||
|
||||
function biterFunctions.makeWormAlienLootTable(name)
|
||||
local biterLoot
|
||||
local artifacts = settings.startup["bobmods-enemies-enableartifacts"].value or settings.startup["NE_Alien_Artifacts"].value
|
||||
local newArtifacts = settings.startup["bobmods-enemies-enablenewartifacts"].value
|
||||
|
||||
if newArtifacts and name then
|
||||
biterLoot = {
|
||||
[1] = { item = "alien-artifact-" .. name, count_min = 1, count_max = 1, probability = 0.5 },
|
||||
[2] = { item = "alien-artifact-" .. name, count_min = 1, count_max = 2, probability = 0.5 },
|
||||
[3] = { item = "alien-artifact-" .. name, count_min = 1, count_max = 3, probability = 0.5 },
|
||||
[4] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 3, probability = 0.5 },
|
||||
[5] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 3, probability = 0.5 },
|
||||
[6] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 3, probability = 0.5 },
|
||||
[7] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 4, probability = 0.75 },
|
||||
[8] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 4, probability = 0.75 },
|
||||
[9] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 4, probability = 0.75 },
|
||||
[10] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 4, probability = 0.75 }
|
||||
}
|
||||
elseif artifacts then
|
||||
biterLoot = {
|
||||
[1] = { item = "alien-artifact", count_min = 1, count_max = 1, probability = 0.5 },
|
||||
[2] = { item = "alien-artifact", count_min = 1, count_max = 2, probability = 0.5 },
|
||||
[3] = { item = "alien-artifact", count_min = 1, count_max = 3, probability = 0.5 },
|
||||
[4] = { item = "alien-artifact", count_min = 2, count_max = 3, probability = 0.5 },
|
||||
[5] = { item = "alien-artifact", count_min = 2, count_max = 3, probability = 0.5 },
|
||||
[6] = { item = "alien-artifact", count_min = 2, count_max = 3, probability = 0.5 },
|
||||
[7] = { item = "alien-artifact", count_min = 2, count_max = 4, probability = 0.75 },
|
||||
[8] = { item = "alien-artifact", count_min = 2, count_max = 4, probability = 0.75 },
|
||||
[9] = { item = "alien-artifact", count_min = 2, count_max = 4, probability = 0.75 },
|
||||
[10] = { item = "alien-artifact", count_min = 3, count_max = 4, probability = 0.75 }
|
||||
}
|
||||
end
|
||||
|
||||
return biterLoot
|
||||
end
|
||||
|
||||
function biterFunctions.makeSpawnerAlienLootTable(name)
|
||||
local biterLoot
|
||||
local artifacts = settings.startup["bobmods-enemies-enableartifacts"].value or settings.startup["NE_Alien_Artifacts"].value
|
||||
local newArtifacts = settings.startup["bobmods-enemies-enablenewartifacts"].value
|
||||
|
||||
if newArtifacts and name then
|
||||
biterLoot = {
|
||||
[1] = { item = "alien-artifact-" .. name, count_min = 1, count_max = 1, probability = 0.5 },
|
||||
[2] = { item = "alien-artifact-" .. name, count_min = 1, count_max = 2, probability = 0.5 },
|
||||
[3] = { item = "alien-artifact-" .. name, count_min = 1, count_max = 3, probability = 0.5 },
|
||||
[4] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 4, probability = 0.5 },
|
||||
[5] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 5, probability = 0.5 },
|
||||
[6] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 5, probability = 0.5 },
|
||||
[7] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 6, probability = 0.75 },
|
||||
[8] = { item = "alien-artifact-" .. name, count_min = 2, count_max = 6, probability = 0.75 },
|
||||
[9] = { item = "alien-artifact-" .. name, count_min = 3, count_max = 7, probability = 0.75 },
|
||||
[10] = { item = "alien-artifact-" .. name, count_min = 3, count_max = 7, probability = 0.75 }
|
||||
}
|
||||
elseif artifacts then
|
||||
biterLoot = {
|
||||
[1] = { item = "alien-artifact", count_min = 1, count_max = 1, probability = 0.5 },
|
||||
[2] = { item = "alien-artifact", count_min = 1, count_max = 2, probability = 0.5 },
|
||||
[3] = { item = "alien-artifact", count_min = 1, count_max = 3, probability = 0.5 },
|
||||
[4] = { item = "alien-artifact", count_min = 2, count_max = 4, probability = 0.5 },
|
||||
[5] = { item = "alien-artifact", count_min = 2, count_max = 5, probability = 0.5 },
|
||||
[6] = { item = "alien-artifact", count_min = 1, count_max = 3, probability = 0.5 },
|
||||
[7] = { item = "alien-artifact", count_min = 2, count_max = 5, probability = 0.75 },
|
||||
[8] = { item = "alien-artifact", count_min = 3, count_max = 6, probability = 0.75 },
|
||||
[9] = { item = "alien-artifact", count_min = 3, count_max = 6, probability = 0.75 },
|
||||
[10] = { item = "alien-artifact", count_min = 3, count_max = 7, probability = 0.75 }
|
||||
}
|
||||
end
|
||||
|
||||
return biterLoot
|
||||
end
|
||||
|
||||
function biterFunctions.makeUnitAlienLootTable(name)
|
||||
local biterLoot
|
||||
local artifacts = settings.startup["bobmods-enemies-enableartifacts"].value or settings.startup["NE_Alien_Artifacts"].value
|
||||
local smallArtifacts = settings.startup["bobmods-enemies-enablesmallartifacts"].value or settings.startup["NE_Alien_Artifacts"].value
|
||||
local newArtifacts = settings.startup["bobmods-enemies-enablenewartifacts"].value
|
||||
|
||||
if smallArtifacts and newArtifacts and name then
|
||||
biterLoot = {
|
||||
[1] = { item = "small-alien-artifact-" .. name, count_min = 1, count_max = 1, probability = 0.25 },
|
||||
[2] = { item = "small-alien-artifact-" .. name, count_min = 1, count_max = 2, probability = 0.25 },
|
||||
[3] = { item = "small-alien-artifact-" .. name, count_min = 1, count_max = 3, probability = 0.25 },
|
||||
[4] = { item = "small-alien-artifact-" .. name, count_min = 2, count_max = 4, probability = 0.5 },
|
||||
[5] = { item = "small-alien-artifact-" .. name, count_min = 2, count_max = 5, probability = 0.5 },
|
||||
[6] = { item = "small-alien-artifact-" .. name, count_min = 2, count_max = 5, probability = 0.5 },
|
||||
[7] = { item = "small-alien-artifact-" .. name, count_min = 2, count_max = 6, probability = 0.75 },
|
||||
[8] = { item = "small-alien-artifact-" .. name, count_min = 2, count_max = 6, probability = 0.75 },
|
||||
[9] = { item = "small-alien-artifact-" .. name, count_min = 3, count_max = 7, probability = 0.75 },
|
||||
[10] = { item = "small-alien-artifact-" .. name, count_min = 3, count_max = 7, probability = 0.75 }
|
||||
}
|
||||
elseif smallArtifacts then
|
||||
biterLoot = {
|
||||
[1] = { item = "small-alien-artifact", count_min = 1, count_max = 1, probability = 0.25 },
|
||||
[2] = { item = "small-alien-artifact", count_min = 1, count_max = 2, probability = 0.25 },
|
||||
[3] = { item = "small-alien-artifact", count_min = 1, count_max = 3, probability = 0.25 },
|
||||
[4] = { item = "small-alien-artifact", count_min = 2, count_max = 4, probability = 0.5 },
|
||||
[5] = { item = "small-alien-artifact", count_min = 2, count_max = 5, probability = 0.5 },
|
||||
[6] = { item = "small-alien-artifact", count_min = 2, count_max = 5, probability = 0.5 },
|
||||
[7] = { item = "small-alien-artifact", count_min = 2, count_max = 6, probability = 0.75 },
|
||||
[8] = { item = "small-alien-artifact", count_min = 2, count_max = 6, probability = 0.75 },
|
||||
[9] = { item = "small-alien-artifact", count_min = 3, count_max = 7, probability = 0.75 },
|
||||
[10] = { item = "small-alien-artifact", count_min = 3, count_max = 7, probability = 0.75 }
|
||||
}
|
||||
elseif artifacts then
|
||||
biterLoot = {
|
||||
[1] = nil,
|
||||
[2] = nil,
|
||||
[3] = nil,
|
||||
[4] = nil,
|
||||
[5] = nil,
|
||||
[6] = { item = "alien-artifact", count_min = 1, count_max = 3, probability = 0.5 },
|
||||
[7] = { item = "alien-artifact", count_min = 2, count_max = 5, probability = 0.75 },
|
||||
[8] = { item = "alien-artifact", count_min = 3, count_max = 6, probability = 0.75 },
|
||||
[9] = { item = "alien-artifact", count_min = 3, count_max = 6, probability = 0.75 },
|
||||
[10] = { item = "alien-artifact", count_min = 3, count_max = 7, probability = 0.75 }
|
||||
}
|
||||
end
|
||||
|
||||
return biterLoot
|
||||
end
|
||||
|
||||
function biterFunctions.findRunScale(entity)
|
||||
return entity.run_animation.layers[1].scale
|
||||
end
|
||||
|
18
settings.lua
18
settings.lua
@ -316,6 +316,24 @@ data:extend({
|
||||
default_value = 1,
|
||||
order = "d[modifier]-b[wave]",
|
||||
per_user = false
|
||||
},
|
||||
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "rampant-enableBobsUnits",
|
||||
setting_type = "startup",
|
||||
default_value = true,
|
||||
order = "b[modifier]-c[trigger]",
|
||||
per_user = false
|
||||
},
|
||||
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "rampant-enableNEUnits",
|
||||
setting_type = "startup",
|
||||
default_value = true,
|
||||
order = "b[modifier]-d[trigger]",
|
||||
per_user = false
|
||||
}
|
||||
|
||||
-- {
|
||||
|
@ -274,21 +274,21 @@ function tests.showBaseGrid()
|
||||
local n = {}
|
||||
|
||||
for k,v in pairs(global.natives.bases) do
|
||||
n[v] = k % 5
|
||||
n[v] = k % 4
|
||||
end
|
||||
|
||||
local chunks = global.map.chunkToBase
|
||||
for chunk,base in pairs(chunks) do
|
||||
local pick = n[base]
|
||||
local color = "concrete"
|
||||
if (pick == 1) then
|
||||
if base.alignment == constants.BASE_ALIGNMENT_NE then
|
||||
color = "hazard-concrete-left"
|
||||
elseif (pick == 1) then
|
||||
color = "water"
|
||||
elseif (pick == 2) then
|
||||
color = "deepwater"
|
||||
elseif (pick == 3) then
|
||||
color = "water-green"
|
||||
elseif (pick == 4) then
|
||||
color = "water"
|
||||
end
|
||||
chunkUtils.colorChunk(chunk.x, chunk.y, color, game.surfaces[1])
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user