1
0
mirror of https://github.com/veden/Rampant.git synced 2025-02-05 13:14:51 +02:00

FACTO-202: Consolidated variations and tiers

This commit is contained in:
Aaron Veden 2022-07-09 14:27:53 -07:00
parent 0cc2865a35
commit eae7fbe727
No known key found for this signature in database
GPG Key ID: FF5990B1C6DD3F84
15 changed files with 17231 additions and 450 deletions

View File

@ -7,6 +7,8 @@ Version: 3.1.3
- script_raised_built now looks for enemy faction and registers as needed
Optimizations:
- Moved most constants out of global
- Removed new enemy variations setting
- Halved tiers to 5, new tiers will now appear at 0, 0.25, 0.5, 0.75, 0.9
---------------------------------------------------------------------------------------------------
Version: 3.1.2

View File

@ -292,7 +292,7 @@ local function onConfigChanged()
onModSettingsChange({setting="rampant--"})
universe["ENEMY_SEED"] = settings.startup["rampant--enemySeed"].value
universe["ENEMY_VARIATIONS"] = settings.startup["rampant--newEnemyVariations"].value
universe["ENEMY_VARIATIONS"] = 1-- settings.startup["rampant--newEnemyVariations"].value
universe["NEW_ENEMIES"] = settings.startup["rampant--newEnemies"].value
if universe.NEW_ENEMIES then

View File

@ -22,19 +22,21 @@ local constants = require("libs/Constants")
if settings.startup["rampant--newEnemies"].value then
swarmUtils.processFactions()
swarmUtils.generateSpawnerProxy(data.raw["unit-spawner"]["neutral-biter-spawner-v1-t10-rampant"].result_units)
swarmUtils.generateSpawnerProxy(data.raw["unit-spawner"]["neutral-biter-spawner-v1-t"..constants.TIERS.."-rampant"].result_units)
if mods["SchallAlienLoot"] then
local SizeLootRampant = {1, 2, 3, 3, 4, 4, 4, 5, 5, 6}
for _,faction in pairs(constants.FACTION_SET) do
for v=1,settings.startup["rampant--newEnemyVariations"].value do
for factionSize = 1, 10 do
for v=1,1-- settings.startup["rampant--newEnemyVariations"].value
do
for factionSize = 1, constants.TIERS do
local effectiveLevel = constants.TIER_UPGRADE_SET[factionSize]
SchallAlienLoot_add_spawner(faction.type.."-hive-v"..v.."-t"..factionSize.."-rampant")
SchallAlienLoot_add_spawner(faction.type.."-spitter-spawner-v"..v.."-t"..factionSize.."-rampant")
SchallAlienLoot_add_spawner(faction.type.."-biter-spawner-v"..v.."-t"..factionSize.."-rampant")
SchallAlienLoot_add_worm(faction.type.."-worm-v"..v.."-t"..factionSize.."-rampant", factionSize)
SchallAlienLoot_add_mover(faction.type.."-spitter-v"..v.."-t"..factionSize.."-rampant", SizeLootRampant[factionSize])
SchallAlienLoot_add_mover(faction.type.."-biter-v"..v.."-t"..factionSize.."-rampant", SizeLootRampant[factionSize])
SchallAlienLoot_add_mover(faction.type.."-spitter-v"..v.."-t"..factionSize.."-rampant", SizeLootRampant[effectiveLevel])
SchallAlienLoot_add_mover(faction.type.."-biter-v"..v.."-t"..factionSize.."-rampant", SizeLootRampant[effectiveLevel])
end
end
end

View File

@ -29,6 +29,7 @@ local queryUtils = require("QueryUtils")
-- constants
local TIERS = constants.TIERS
local EVO_TO_TIER_MAPPING = constants.EVO_TO_TIER_MAPPING
local PROXY_ENTITY_LOOKUP = constants.PROXY_ENTITY_LOOKUP
local BUILDING_HIVE_TYPE_LOOKUP = constants.BUILDING_HIVE_TYPE_LOOKUP
@ -81,7 +82,7 @@ local next = next
local function evoToTier(universe, evolutionFactor, maxSkips)
local v
local skipsRemaining = maxSkips
for i=10,1,-1 do
for i=TIERS,1,-1 do
if EVO_TO_TIER_MAPPING[i] <= evolutionFactor then
v = i
if (skipsRemaining == 0) or (universe.random() <= 0.75) then

