diff --git a/Upgrade.lua b/Upgrade.lua index 4324fdf..e9be46f 100755 --- a/Upgrade.lua +++ b/Upgrade.lua @@ -217,12 +217,11 @@ function upgrade.attempt(natives) game.surfaces[natives.activeSurface].print("Rampant - Version 0.16.22") global.version = constants.VERSION_57 end - if (global.version < constants.VERSION_64) then + if (global.version < constants.VERSION_65) then - game.surfaces[natives.activeSurface].print("Rampant - Version 0.16.29") - global.version = constants.VERSION_64 + game.surfaces[natives.activeSurface].print("Rampant - Version 0.16.30") + global.version = constants.VERSION_65 end - return starting ~= global.version, natives end diff --git a/changelog.txt b/changelog.txt index 28e310a..937180e 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,24 @@ +Version: 0.16.30 +Date: 6. 7. 2018 + Improvements: + - Raiding AI state nows requires an evolution of 0.04 before it can trigger + Bugfixes: + - Fixed fire biter nest size + - Fixed Acid spitter resistances to be more inline with vanilla resistances + - Fixed laser faction not having in-place evolution path from electric biters + - Fixed range of unit levels being off by one, limiting the max units to level 9 only instead of 10 + - Fixed missing wasp worm drone locale entry + Tweaks: + - Increased troll units scale +0.2 + - Increased troll health regeneration for units by ~3x, spawners and worms by ~7x + - Increased the lower attribute bound from 0.7 to 0.85 + - Increased the base distance to evolution index ratio from (1 / 5480) to (1 / 7200) + - Increased the chance that initial base alignment picks a lower tier alignment by 0.15 + - Normalized all enemy faction attributes through the defaults, should be minor unit corrections + Framework: + - Refactored new enemy modules + - Created default attributes for all unit, unit spawner, worms + --------------------------------------------------------------------------------------------------- Version: 0.16.29 Date: 6. 3. 2018 diff --git a/control.lua b/control.lua index c240eb9..cd356f9 100755 --- a/control.lua +++ b/control.lua @@ -104,6 +104,7 @@ local setChunkSpawnerEggTick = chunkPropertyUtils.setChunkSpawnerEggTick local upgradeEntity = baseUtils.upgradeEntity local rebuildNativeTables = baseUtils.rebuildNativeTables +local sSub = string.sub local mRandom = math.random -- local references to global @@ -658,7 +659,8 @@ remote.add_interface("rampantTests", entityStats = tests.entityStats, stepAdvanceTendrils = tests.stepAdvanceTendrils, unitGroupBuild = tests.unitGroupBuild, - exportAiState = tests.exportAiState(nil) + exportAiState = tests.exportAiState(nil), + createEnergyTest = tests.createEnergyTest } ) diff --git a/data-final-fixes.lua b/data-final-fixes.lua index 89a9c91..8a95e0e 100755 --- a/data-final-fixes.lua +++ b/data-final-fixes.lua @@ -16,6 +16,7 @@ local troll = require("prototypes/Troll") local spawner = require("prototypes/Spawner") local wasp = require("prototypes/Wasp") local laser = require("prototypes/Laser") +-- local energyThief = require("prototypes/EnergyThief") if settings.startup["rampant-newEnemies"].value then @@ -35,6 +36,7 @@ if settings.startup["rampant-newEnemies"].value then spawner.addFaction() wasp.addFaction() laser.addFaction() + -- energyThief.addFaction() for _, unitSpawner in pairs(data.raw["unit-spawner"]) do if (unitSpawner.name ~= "biter-spawner") then diff --git a/data.lua b/data.lua index e6768e3..45961f4 100755 --- a/data.lua +++ b/data.lua @@ -26,3 +26,90 @@ end require("prototypes/buildings/ChunkScanner") + +-- data:extend({ +-- { +-- type = "item", +-- name = "accumulator2", +-- icon = "__base__/graphics/icons/accumulator.png", +-- icon_size = 32, +-- flags = {"goes-to-quickbar"}, +-- subgroup = "energy", +-- order = "e[accumulator]-a[accumulator]", +-- place_result = "electric-energy-interface2", +-- stack_size = 50 +-- }, + +-- { +-- type = "radar", +-- name = "electric-energy-interface2", +-- icon = "__base__/graphics/icons/radar.png", +-- icon_size = 32, +-- flags = {"placeable-enemy"}, +-- minable = {hardness = 0.2, mining_time = 0.5, result = "radar"}, +-- max_health = 500, +-- corpse = "small-remnants", +-- collision_box = {{-1.2, -1.2}, {1.2, 1.2}}, +-- selection_box = {{-1.5, -1.5}, {1.5, 1.5}}, +-- energy_per_sector = "10MJ", +-- has_backer_name = false, +-- max_distance_of_sector_revealed = 0, +-- max_distance_of_nearby_sector_revealed = 0, +-- energy_per_nearby_scan = "250kJ", +-- energy_source = +-- { +-- type = "electric", +-- usage_priority = "primary-input" +-- }, +-- energy_usage = "500kW", +-- pictures = +-- { +-- filename = "__Rampant__/graphics/entities/thief/crystal.png", +-- priority = "low", +-- width = 128, +-- height = 128, +-- apply_projection = false, +-- direction_count = 32, +-- animation_speed = 0.5, +-- line_length = 8 +-- }, +-- integration_patch = +-- { +-- filename = "__base__/graphics/entity/radar/radar-integration.png", +-- priority = "low", +-- width = 119, +-- height = 108, +-- apply_projection = false, +-- direction_count = 1, +-- repeat_count = 64, +-- line_length = 1, +-- shift = util.by_pixel(1.5, 4), +-- hr_version = +-- { +-- filename = "__base__/graphics/entity/radar/hr-radar-integration.png", +-- priority = "low", +-- width = 238, +-- height = 216, +-- apply_projection = false, +-- direction_count = 1, +-- repeat_count = 64, +-- line_length = 1, +-- shift = util.by_pixel(1.5, 4), +-- scale = 0.5 +-- } +-- }, + +-- vehicle_impact_sound = { filename = "__base__/sound/car-metal-impact.ogg", volume = 0.65 }, +-- working_sound = +-- { +-- sound = { +-- { +-- filename = "__base__/sound/radar.ogg" +-- } +-- }, +-- apparent_volume = 2, +-- }, +-- radius_minimap_visualisation_color = { r = 0.059, g = 0.092, b = 0.8, a = 0.275 }, +-- } + +-- }) diff --git a/graphics/entities/tunnel/tunnelEntrance.png b/graphics/entities/tunnel/tunnelEntrance.png deleted file mode 100755 index 4a20dc7..0000000 Binary files a/graphics/entities/tunnel/tunnelEntrance.png and /dev/null differ diff --git a/info.json b/info.json index f009990..559c56a 100755 --- a/info.json +++ b/info.json @@ -1,7 +1,7 @@ { "name" : "Rampant", "factorio_version" : "0.16", - "version" : "0.16.29", + "version" : "0.16.30", "title" : "Rampant", "author" : "Veden", "homepage" : "https://forums.factorio.com/viewtopic.php?f=94&t=31445", diff --git a/libs/AIPlanning.lua b/libs/AIPlanning.lua index 011699d..502af17 100755 --- a/libs/AIPlanning.lua +++ b/libs/AIPlanning.lua @@ -53,8 +53,6 @@ local mFloor = math.floor local mRandom = math.random -local linearInterpolation = mathUtils.linearInterpolation - local mMax = math.max -- module code @@ -117,13 +115,15 @@ function aiPlanning.planning(natives, evolution_factor, tick, surface, connected natives.state = AI_STATE_MIGRATING elseif (roll < 0.80) then natives.state = AI_STATE_SIEGE - else + elseif (evolution_factor >= 0.04) then natives.state = AI_STATE_RAIDING natives.points = natives.points + 1000 if (natives.points > AI_MAX_OVERFLOW_POINTS) then natives.points = AI_MAX_OVERFLOW_POINTS end + else + natives.state = AI_STATE_AGGRESSIVE end end natives.stateTick = randomTickEvent(tick, AI_MIN_STATE_DURATION, AI_MAX_STATE_DURATION) diff --git a/libs/BaseUtils.lua b/libs/BaseUtils.lua index 9bc7368..9481563 100755 --- a/libs/BaseUtils.lua +++ b/libs/BaseUtils.lua @@ -185,7 +185,7 @@ local function findEntityUpgrade(baseAlignment, evoIndex, natives, evolutionTabl local entitySet = alignments[roundToFloor(evo, EVOLUTION_INCREMENTS)] if entitySet and (#entitySet > 0) then entity = entitySet[mRandom(#entitySet)] - if (mRandom() > 0.5) then + if (mRandom() > 0.65) then break end end @@ -203,7 +203,7 @@ local function findBaseInitialAlignment(evoIndex, natives, evolutionTable) local entitySet = evolutionTable[roundToFloor(evo, EVOLUTION_INCREMENTS)] if entitySet and (#entitySet > 0) then alignment = entitySet[mRandom(#entitySet)] - if (mRandom() > 0.5) then + if (mRandom() > 0.65) then break end end diff --git a/libs/Constants.lua b/libs/Constants.lua index 7e28efd..87c7818 100755 --- a/libs/Constants.lua +++ b/libs/Constants.lua @@ -21,7 +21,7 @@ constants.VERSION_41 = 41 constants.VERSION_44 = 44 constants.VERSION_51 = 51 constants.VERSION_57 = 57 -constants.VERSION_64 = 64 +constants.VERSION_65 = 65 -- misc @@ -116,7 +116,7 @@ constants.BASE_DEADZONE_TTL = constants.TICKS_A_MINUTE * 20 constants.BASE_COLLECTION_THRESHOLD = constants.TICKS_A_MINUTE * 2 -constants.BASE_DISTANCE_TO_EVO_INDEX = 1 / 5480 +constants.BASE_DISTANCE_TO_EVO_INDEX = 1 / 7200 constants.BASE_SPAWNER_UPGRADE = 300 constants.BASE_WORM_UPGRADE = 250 @@ -163,9 +163,10 @@ constants.BASE_PROCESS_INTERVAL = constants.TICKS_A_SECOND * 2 -- local decayingPath = {} -- decayingPath[constants.BASE_ALIGNMENT_UNDYING] = true --- local electricPath = {} --- electricPath[constants.BASE_ALIGNMENT_ENERGY_THIEF] = true --- electricPath[constants.BASE_ALIGNMENT_LASER] = true +local electricPath = { + -- constants.BASE_ALIGNMENT_ENERGY_THIEF, + constants.BASE_ALIGNMENT_LASER +} constants.BASE_ALIGNMENT_PATHS = {} constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_NEUTRAL] = { @@ -183,7 +184,7 @@ constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_SUICIDE] = { constants.B constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_WASP] = { constants.BASE_ALIGNMENT_SPAWNER } -- constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_ACID] = acidPath -- constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_DECAYING] = decayingPath --- constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_ELECTRIC] = electricPath +constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_ELECTRIC] = electricPath constants.BASE_ALIGNMENT_EVOLUTION_BASELINE = { [constants.BASE_ALIGNMENT_NEUTRAL] = 0, @@ -350,14 +351,15 @@ local tiers5 = {} local tierStart = settings.startup["rampant-tierStart"].value local tierEnd = settings.startup["rampant-tierEnd"].value -local step5 = (tierEnd - tierStart) / 5 + +local step5 = (tierEnd - tierStart) / 4 for i=tierStart,tierEnd,step5 do tiers5[#tiers5+1] = roundToNearest(i, 1) end local tiers10 = {} -local step10 = (tierEnd - tierStart) / 10 +local step10 = (tierEnd - tierStart) / 9 for i=tierStart,tierEnd,step10 do tiers10[#tiers10+1] = roundToNearest(i, 1) end @@ -469,6 +471,14 @@ constants.ELECTRIC_WORM_VARIATIONS = wormVariations constants.ELECTRIC_UNIT_TIERS = unitTiers constants.ELECTRIC_UNIT_VARIATIONS = unitVariations +constants.ENERGY_THIEF_NEST_TIERS = nestTiers +constants.ENERGY_THIEF_NEST_VARIATIONS = nestVariations +constants.ENERGY_THIEF_WORM_TIERS = wormTiers +constants.ENERGY_THIEF_WORM_VARIATIONS = wormVariations +constants.ENERGY_THIEF_UNIT_TIERS = unitTiers +constants.ENERGY_THIEF_UNIT_VARIATIONS = unitVariations + + constants.LASER_NEST_TIERS = nestTiers constants.LASER_NEST_VARIATIONS = nestVariations constants.LASER_WORM_TIERS = wormTiers diff --git a/libs/SquadAttack.lua b/libs/SquadAttack.lua index 8d9f66b..57434b6 100755 --- a/libs/SquadAttack.lua +++ b/libs/SquadAttack.lua @@ -9,6 +9,7 @@ local playerUtils = require("PlayerUtils") local movementUtils = require("MovementUtils") local mathUtils = require("MathUtils") local chunkPropertyUtils = require("ChunkPropertyUtils") +local chunkUtils = require("ChunkUtils") --local chunkUtils = require("ChunkUtils") diff --git a/locale/en/locale.cfg b/locale/en/locale.cfg index 118041b..56a21f9 100755 --- a/locale/en/locale.cfg +++ b/locale/en/locale.cfg @@ -9003,802 +9003,1002 @@ wasp-drone-v1-t1-drone-rampant=Wasp: Larva class wasp-spitter-v1-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v1-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v1-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v1-t1-drone-rampant=Wasp: Larva class wasp-drone-v2-t1-drone-rampant=Wasp: Larva class wasp-spitter-v2-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v2-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v2-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v2-t1-drone-rampant=Wasp: Larva class wasp-drone-v3-t1-drone-rampant=Wasp: Larva class wasp-spitter-v3-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v3-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v3-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v3-t1-drone-rampant=Wasp: Larva class wasp-drone-v4-t1-drone-rampant=Wasp: Larva class wasp-spitter-v4-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v4-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v4-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v4-t1-drone-rampant=Wasp: Larva class wasp-drone-v5-t1-drone-rampant=Wasp: Larva class wasp-spitter-v5-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v5-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v5-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v5-t1-drone-rampant=Wasp: Larva class wasp-drone-v6-t1-drone-rampant=Wasp: Larva class wasp-spitter-v6-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v6-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v6-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v6-t1-drone-rampant=Wasp: Larva class wasp-drone-v7-t1-drone-rampant=Wasp: Larva class wasp-spitter-v7-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v7-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v7-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v7-t1-drone-rampant=Wasp: Larva class wasp-drone-v8-t1-drone-rampant=Wasp: Larva class wasp-spitter-v8-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v8-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v8-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v8-t1-drone-rampant=Wasp: Larva class wasp-drone-v9-t1-drone-rampant=Wasp: Larva class wasp-spitter-v9-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v9-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v9-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v9-t1-drone-rampant=Wasp: Larva class wasp-drone-v10-t1-drone-rampant=Wasp: Larva class wasp-spitter-v10-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v10-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v10-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v10-t1-drone-rampant=Wasp: Larva class wasp-drone-v11-t1-drone-rampant=Wasp: Larva class wasp-spitter-v11-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v11-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v11-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v11-t1-drone-rampant=Wasp: Larva class wasp-drone-v12-t1-drone-rampant=Wasp: Larva class wasp-spitter-v12-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v12-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v12-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v12-t1-drone-rampant=Wasp: Larva class wasp-drone-v13-t1-drone-rampant=Wasp: Larva class wasp-spitter-v13-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v13-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v13-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v13-t1-drone-rampant=Wasp: Larva class wasp-drone-v14-t1-drone-rampant=Wasp: Larva class wasp-spitter-v14-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v14-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v14-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v14-t1-drone-rampant=Wasp: Larva class wasp-drone-v15-t1-drone-rampant=Wasp: Larva class wasp-spitter-v15-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v15-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v15-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v15-t1-drone-rampant=Wasp: Larva class wasp-drone-v16-t1-drone-rampant=Wasp: Larva class wasp-spitter-v16-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v16-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v16-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v16-t1-drone-rampant=Wasp: Larva class wasp-drone-v17-t1-drone-rampant=Wasp: Larva class wasp-spitter-v17-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v17-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v17-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v17-t1-drone-rampant=Wasp: Larva class wasp-drone-v18-t1-drone-rampant=Wasp: Larva class wasp-spitter-v18-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v18-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v18-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v18-t1-drone-rampant=Wasp: Larva class wasp-drone-v19-t1-drone-rampant=Wasp: Larva class wasp-spitter-v19-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v19-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v19-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v19-t1-drone-rampant=Wasp: Larva class wasp-drone-v20-t1-drone-rampant=Wasp: Larva class wasp-spitter-v20-t1-rampant=Wasp spitter: Larva class wasp-spitter-nest-v20-t1-rampant=Wasp spitter nest: Larva class wasp-worm-v20-t1-rampant=Wasp worm: Larva class +wasp-worm-drone-v20-t1-drone-rampant=Wasp: Larva class wasp-drone-v1-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v1-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v1-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v1-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v1-t2-drone-rampant=Wasp: Pupae class wasp-drone-v2-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v2-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v2-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v2-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v2-t2-drone-rampant=Wasp: Pupae class wasp-drone-v3-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v3-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v3-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v3-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v3-t2-drone-rampant=Wasp: Pupae class wasp-drone-v4-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v4-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v4-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v4-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v4-t2-drone-rampant=Wasp: Pupae class wasp-drone-v5-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v5-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v5-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v5-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v5-t2-drone-rampant=Wasp: Pupae class wasp-drone-v6-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v6-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v6-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v6-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v6-t2-drone-rampant=Wasp: Pupae class wasp-drone-v7-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v7-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v7-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v7-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v7-t2-drone-rampant=Wasp: Pupae class wasp-drone-v8-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v8-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v8-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v8-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v8-t2-drone-rampant=Wasp: Pupae class wasp-drone-v9-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v9-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v9-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v9-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v9-t2-drone-rampant=Wasp: Pupae class wasp-drone-v10-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v10-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v10-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v10-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v10-t2-drone-rampant=Wasp: Pupae class wasp-drone-v11-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v11-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v11-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v11-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v11-t2-drone-rampant=Wasp: Pupae class wasp-drone-v12-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v12-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v12-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v12-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v12-t2-drone-rampant=Wasp: Pupae class wasp-drone-v13-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v13-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v13-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v13-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v13-t2-drone-rampant=Wasp: Pupae class wasp-drone-v14-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v14-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v14-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v14-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v14-t2-drone-rampant=Wasp: Pupae class wasp-drone-v15-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v15-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v15-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v15-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v15-t2-drone-rampant=Wasp: Pupae class wasp-drone-v16-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v16-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v16-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v16-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v16-t2-drone-rampant=Wasp: Pupae class wasp-drone-v17-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v17-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v17-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v17-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v17-t2-drone-rampant=Wasp: Pupae class wasp-drone-v18-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v18-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v18-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v18-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v18-t2-drone-rampant=Wasp: Pupae class wasp-drone-v19-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v19-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v19-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v19-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v19-t2-drone-rampant=Wasp: Pupae class wasp-drone-v20-t2-drone-rampant=Wasp: Pupae class wasp-spitter-v20-t2-rampant=Wasp spitter: Pupae class wasp-spitter-nest-v20-t2-rampant=Wasp spitter nest: Pupae class wasp-worm-v20-t2-rampant=Wasp worm: Pupae class +wasp-worm-drone-v20-t2-drone-rampant=Wasp: Pupae class wasp-drone-v1-t3-drone-rampant=Wasp: Worker class wasp-spitter-v1-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v1-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v1-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v1-t3-drone-rampant=Wasp: Worker class wasp-drone-v2-t3-drone-rampant=Wasp: Worker class wasp-spitter-v2-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v2-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v2-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v2-t3-drone-rampant=Wasp: Worker class wasp-drone-v3-t3-drone-rampant=Wasp: Worker class wasp-spitter-v3-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v3-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v3-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v3-t3-drone-rampant=Wasp: Worker class wasp-drone-v4-t3-drone-rampant=Wasp: Worker class wasp-spitter-v4-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v4-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v4-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v4-t3-drone-rampant=Wasp: Worker class wasp-drone-v5-t3-drone-rampant=Wasp: Worker class wasp-spitter-v5-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v5-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v5-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v5-t3-drone-rampant=Wasp: Worker class wasp-drone-v6-t3-drone-rampant=Wasp: Worker class wasp-spitter-v6-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v6-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v6-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v6-t3-drone-rampant=Wasp: Worker class wasp-drone-v7-t3-drone-rampant=Wasp: Worker class wasp-spitter-v7-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v7-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v7-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v7-t3-drone-rampant=Wasp: Worker class wasp-drone-v8-t3-drone-rampant=Wasp: Worker class wasp-spitter-v8-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v8-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v8-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v8-t3-drone-rampant=Wasp: Worker class wasp-drone-v9-t3-drone-rampant=Wasp: Worker class wasp-spitter-v9-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v9-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v9-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v9-t3-drone-rampant=Wasp: Worker class wasp-drone-v10-t3-drone-rampant=Wasp: Worker class wasp-spitter-v10-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v10-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v10-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v10-t3-drone-rampant=Wasp: Worker class wasp-drone-v11-t3-drone-rampant=Wasp: Worker class wasp-spitter-v11-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v11-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v11-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v11-t3-drone-rampant=Wasp: Worker class wasp-drone-v12-t3-drone-rampant=Wasp: Worker class wasp-spitter-v12-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v12-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v12-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v12-t3-drone-rampant=Wasp: Worker class wasp-drone-v13-t3-drone-rampant=Wasp: Worker class wasp-spitter-v13-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v13-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v13-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v13-t3-drone-rampant=Wasp: Worker class wasp-drone-v14-t3-drone-rampant=Wasp: Worker class wasp-spitter-v14-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v14-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v14-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v14-t3-drone-rampant=Wasp: Worker class wasp-drone-v15-t3-drone-rampant=Wasp: Worker class wasp-spitter-v15-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v15-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v15-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v15-t3-drone-rampant=Wasp: Worker class wasp-drone-v16-t3-drone-rampant=Wasp: Worker class wasp-spitter-v16-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v16-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v16-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v16-t3-drone-rampant=Wasp: Worker class wasp-drone-v17-t3-drone-rampant=Wasp: Worker class wasp-spitter-v17-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v17-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v17-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v17-t3-drone-rampant=Wasp: Worker class wasp-drone-v18-t3-drone-rampant=Wasp: Worker class wasp-spitter-v18-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v18-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v18-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v18-t3-drone-rampant=Wasp: Worker class wasp-drone-v19-t3-drone-rampant=Wasp: Worker class wasp-spitter-v19-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v19-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v19-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v19-t3-drone-rampant=Wasp: Worker class wasp-drone-v20-t3-drone-rampant=Wasp: Worker class wasp-spitter-v20-t3-rampant=Wasp spitter: Worker class wasp-spitter-nest-v20-t3-rampant=Wasp spitter nest: Worker class wasp-worm-v20-t3-rampant=Wasp worm: Worker class +wasp-worm-drone-v20-t3-drone-rampant=Wasp: Worker class wasp-drone-v1-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v1-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v1-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v1-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v1-t4-drone-rampant=Wasp: Grunt class wasp-drone-v2-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v2-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v2-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v2-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v2-t4-drone-rampant=Wasp: Grunt class wasp-drone-v3-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v3-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v3-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v3-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v3-t4-drone-rampant=Wasp: Grunt class wasp-drone-v4-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v4-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v4-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v4-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v4-t4-drone-rampant=Wasp: Grunt class wasp-drone-v5-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v5-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v5-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v5-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v5-t4-drone-rampant=Wasp: Grunt class wasp-drone-v6-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v6-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v6-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v6-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v6-t4-drone-rampant=Wasp: Grunt class wasp-drone-v7-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v7-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v7-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v7-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v7-t4-drone-rampant=Wasp: Grunt class wasp-drone-v8-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v8-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v8-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v8-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v8-t4-drone-rampant=Wasp: Grunt class wasp-drone-v9-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v9-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v9-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v9-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v9-t4-drone-rampant=Wasp: Grunt class wasp-drone-v10-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v10-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v10-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v10-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v10-t4-drone-rampant=Wasp: Grunt class wasp-drone-v11-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v11-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v11-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v11-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v11-t4-drone-rampant=Wasp: Grunt class wasp-drone-v12-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v12-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v12-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v12-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v12-t4-drone-rampant=Wasp: Grunt class wasp-drone-v13-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v13-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v13-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v13-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v13-t4-drone-rampant=Wasp: Grunt class wasp-drone-v14-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v14-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v14-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v14-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v14-t4-drone-rampant=Wasp: Grunt class wasp-drone-v15-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v15-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v15-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v15-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v15-t4-drone-rampant=Wasp: Grunt class wasp-drone-v16-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v16-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v16-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v16-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v16-t4-drone-rampant=Wasp: Grunt class wasp-drone-v17-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v17-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v17-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v17-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v17-t4-drone-rampant=Wasp: Grunt class wasp-drone-v18-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v18-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v18-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v18-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v18-t4-drone-rampant=Wasp: Grunt class wasp-drone-v19-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v19-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v19-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v19-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v19-t4-drone-rampant=Wasp: Grunt class wasp-drone-v20-t4-drone-rampant=Wasp: Grunt class wasp-spitter-v20-t4-rampant=Wasp spitter: Grunt class wasp-spitter-nest-v20-t4-rampant=Wasp spitter nest: Grunt class wasp-worm-v20-t4-rampant=Wasp worm: Grunt class +wasp-worm-drone-v20-t4-drone-rampant=Wasp: Grunt class wasp-drone-v1-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v1-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v1-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v1-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v1-t5-drone-rampant=Wasp: Soldier class wasp-drone-v2-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v2-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v2-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v2-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v2-t5-drone-rampant=Wasp: Soldier class wasp-drone-v3-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v3-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v3-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v3-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v3-t5-drone-rampant=Wasp: Soldier class wasp-drone-v4-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v4-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v4-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v4-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v4-t5-drone-rampant=Wasp: Soldier class wasp-drone-v5-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v5-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v5-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v5-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v5-t5-drone-rampant=Wasp: Soldier class wasp-drone-v6-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v6-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v6-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v6-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v6-t5-drone-rampant=Wasp: Soldier class wasp-drone-v7-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v7-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v7-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v7-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v7-t5-drone-rampant=Wasp: Soldier class wasp-drone-v8-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v8-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v8-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v8-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v8-t5-drone-rampant=Wasp: Soldier class wasp-drone-v9-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v9-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v9-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v9-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v9-t5-drone-rampant=Wasp: Soldier class wasp-drone-v10-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v10-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v10-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v10-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v10-t5-drone-rampant=Wasp: Soldier class wasp-drone-v11-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v11-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v11-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v11-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v11-t5-drone-rampant=Wasp: Soldier class wasp-drone-v12-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v12-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v12-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v12-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v12-t5-drone-rampant=Wasp: Soldier class wasp-drone-v13-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v13-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v13-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v13-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v13-t5-drone-rampant=Wasp: Soldier class wasp-drone-v14-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v14-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v14-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v14-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v14-t5-drone-rampant=Wasp: Soldier class wasp-drone-v15-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v15-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v15-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v15-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v15-t5-drone-rampant=Wasp: Soldier class wasp-drone-v16-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v16-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v16-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v16-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v16-t5-drone-rampant=Wasp: Soldier class wasp-drone-v17-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v17-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v17-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v17-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v17-t5-drone-rampant=Wasp: Soldier class wasp-drone-v18-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v18-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v18-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v18-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v18-t5-drone-rampant=Wasp: Soldier class wasp-drone-v19-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v19-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v19-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v19-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v19-t5-drone-rampant=Wasp: Soldier class wasp-drone-v20-t5-drone-rampant=Wasp: Soldier class wasp-spitter-v20-t5-rampant=Wasp spitter: Soldier class wasp-spitter-nest-v20-t5-rampant=Wasp spitter nest: Soldier class wasp-worm-v20-t5-rampant=Wasp worm: Soldier class +wasp-worm-drone-v20-t5-drone-rampant=Wasp: Soldier class wasp-drone-v1-t6-drone-rampant=Wasp: General class wasp-spitter-v1-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v1-t6-rampant=Wasp spitter nest: General class wasp-worm-v1-t6-rampant=Wasp worm: General class +wasp-worm-drone-v1-t6-drone-rampant=Wasp: General class wasp-drone-v2-t6-drone-rampant=Wasp: General class wasp-spitter-v2-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v2-t6-rampant=Wasp spitter nest: General class wasp-worm-v2-t6-rampant=Wasp worm: General class +wasp-worm-drone-v2-t6-drone-rampant=Wasp: General class wasp-drone-v3-t6-drone-rampant=Wasp: General class wasp-spitter-v3-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v3-t6-rampant=Wasp spitter nest: General class wasp-worm-v3-t6-rampant=Wasp worm: General class +wasp-worm-drone-v3-t6-drone-rampant=Wasp: General class wasp-drone-v4-t6-drone-rampant=Wasp: General class wasp-spitter-v4-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v4-t6-rampant=Wasp spitter nest: General class wasp-worm-v4-t6-rampant=Wasp worm: General class +wasp-worm-drone-v4-t6-drone-rampant=Wasp: General class wasp-drone-v5-t6-drone-rampant=Wasp: General class wasp-spitter-v5-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v5-t6-rampant=Wasp spitter nest: General class wasp-worm-v5-t6-rampant=Wasp worm: General class +wasp-worm-drone-v5-t6-drone-rampant=Wasp: General class wasp-drone-v6-t6-drone-rampant=Wasp: General class wasp-spitter-v6-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v6-t6-rampant=Wasp spitter nest: General class wasp-worm-v6-t6-rampant=Wasp worm: General class +wasp-worm-drone-v6-t6-drone-rampant=Wasp: General class wasp-drone-v7-t6-drone-rampant=Wasp: General class wasp-spitter-v7-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v7-t6-rampant=Wasp spitter nest: General class wasp-worm-v7-t6-rampant=Wasp worm: General class +wasp-worm-drone-v7-t6-drone-rampant=Wasp: General class wasp-drone-v8-t6-drone-rampant=Wasp: General class wasp-spitter-v8-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v8-t6-rampant=Wasp spitter nest: General class wasp-worm-v8-t6-rampant=Wasp worm: General class +wasp-worm-drone-v8-t6-drone-rampant=Wasp: General class wasp-drone-v9-t6-drone-rampant=Wasp: General class wasp-spitter-v9-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v9-t6-rampant=Wasp spitter nest: General class wasp-worm-v9-t6-rampant=Wasp worm: General class +wasp-worm-drone-v9-t6-drone-rampant=Wasp: General class wasp-drone-v10-t6-drone-rampant=Wasp: General class wasp-spitter-v10-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v10-t6-rampant=Wasp spitter nest: General class wasp-worm-v10-t6-rampant=Wasp worm: General class +wasp-worm-drone-v10-t6-drone-rampant=Wasp: General class wasp-drone-v11-t6-drone-rampant=Wasp: General class wasp-spitter-v11-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v11-t6-rampant=Wasp spitter nest: General class wasp-worm-v11-t6-rampant=Wasp worm: General class +wasp-worm-drone-v11-t6-drone-rampant=Wasp: General class wasp-drone-v12-t6-drone-rampant=Wasp: General class wasp-spitter-v12-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v12-t6-rampant=Wasp spitter nest: General class wasp-worm-v12-t6-rampant=Wasp worm: General class +wasp-worm-drone-v12-t6-drone-rampant=Wasp: General class wasp-drone-v13-t6-drone-rampant=Wasp: General class wasp-spitter-v13-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v13-t6-rampant=Wasp spitter nest: General class wasp-worm-v13-t6-rampant=Wasp worm: General class +wasp-worm-drone-v13-t6-drone-rampant=Wasp: General class wasp-drone-v14-t6-drone-rampant=Wasp: General class wasp-spitter-v14-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v14-t6-rampant=Wasp spitter nest: General class wasp-worm-v14-t6-rampant=Wasp worm: General class +wasp-worm-drone-v14-t6-drone-rampant=Wasp: General class wasp-drone-v15-t6-drone-rampant=Wasp: General class wasp-spitter-v15-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v15-t6-rampant=Wasp spitter nest: General class wasp-worm-v15-t6-rampant=Wasp worm: General class +wasp-worm-drone-v15-t6-drone-rampant=Wasp: General class wasp-drone-v16-t6-drone-rampant=Wasp: General class wasp-spitter-v16-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v16-t6-rampant=Wasp spitter nest: General class wasp-worm-v16-t6-rampant=Wasp worm: General class +wasp-worm-drone-v16-t6-drone-rampant=Wasp: General class wasp-drone-v17-t6-drone-rampant=Wasp: General class wasp-spitter-v17-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v17-t6-rampant=Wasp spitter nest: General class wasp-worm-v17-t6-rampant=Wasp worm: General class +wasp-worm-drone-v17-t6-drone-rampant=Wasp: General class wasp-drone-v18-t6-drone-rampant=Wasp: General class wasp-spitter-v18-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v18-t6-rampant=Wasp spitter nest: General class wasp-worm-v18-t6-rampant=Wasp worm: General class +wasp-worm-drone-v18-t6-drone-rampant=Wasp: General class wasp-drone-v19-t6-drone-rampant=Wasp: General class wasp-spitter-v19-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v19-t6-rampant=Wasp spitter nest: General class wasp-worm-v19-t6-rampant=Wasp worm: General class +wasp-worm-drone-v19-t6-drone-rampant=Wasp: General class wasp-drone-v20-t6-drone-rampant=Wasp: General class wasp-spitter-v20-t6-rampant=Wasp spitter: General class wasp-spitter-nest-v20-t6-rampant=Wasp spitter nest: General class wasp-worm-v20-t6-rampant=Wasp worm: General class +wasp-worm-drone-v20-t6-drone-rampant=Wasp: General class wasp-drone-v1-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v1-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v1-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v1-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v1-t7-drone-rampant=Wasp: Overlord class wasp-drone-v2-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v2-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v2-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v2-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v2-t7-drone-rampant=Wasp: Overlord class wasp-drone-v3-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v3-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v3-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v3-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v3-t7-drone-rampant=Wasp: Overlord class wasp-drone-v4-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v4-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v4-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v4-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v4-t7-drone-rampant=Wasp: Overlord class wasp-drone-v5-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v5-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v5-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v5-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v5-t7-drone-rampant=Wasp: Overlord class wasp-drone-v6-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v6-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v6-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v6-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v6-t7-drone-rampant=Wasp: Overlord class wasp-drone-v7-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v7-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v7-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v7-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v7-t7-drone-rampant=Wasp: Overlord class wasp-drone-v8-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v8-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v8-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v8-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v8-t7-drone-rampant=Wasp: Overlord class wasp-drone-v9-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v9-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v9-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v9-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v9-t7-drone-rampant=Wasp: Overlord class wasp-drone-v10-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v10-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v10-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v10-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v10-t7-drone-rampant=Wasp: Overlord class wasp-drone-v11-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v11-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v11-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v11-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v11-t7-drone-rampant=Wasp: Overlord class wasp-drone-v12-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v12-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v12-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v12-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v12-t7-drone-rampant=Wasp: Overlord class wasp-drone-v13-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v13-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v13-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v13-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v13-t7-drone-rampant=Wasp: Overlord class wasp-drone-v14-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v14-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v14-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v14-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v14-t7-drone-rampant=Wasp: Overlord class wasp-drone-v15-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v15-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v15-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v15-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v15-t7-drone-rampant=Wasp: Overlord class wasp-drone-v16-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v16-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v16-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v16-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v16-t7-drone-rampant=Wasp: Overlord class wasp-drone-v17-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v17-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v17-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v17-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v17-t7-drone-rampant=Wasp: Overlord class wasp-drone-v18-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v18-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v18-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v18-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v18-t7-drone-rampant=Wasp: Overlord class wasp-drone-v19-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v19-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v19-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v19-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v19-t7-drone-rampant=Wasp: Overlord class wasp-drone-v20-t7-drone-rampant=Wasp: Overlord class wasp-spitter-v20-t7-rampant=Wasp spitter: Overlord class wasp-spitter-nest-v20-t7-rampant=Wasp spitter nest: Overlord class wasp-worm-v20-t7-rampant=Wasp worm: Overlord class +wasp-worm-drone-v20-t7-drone-rampant=Wasp: Overlord class wasp-drone-v1-t8-drone-rampant=Wasp: Titan class wasp-spitter-v1-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v1-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v1-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v1-t8-drone-rampant=Wasp: Titan class wasp-drone-v2-t8-drone-rampant=Wasp: Titan class wasp-spitter-v2-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v2-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v2-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v2-t8-drone-rampant=Wasp: Titan class wasp-drone-v3-t8-drone-rampant=Wasp: Titan class wasp-spitter-v3-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v3-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v3-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v3-t8-drone-rampant=Wasp: Titan class wasp-drone-v4-t8-drone-rampant=Wasp: Titan class wasp-spitter-v4-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v4-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v4-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v4-t8-drone-rampant=Wasp: Titan class wasp-drone-v5-t8-drone-rampant=Wasp: Titan class wasp-spitter-v5-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v5-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v5-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v5-t8-drone-rampant=Wasp: Titan class wasp-drone-v6-t8-drone-rampant=Wasp: Titan class wasp-spitter-v6-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v6-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v6-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v6-t8-drone-rampant=Wasp: Titan class wasp-drone-v7-t8-drone-rampant=Wasp: Titan class wasp-spitter-v7-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v7-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v7-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v7-t8-drone-rampant=Wasp: Titan class wasp-drone-v8-t8-drone-rampant=Wasp: Titan class wasp-spitter-v8-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v8-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v8-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v8-t8-drone-rampant=Wasp: Titan class wasp-drone-v9-t8-drone-rampant=Wasp: Titan class wasp-spitter-v9-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v9-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v9-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v9-t8-drone-rampant=Wasp: Titan class wasp-drone-v10-t8-drone-rampant=Wasp: Titan class wasp-spitter-v10-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v10-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v10-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v10-t8-drone-rampant=Wasp: Titan class wasp-drone-v11-t8-drone-rampant=Wasp: Titan class wasp-spitter-v11-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v11-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v11-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v11-t8-drone-rampant=Wasp: Titan class wasp-drone-v12-t8-drone-rampant=Wasp: Titan class wasp-spitter-v12-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v12-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v12-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v12-t8-drone-rampant=Wasp: Titan class wasp-drone-v13-t8-drone-rampant=Wasp: Titan class wasp-spitter-v13-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v13-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v13-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v13-t8-drone-rampant=Wasp: Titan class wasp-drone-v14-t8-drone-rampant=Wasp: Titan class wasp-spitter-v14-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v14-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v14-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v14-t8-drone-rampant=Wasp: Titan class wasp-drone-v15-t8-drone-rampant=Wasp: Titan class wasp-spitter-v15-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v15-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v15-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v15-t8-drone-rampant=Wasp: Titan class wasp-drone-v16-t8-drone-rampant=Wasp: Titan class wasp-spitter-v16-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v16-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v16-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v16-t8-drone-rampant=Wasp: Titan class wasp-drone-v17-t8-drone-rampant=Wasp: Titan class wasp-spitter-v17-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v17-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v17-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v17-t8-drone-rampant=Wasp: Titan class wasp-drone-v18-t8-drone-rampant=Wasp: Titan class wasp-spitter-v18-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v18-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v18-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v18-t8-drone-rampant=Wasp: Titan class wasp-drone-v19-t8-drone-rampant=Wasp: Titan class wasp-spitter-v19-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v19-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v19-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v19-t8-drone-rampant=Wasp: Titan class wasp-drone-v20-t8-drone-rampant=Wasp: Titan class wasp-spitter-v20-t8-rampant=Wasp spitter: Titan class wasp-spitter-nest-v20-t8-rampant=Wasp spitter nest: Titan class wasp-worm-v20-t8-rampant=Wasp worm: Titan class +wasp-worm-drone-v20-t8-drone-rampant=Wasp: Titan class wasp-drone-v1-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v1-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v1-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v1-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v1-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v2-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v2-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v2-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v2-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v2-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v3-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v3-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v3-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v3-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v3-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v4-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v4-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v4-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v4-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v4-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v5-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v5-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v5-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v5-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v5-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v6-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v6-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v6-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v6-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v6-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v7-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v7-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v7-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v7-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v7-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v8-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v8-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v8-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v8-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v8-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v9-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v9-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v9-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v9-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v9-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v10-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v10-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v10-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v10-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v10-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v11-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v11-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v11-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v11-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v11-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v12-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v12-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v12-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v12-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v12-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v13-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v13-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v13-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v13-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v13-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v14-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v14-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v14-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v14-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v14-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v15-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v15-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v15-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v15-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v15-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v16-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v16-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v16-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v16-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v16-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v17-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v17-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v17-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v17-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v17-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v18-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v18-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v18-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v18-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v18-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v19-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v19-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v19-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v19-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v19-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v20-t9-drone-rampant=Wasp: Leviathan class wasp-spitter-v20-t9-rampant=Wasp spitter: Leviathan class wasp-spitter-nest-v20-t9-rampant=Wasp spitter nest: Leviathan class wasp-worm-v20-t9-rampant=Wasp worm: Leviathan class +wasp-worm-drone-v20-t9-drone-rampant=Wasp: Leviathan class wasp-drone-v1-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v1-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v1-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v1-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v1-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v2-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v2-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v2-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v2-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v2-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v3-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v3-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v3-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v3-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v3-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v4-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v4-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v4-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v4-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v4-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v5-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v5-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v5-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v5-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v5-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v6-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v6-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v6-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v6-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v6-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v7-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v7-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v7-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v7-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v7-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v8-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v8-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v8-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v8-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v8-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v9-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v9-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v9-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v9-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v9-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v10-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v10-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v10-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v10-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v10-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v11-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v11-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v11-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v11-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v11-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v12-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v12-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v12-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v12-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v12-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v13-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v13-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v13-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v13-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v13-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v14-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v14-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v14-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v14-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v14-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v15-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v15-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v15-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v15-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v15-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v16-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v16-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v16-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v16-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v16-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v17-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v17-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v17-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v17-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v17-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v18-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v18-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v18-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v18-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v18-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v19-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v19-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v19-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v19-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v19-t10-drone-rampant=Wasp: Juggernaut class wasp-drone-v20-t10-drone-rampant=Wasp: Juggernaut class wasp-spitter-v20-t10-rampant=Wasp spitter: Juggernaut class wasp-spitter-nest-v20-t10-rampant=Wasp spitter nest: Juggernaut class wasp-worm-v20-t10-rampant=Wasp worm: Juggernaut class +wasp-worm-drone-v20-t10-drone-rampant=Wasp: Juggernaut class spawner-drone-v1-t1-drone-rampant=Spawner eggs: Larva class spawner-spitter-v1-t1-rampant=Spawner spitter: Larva class spawner-worm-drone-v1-t1-drone-rampant=Spawner eggs: Larva class @@ -11090,7 +11290,7 @@ rampant-removeBloodParticles=The blood particles that are created when biters ar # rampant-enableBuildings=Enable buildings and technologies rampant offers rampant-enableSwarm=This reduces the size of the unit collision_mask causing them to reduce pathing collisions and smooth out the attacks rampant-attack-warning=Shows a message warning players that an attack wave is incoming -rampant-newEnemies=Adds news enemies that will be dispersed over the world. This increases the RAM requirements minimum 2GB to 8GB. +rampant-newEnemies=Adds news enemies that will be dispersed over the world. This increases the RAM requirements minimum 2GB to 9GB. rampant-enemySeed=The seed that powers all of the unit generation, so change this if you want the enemy stats to change rampant-deadZoneFrequency=The percentage of zones that start without worms or nests rampant-newEnemyNestVariations=This number corresponds to the number of variations per tier. The higher the number the smoother the enemy power curve. Min 1, Max 20 diff --git a/prototypes/Acid.lua b/prototypes/Acid.lua index 7164ba4..fb93b21 100755 --- a/prototypes/Acid.lua +++ b/prototypes/Acid.lua @@ -55,18 +55,6 @@ function acid.addFaction() 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 - }, 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} @@ -78,201 +66,13 @@ function acid.addFaction() loot = spawnerLoot, attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0, g=0.85, b=0.13, a=0.65} } }, { 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] = 9, - [8] = 9, - [9] = 10, - [10] = 10 - }, - 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 = "acid", @@ -300,87 +100,11 @@ function acid.addFaction() [9] = 90, [10] = 90 } - }, - - { - - 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", @@ -396,122 +120,6 @@ function acid.addFaction() [10] = 0.9 }, - { - 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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - }, - { type = "resistance", name = "acid", @@ -541,19 +149,6 @@ function acid.addFaction() } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -588,18 +183,6 @@ function acid.addFaction() resistances = {}, type = "spitter", - 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 - }, attackName = "acid-spitter", tint = {r=0, g=0.85, b=0.1, a=0.65}, pTint = {r=0, g=1, b=0.1, a=0.5}, @@ -612,226 +195,15 @@ function acid.addFaction() loot = spawnerLoot, attributes = {}, resistances = {}, - - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, + tint = {r=0, g=0.85, b=0.13, a=1} } }, { unit = { - { - type = "attribute", - name = "health", - [1] = 10, - [2] = 50, - [3] = 200, - [4] = 350, - [5] = 750, - [6] = 1000, - [7] = 1500, - [8] = 2500, - [9] = 4500, - [10] = 7000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - }, - - { - 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] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - }, - - { - type = "attack", - name = "damage", - [1] = 4, - [2] = 9, - [3] = 14, - [4] = 23, - [5] = 30, - [6] = 37, - [7] = 45, - [8] = 57, - [9] = 70, - [10] = 80 - }, - - { - 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.185, - [2] = 0.18, - [3] = 0.18, - [4] = 0.17, - [5] = 0.17, - [6] = 0.16, - [7] = 0.16, - [8] = 0.15, - [9] = 0.15, - [10] = 0.14 - }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.04, - [2] = 0.045, - [3] = 0.050, - [4] = 0.055, - [5] = 0.060, - [6] = 0.065, - [7] = 0.070, - [8] = 0.075, - [9] = 0.08, - [10] = 0.084 - }, - - { - - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - - }, - - { - + + { type = "resistance", name = "acid", decrease = { @@ -859,149 +231,12 @@ function acid.addFaction() [10] = 90 } - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - } + }, 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", @@ -1016,122 +251,6 @@ function acid.addFaction() [9] = 0.8, [10] = 0.9 }, - - { - 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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - }, { type = "resistance", @@ -1162,20 +281,9 @@ function acid.addFaction() } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } + + }, function (attributes) @@ -1209,18 +317,6 @@ function acid.addFaction() }, resistances = {}, - 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 - }, attackName = "acid-worm", tint = {r=0, g=0.85, b=0.1, a=0.65}, pTint = {r=0, g=1, b=0.1, a=0.5}, @@ -1228,172 +324,7 @@ function acid.addFaction() }, { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - { type = "resistance", name = "acid", @@ -1421,116 +352,8 @@ function acid.addFaction() [9] = 90, [10] = 90 } - }, - - { - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - }, - - { - - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - } + }, function (attributes) diff --git a/prototypes/Electric.lua b/prototypes/Electric.lua index bdccdb0..8b5992b 100755 --- a/prototypes/Electric.lua +++ b/prototypes/Electric.lua @@ -65,18 +65,6 @@ function electric.addFaction() 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 - }, attackName = "biter-electric", tint1 = {r=0, g=0.25, b=0.83, a=0.65}, tint2 = {r=0, g=0.25, b=0.63, a=0.65} @@ -88,18 +76,6 @@ function electric.addFaction() loot = spawnerLoot, attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0, g=0.25, b=0.83, a=0.65} } }, @@ -121,21 +97,6 @@ function electric.addFaction() [10] = 7000 }, - { - 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 = "attack", name = "width", @@ -181,154 +142,6 @@ function electric.addFaction() [10] = 24 }, - { - 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 = "electric", @@ -376,198 +189,6 @@ function electric.addFaction() 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.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - 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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - }, - { type = "resistance", name = "electric", @@ -596,19 +217,6 @@ function electric.addFaction() [10] = 90 } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -669,18 +277,6 @@ function electric.addFaction() }, resistances = {}, - 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 - }, attackName = "worm-electric", tint = {r=0, g=0.25, b=0.83, a=0.65}, pTint = {r=0, g=0.1, b=1, a=1}, @@ -733,173 +329,7 @@ function electric.addFaction() [8] = 8, [9] = 9, [10] = 9 - }, - - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, + }, { type = "resistance", @@ -928,112 +358,7 @@ function electric.addFaction() [9] = 90, [10] = 90 } - }, - - { - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - } + } }, function (attributes) diff --git a/prototypes/Fast.lua b/prototypes/Fast.lua index 9cc07ff..713a30d 100755 --- a/prototypes/Fast.lua +++ b/prototypes/Fast.lua @@ -53,18 +53,6 @@ function fast.addFaction() loot = biterLoot, 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=0.26, g=0.76, b=0.72, a=0.65}, tint2 = {r=1, g=0.63, b=0, a=0.4} }, @@ -75,43 +63,14 @@ function fast.addFaction() loot = spawnerLoot, attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0.26, g=0.76, b=0.72, a=0.65} } }, { 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, @@ -123,80 +82,10 @@ function fast.addFaction() [7] = 42, [8] = 43, [9] = 43, - [10] = 45 - - }, - - { - - type = "attribute", - name = "spawningTimeModifer", - [1] = 0, - [2] = 0, - [3] = 1, - [4] = 2, - [5] = 2, - [6] = 5, - [7] = 8, - [8] = 8, - [9] = 10, - [10] = 10 - - }, + [10] = 45 + }, - { - - 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.22, @@ -210,6 +99,7 @@ function fast.addFaction() [9] = 0.24, [10] = 0.25 }, + { type = "attribute", name = "distancePerFrame", @@ -223,120 +113,13 @@ function fast.addFaction() [8] = 0.24, [9] = 0.24, [10] = 0.26 - }, - - { - 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 = "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] = 330, @@ -348,12 +131,10 @@ function fast.addFaction() [7] = 315, [8] = 315, [9] = 310, - [10] = 310 - + [10] = 310 }, - { - + { type = "attribute", name = "spawingCooldownEnd", [1] = 120, @@ -365,12 +146,10 @@ function fast.addFaction() [7] = 115, [8] = 115, [9] = 110, - [10] = 110 - + [10] = 110 }, - { - + { type = "attribute", name = "evolutionRequirement", [1] = 0, @@ -382,141 +161,8 @@ function fast.addFaction() [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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, + [10] = 0.92 + } } }, @@ -551,18 +197,6 @@ function fast.addFaction() resistances = {}, type = "spitter", - 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 - }, attackName = "fast-ball", tint = {r=0.26, g=0.76, b=0.72, a=0.65}, pTint = {r=0, g=1, b=1, a=0.5}, @@ -576,41 +210,14 @@ function fast.addFaction() attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0.26, g=0.76, b=0.72, a=1} } }, { unit = { - { - type = "attribute", - name = "health", - [1] = 10, - [2] = 50, - [3] = 200, - [4] = 350, - [5] = 750, - [6] = 1000, - [7] = 1500, - [8] = 2500, - [9] = 4500, - [10] = 7000 - }, - { - + { type = "attack", name = "cooldown", [1] = 80, @@ -622,79 +229,9 @@ function fast.addFaction() [7] = 73, [8] = 73, [9] = 70, - [10] = 70 - + [10] = 70 }, - - { - - type = "attribute", - name = "spawningTimeModifer", - [1] = 0, - [2] = 0, - [3] = 1, - [4] = 2, - [5] = 2, - [6] = 5, - [7] = 8, - [8] = 8, - [9] = 10, - [10] = 10 - - }, - - { - - type = "attribute", - name = "pollutionToAttack", - [1] = 200, - [2] = 750, - [3] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - - }, - - { - - type = "attack", - name = "damage", - [1] = 4, - [2] = 9, - [3] = 14, - [4] = 23, - [5] = 30, - [6] = 37, - [7] = 45, - [8] = 57, - [9] = 70, - [10] = 80 - - }, - - { - - 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", @@ -709,6 +246,7 @@ function fast.addFaction() [9] = 0.23, [10] = 0.24 }, + { type = "attribute", name = "distancePerFrame", @@ -722,138 +260,12 @@ function fast.addFaction() [8] = 0.095, [9] = 0.10, [10] = 0.104 - }, - - { - type = "resistance", - name = "explosion", - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.7, - [2] = 0.7, - [3] = 0.8, - [4] = 0.8, - [5] = 0.9, - [6] = 0.9, - [7] = 0.10, - [8] = 0.10, - [9] = 1.1, - [10] = 1.1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, 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", @@ -867,12 +279,10 @@ function fast.addFaction() [7] = 315, [8] = 315, [9] = 310, - [10] = 310 - + [10] = 310 }, - { - + { type = "attribute", name = "spawingCooldownEnd", [1] = 120, @@ -884,155 +294,24 @@ function fast.addFaction() [7] = 105, [8] = 105, [9] = 100, - [10] = 100 - + [10] = 100 }, - { - + { type = "attribute", name = "evolutionRequirement", - [1] = 0.08, - [2] = 0.16, - [3] = 0.24, - [4] = 0.35, - [5] = 0.40, - [6] = 0.45, - [7] = 0.55, - [8] = 0.65, - [9] = 0.75, - [10] = 0.9 - - }, - - { - 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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, + [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 + } + } }, @@ -1067,40 +346,13 @@ function fast.addFaction() }, resistances = {}, - 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 - }, attackName = "worm-fast", tint = {r=0.56, g=0.46, b=0.42, a=0.65}, pTint = {r=0, g=1, b=1, a=0.5}, sTint = {r=0, g=1, b=1, a=0.5} }, - { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, - + { { type = "attack", name = "cooldown", @@ -1115,66 +367,6 @@ function fast.addFaction() [9] = 30, [10] = 30 }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, { type = "attribute", @@ -1206,126 +398,6 @@ function fast.addFaction() [10] = 0.031 }, - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - { type = "attack", name = "particleHoizontalSpeed", @@ -1339,21 +411,6 @@ function fast.addFaction() [8] = 1.1, [9] = 1.2, [10] = 1.2 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } }, diff --git a/prototypes/Fire.lua b/prototypes/Fire.lua index 5208b23..102a79f 100755 --- a/prototypes/Fire.lua +++ b/prototypes/Fire.lua @@ -55,18 +55,6 @@ function fire.addFaction() 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=0.65, g=0, b=0, a=0.65}, tint2 = {r=1, g=1, b=1, a=0.4} }, @@ -77,213 +65,12 @@ function fire.addFaction() loot = spawnerLoot, 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", @@ -314,231 +101,7 @@ function fire.addFaction() } }, - { - 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] = 7, - [2] = 7, - [3] = 10, - [4] = 10, - [5] = 13, - [6] = 13, - [7] = 16, - [8] = 16, - [9] = 19, - [10] = 23 - }, - percent = { - [1] = 65, - [2] = 65, - [3] = 70, - [4] = 75, - [5] = 75, - [6] = 80, - [7] = 85, - [8] = 85, - [9] = 90, - [10] = 90 - } - }, - - { - + { type = "resistance", name = "acid", decrease = { @@ -568,18 +131,82 @@ function fire.addFaction() } }, + + unitSpawner = { - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, + { + 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 = "resistance", + name = "fire", + decrease = { + [1] = 7, + [2] = 7, + [3] = 10, + [4] = 10, + [5] = 13, + [6] = 13, + [7] = 16, + [8] = 16, + [9] = 19, + [10] = 23 + }, + percent = { + [1] = 65, + [2] = 65, + [3] = 70, + [4] = 75, + [5] = 75, + [6] = 80, + [7] = 85, + [8] = 85, + [9] = 90, + [10] = 90 + } + }, + + { + type = "resistance", + name = "acid", + decrease = { + [1] = 7, + [2] = 7, + [3] = 10, + [4] = 10, + [5] = 13, + [6] = 13, + [7] = 16, + [8] = 16, + [9] = 19, + [10] = 23 + }, + percent = { + [1] = 65, + [2] = 65, + [3] = 70, + [4] = 75, + [5] = 75, + [6] = 80, + [7] = 85, + [8] = 85, + [9] = 90, + [10] = 90 + } + } } }, @@ -615,18 +242,6 @@ function fire.addFaction() resistances = {}, type = "spitter", - 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 - }, attackName = "fire-spitter", tint = {r=0.65, g=0, b=0, a=0.65}, pTint = {r=1, g=1, b=1, a=0.5}, @@ -640,170 +255,12 @@ function fire.addFaction() 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=0.99, g=0.09, b=0.09, a=1} } }, { unit = { - { - type = "attribute", - name = "health", - [1] = 10, - [2] = 50, - [3] = 200, - [4] = 350, - [5] = 750, - [6] = 1000, - [7] = 1500, - [8] = 2500, - [9] = 4500, - [10] = 7000 - }, - - { - - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - - }, - - { - - 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] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - - }, - - { - - type = "attack", - name = "damage", - [1] = 4, - [2] = 9, - [3] = 14, - [4] = 23, - [5] = 30, - [6] = 37, - [7] = 45, - [8] = 57, - [9] = 70, - [10] = 80 - - }, - - { - - 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.185, - [2] = 0.18, - [3] = 0.18, - [4] = 0.17, - [5] = 0.17, - [6] = 0.16, - [7] = 0.16, - [8] = 0.15, - [9] = 0.15, - [10] = 0.14 - }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.04, - [2] = 0.045, - [3] = 0.050, - [4] = 0.055, - [5] = 0.060, - [6] = 0.065, - [7] = 0.070, - [8] = 0.075, - [9] = 0.08, - [10] = 0.084 - }, - - { - type = "resistance", - name = "explosion", - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, { type = "resistance", @@ -834,8 +291,7 @@ function fire.addFaction() } }, - { - + { type = "resistance", name = "acid", decrease = { @@ -861,263 +317,13 @@ function fire.addFaction() [8] = 85, [9] = 90, [10] = 90 - } - - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 + } } + }, 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.08, - [2] = 0.16, - [3] = 0.24, - [4] = 0.35, - [5] = 0.40, - [6] = 0.45, - [7] = 0.55, - [8] = 0.65, - [9] = 0.75, - [10] = 0.9 - - }, - - { - 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", @@ -1147,8 +353,7 @@ function fire.addFaction() } }, - { - + { type = "resistance", name = "acid", decrease = { @@ -1174,23 +379,10 @@ function fire.addFaction() [8] = 85, [9] = 90, [10] = 90 - } - + } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } + }, function (attributes) @@ -1225,18 +417,6 @@ function fire.addFaction() }, resistances = {}, - 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 - }, attackName = "fire-worm", tint = {r=0.65, g=0, b=0, a=0.65}, pTint = {r=1, g=1, b=1, a=0.5}, @@ -1244,172 +424,7 @@ function fire.addFaction() }, { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - { type = "resistance", name = "fire", @@ -1439,8 +454,7 @@ function fire.addFaction() } }, - { - + { type = "resistance", name = "acid", decrease = { @@ -1466,84 +480,9 @@ function fire.addFaction() [8] = 85, [9] = 90, [10] = 90 - } - - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 + } } + }, function (attributes) diff --git a/prototypes/Inferno.lua b/prototypes/Inferno.lua index 3f1fdf8..529ad71 100755 --- a/prototypes/Inferno.lua +++ b/prototypes/Inferno.lua @@ -80,18 +80,6 @@ function inferno.addFaction() resistances = {}, type = "spitter", - 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 - }, attackName = "spitter-inferno", tint = {r=0.65, g=0, b=0, a=1}, pTint = {r=1, g=1, b=1, a=0.5}, @@ -105,39 +93,13 @@ function inferno.addFaction() attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0.99, g=0.09, b=0.09, a=1} } }, { unit = { - { - type = "attribute", - name = "health", - [1] = 10, - [2] = 50, - [3] = 200, - [4] = 350, - [5] = 750, - [6] = 1000, - [7] = 1500, - [8] = 2500, - [9] = 4500, - [10] = 7000 - }, - + { type = "attack", name = "stickerDamagePerTick", @@ -242,51 +204,6 @@ function inferno.addFaction() [9] = 2200, [10] = 2200 }, - - { - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - }, - - { - 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] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - }, { type = "attack", @@ -302,69 +219,36 @@ function inferno.addFaction() [9] = 6, [10] = 7 }, + + { + type = "resistance", + name = "acid", + decrease = { + [1] = 7, + [2] = 7, + [3] = 10, + [4] = 10, + [5] = 13, + [6] = 13, + [7] = 16, + [8] = 16, + [9] = 19, + [10] = 23 + }, + percent = { + [1] = 65, + [2] = 65, + [3] = 70, + [4] = 75, + [5] = 75, + [6] = 80, + [7] = 85, + [8] = 85, + [9] = 90, + [10] = 90 + } + }, - { - 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.185, - [2] = 0.18, - [3] = 0.18, - [4] = 0.17, - [5] = 0.17, - [6] = 0.16, - [7] = 0.16, - [8] = 0.15, - [9] = 0.15, - [10] = 0.14 - }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.04, - [2] = 0.045, - [3] = 0.050, - [4] = 0.055, - [5] = 0.060, - [6] = 0.065, - [7] = 0.070, - [8] = 0.075, - [9] = 0.08, - [10] = 0.084 - }, - - { - type = "resistance", - name = "explosion", - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - { type = "resistance", name = "fire", @@ -392,247 +276,39 @@ function inferno.addFaction() [9] = 95, [10] = 97 } - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, 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.08, - [2] = 0.16, - [3] = 0.24, - [4] = 0.35, - [5] = 0.40, - [6] = 0.45, - [7] = 0.55, - [8] = 0.65, - [9] = 0.75, - [10] = 0.9 - }, - - { - type = "attribute", - name = "unitsOwned", +{ + type = "resistance", + name = "acid", + decrease = { [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 - } + [3] = 10, + [4] = 10, + [5] = 13, + [6] = 13, + [7] = 16, + [8] = 16, + [9] = 19, + [10] = 23 }, + percent = { + [1] = 65, + [2] = 65, + [3] = 70, + [4] = 75, + [5] = 75, + [6] = 80, + [7] = 85, + [8] = 85, + [9] = 90, + [10] = 90 + } +}, { type = "resistance", @@ -662,19 +338,6 @@ function inferno.addFaction() [10] = 97 } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -729,39 +392,13 @@ function inferno.addFaction() }, resistances = {}, - 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 - }, attackName = "worm-inferno", tint = {r=0.65, g=0, b=0, a=0.65}, pTint = {r=1, g=1, b=1, a=0.5}, sTint = {r=1, g=1, b=1, a=0.5} }, - { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, + { { type = "attack", @@ -868,36 +505,6 @@ function inferno.addFaction() [10] = 2200 }, - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - { type = "attack", name = "damage", @@ -912,113 +519,36 @@ function inferno.addFaction() [9] = 6, [10] = 7 }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { +{ type = "resistance", - name = "physical", + name = "acid", decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, + [1] = 7, + [2] = 7, [3] = 10, [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } + [5] = 13, + [6] = 13, + [7] = 16, + [8] = 16, + [9] = 19, + [10] = 23 + }, + percent = { + [1] = 65, + [2] = 65, + [3] = 70, + [4] = 75, + [5] = 75, + [6] = 80, + [7] = 85, + [8] = 85, + [9] = 90, + [10] = 90 + } }, - + { type = "resistance", name = "fire", @@ -1046,81 +576,6 @@ function inferno.addFaction() [9] = 90, [10] = 90 } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } }, diff --git a/prototypes/Laser.lua b/prototypes/Laser.lua index fcb48b5..ca1f12d 100755 --- a/prototypes/Laser.lua +++ b/prototypes/Laser.lua @@ -64,18 +64,6 @@ function laser.addFaction() loot = biterLoot, 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=0, g=0, b=0.42, a=0.65}, tint2 = {r=0, g=0, b=0.42, a=0.4} }, @@ -86,201 +74,12 @@ function laser.addFaction() loot = spawnerLoot, attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0, g=0, b=0.42, a=0.65} } }, { 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", @@ -309,87 +108,11 @@ function laser.addFaction() [9] = 90, [10] = 90 } - }, - - { - 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", @@ -405,124 +128,6 @@ function laser.addFaction() [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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - }, - { type = "resistance", name = "laser", @@ -551,19 +156,6 @@ function laser.addFaction() [10] = 90 } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -627,18 +219,6 @@ function laser.addFaction() resistances = {}, type = "spitter", - 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 - }, attackName = "laser-spitter", tint = {r=0, g=0, b=0.42, a=0.65}, pTint = {r=0, g=0, b=1, a=0.5}, @@ -652,160 +232,12 @@ function laser.addFaction() attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0, g=0, b=0.42, a=0.65} } }, { unit = { - { - type = "attribute", - name = "health", - [1] = 10, - [2] = 50, - [3] = 200, - [4] = 350, - [5] = 750, - [6] = 1000, - [7] = 1500, - [8] = 2500, - [9] = 4500, - [10] = 7000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - }, - - { - 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] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - }, - - { - type = "attack", - name = "damage", - [1] = 4, - [2] = 9, - [3] = 14, - [4] = 23, - [5] = 30, - [6] = 37, - [7] = 45, - [8] = 57, - [9] = 70, - [10] = 80 - }, - - { - 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.185, - [2] = 0.18, - [3] = 0.18, - [4] = 0.17, - [5] = 0.17, - [6] = 0.16, - [7] = 0.16, - [8] = 0.15, - [9] = 0.15, - [10] = 0.14 - }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.04, - [2] = 0.045, - [3] = 0.050, - [4] = 0.055, - [5] = 0.060, - [6] = 0.065, - [7] = 0.070, - [8] = 0.075, - [9] = 0.08, - [10] = 0.084 - }, - - { - type = "resistance", - name = "explosion", - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, { type = "resistance", @@ -880,276 +312,12 @@ function laser.addFaction() [8] = 5, [9] = 6, [10] = 6 - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, 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.08, - [2] = 0.16, - [3] = 0.24, - [4] = 0.35, - [5] = 0.40, - [6] = 0.45, - [7] = 0.55, - [8] = 0.65, - [9] = 0.75, - [10] = 0.9 - }, - - { - 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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - }, - { type = "resistance", name = "laser", @@ -1178,19 +346,6 @@ function laser.addFaction() [10] = 90 } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -1254,18 +409,6 @@ function laser.addFaction() }, resistances = {}, - 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 - }, attackName = "laser-worm", tint = {r=0, g=0, b=0.42, a=0.65}, pTint = {r=0, g=0, b=1, a=0.5}, @@ -1274,201 +417,7 @@ function laser.addFaction() }, { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 2250, - [9] = 3000, - [10] = 5000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - }, - { type = "resistance", name = "laser", @@ -1498,36 +447,6 @@ function laser.addFaction() } }, - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - { type = "attack", name = "startingSpeed", @@ -1572,52 +491,8 @@ function laser.addFaction() [8] = 8, [9] = 9, [10] = 9 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, function (attributes) diff --git a/prototypes/Neutral.lua b/prototypes/Neutral.lua index 7d1d1d2..54e4953 100755 --- a/prototypes/Neutral.lua +++ b/prototypes/Neutral.lua @@ -55,18 +55,6 @@ function neutral.addFaction() 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=0.56, g=0.46, b=0.42, a=0.65}, tint2 = {r=1, g=0.63, b=0, a=0.4} }, @@ -77,281 +65,17 @@ function neutral.addFaction() loot = spawnerLoot, attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0.56, g=0.46, b=0.42, a=0.65} } }, { 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 = "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", @@ -367,136 +91,6 @@ function neutral.addFaction() [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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -531,18 +125,6 @@ function neutral.addFaction() resistances = {}, type = "spitter", - 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 - }, attackName = "neutral-spitter", tint = {r=0.56, g=0.46, b=0.42, a=1}, pTint = {r=0, g=1, b=1, a=0.5}, @@ -556,441 +138,17 @@ function neutral.addFaction() attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0.99, g=0.09, b=0.09, a=1} } }, { unit = { - { - type = "attribute", - name = "health", - [1] = 10, - [2] = 50, - [3] = 200, - [4] = 350, - [5] = 750, - [6] = 1000, - [7] = 1500, - [8] = 2500, - [9] = 4500, - [10] = 7000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - }, - { - 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] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - }, - - { - type = "attack", - name = "damage", - [1] = 4, - [2] = 9, - [3] = 14, - [4] = 23, - [5] = 30, - [6] = 37, - [7] = 45, - [8] = 57, - [9] = 70, - [10] = 80 - }, - - { - 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.185, - [2] = 0.18, - [3] = 0.18, - [4] = 0.17, - [5] = 0.17, - [6] = 0.16, - [7] = 0.16, - [8] = 0.15, - [9] = 0.15, - [10] = 0.14 - }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.04, - [2] = 0.045, - [3] = 0.050, - [4] = 0.055, - [5] = 0.060, - [6] = 0.065, - [7] = 0.070, - [8] = 0.075, - [9] = 0.08, - [10] = 0.084 - }, - - { - type = "resistance", - name = "explosion", - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - } }, 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.08, - [2] = 0.16, - [3] = 0.24, - [4] = 0.35, - [5] = 0.40, - [6] = 0.45, - [7] = 0.55, - [8] = 0.65, - [9] = 0.75, - [10] = 0.9 - }, - - { - 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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -1025,294 +183,14 @@ function neutral.addFaction() }, resistances = {}, - 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 - }, attackName = "neutral-worm", tint = {r=0.56, g=0.46, b=0.42, a=0.65}, pTint = {r=0, g=1, b=1, a=0.5}, sTint = {r=0, g=1, b=1, a=0.5} }, - { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, + { - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - } }, function (attributes) diff --git a/prototypes/Nuclear.lua b/prototypes/Nuclear.lua index 597c889..89f6df7 100755 --- a/prototypes/Nuclear.lua +++ b/prototypes/Nuclear.lua @@ -62,18 +62,6 @@ function nuclear.addFaction() attackName = "nuclear-biter", 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=0.76, g=0.76, b=0, a=0.65}, tint2 = {r=0.76, g=0.76, b=0, a=0.65} }, @@ -84,18 +72,6 @@ function nuclear.addFaction() loot = spawnerLoot, attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0.76, g=0.76, b=0, a=0.65} } }, @@ -116,23 +92,6 @@ function nuclear.addFaction() [8] = 1500, [9] = 3000, [10] = 5000 - - }, - - { - type = "attack", - name = "cooldown", - [1] = 35, - [2] = 35, - [3] = 35, - [4] = 35, - [5] = 35, - [6] = 35, - [7] = 50, - [8] = 50, - [9] = 55, - [10] = 57 - }, { @@ -147,25 +106,7 @@ function nuclear.addFaction() [7] = 6, [8] = 6, [9] = 8, - [10] = 8 - - }, - - { - - type = "attribute", - name = "pollutionToAttack", - [1] = 200, - [2] = 750, - [3] = 1750, - [4] = 3500, - [5] = 5000, - [6] = 10000, - [7] = 20000, - [8] = 25000, - [9] = 30000, - [10] = 40000 - + [10] = 8 }, { @@ -226,23 +167,7 @@ function nuclear.addFaction() [8] = 150, [9] = 180, [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", @@ -258,6 +183,7 @@ function nuclear.addFaction() [9] = 0.19, [10] = 0.19 }, + { type = "attribute", name = "distancePerFrame", @@ -273,35 +199,6 @@ function nuclear.addFaction() [10] = 0.24 }, - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 4, - [4] = 5, - [5] = 6, - [6] = 8, - [7] = 9, - [8] = 9, - [9] = 10, - [10] = 10 - }, - 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", @@ -329,55 +226,10 @@ function nuclear.addFaction() [9] = -90, [10] = -90 } - }, - - { - 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 - }, + unitSpawner = { { @@ -455,35 +307,6 @@ function nuclear.addFaction() [9] = 5, [10] = 5 }, - - { - 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", @@ -542,19 +365,6 @@ function nuclear.addFaction() [10] = 45 } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -583,6 +393,7 @@ function nuclear.addFaction() attributes = {}, attack = { type = "projectile", + force = "enemy", stickerAnimation = { filename = "__base__/graphics/entity/slowdown-sticker/slowdown-sticker.png", priority = "extra-high", @@ -607,18 +418,6 @@ function nuclear.addFaction() }, resistances = {}, - 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 - }, attackName = "nuclear-worm", tint = {r=0.76, g=0.76, b=0, a=0.65}, pTint = {r=0, g=1, b=1, a=0.5}, @@ -626,49 +425,20 @@ function nuclear.addFaction() }, { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - + { type = "attack", name = "stickerMovementModifier", - [1] = 1.2, - [2] = 1.2, - [3] = 1.3, - [4] = 1.3, - [5] = 1.4, - [6] = 1.4, - [7] = 1.5, - [8] = 1.5, - [9] = 1.6, - [10] = 1.6 + [1] = 0.8, + [2] = 0.8, + [3] = 0.7, + [4] = 0.7, + [5] = 0.6, + [6] = 0.6, + [7] = 0.5, + [8] = 0.5, + [9] = 0.4, + [10] = 0.4 }, { @@ -684,114 +454,7 @@ function nuclear.addFaction() [8] = 2100, [9] = 2200, [10] = 2200 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, + }, { type = "resistance", @@ -849,82 +512,8 @@ function nuclear.addFaction() [9] = 45, [10] = 45 } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, function (attributes) diff --git a/prototypes/Physical.lua b/prototypes/Physical.lua index 6b7267a..fb91440 100755 --- a/prototypes/Physical.lua +++ b/prototypes/Physical.lua @@ -112,81 +112,6 @@ function physical.addFaction() [9] = 10000, [10] = 20000 }, - - { - 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", @@ -217,35 +142,6 @@ function physical.addFaction() [9] = 0.1, [10] = 0.1 }, - - { - 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", @@ -274,22 +170,8 @@ function physical.addFaction() [9] = 90, [10] = 90 } - }, - - { - 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 = { @@ -308,51 +190,6 @@ function physical.addFaction() [10] = 30000 }, - { - 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", @@ -368,94 +205,6 @@ function physical.addFaction() [10] = 0.9 }, - { - 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 = "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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - }, - { type = "resistance", name = "physical", @@ -485,19 +234,6 @@ function physical.addFaction() } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -576,143 +312,6 @@ function physical.addFaction() [10] = 12000 }, - - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - { type = "resistance", name = "physical", @@ -740,121 +339,8 @@ function physical.addFaction() [9] = 90, [10] = 90 } - }, - - { - - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - - - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - - - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - - - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - - } + }, function (attributes) diff --git a/prototypes/Spawner.lua b/prototypes/Spawner.lua index 757f48c..05be79a 100755 --- a/prototypes/Spawner.lua +++ b/prototypes/Spawner.lua @@ -25,7 +25,6 @@ local SPAWNER_WORM_VARIATIONS = constants.SPAWNER_WORM_VARIATIONS local buildUnitSpawner = swarmUtils.buildUnitSpawner local buildWorm = swarmUtils.buildWorm local buildUnits = swarmUtils.buildUnits -local createAttackBall = acidBall.createAttackBall local createMeleeAttack = biterUtils.createMeleeAttack local createProjectileAttack = biterUtils.createProjectileAttack @@ -183,22 +182,7 @@ function spawner.addFaction() [8] = 8, [9] = 9, [10] = 9 - }, - - { - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - }, + }, { type = "attribute", @@ -229,23 +213,7 @@ function spawner.addFaction() [9] = 35, [10] = 40 }, - - { - 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", @@ -318,52 +286,8 @@ function spawner.addFaction() [8] = 1.9, [9] = 2.0, [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, SPAWNER_UNIT_VARIATIONS, SPAWNER_UNIT_TIERS @@ -507,21 +431,6 @@ function spawner.addFaction() [9] = 9, [10] = 9 }, - - { - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - }, { type = "attribute", @@ -553,22 +462,6 @@ function spawner.addFaction() [10] = 40 }, - { - 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", @@ -641,52 +534,8 @@ function spawner.addFaction() [8] = 1.9, [9] = 2.0, [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, SPAWNER_WORM_VARIATIONS, SPAWNER_WORM_TIERS @@ -723,7 +572,6 @@ function spawner.addFaction() createMeleeAttack, { { - type = "attribute", name = "health", [1] = 15, @@ -736,185 +584,8 @@ function spawner.addFaction() [8] = 145, [9] = 165, [10] = 180 - - }, - - { - 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 = "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 - } + }, math.max(SPAWNER_UNIT_VARIATIONS,SPAWNER_WORM_VARIATIONS), math.max(SPAWNER_UNIT_TIERS,SPAWNER_WORM_TIERS) @@ -950,18 +621,6 @@ function spawner.addFaction() resistances = {}, type = "spitter", - 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 - }, attackName = "spawner-drone", tint = {r=1, g=0, b=1, a=1}, pTint = {r=1, g=0, b=1, a=1}, @@ -975,38 +634,12 @@ function spawner.addFaction() attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=1, g=0, b=1, a=1} } }, { unit = { - { - type = "attribute", - name = "health", - [1] = 10, - [2] = 50, - [3] = 200, - [4] = 350, - [5] = 750, - [6] = 1000, - [7] = 1500, - [8] = 2500, - [9] = 4500, - [10] = 7000 - }, { type = "attack", @@ -1021,396 +654,14 @@ function spawner.addFaction() [8] = 173, [9] = 170, [10] = 170 - }, - - { - 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] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - }, - - { - type = "attack", - name = "damage", - [1] = 4, - [2] = 9, - [3] = 14, - [4] = 23, - [5] = 30, - [6] = 37, - [7] = 45, - [8] = 57, - [9] = 70, - [10] = 80 - }, - - { - 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.185, - [2] = 0.18, - [3] = 0.18, - [4] = 0.17, - [5] = 0.17, - [6] = 0.16, - [7] = 0.16, - [8] = 0.15, - [9] = 0.15, - [10] = 0.14 - }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.04, - [2] = 0.045, - [3] = 0.050, - [4] = 0.055, - [5] = 0.060, - [6] = 0.065, - [7] = 0.070, - [8] = 0.075, - [9] = 0.08, - [10] = 0.084 - }, - - { - type = "resistance", - name = "explosion", - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, 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.08, - [2] = 0.16, - [3] = 0.24, - [4] = 0.35, - [5] = 0.40, - [6] = 0.45, - [7] = 0.55, - [8] = 0.65, - [9] = 0.75, - [10] = 0.9 - }, - - { - 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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, + } + }, function (attack, attributes) @@ -1454,18 +705,6 @@ function spawner.addFaction() }, resistances = {}, - 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 - }, attackName = "spawner-worm-drone", tint = {r=1, g=0, b=1, a=1}, pTint = {r=1, g=0, b=1, a=1}, @@ -1473,275 +712,7 @@ function spawner.addFaction() }, { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - } }, function (attributes) diff --git a/prototypes/Suicide.lua b/prototypes/Suicide.lua index 8300e16..243f50b 100755 --- a/prototypes/Suicide.lua +++ b/prototypes/Suicide.lua @@ -60,18 +60,6 @@ function suicide.addFaction() 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=0.56, g=0.46, b=0, a=0.65}, tint2 = {r=0.56, g=0.46, b=0, a=0.65} }, @@ -82,18 +70,6 @@ function suicide.addFaction() loot = spawnerLoot, attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=0.56, g=0.46, b=0, a=0.65} } }, @@ -101,7 +77,6 @@ function suicide.addFaction() { unit = { { - type = "attribute", name = "health", [1] = 7, @@ -114,23 +89,6 @@ function suicide.addFaction() [8] = 1500, [9] = 3000, [10] = 5000 - - }, - - { - type = "attack", - name = "cooldown", - [1] = 35, - [2] = 35, - [3] = 35, - [4] = 35, - [5] = 35, - [6] = 35, - [7] = 50, - [8] = 50, - [9] = 55, - [10] = 57 - }, { @@ -145,29 +103,10 @@ function suicide.addFaction() [7] = 6, [8] = 6, [9] = 8, - [10] = 8 - + [10] = 8 }, - { - - 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", mapping = "explosion", [1] = "explosion", @@ -182,8 +121,7 @@ function suicide.addFaction() [10] = "massive-explosion" }, - { - + { type = "attack", name = "radius", [1] = 3.5, @@ -195,12 +133,10 @@ function suicide.addFaction() [7] = 7, [8] = 7, [9] = 7.5, - [10] = 8 - + [10] = 8 }, - { - + { type = "attack", name = "explosionDistance", [1] = 2, @@ -212,12 +148,10 @@ function suicide.addFaction() [7] = 2.5, [8] = 2.5, [9] = 3, - [10] = 3 - + [10] = 3 }, - { - + { type = "attack", name = "explosionCount", min = 2, @@ -230,12 +164,10 @@ function suicide.addFaction() [7] = 10, [8] = 12, [9] = 13, - [10] = 14 - + [10] = 14 }, - { - + { type = "attack", name = "damage", [1] = 20, @@ -247,29 +179,10 @@ function suicide.addFaction() [7] = 75, [8] = 80, [9] = 100, - [10] = 150 - + [10] = 150 }, - { - - 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.23, @@ -298,35 +211,6 @@ function suicide.addFaction() [10] = 0.24 }, - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 4, - [4] = 5, - [5] = 6, - [6] = 8, - [7] = 9, - [8] = 9, - [9] = 10, - [10] = 10 - }, - 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", @@ -354,58 +238,12 @@ function suicide.addFaction() [9] = -90, [10] = -90 } - }, - - { - 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] = 330, @@ -420,8 +258,7 @@ function suicide.addFaction() [10] = 310 }, - { - + { type = "attribute", name = "spawingCooldownEnd", [1] = 120, @@ -480,35 +317,6 @@ function suicide.addFaction() [9] = 7, [10] = 8 }, - - { - 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", @@ -567,19 +375,6 @@ function suicide.addFaction() [10] = 45 } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -605,6 +400,7 @@ function suicide.addFaction() attributes = {}, attack = { type = "projectile", + force = "enemy", stickerAnimation = { filename = "__base__/graphics/entity/slowdown-sticker/slowdown-sticker.png", priority = "extra-high", @@ -629,68 +425,27 @@ function suicide.addFaction() }, resistances = {}, - 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 - }, attackName = "suicide-worm", tint = {r=0.56, g=0.46, b=0, a=0.65}, pTint = {r=0, g=1, b=1, a=0.5}, sTint = {r=0, g=1, b=1, a=0.5} }, - { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, + { { type = "attack", name = "stickerMovementModifier", - [1] = 1.2, - [2] = 1.2, - [3] = 1.3, - [4] = 1.3, - [5] = 1.4, - [6] = 1.4, - [7] = 1.5, - [8] = 1.5, - [9] = 1.6, - [10] = 1.6 + [1] = 0.8, + [2] = 0.8, + [3] = 0.7, + [4] = 0.7, + [5] = 0.6, + [6] = 0.6, + [7] = 0.5, + [8] = 0.5, + [9] = 0.4, + [10] = 0.4 }, { @@ -706,114 +461,7 @@ function suicide.addFaction() [8] = 2100, [9] = 2200, [10] = 2200 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, + }, { type = "resistance", @@ -871,81 +519,6 @@ function suicide.addFaction() [9] = 45, [10] = 45 } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } }, diff --git a/prototypes/SwarmUtils.lua b/prototypes/SwarmUtils.lua index 7e76209..d58282e 100755 --- a/prototypes/SwarmUtils.lua +++ b/prototypes/SwarmUtils.lua @@ -41,6 +41,959 @@ local makeUnitSpawner = biterUtils.makeUnitSpawner -- module code + + +local function isMember(fieldType, fieldName, lst) + for i=1,#lst do + if (lst[i].type == fieldType) and (lst[i].name == fieldName) then + return true + end + end + return false +end + +local function pushUpgrade(upgrades, upgrade) + if not isMember(upgrade.type, upgrade.name, upgrades) then + upgrades[#upgrades+1] = upgrade + end +end + +local function addDefaultScales(template) + if not template.scales then + template.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 + } + end +end + +local function addDefaultVerticalAcceleration(upgrades) + pushUpgrade(upgrades, + { + type = "attack", + name = "particleVerticalAcceleration", + [1] = 0.01, + [2] = 0.01, + [3] = 0.02, + [4] = 0.02, + [5] = 0.03, + [6] = 0.03, + [7] = 0.04, + [8] = 0.04, + [9] = 0.05, + [10] = 0.05 + }) +end + +local function addDefaultHoizontalSpeed(upgrades) + pushUpgrade(upgrades, + { + type = "attack", + name = "particleHoizontalSpeed", + [1] = 0.6, + [2] = 0.6, + [3] = 0.7, + [4] = 0.7, + [5] = 0.8, + [6] = 0.8, + [7] = 0.9, + [8] = 0.9, + [9] = 1, + [10] = 1 + }) +end + +local function addDefaultHoizontalSpeedDeviation(upgrades) + pushUpgrade(upgrades, + { + type = "attack", + name = "particleHoizontalSpeedDeviation", + [1] = 0.0025, + [2] = 0.0025, + [3] = 0.0024, + [4] = 0.0024, + [5] = 0.0023, + [6] = 0.0023, + [7] = 0.0022, + [8] = 0.0022, + [9] = 0.0021, + [10] = 0.0021 + }) +end + +local function addUnitDefaults(template, upgrades) + addDefaultScales(template) + + addDefaultVerticalAcceleration(upgrades) + addDefaultHoizontalSpeed(upgrades) + addDefaultHoizontalSpeedDeviation(upgrades) + + pushUpgrade(upgrades, + { + 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 + }) + + if (template.type == "biter") then + + pushUpgrade(upgrades, + { + 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 + }) + + pushUpgrade(upgrades, + { + 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 + }) + + pushUpgrade(upgrades, + { + 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 + } + }) + + pushUpgrade(upgrades, + { + 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 + } + }) + + pushUpgrade(upgrades, + { + 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 + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "cooldown", + [1] = 35, + [2] = 35, + [3] = 35, + [4] = 35, + [5] = 35, + [6] = 35, + [7] = 50, + [8] = 50, + [9] = 55, + [10] = 57 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "health", + [1] = 15, + [2] = 75, + [3] = 150, + [4] = 250, + [5] = 400, + [6] = 750, + [7] = 1500, + [8] = 3000, + [9] = 5000, + [10] = 10000 + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "cooldown", + [1] = 35, + [2] = 35, + [3] = 35, + [4] = 35, + [5] = 35, + [6] = 35, + [7] = 50, + [8] = 50, + [9] = 55, + [10] = 57 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "pollutionToAttack", + [1] = 200, + [2] = 750, + [3] = 1200, + [4] = 1750, + [5] = 2500, + [6] = 5000, + [7] = 10000, + [8] = 12500, + [9] = 15000, + [10] = 20000 + }) + + pushUpgrade(upgrades, + { + 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 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "spawningTimeModifer", + [1] = 0, + [2] = 0, + [3] = 1, + [4] = 2, + [5] = 3, + [6] = 7, + [7] = 10, + [8] = 10, + [9] = 12, + [10] = 12 + }) + + elseif (template.type == "spitter") then + pushUpgrade(upgrades, + { + type = "attribute", + name = "health", + [1] = 10, + [2] = 50, + [3] = 200, + [4] = 350, + [5] = 750, + [6] = 1000, + [7] = 1500, + [8] = 2500, + [9] = 4500, + [10] = 7000 + }) + + pushUpgrade(upgrades, + { + type = "resistance", + name = "explosion", + percent = { + [1] = 0, + [2] = 0, + [3] = 10, + [4] = 10, + [5] = 20, + [6] = 20, + [7] = 30, + [8] = 30, + [9] = 40, + [10] = 40 + } + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "cooldown", + [1] = 100, + [2] = 100, + [3] = 97, + [4] = 97, + [5] = 95, + [6] = 95, + [7] = 93, + [8] = 93, + [9] = 90, + [10] = 90 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "distancePerFrame", + [1] = 0.04, + [2] = 0.045, + [3] = 0.050, + [4] = 0.055, + [5] = 0.060, + [6] = 0.065, + [7] = 0.070, + [8] = 0.075, + [9] = 0.08, + [10] = 0.084 + }) + + + pushUpgrade(upgrades, + { + type = "attack", + name = "range", + [1] = 13, + [2] = 13, + [3] = 14, + [4] = 14, + [5] = 15, + [6] = 15, + [7] = 16, + [8] = 16, + [9] = 17, + [10] = 17 + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "radius", + [1] = 1.2, + [2] = 1.3, + [3] = 1.4, + [4] = 1.5, + [5] = 1.6, + [6] = 1.7, + [7] = 1.8, + [8] = 1.9, + [9] = 2.0, + [10] = 2.5 + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "damage", + [1] = 4, + [2] = 9, + [3] = 14, + [4] = 23, + [5] = 30, + [6] = 37, + [7] = 45, + [8] = 57, + [9] = 70, + [10] = 80 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "movement", + [1] = 0.185, + [2] = 0.18, + [3] = 0.18, + [4] = 0.17, + [5] = 0.17, + [6] = 0.16, + [7] = 0.16, + [8] = 0.15, + [9] = 0.15, + [10] = 0.14 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "spawningTimeModifer", + [1] = 0, + [2] = 0, + [3] = 1, + [4] = 2, + [5] = 2, + [6] = 5, + [7] = 8, + [8] = 8, + [9] = 10, + [10] = 10 + }) + + elseif (template.type == "drone") then + pushUpgrade(upgrades, + { + type = "attribute", + name = "health", + [1] = 100, + [2] = 100, + [3] = 110, + [4] = 110, + [5] = 120, + [6] = 120, + [7] = 130, + [8] = 130, + [9] = 140, + [10] = 140 + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "cooldown", + [1] = 100, + [2] = 100, + [3] = 97, + [4] = 97, + [5] = 95, + [6] = 95, + [7] = 93, + [8] = 93, + [9] = 90, + [10] = 90 + }) + end +end + +local function addUnitSpawnerDefaults(template, upgrades) + addDefaultScales(template) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "health", + [1] = 350, + [2] = 500, + [3] = 750, + [4] = 1500, + [5] = 2500, + [6] = 3500, + [7] = 5000, + [8] = 7000, + [9] = 10000, + [10] = 15000 + }) + + pushUpgrade(upgrades, + { + 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 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "spawingCooldownStart", + [1] = 360, + [2] = 360, + [3] = 355, + [4] = 355, + [5] = 350, + [6] = 350, + [7] = 345, + [8] = 345, + [9] = 340, + [10] = 340 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "spawingCooldownEnd", + [1] = 150, + [2] = 150, + [3] = 145, + [4] = 145, + [5] = 140, + [6] = 140, + [7] = 135, + [8] = 135, + [9] = 130, + [10] = 130 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "unitsToSpawn", + [1] = 5, + [2] = 5, + [3] = 6, + [4] = 6, + [5] = 7, + [6] = 7, + [7] = 8, + [8] = 8, + [9] = 9, + [10] = 9 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "unitsOwned", + [1] = 7, + [2] = 7, + [3] = 8, + [4] = 8, + [5] = 9, + [6] = 9, + [7] = 10, + [8] = 10, + [9] = 11, + [10] = 11 + }) + + pushUpgrade(upgrades, + { + 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 + } + }) + + pushUpgrade(upgrades, + { + 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 + } + }) + + pushUpgrade(upgrades, + { + type = "resistance", + name = "fire", + decrease = { + [1] = 3, + [2] = 3, + [3] = 4, + [4] = 4, + [5] = 6, + [6] = 6, + [7] = 6, + [8] = 6, + [9] = 7, + [10] = 7 + }, + percent = { + [1] = 60, + [2] = 60, + [3] = 62, + [4] = 62, + [5] = 63, + [6] = 63, + [7] = 64, + [8] = 64, + [9] = 65, + [10] = 65 + } + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "evolutionRequirement", + [1] = 0.08, + [2] = 0.16, + [3] = 0.24, + [4] = 0.35, + [5] = 0.40, + [6] = 0.45, + [7] = 0.55, + [8] = 0.65, + [9] = 0.75, + [10] = 0.9 + }) +end + +local function addWormDefaults(template, upgrades) + addDefaultScales(template) + + addDefaultVerticalAcceleration(upgrades) + addDefaultHoizontalSpeed(upgrades) + addDefaultHoizontalSpeedDeviation(upgrades) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "foldingSpeed", + [1] = 0.15, + [2] = 0.15, + [3] = 0.16, + [4] = 0.16, + [5] = 0.16, + [6] = 0.17, + [7] = 0.17, + [8] = 0.18, + [9] = 0.18, + [10] = 0.19 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "preparingSpeed", + [1] = 0.025, + [2] = 0.025, + [3] = 0.026, + [4] = 0.026, + [5] = 0.027, + [6] = 0.027, + [7] = 0.028, + [8] = 0.028, + [9] = 0.029, + [10] = 0.029 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "prepareRange", + [1] = 30, + [2] = 30, + [3] = 31, + [4] = 31, + [5] = 32, + [6] = 32, + [7] = 33, + [8] = 33, + [9] = 34, + [10] = 34 + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "range", + [1] = 21, + [2] = 22, + [3] = 23, + [4] = 23, + [5] = 24, + [6] = 26, + [7] = 26, + [8] = 28, + [9] = 30, + [10] = 32 + }) + + pushUpgrade(upgrades, + { + type = "resistance", + name = "physical", + decrease = { + [1] = 0, + [2] = 0, + [3] = 5, + [4] = 5, + [5] = 8, + [6] = 8, + [7] = 10, + [8] = 10, + [9] = 12, + [10] = 12 + } + }) + + pushUpgrade(upgrades, + { + type = "resistance", + name = "explosion", + decrease = { + [1] = 0, + [2] = 0, + [3] = 5, + [4] = 5, + [5] = 8, + [6] = 8, + [7] = 10, + [8] = 10, + [9] = 12, + [10] = 12 + }, + percent = { + [1] = 0, + [2] = 0, + [3] = 10, + [4] = 10, + [5] = 20, + [6] = 20, + [7] = 30, + [8] = 30, + [9] = 40, + [10] = 40 + } + }) + + pushUpgrade(upgrades, + { + type = "resistance", + name = "fire", + decrease = { + [1] = 3, + [2] = 3, + [3] = 4, + [4] = 4, + [5] = 6, + [6] = 6, + [7] = 6, + [8] = 6, + [9] = 7, + [10] = 7 + }, + percent = { + [1] = 70, + [2] = 70, + [3] = 72, + [4] = 72, + [5] = 73, + [6] = 73, + [7] = 74, + [8] = 74, + [9] = 75, + [10] = 75 + } + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "damage", + [1] = 12, + [2] = 20, + [3] = 25, + [4] = 30, + [5] = 35, + [6] = 40, + [7] = 50, + [8] = 60, + [9] = 70, + [10] = 80 + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "radius", + [1] = 1.5, + [2] = 1.6, + [3] = 1.7, + [4] = 1.8, + [5] = 1.9, + [6] = 2.0, + [7] = 2.2, + [8] = 2.3, + [9] = 2.5, + [10] = 3.0 + }) + + pushUpgrade(upgrades, + { + 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 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "evolutionRequirement", + [1] = 0, + [2] = 0.1, + [3] = 0.2, + [4] = 0.3, + [5] = 0.4, + [6] = 0.5, + [7] = 0.6, + [8] = 0.7, + [9] = 0.8, + [10] = 0.9 + }) + + pushUpgrade(upgrades, + { + type = "attack", + name = "cooldown", + [1] = 50, + [2] = 50, + [3] = 45, + [4] = 45, + [5] = 40, + [6] = 40, + [7] = 35, + [8] = 35, + [9] = 30, + [10] = 30 + }) + + pushUpgrade(upgrades, + { + type = "attribute", + name = "health", + [1] = 200, + [2] = 350, + [3] = 500, + [4] = 750, + [5] = 900, + [6] = 1000, + [7] = 1500, + [8] = 3000, + [9] = 5000, + [10] = 9000 + }) +end + + local function unitSetToProbabilityTable(upgradeTable, unitSet) local dividers = {} @@ -233,14 +1186,14 @@ local function upgradeEntity(entity, upgradeTable, tier) entity.attributes[upgrade.mapping] = upgrade[tier] else local adj = upgrade[tier] - local min = upgrade.min or adj * 0.70 + local min = upgrade.min or adj * 0.85 local max = upgrade.max or adj * 1.30 if (adj < 0) then local t = min min = max max = t end - adj = roundToNearest(gaussianRandomRangeRG(adj, adj * 0.2, min, max, xorRandom), 0.001) + adj = roundToNearest(gaussianRandomRangeRG(adj, adj * 0.15, min, max, xorRandom), 0.001) entity.attributes[upgrade.name] = (entity.attributes[upgrade.name] or 0) + adj end scaleAttributes(upgrade, entity) @@ -253,26 +1206,26 @@ local function upgradeEntity(entity, upgradeTable, tier) local adj if upgrade.decrease then adj = upgrade.decrease[tier] - local min = upgrade.min or adj * 0.70 + local min = upgrade.min or adj * 0.85 local max = upgrade.max or adj * 1.30 if (adj < 0) then local t = min min = max max = t end - adj = roundToNearest(gaussianRandomRangeRG(adj, adj * 0.2, min, max, xorRandom), 0.001) + adj = roundToNearest(gaussianRandomRangeRG(adj, adj * 0.15, min, max, xorRandom), 0.001) entity.resistances[field].decrease = (entity.resistances[field].decrease or 0) + adj end if upgrade.percent then adj = upgrade.percent[tier] - local min = upgrade.min or adj * 0.70 + local min = upgrade.min or adj * 0.85 local max = upgrade.max or adj * 1.30 if (adj < 0) then local t = min min = max max = t end - adj = roundToNearest(gaussianRandomRangeRG(adj, adj * 0.2, min, max, xorRandom), 0.001) + adj = roundToNearest(gaussianRandomRangeRG(adj, adj * 0.15, min, max, xorRandom), 0.001) entity.resistances[field].percent = mMin((entity.resistances[field].percent or 0) + adj, 100) end end @@ -281,14 +1234,14 @@ local function upgradeEntity(entity, upgradeTable, tier) entity.attack[upgrade.mapping] = upgrade[tier] else local adj = upgrade[tier] - local min = upgrade.min or adj * 0.70 + local min = upgrade.min or adj * 0.85 local max = upgrade.max or adj * 1.30 if (adj < 0) then local t = min min = max max = t end - adj = roundToNearest(gaussianRandomRangeRG(adj, adj * 0.2, min, max, xorRandom), 0.001) + adj = roundToNearest(gaussianRandomRangeRG(adj, adj * 0.15, min, max, xorRandom), 0.001) entity.attack[upgrade.name] = (entity.attack[upgrade.name] or 0) + adj end scaleAttributes(upgrade, entity) @@ -360,6 +1313,8 @@ local function generateApperance(unit, tier) end function swarmUtils.buildUnits(template, attackGenerator, upgradeTable, variations, tiers) + addUnitDefaults(template, upgradeTable) + local unitSet = {} for tier=1, tiers do @@ -415,6 +1370,24 @@ function swarmUtils.buildUnits(template, attackGenerator, upgradeTable, variatio end function swarmUtils.buildUnitSpawner(templates, upgradeTable, attackGenerator, variations, tiers) + addUnitDefaults(templates.unit, upgradeTable.unit) + addUnitSpawnerDefaults(templates.unitSpawner, upgradeTable.unitSpawner) + + if (not upgradeTable.probabilityTable) then + upgradeTable.probabilityTable = { + [1] = 1, + [2] = 1, + [3] = 1, + [4] = 1, + [5] = 1, + [6] = 1, + [7] = 1, + [8] = 1, + [9] = 1, + [10] = 1, + } + end + local unitSet = swarmUtils.buildUnits(templates.unit, attackGenerator, upgradeTable.unit, @@ -424,6 +1397,7 @@ function swarmUtils.buildUnitSpawner(templates, upgradeTable, attackGenerator, v for tier=1, tiers.unitSpawner do local t = ((tiers.unitSpawner == 5) and TIER_NAMING_SET_5[tier]) or TIER_NAMING_SET_10[tier] local ut = ((tiers.unitSpawner == 5) and TIER_UPGRADE_SET_5[tier]) or TIER_UPGRADE_SET_10[tier] + -- print(tier,t,ut) for i=1,variations.unitSpawner do local unitSpawner = deepcopy(templates.unitSpawner) unitSpawner.name = unitSpawner.name .. "-v" .. i .. "-t" .. t @@ -453,6 +1427,8 @@ function swarmUtils.buildUnitSpawner(templates, upgradeTable, attackGenerator, v end function swarmUtils.buildWorm(template, upgradeTable, attackGenerator, variations, tiers) + addWormDefaults(template, upgradeTable) + for tier=1, tiers do local t = ((tiers == 5) and TIER_NAMING_SET_5[tier]) or TIER_NAMING_SET_10[tier] local ut = ((tiers == 5) and TIER_UPGRADE_SET_5[tier]) or TIER_UPGRADE_SET_10[tier] diff --git a/prototypes/Troll.lua b/prototypes/Troll.lua index c78ad49..44a1249 100755 --- a/prototypes/Troll.lua +++ b/prototypes/Troll.lua @@ -55,16 +55,16 @@ function troll.addFaction() 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 + [1] = 0.7, + [2] = 0.8, + [3] = 0.9, + [4] = 1, + [5] = 1.1, + [6] = 1.2, + [7] = 1.3, + [8] = 1.4, + [9] = 1.5, + [10] = 1.6 }, tint1 = {r=0.56, g=0.46, b=0.42, a=0.65}, tint2 = {r=1, g=0.63, b=0, a=0.4} @@ -77,16 +77,16 @@ function troll.addFaction() attributes = {}, resistances = {}, scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 + [1] = 0.7, + [2] = 0.8, + [3] = 0.9, + [4] = 1, + [5] = 1.1, + [6] = 1.2, + [7] = 1.3, + [8] = 1.4, + [9] = 1.5, + [10] = 1.6 }, tint = {r=1.0, g=1.0, b=1.0, a=1.0} } @@ -95,7 +95,6 @@ function troll.addFaction() { unit = { { - type = "attribute", name = "health", [1] = 30, @@ -108,84 +107,23 @@ function troll.addFaction() [8] = 6000, [9] = 10000, [10] = 20000 - }, - { - 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.04, - [2] = 0.04, - [3] = 0.06, - [4] = 0.08, - [5] = 0.2, - [6] = 0.3, - [7] = 0.4, - [8] = 0.6, - [9] = 0.8, - [10] = 1 + [1] = 0.3, + [2] = 0.3, + [3] = 0.35, + [4] = 0.4, + [5] = 0.8, + [6] = 1.2, + [7] = 1.8, + [8] = 2.5, + [9] = 2.5, + [10] = 3 }, - + { type = "attribute", name = "movement", @@ -200,93 +138,21 @@ function troll.addFaction() [9] = 0.15, [10] = 0.15 }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.075, - [2] = 0.095, - [3] = 0.12, - [4] = 0.16, - [5] = 0.165, - [6] = 0.17, - [7] = 0.17, - [8] = 0.17, - [9] = 0.17, - [10] = 0.17 - }, - - { - 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] = -15, - [2] = -15, - [3] = -20, - [4] = -20, - [5] = -25, - [6] = -25, - [7] = -30, - [8] = -30, - [9] = -35, - [10] = -45 + [1] = -10, + [2] = -10, + [3] = -15, + [4] = -15, + [5] = -20, + [6] = -20, + [7] = -25, + [8] = -25, + [9] = -30, + [10] = -35 }, percent = { [1] = -100, @@ -300,22 +166,6 @@ function troll.addFaction() [9] = -200, [10] = -240 } - }, - - { - 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 - } }, @@ -336,51 +186,21 @@ function troll.addFaction() [10] = 30000 }, - { + { type = "attribute", name = "healing", - [1] = 0.08, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.8, - [8] = 1, - [9] = 1.2, - [10] = 1.5 + [1] = 0.6, + [2] = 0.6, + [3] = 0.65, + [4] = 0.8, + [5] = 1.6, + [6] = 3.2, + [7] = 4.4, + [8] = 5.2, + [9] = 6, + [10] = 7 }, - - { - 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", @@ -396,109 +216,20 @@ function troll.addFaction() [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] = -15, - [2] = -15, - [3] = -20, - [4] = -20, - [5] = -25, - [6] = -25, - [7] = -30, - [8] = -30, - [9] = -35, - [10] = -45 + [1] = -10, + [2] = -10, + [3] = -15, + [4] = -15, + [5] = -20, + [6] = -20, + [7] = -25, + [8] = -25, + [9] = -30, + [10] = -35 }, percent = { [1] = -100, @@ -513,19 +244,6 @@ function troll.addFaction() [10] = -240 } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -560,16 +278,16 @@ function troll.addFaction() type = "spitter", 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 + [1] = 0.7, + [2] = 0.8, + [3] = 0.9, + [4] = 1, + [5] = 1.1, + [6] = 1.2, + [7] = 1.3, + [8] = 1.4, + [9] = 1.5, + [10] = 1.6 }, attackName = "troll-spitter", tint = {r=0.56, g=0.46, b=0.42, a=0.65}, @@ -585,16 +303,16 @@ function troll.addFaction() resistances = {}, scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 + [1] = 0.7, + [2] = 0.8, + [3] = 0.9, + [4] = 1, + [5] = 1.1, + [6] = 1.2, + [7] = 1.3, + [8] = 1.4, + [9] = 1.5, + [10] = 1.6 }, tint = {r=0.99, g=0.09, b=0.09, a=1} } @@ -617,82 +335,21 @@ function troll.addFaction() [10] = 9000 }, - { - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - }, - - { - 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] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - }, - - { - type = "attack", - name = "damage", - [1] = 4, - [2] = 9, - [3] = 14, - [4] = 23, - [5] = 30, - [6] = 37, - [7] = 45, - [8] = 57, - [9] = 70, - [10] = 80 - }, - - { + { type = "attribute", name = "healing", - [1] = 0.02, - [2] = 0.08, - [3] = 0.1, - [4] = 0.2, - [5] = 0.3, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 1 + [1] = 0.3, + [2] = 0.3, + [3] = 0.35, + [4] = 0.4, + [5] = 0.8, + [6] = 1.6, + [7] = 2.2, + [8] = 3, + [9] = 3.5, + [10] = 4.5 }, - { type = "attribute", name = "movement", @@ -707,52 +364,21 @@ function troll.addFaction() [9] = 0.13, [10] = 0.12 }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.04, - [2] = 0.045, - [3] = 0.050, - [4] = 0.055, - [5] = 0.060, - [6] = 0.065, - [7] = 0.070, - [8] = 0.075, - [9] = 0.08, - [10] = 0.084 - }, - - { - type = "resistance", - name = "explosion", - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, { type = "resistance", name = "fire", decrease = { - [1] = -15, - [2] = -15, - [3] = -20, - [4] = -20, - [5] = -25, - [6] = -25, - [7] = -30, - [8] = -30, - [9] = -35, - [10] = -45 + [1] = -10, + [2] = -10, + [3] = -15, + [4] = -15, + [5] = -20, + [6] = -20, + [7] = -25, + [8] = -25, + [9] = -30, + [10] = -35 }, percent = { [1] = -100, @@ -766,86 +392,12 @@ function troll.addFaction() [9] = -200, [10] = -240 } - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, unitSpawner = { - + { type = "attribute", name = "health", @@ -861,168 +413,35 @@ function troll.addFaction() [10] = 30000 }, - { + { type = "attribute", name = "healing", - [1] = 0.02, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.8, - [8] = 1, - [9] = 1.2, - [10] = 1.4 - }, - - { - 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.08, - [2] = 0.16, - [3] = 0.24, - [4] = 0.35, - [5] = 0.40, - [6] = 0.45, - [7] = 0.55, - [8] = 0.65, - [9] = 0.75, - [10] = 0.9 - }, - - { - 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 - } + [1] = 0.6, + [2] = 0.6, + [3] = 0.65, + [4] = 0.8, + [5] = 1.6, + [6] = 3.2, + [7] = 4.4, + [8] = 5.2, + [9] = 6, + [10] = 7 }, { type = "resistance", name = "fire", decrease = { - [1] = -15, - [2] = -15, - [3] = -20, - [4] = -20, - [5] = -25, - [6] = -25, - [7] = -30, - [8] = -30, - [9] = -35, - [10] = -45 + [1] = -10, + [2] = -10, + [3] = -15, + [4] = -15, + [5] = -20, + [6] = -20, + [7] = -25, + [8] = -25, + [9] = -30, + [10] = -35 }, percent = { [1] = -100, @@ -1037,19 +456,6 @@ function troll.addFaction() [10] = -240 } } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -1086,16 +492,16 @@ function troll.addFaction() resistances = {}, 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 + [1] = 0.7, + [2] = 0.8, + [3] = 0.9, + [4] = 1, + [5] = 1.1, + [6] = 1.2, + [7] = 1.3, + [8] = 1.4, + [9] = 1.5, + [10] = 1.6 }, attackName = "troll-worm", tint = {r=0.56, g=0.46, b=0.42, a=0.65}, @@ -1114,176 +520,40 @@ function troll.addFaction() [5] = 1800, [6] = 2000, [7] = 3000, - [8] = 5000, - [9] = 7500, - [10] = 10500 + [8] = 6000, + [9] = 9500, + [10] = 12500 }, - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - { type = "attribute", name = "healing", - [1] = 0.08, - [2] = 0.08, - [3] = 0.085, - [4] = 0.1, - [5] = 0.2, - [6] = 0.3, - [7] = 0.4, - [8] = 0.5, - [9] = 0.8, - [10] = 1 - }, - - { - type = "attribute", - name = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } + [1] = 0.6, + [2] = 0.6, + [3] = 0.65, + [4] = 0.8, + [5] = 1.6, + [6] = 3.2, + [7] = 4.4, + [8] = 5.2, + [9] = 6, + [10] = 7 }, { type = "resistance", name = "fire", decrease = { - [1] = -15, - [2] = -15, - [3] = -20, - [4] = -20, - [5] = -25, - [6] = -25, - [7] = -30, - [8] = -30, - [9] = -35, - [10] = -45 + [1] = -10, + [2] = -10, + [3] = -15, + [4] = -15, + [5] = -20, + [6] = -20, + [7] = -25, + [8] = -25, + [9] = -30, + [10] = -35 }, percent = { [1] = -100, @@ -1297,81 +567,6 @@ function troll.addFaction() [9] = -200, [10] = -240 } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } }, diff --git a/prototypes/UnitClasses.lua b/prototypes/UnitClasses.lua index ad8a989..0bb0aee 100755 --- a/prototypes/UnitClasses.lua +++ b/prototypes/UnitClasses.lua @@ -157,6 +157,7 @@ local function generateLocal() print("wasp-spitter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter: " .. size .. " class") print("wasp-spitter-nest-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " spitter nest: " .. size .. " class") print("wasp-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. size .. " class") + print("wasp-worm-drone-v" .. v .. "-t" .. t .. "-drone-rampant=" .. name .. ": " .. size .. " class") end end diff --git a/prototypes/Wasp.lua b/prototypes/Wasp.lua index d7a8687..1092546 100755 --- a/prototypes/Wasp.lua +++ b/prototypes/Wasp.lua @@ -177,22 +177,6 @@ buildUnits( [10] = 40 }, - { - 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", @@ -265,52 +249,8 @@ buildUnits( [8] = 1.9, [9] = 2.0, [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, WASP_UNIT_VARIATIONS, WASP_UNIT_TIERS @@ -462,22 +402,6 @@ buildUnits( [10] = 14 }, - { - 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", @@ -535,52 +459,8 @@ buildUnits( [8] = 1.9, [9] = 2.0, [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 } + }, WASP_WORM_VARIATIONS, WASP_WORM_TIERS @@ -606,18 +486,6 @@ buildUnitSpawner( resistances = {}, type = "spitter", - 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 - }, attackName = "wasp-drone", tint = {r=1, g=1, b=0, a=1}, pTint = {r=0, g=1, b=1, a=0.5}, @@ -631,441 +499,17 @@ buildUnitSpawner( attributes = {}, resistances = {}, - scales = { - [1] = 0.5, - [2] = 0.6, - [3] = 0.7, - [4] = 0.8, - [5] = 0.9, - [6] = 1.0, - [7] = 1.1, - [8] = 1.2, - [9] = 1.3, - [10] = 1.4 - }, tint = {r=1, g=1, b=0, a=1} } }, { - unit = { - { - type = "attribute", - name = "health", - [1] = 10, - [2] = 50, - [3] = 200, - [4] = 350, - [5] = 750, - [6] = 1000, - [7] = 1500, - [8] = 2500, - [9] = 4500, - [10] = 7000 - }, - - { - type = "attack", - name = "cooldown", - [1] = 100, - [2] = 100, - [3] = 97, - [4] = 97, - [5] = 95, - [6] = 95, - [7] = 93, - [8] = 93, - [9] = 90, - [10] = 90 - }, - - { - 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] = 1200, - [4] = 1750, - [5] = 2500, - [6] = 5000, - [7] = 10000, - [8] = 12500, - [9] = 15000, - [10] = 20000 - }, - - { - type = "attack", - name = "damage", - [1] = 4, - [2] = 9, - [3] = 14, - [4] = 23, - [5] = 30, - [6] = 37, - [7] = 45, - [8] = 57, - [9] = 70, - [10] = 80 - }, - - { - 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.185, - [2] = 0.18, - [3] = 0.18, - [4] = 0.17, - [5] = 0.17, - [6] = 0.16, - [7] = 0.16, - [8] = 0.15, - [9] = 0.15, - [10] = 0.14 - }, - { - type = "attribute", - name = "distancePerFrame", - [1] = 0.04, - [2] = 0.045, - [3] = 0.050, - [4] = 0.055, - [5] = 0.060, - [6] = 0.065, - [7] = 0.070, - [8] = 0.075, - [9] = 0.08, - [10] = 0.084 - }, - - { - type = "resistance", - name = "explosion", - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "attack", - name = "range", - [1] = 13, - [2] = 13, - [3] = 14, - [4] = 14, - [5] = 15, - [6] = 15, - [7] = 16, - [8] = 16, - [9] = 17, - [10] = 17 - }, - - { - type = "attack", - name = "radius", - [1] = 1.2, - [2] = 1.3, - [3] = 1.4, - [4] = 1.5, - [5] = 1.6, - [6] = 1.7, - [7] = 1.8, - [8] = 1.9, - [9] = 2.0, - [10] = 2.5 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - } + unit = { + }, 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.08, - [2] = 0.16, - [3] = 0.24, - [4] = 0.35, - [5] = 0.40, - [6] = 0.45, - [7] = 0.55, - [8] = 0.65, - [9] = 0.75, - [10] = 0.9 - }, - - { - 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] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 60, - [2] = 60, - [3] = 62, - [4] = 62, - [5] = 63, - [6] = 63, - [7] = 64, - [8] = 64, - [9] = 65, - [10] = 65 - } - } - }, - - probabilityTable = { - [1] = 1, - [2] = 1, - [3] = 1, - [4] = 1, - [5] = 1, - [6] = 1, - [7] = 1, - [8] = 1, - [9] = 1, - [10] = 1, } }, @@ -1103,294 +547,14 @@ buildWorm( }, resistances = {}, - 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 - }, attackName = "wasp-worm-drone", tint = {r=1, g=1, b=0, a=1}, pTint = {r=0, g=1, b=1, a=0.5}, sTint = {r=0, g=1, b=1, a=0.5} }, - { - { - type = "attribute", - name = "health", - [1] = 200, - [2] = 350, - [3] = 500, - [4] = 750, - [5] = 900, - [6] = 1000, - [7] = 1500, - [8] = 3000, - [9] = 5000, - [10] = 9000 - }, + { - { - type = "attack", - name = "cooldown", - [1] = 50, - [2] = 50, - [3] = 45, - [4] = 45, - [5] = 40, - [6] = 40, - [7] = 35, - [8] = 35, - [9] = 30, - [10] = 30 - }, - - { - type = "attribute", - name = "evolutionRequirement", - [1] = 0, - [2] = 0.1, - [3] = 0.2, - [4] = 0.3, - [5] = 0.4, - [6] = 0.5, - [7] = 0.6, - [8] = 0.7, - [9] = 0.8, - [10] = 0.9 - }, - - { - type = "attack", - name = "damage", - [1] = 12, - [2] = 20, - [3] = 25, - [4] = 30, - [5] = 35, - [6] = 40, - [7] = 50, - [8] = 60, - [9] = 70, - [10] = 80 - }, - - { - 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 = "prepareRange", - [1] = 30, - [2] = 30, - [3] = 31, - [4] = 31, - [5] = 32, - [6] = 32, - [7] = 33, - [8] = 33, - [9] = 34, - [10] = 34 - }, - - { - type = "attribute", - name = "foldingSpeed", - [1] = 0.15, - [2] = 0.15, - [3] = 0.16, - [4] = 0.16, - [5] = 0.16, - [6] = 0.17, - [7] = 0.17, - [8] = 0.18, - [9] = 0.18, - [10] = 0.19 - }, - - { - type = "attribute", - name = "preparingSpeed", - [1] = 0.025, - [2] = 0.025, - [3] = 0.026, - [4] = 0.026, - [5] = 0.027, - [6] = 0.027, - [7] = 0.028, - [8] = 0.028, - [9] = 0.029, - [10] = 0.029 - }, - - { - type = "resistance", - name = "physical", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - } - }, - - { - type = "resistance", - name = "explosion", - decrease = { - [1] = 0, - [2] = 0, - [3] = 5, - [4] = 5, - [5] = 8, - [6] = 8, - [7] = 10, - [8] = 10, - [9] = 12, - [10] = 12 - }, - percent = { - [1] = 0, - [2] = 0, - [3] = 10, - [4] = 10, - [5] = 20, - [6] = 20, - [7] = 30, - [8] = 30, - [9] = 40, - [10] = 40 - } - }, - - { - type = "resistance", - name = "fire", - decrease = { - [1] = 3, - [2] = 3, - [3] = 4, - [4] = 4, - [5] = 6, - [6] = 6, - [7] = 6, - [8] = 6, - [9] = 7, - [10] = 7 - }, - percent = { - [1] = 70, - [2] = 70, - [3] = 72, - [4] = 72, - [5] = 73, - [6] = 73, - [7] = 74, - [8] = 74, - [9] = 75, - [10] = 75 - } - }, - - { - type = "attack", - name = "range", - [1] = 21, - [2] = 22, - [3] = 23, - [4] = 23, - [5] = 24, - [6] = 26, - [7] = 26, - [8] = 28, - [9] = 30, - [10] = 32 - }, - - { - type = "attack", - name = "radius", - [1] = 1.5, - [2] = 1.6, - [3] = 1.7, - [4] = 1.8, - [5] = 1.9, - [6] = 2.0, - [7] = 2.2, - [8] = 2.3, - [9] = 2.5, - [10] = 3.0 - }, - - { - type = "attack", - name = "particleVerticalAcceleration", - [1] = 0.01, - [2] = 0.01, - [3] = 0.02, - [4] = 0.02, - [5] = 0.03, - [6] = 0.03, - [7] = 0.04, - [8] = 0.04, - [9] = 0.05, - [10] = 0.05 - }, - - { - type = "attack", - name = "particleHoizontalSpeed", - [1] = 0.6, - [2] = 0.6, - [3] = 0.7, - [4] = 0.7, - [5] = 0.8, - [6] = 0.8, - [7] = 0.9, - [8] = 0.9, - [9] = 1, - [10] = 1 - }, - - { - type = "attack", - name = "particleHoizontalSpeedDeviation", - [1] = 0.0025, - [2] = 0.0025, - [3] = 0.0024, - [4] = 0.0024, - [5] = 0.0023, - [6] = 0.0023, - [7] = 0.0022, - [8] = 0.0022, - [9] = 0.0021, - [10] = 0.0021 - } }, function (attributes) diff --git a/prototypes/utils/AttackBall.lua b/prototypes/utils/AttackBall.lua index 8ad4562..ca161f8 100755 --- a/prototypes/utils/AttackBall.lua +++ b/prototypes/utils/AttackBall.lua @@ -35,7 +35,7 @@ function AttackBall.createAttackBall(attributes) local templateArea = { type = "area", radius = attributes.radius, - force = (DISALLOW_FRIENDLY_FIRE and "enemy") or nil, + force = (DISALLOW_FRIENDLY_FIRE and "enemy") or attributes.force or nil, action_delivery = (attributes.areaActionDelivery and attributes.areaActionDelivery(attributes)) or { { diff --git a/prototypes/utils/BiterUtils.lua b/prototypes/utils/BiterUtils.lua index 7a8f25d..d71e0ea 100755 --- a/prototypes/utils/BiterUtils.lua +++ b/prototypes/utils/BiterUtils.lua @@ -113,7 +113,7 @@ function biterFunctions.makeBiter(name, biterAttributes, biterAttack, biterResis v.type = k resistances[#resistances+1] = v end - +-- print(name .. " " .. biterAttributes.health) return { type = "unit", name = name .. "-rampant", @@ -153,7 +153,7 @@ function biterFunctions.makeSpitter(name, biterAttributes, biterAttack, biterRes v.type = k resistances[#resistances+1] = v end - +-- print(name .. " " .. biterAttributes.health) return { type = "unit", name = name .. "-rampant", @@ -193,7 +193,7 @@ function biterFunctions.makeUnitSpawner(name, biterAttributes, biterResistances, v.type = k resistances[#resistances+1] = v end - +-- print(name .. " " .. biterAttributes.health) local o = { type = "unit-spawner", name = name .. "-rampant", @@ -265,7 +265,7 @@ function biterFunctions.makeWorm(name, attributes, attack, wormResistances) v.type = k resistances[#resistances+1] = v end - +-- print(name .. " " .. attributes.health) local o = { type = "turret", name = name .. "-rampant", diff --git a/tests.lua b/tests.lua index e70f4d9..c59a26a 100755 --- a/tests.lua +++ b/tests.lua @@ -100,8 +100,8 @@ function tests.entitiesOnPlayerChunk() local chunkX = math.floor(playerPosition.x * 0.03125) * 32 local chunkY = math.floor(playerPosition.y * 0.03125) * 32 local entities = game.surfaces[global.natives.activeSurface].find_entities_filtered({area={{chunkX, chunkY}, - {chunkX + constants.CHUNK_SIZE, chunkY + constants.CHUNK_SIZE}}, - force="player"}) + {chunkX + constants.CHUNK_SIZE, chunkY + constants.CHUNK_SIZE}}, + force="player"}) for i=1, #entities do print(entities[i].name) end @@ -113,8 +113,8 @@ function tests.findNearestPlayerEnemy() local chunkX = math.floor(playerPosition.x * 0.03125) * 32 local chunkY = math.floor(playerPosition.y * 0.03125) * 32 local entity = game.surfaces[global.natives.activeSurface].find_nearest_enemy({position={chunkX, chunkY}, - max_distance=constants.CHUNK_SIZE, - force = "enemy"}) + max_distance=constants.CHUNK_SIZE, + force = "enemy"}) if (entity ~= nil) then print(entity.name) end @@ -175,7 +175,7 @@ end function tests.attackOrigin() local enemy = game.surfaces[global.natives.activeSurface].find_nearest_enemy({position={0,0}, - max_distance = 1000}) + max_distance = 1000}) if (enemy ~= nil) and enemy.valid then print(enemy, enemy.unit_number) enemy.set_command({type=defines.command.attack_area, @@ -393,6 +393,36 @@ function tests.exportAiState() end end +function tests.createEnergyTest(x) + local entity = tests.createEnemy(x) + + local playerPosition = game.players[1].position + local chunkX = math.floor(playerPosition.x * 0.03125) * 32 + local chunkY = math.floor(playerPosition.y * 0.03125) * 32 + local entities = game.surfaces[global.natives.activeSurface].find_entities_filtered({area={{chunkX, chunkY}, + {chunkX + constants.CHUNK_SIZE, chunkY + constants.CHUNK_SIZE}}, + type = "electric-pole", + force="player"}) + -- for i=1, #entities do + -- print(entities[i].name) + -- end + local wires + + if #entities > 0 then + entity.connect_neighbour(entities[1]) + end + +-- if wires then +-- for connectType,neighbourGroup in pairs(wires) do +-- if connectType == "copper" then +-- for _,v in pairs(neighbourGroup) do +-- ; +-- end +-- end +-- end +-- end +end + function tests.unitGroupBuild() local surface = game.surfaces[global.natives.activeSurface] local group = surface.create_unit_group({position={-32, -32}}) @@ -402,10 +432,10 @@ function tests.unitGroupBuild() end group.set_command({ - type = defines.command.build_base, - destination = {-64, -64}, - distraction = defines.distraction.by_enemy, - ignore_planner = true + type = defines.command.build_base, + destination = {-64, -64}, + distraction = defines.distraction.by_enemy, + ignore_planner = true }) end