View File

@ -405,8 +405,8 @@ local function roundToNearest(number, multiple)
return num - (num % multiple)
end
local tiers10 = {}
local tiersSet = {}
constants.TIERS = 5
local tierStart = settings.startup["rampant--tierStart"].value
local tierEnd = settings.startup["rampant--tierEnd"].value
@ -419,21 +419,21 @@ local function buildTier(size, tiers)
end
end
buildTier(10, tiers10)
buildTier(constants.TIERS, tiersSet)
constants.TIER_UPGRADE_SET_10 = tiers10
constants.TIER_UPGRADE_SET = tiersSet
local variations = settings.startup["rampant--newEnemyVariations"].value
local variations = 1-- settings.startup["rampant--newEnemyVariations"].value
constants.ENERGY_THIEF_LOOKUP = {}
for tier=1, 10 do
for tier=1, constants.TIERS do
for i=1,variations do
constants.ENERGY_THIEF_LOOKUP["energy-thief-worm-v" .. i .. "-t" .. tier .. "-rampant"] = true
end
end
for tier=1, 10 do
for tier=1, constants.TIERS do
for i=1,variations do
constants.ENERGY_THIEF_LOOKUP["energy-thief-biter-v" .. i .. "-t" .. tier .. "-rampant"] = true
end
@ -1721,7 +1721,7 @@ for i=1,#constants.FACTION_SET do
local factionBuildingPicker = {}
buildingEvolveLookup[faction.type] = factionBuildingPicker
for t=1,10 do
for t=1,constants.TIERS do
local alignments = alignmentSet[t]
if not alignments then
alignments = {}
@ -1770,7 +1770,8 @@ for i=1,#constants.FACTION_SET do
end
local variationSet = {}
for v=1,settings.startup["rampant--newEnemyVariations"].value do
for v=1,1-- settings.startup["rampant--newEnemyVariations"].value
do
local entry = faction.type .. "-" .. building.name .. "-v" .. v .. "-t" .. t .. "-rampant"
enemyAlignmentLookup[entry] = faction.type
local proxyEntity = "entity-proxy-" .. building.type .. "-t" .. t .. "-rampant"
@ -1812,7 +1813,7 @@ for i=1,#constants.FACTION_SET do
end
end
for t=1,10 do
for t=1,constants.TIERS do
local alignments = alignmentSet[t]
local totalAlignment = 0
for i=1,#alignments do
@ -1835,12 +1836,7 @@ for t=1,10 do
end
end
local evoToTierMapping = {}
constants.EVO_TO_TIER_MAPPING = evoToTierMapping --evoToTierMapping
for i=1,10 do
evoToTierMapping[#evoToTierMapping+1] = (((i - 1) * 0.1) ^ 0.5) - 0.05
end
constants.EVO_TO_TIER_MAPPING = {0, 0.25, 0.5, 0.75, 0.90}
constantsG = constants
return constants

View File

@ -35,15 +35,15 @@ spitter-egg=Eggs:
worm-egg=Eggs:
t1=Larva T1
t2=Pupae T2
t3=Worker T3
t4=Grunt T4
t5=Soldier T5
t6=Elite T6
t7=Champion T7
t8=Overlord T8
t9=Titan T9
t10=Leviathan T10
# t2=Pupae T2
t2=Worker T2
# t4=Grunt T4
t3=Soldier T3
# t6=Elite T6
# t7=Champion T7
t4=Overlord T4
# t9=Titan T9
t5=Leviathan T5
acid-pool=Acid Pool
fire-pool=Fire

View File

@ -35,15 +35,15 @@ spitter-egg=알:
worm-egg=알:
t1=애벌레 T1
t2=번데기 T2
t3=일꾼 T3
t4=그런트 T4
t5=솔져 T5
t6=엘리트 T6
t7=챔피언 T7
t8=오버로드 T8
t9=타이탄 T9
t10=레비아탄 T10
# t2=번데기 T2
t2=일꾼 T2
# t4=그런트 T4
t3=솔져 T3
# t6=엘리트 T6
# t7=챔피언 T7
t4=오버로드 T4
# t9=타이탄 T9
t5=레비아탄 T5
acid-pool=산성 연못
fire-pool=

View File

@ -32,15 +32,15 @@ spawn=Кусака:
spitter-egg=Яйца:
worm-egg=Яйца:
t1=ур.1, Личинка
t2=ур.2, Куколка
t3=ур.3, Рабочий
t4=ур.4, Громила
t5=ур.5, Солдат
t6=ур.6, Элита
t7=ур.7, Чемпион
t8=ур.8, Повелитель
t9=ур.9, Титан
t10=ур.10, Левиафан
# t2=ур.2, Куколка
t2=ур.2, Рабочий
# t4=ур.4, Громила
t3=ур.3, Солдат
# t6=ур.6, Элита
# t7=ур.7, Чемпион
t4=ур.4, Повелитель
# t9=ур.9, Титан
t5=ур.5, Левиафан
acid-pool=Лужа кислоты
fire-pool=Огонь

View File

@ -34,15 +34,15 @@ spawn=虫巢:
egg=蛋:
t1=t1 幼虫
t2=t2 蛹
t3=t3 社畜
t4=t4 低等兵
t5=t5 士兵
t6=t6 精英
t7=t7 冠军
t8=t8 霸王
t9=t9 泰坦
t10=t10
# t2=t2 蛹
t2=t2 社畜
# t4=t4 低等兵
t3=t3 士兵
# t6=t6 精英
# t7=t7 冠军
t4=t4 霸王
# t9=t9 泰坦
t5=t5
[entity-name]
crystal-v1-drain-rampant=耗电水晶

View File

@ -1,6 +1,5 @@
{
"entity": [
["neutral-biter-nest-v1-t1-rampant", "neutral-biter-spawner-v1-t1-rampant"],
["neutral-spitter-nest-v1-t1-rampant", "neutral-spitter-spawner-v1-t1-rampant"],
["acid-biter-nest-v1-t1-rampant", "acid-biter-spawner-v1-t1-rampant"],

17104
migrations/rampant-3.1.3.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -18,6 +18,7 @@
-- imports
local thiefUtils = require("utils/ThiefUtils")
local constants = require("libs/Constants")
-- constants
@ -25,6 +26,8 @@ local energyThief = {}
-- imported functions
local TIERS = constants.TIERS
local makeDrainCrystal = thiefUtils.makeDrainCrystal
function energyThief.addFactionAddon()
@ -271,7 +274,7 @@ function energyThief.addFactionAddon()
})
for i=1,10 do
for i=1,TIERS do
local drainCrystalAttributes = {
name = "crystal-v" .. i,
drain = i * 1.3 .. "MW",

View File

@ -35,6 +35,10 @@ local fireUtils = require("utils/FireUtils")
local constants = require("__Rampant__/libs/Constants")
local mathUtils = require("__Rampant__/libs/MathUtils")
-- imported constants
local TIERS = constants.TIERS
-- imported functions
local roundToNearest = mathUtils.roundToNearest
@ -46,7 +50,7 @@ local distort = mathUtils.distort
local deepcopy = util.table.deepcopy
local TIER_UPGRADE_SET_10 = constants.TIER_UPGRADE_SET_10
local TIER_UPGRADE_SET = constants.TIER_UPGRADE_SET
local xorRandom = mathUtils.xorRandom(settings.startup["rampant--enemySeed"].value)
@ -479,17 +483,13 @@ local wormAttributeNumeric = {
["evolutionRequirement"] = { 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 }
}
local propTables10 = {
local propTables = {
{{0, 1}, {0.65, 0.0}},
{{0.3, 0}, {0.35, 0.5}, {0.80, 0.0}},
{{0.4, 0}, {0.45, 0.5}, {0.90, 0.0}},
{{0.5, 0}, {0.55, 0.5}, {0.90, 0.0}},
{{0.6, 0}, {0.65, 0.5}, {0.95, 0.0}},
{{0.7, 0}, {0.75, 0.5}, {0.975, 0.0}},
{{0.8, 0}, {0.825, 0.5}, {0.975, 0.0}},
{{0.85, 0}, {0.875, 0.5}, {0.975, 0.0}},
{{0.90, 0}, {0.925, 0.5}, {0.975, 0.0}},
{{0.93, 0}, {1, 1.0}}
{{0.25, 0}, {0.4, 0.5}, {0.80, 0.0}},
{{0.5, 0}, {0.60, 0.5}, {0.95, 0.0}},
{{0.75, 0}, {0.825, 0.5}, {1, 0.1}},
-- {{0.8, 0}, {0.85, 0.5}, {1, 0.2}},
{{0.90, 0}, {0.925, 0.5}, {1, 0.9}}
}
local function fillUnitTable(result, unitSet, tier, probability)
@ -502,15 +502,11 @@ local function unitSetToProbabilityTable(unitSet)
local result = {}
fillUnitTable(result, unitSet, 1, {{0, 1}, {0.65, 0.0}})
fillUnitTable(result, unitSet, 2, {{0.3, 0}, {0.35, 0.5}, {0.80, 0.0}})
fillUnitTable(result, unitSet, 3, {{0.4, 0}, {0.45, 0.5}, {0.90, 0.0}})
fillUnitTable(result, unitSet, 4, {{0.5, 0}, {0.55, 0.5}, {0.90, 0.0}})
fillUnitTable(result, unitSet, 5, {{0.6, 0}, {0.65, 0.5}, {0.95, 0.0}})
fillUnitTable(result, unitSet, 6, {{0.7, 0}, {0.75, 0.5}, {0.975, 0.0}})
fillUnitTable(result, unitSet, 7, {{0.8, 0}, {0.825, 0.5}, {0.975, 0.0}})
fillUnitTable(result, unitSet, 8, {{0.85, 0}, {0.875, 0.5}, {0.975, 0.0}})
fillUnitTable(result, unitSet, 9, {{0.90, 0}, {0.925, 0.5}, {0.975, 0.0}})
fillUnitTable(result, unitSet, 10, {{0.93, 0}, {1, 1.0}})
fillUnitTable(result, unitSet, 2, {{0.25, 0}, {0.4, 0.5}, {0.80, 0.0}})
fillUnitTable(result, unitSet, 3, {{0.5, 0}, {0.60, 0.5}, {0.95, 0.0}})
fillUnitTable(result, unitSet, 4, {{0.75, 0}, {0.825, 0.5}, {1, 0.1}})
-- fillUnitTable(result, unitSet, 5, {{0.8, 0}, {0.85, 0.5}, {1, 0.2}})
fillUnitTable(result, unitSet, 5, {{0.90, 0}, {0.925, 0.5}, {1, 0.9}})
return result
end
@ -831,7 +827,7 @@ local function fillEntityTemplate(entity)
projectile = createCapsuleProjectile(attack,
attack.faction .. "-" .. attribute[2]
.. "-v" .. attack.variation .. "-t"
.. attack.effectiveLevel .. "-rampant"),
.. attack.tier .. "-rampant"),
direction_deviation = 0.6,
starting_speed = 0.25,
max_range = attack.range,
@ -910,10 +906,10 @@ end
function swarmUtils.buildUnits(template)
local unitSet = {}
local variations = settings.startup["rampant--newEnemyVariations"].value
local variations = 1-- settings.startup["rampant--newEnemyVariations"].value
for tier=1, 10 do
local effectiveLevel = TIER_UPGRADE_SET_10[tier]
for tier=1, TIERS do
local effectiveLevel = TIER_UPGRADE_SET[tier]
local result = {}
for i=1,variations do
@ -942,20 +938,6 @@ function swarmUtils.buildUnits(template)
unit.roarSounds = biterRoarSounds[effectiveLevel]
entity = makeBiter(unit)
elseif (unit.type == "drone") then
-- if not unit.death then
-- unit.death = {
-- type = "direct",
-- action_delivery =
-- {
-- type = "instant",
-- target_effects =
-- {
-- type = "create-entity",
-- entity_name = "massive-explosion"
-- }
-- }
-- }
-- end
entity = makeDrone(unit)
end
@ -973,15 +955,13 @@ end
local function buildEntities(entityTemplates)
local unitSet = {}
for tier=1, 10 do
local effectiveLevel = TIER_UPGRADE_SET_10[tier]
local entityTemplate = entityTemplates[effectiveLevel]
for tier=1, TIERS do
local entityTemplate = entityTemplates[tier]
for ei=1,#entityTemplate do
local template = entityTemplate[ei]
local probability = deepcopy(propTables10[tier])
local probability = deepcopy(propTables[tier])
for z=1,#probability do
probability[z][2] = probability[z][2] * template[2]
@ -994,10 +974,10 @@ local function buildEntities(entityTemplates)
end
function swarmUtils.buildEntitySpawner(template)
local variations = settings.startup["rampant--newEnemyVariations"].value
local variations = 1-- settings.startup["rampant--newEnemyVariations"].value
for tier=1, 10 do
local effectiveLevel = TIER_UPGRADE_SET_10[tier]
for tier=1, TIERS do
local effectiveLevel = TIER_UPGRADE_SET[tier]
for i=1,variations do
local unitSpawner = deepcopy(template)
@ -1021,10 +1001,10 @@ function swarmUtils.buildEntitySpawner(template)
end
function swarmUtils.buildUnitSpawner(template)
local variations = settings.startup["rampant--newEnemyVariations"].value
local variations = 1-- settings.startup["rampant--newEnemyVariations"].value
for tier=1, 10 do
local effectiveLevel = TIER_UPGRADE_SET_10[tier]
for tier=1, TIERS do
local effectiveLevel = TIER_UPGRADE_SET[tier]
for i=1,variations do
local unitSpawner = deepcopy(template)
@ -1050,10 +1030,10 @@ function swarmUtils.buildUnitSpawner(template)
end
function swarmUtils.buildWorm(template)
local variations = settings.startup["rampant--newEnemyVariations"].value
local variations = 1-- settings.startup["rampant--newEnemyVariations"].value
for tier=1, 10 do
local effectiveLevel = TIER_UPGRADE_SET_10[tier]
for tier=1, TIERS do
local effectiveLevel = TIER_UPGRADE_SET[tier]
for i=1,variations do
local worm = deepcopy(template)
worm.name = worm.name .. "-v" .. i .. "-t" .. tier
@ -1248,7 +1228,7 @@ local function buildAttack(faction, template)
{
{
type="create-entity",
entity_name = "poison-cloud-v" .. attributes.effectiveLevel .. "-cloud-rampant"
entity_name = "poison-cloud-v" .. attributes.tier .. "-cloud-rampant"
}
}
end
@ -1388,7 +1368,7 @@ local function buildAttack(faction, template)
if (attack[1] == "drone") then
template.entityGenerator = function (attributes)
return template.faction .. "-" .. attack[2] .. "-v" ..
attributes.variation .. "-t" .. attributes.effectiveLevel .. "-drone-rampant"
attributes.variation .. "-t" .. attributes.tier .. "-drone-rampant"
end
end
else
@ -1517,7 +1497,7 @@ local function buildUnitSpawnerTemplate(faction, incomingTemplate, unitSets)
-- local unitVariations = settings.startup["rampant--newEnemyVariations"].value
for t=1,10 do
for t=1,TIERS do
for i=1,#template.buildSets do
local buildSet = template.buildSets[i]
if (buildSet[2] <= t) and (t <= buildSet[3]) then
@ -1575,7 +1555,7 @@ local function buildHiveTemplate(faction, incomingTemplate)
local unitSet = {}
for t=1,10 do
for t=1,TIERS do
local unitSetTier = unitSet[t]
for i=1,#template.buildSets do
local buildSet = template.buildSets[i]
@ -1600,9 +1580,6 @@ local function buildHiveTemplate(faction, incomingTemplate)
for i=1,#unitSetTier do
unitSetTier[i][2] = unitSetTier[i][2] / total
end
-- while (#unitSet[t] > unitVariations) do
-- table.remove(unitSet, math.random(#unitSet[t]))
-- end
end
template.unitSet = buildEntities(unitSet)
@ -1631,8 +1608,6 @@ local function generateSpawnerProxyTemplate(name, health, result_units)
dying_sound = nil,
damaged_trigger_effect = nil,
healing_per_tick = -1,
-- collision_box = {{-3,-3},{3,3}},
-- selection_box = {{-3,-3},{3,3}},
collision_box = nil,
selection_box = nil,
-- in ticks per 1 pu
@ -1645,14 +1620,7 @@ local function generateSpawnerProxyTemplate(name, health, result_units)
max_count_of_owned_units = 0,
max_friends_around_to_spawn = 0,
enemy_map_color = {r=0,g=0,b=0,a=0},
-- enemy_map_color = {r=0,g=1,b=1,a=1},
animations = { filename = "__core__/graphics/empty.png", size = 1 },
-- animations ={
-- spawner_idle_animation(0, {r=1,b=1,g=1,a=1}, 1, {r=1,b=1,g=1,a=1}),
-- spawner_idle_animation(1, {r=1,b=1,g=1,a=1}, 1, {r=1,b=1,g=1,a=1}),
-- spawner_idle_animation(2, {r=1,b=1,g=1,a=1}, 1, {r=1,b=1,g=1,a=1}),
-- spawner_idle_animation(3, {r=1,b=1,g=1,a=1}, 1, {r=1,b=1,g=1,a=1})
-- },
integration = nil,
result_units = result_units,
-- With zero evolution the spawn rate is 6 seconds, with max evolution it is 2.5 seconds

View File

@ -17,317 +17,23 @@
-- module code
function generateMigration()
local factions = {"neutral", "acid", "physical", "electric", "suicide", "nuclear", "fire", "inferno", "troll", "laser", "fast", "wasp", "spawner", "energy-thief", "poison"}
for t = 1, 10 do
for v = 1, 20 do
print("[\"neutral-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"neutral-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"neutral-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"neutral-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"acid-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"acid-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"acid-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"acid-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"physical-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"physical-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"electric-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"electric-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"suicide-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"suicide-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"nuclear-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"nuclear-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"fire-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"fire-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"fire-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"fire-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"interno-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"interno-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"troll-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"troll-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"troll-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"troll-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"laser-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"laser-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"laser-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"laser-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"fast-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"fast-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"fast-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"fast-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"wasp-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"wasp-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"spawner-spitter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"spawner-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"energy-thief-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"energy-thief-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
print("[\"poison-biter-nest-v" .. v .. "-t" .. t .. "-rampant\", \"poison-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\"],")
for fi = 1, #factions do
local faction = factions[fi]
for t = 1, 10 do
local adjT = t
if t > 5 then
adjT = t - 5
end
for v = 2, 20 do
print(" [\"" .. faction .. "-biter-spawner-v" .. v .. "-t" .. t .. "-rampant\", \"" .. faction .. "-biter-spawner-v1-t" .. adjT .. "-rampant\"],")
print(" [\"" .. faction .. "-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant\", \"" .. faction .. "-spitter-spawner-v1-t" .. adjT .. "-rampant\"],")
print(" [\"" .. faction .. "-worm-v" .. v .. "-t" .. t .. "-rampant\", \"" .. faction .. "-worm-v1-t" .. adjT .. "-rampant\"],")
print(" [\"" .. faction .. "-hive-v" .. v .. "-t" .. t .. "-rampant\", \"" .. faction .. "-hive-v1-t" .. adjT .. "-rampant\"],")
print(" [\"" .. faction .. "-biter-v" .. v .. "-t" .. t .. "-rampant\", \"" .. faction .. "-biter-v1-t" .. adjT .. "-rampant\"],")
print(" [\"" .. faction .. "-spitter-v" .. v .. "-t" .. t .. "-rampant\", \"" .. faction .. "-spitter-v1-t" .. adjT .. "-rampant\"],")
end
end
end
end
-- local FACTION_TYPES = {
-- "neutral",
-- "acid",
-- "physical",
-- "electric",
-- "suicide",
-- "nuclear",
-- "fire",
-- "inferno",
-- "troll",
-- "fast",
-- "laser",
-- "wasp",
-- "spawner",
-- "energy-thief",
-- "poison"
-- }
function generateLocal()
-- local names = {"Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega"}
local names = {"Common", "Acidic", "Brutal", "Electric", "Suicide", "Nuclear", "Fire", "Inferno", "Regenerative", "Fast", "Laser", "Wasp", "Spawner", "Sapper", "Poison", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega"}
local sizes = {"Larva", "Pupae", "Worker", "Grunt", "Soldier", "Elite", "Champion", "Overlord", "Titan", "Leviathan"}
local HIVE_BUILDINGS_TYPES = {
"trap",
"turret",
"utility",
"spitter-spawner",
"biter-spawner",
"hive"
}
local HIVE_BUILDINGS_NAMES = {
"Traps",
"Turrets",
"Utilities",
"Spitter Spawners",
"Biter Spawners",
"Hives"
}
local HIVE_BUILDING_NAME_MAP = {
["trap"] = "trap",
["turret"] = "turret",
["utility"] = "utility",
["spitter-spawner"] = "spitter spawner",
["biter-spawner"] = "biter spawner",
["hive"] = "hive"
}
local name = names[1]
for t = 1, 10 do
for i=1,#HIVE_BUILDINGS_TYPES do
print("entity-proxy-" .. HIVE_BUILDINGS_TYPES[i] .. "-t" .. t .. "-rampant=" .. HIVE_BUILDINGS_NAMES[i] .. ": " .. "t" .. t .. " " .. sizes[t] .. " class")
end
local size = sizes[t]
for v = 1, 20 do
print("neutral-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("neutral-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("neutral-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("neutral-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("neutral-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
print("neutral-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("neutral-spitter-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("neutral-worm-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[2]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("acid-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("acid-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("acid-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("acid-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("acid-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("acid-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
print("acid-spitter-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("acid-worm-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("acid-biter-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[3]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("physical-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("physical-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("physical-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("physical-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[4]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("electric-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("electric-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("electric-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("electric-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[5]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("suicide-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("suicide-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("suicide-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
print("suicide-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("suicide-worm-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[6]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("nuclear-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("nuclear-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("nuclear-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
print("nuclear-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("nuclear-worm-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[7]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("fire-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("fire-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("fire-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("fire-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("fire-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("fire-spitter-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("fire-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
print("fire-worm-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[8]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("inferno-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("inferno-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("inferno-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("inferno-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[9]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("troll-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("troll-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("troll-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("troll-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("troll-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("troll-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[10]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("fast-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("fast-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("fast-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("fast-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("fast-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("fast-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
print("fast-spitter-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("fast-worm-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[11]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("laser-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("laser-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("laser-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("laser-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("laser-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("laser-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[12]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("wasp-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("wasp-wasp-v" .. v .. "-t" .. t .. "-drone-rampant=" .. name .. ": " .. "t" .. t .. " " .. size .. " class")
print("wasp-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("wasp-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("wasp-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
print("wasp-worm-drone-v" .. v .. "-t" .. t .. "-drone-rampant=" .. name .. ": " .. "t" .. t .. " " .. size .. " class")
print("wasp-wasp-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("wasp-worm-wasp-v" .. v .. "-t" .. t .. "-drone-rampant=Wasp: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[13]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("spawner-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("spawner-drone-v" .. v .. "-t" .. t .. "-drone-rampant=" .. name .. " eggs: " .. "t" .. t .. " " .. size .. " class")
print("spawner-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. "t" .. t .. " " .. size .. " class")
print("spawner-worm-egg-v" .. v .. "-t" .. t .. "-drone-rampant=" .. name .. " eggs: " .. "t" .. t .. " " .. size .. " class")
print("spawner-worm-egg-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("spawner-spawn-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("spawner-spitter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. "t" .. t .. " " .. size .. " class")
print("spawner-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
print("spawner-spitter-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("spawner-egg-v" .. v .. "-t" .. t .. "-acid-fire-rampant=Acid pool: " .. "t" .. t .. " " .. size .. " class")
print("spawner-egg-v" .. v .. "-t" .. t .. "-drone-rampant=" .. name .. " egg: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[14]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("energy-thief-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("energy-thief-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("energy-thief-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("energy-thief-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
end
end
name = names[15]
for t = 1, 10 do
local size = sizes[t]
for v = 1, 20 do
print("poison-hive-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " hive: " .. "t" .. t .. " " .. size .. " class")
print("poison-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. "t" .. t .. " " .. size .. " class")
print("poison-biter-spawner-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. "t" .. t .. " " .. size .. " class")
print("poison-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. "t" .. t .. " " .. size .. " class")
end
end
end

View File

@ -292,17 +292,17 @@ data:extend({
per_user = false
},
{
type = "int-setting",
name = "rampant--newEnemyVariations",
description = "rampant--newEnemyVariations",
setting_type = "startup",
minimum_value = 1,
maximum_value = 20,
default_value = 1,
order = "l[modifier]-h[unit]",
per_user = false
},
-- {
-- type = "int-setting",
-- name = "rampant--newEnemyVariations",
-- description = "rampant--newEnemyVariations",
-- setting_type = "startup",
-- minimum_value = 1,
-- maximum_value = 20,
-- default_value = 1,
-- order = "l[modifier]-h[unit]",
-- per_user = false
-- },
{
type = "int-setting",