mirror of
https://github.com/veden/Rampant.git
synced 2025-01-14 02:23:01 +02:00
working poison faction + see changelog
This commit is contained in:
parent
031dbb1b65
commit
d071a8d0b2
@ -3,6 +3,7 @@ Version: 0.16.37
|
||||
Date: 2. 10. 2019
|
||||
Improvements:
|
||||
- Added the energy thief faction that will convert powered player structure into electric draining crystals
|
||||
- Added the poison faction that when killed creates a damaging toxic cloud
|
||||
- Removed unnecessary grouping mechanism when spawner eggs produce units
|
||||
- Added individual base faction ai to manage base development
|
||||
- During onslaught ai state player building destroyed by biters credits x10 to the biters
|
||||
@ -10,6 +11,7 @@ Date: 2. 10. 2019
|
||||
- Reworked squad attack scoring to better account for death pheromone
|
||||
- Squads that kamikaze may now occasionally disregard death pheromone
|
||||
- Maintain sorted chunk array for processing in a radial pattern from origin
|
||||
- Hide spawner drones from the bonus gui screen
|
||||
Tweaks:
|
||||
- Increased resource pheromone min from 9000 to 15000
|
||||
- Increased resource pheromone max from 10000 to 20000
|
||||
@ -42,6 +44,7 @@ Date: 2. 10. 2019
|
||||
- Added general spitters physical percent for levels 1 - 10, (0,0,0,10,12,12,14,14,15,15)
|
||||
- Decreased base spawner upgrade from 300 to 250
|
||||
- Decreased base worm upgrade from 250 to 200
|
||||
- Removed evolution requirement rounding for bobs spawners and ne spawners
|
||||
Bugfixes:
|
||||
- Fixed pheromone dispersion when non-cardinal directions receiving pheromone when it shouldn't
|
||||
- Fixed ai states of migrating and seige when expansion is disabled on the map instead onslaught state happens 10% more in place
|
||||
|
36
control.lua
36
control.lua
@ -59,6 +59,8 @@ local DEFINES_WIRE_TYPE_GREEN = defines.wire_type.green
|
||||
local ENERGY_THIEF_CONVERSION_TABLE = constants.ENERGY_THIEF_CONVERSION_TABLE
|
||||
local ENERGY_THIEF_LOOKUP = constants.ENERGY_THIEF_LOOKUP
|
||||
|
||||
local POISON_LOOKUP = constants.POISON_LOOKUP
|
||||
|
||||
-- imported functions
|
||||
|
||||
local convertTypeToDrainCrystal = unitUtils.convertTypeToDrainCrystal
|
||||
@ -480,6 +482,13 @@ local function onDeath(event)
|
||||
end
|
||||
end
|
||||
|
||||
local cloudName = POISON_LOOKUP[entity.name]
|
||||
|
||||
if cloudName then
|
||||
surface.create_entity({position=entity.position,
|
||||
name=cloudName})
|
||||
end
|
||||
|
||||
elseif event.force and (event.force.name ~= "enemy") and ((entity.type == "unit-spawner") or (entity.type == "turret")) then
|
||||
local tick = event.tick
|
||||
|
||||
@ -513,8 +522,7 @@ local function onDeath(event)
|
||||
if conversion then
|
||||
local newEntity = surface.create_entity({position=entity.position,
|
||||
name=convertTypeToDrainCrystal(entity.force.evolution_factor, conversion),
|
||||
direction=entity.direction,
|
||||
force="enemy"})
|
||||
direction=entity.direction})
|
||||
if (conversion == "pole") then
|
||||
local wires = entity.neighbours
|
||||
if wires then
|
||||
@ -608,26 +616,6 @@ local function onResourceDepleted(event)
|
||||
end
|
||||
end
|
||||
|
||||
-- local function onTriggerEntityCreated(event)
|
||||
-- local entity = event.entity
|
||||
-- if entity and entity.valid and (entity.surface.index == natives.activeSurface) then
|
||||
-- local name = event.entity.name
|
||||
-- print(name)
|
||||
-- if isSpawnerEgg(name) then
|
||||
-- local tick = event.tick
|
||||
-- local chunk = getChunkByPosition(map, entity.position)
|
||||
-- if chunk and ((tick - getChunkSpawnerEggTick(map, chunk)) > INTERVAL_SPAWNER) then
|
||||
-- setChunkSpawnerEggTick(map, chunk, tick)
|
||||
-- map.queueSpawners[#map.queueSpawners+1] = {
|
||||
-- tick,
|
||||
-- chunk,
|
||||
-- entity.position
|
||||
-- }
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
-- end
|
||||
|
||||
local function onUsedCapsule(event)
|
||||
local surface = game.players[event.player_index].surface
|
||||
if (event.item.name == "cliff-explosives") and (surface.index == natives.activeSurface) then
|
||||
@ -682,12 +670,8 @@ script.on_event({defines.events.on_player_mined_entity,
|
||||
script.on_event({defines.events.on_built_entity,
|
||||
defines.events.on_robot_built_entity}, onBuild)
|
||||
|
||||
-- script.on_event(defines.events.on_trigger_created_entity, onTriggerEntityCreated)
|
||||
|
||||
script.on_event(defines.events.on_rocket_launched, onRocketLaunch)
|
||||
|
||||
script.on_event(defines.events.on_entity_died, onDeath)
|
||||
--script.on_event(defines.events.on_tick, onTick)
|
||||
script.on_event(defines.events.on_chunk_generated, onChunkGenerated)
|
||||
|
||||
remote.add_interface("rampantTests",
|
||||
|
@ -10,13 +10,13 @@ local nuclear = require("prototypes/Nuclear")
|
||||
local inferno = require("prototypes/Inferno")
|
||||
local fast = require("prototypes/Fast")
|
||||
local troll = require("prototypes/Troll")
|
||||
-- require("prototypes/Decaying")
|
||||
-- require("prototypes/Poison")
|
||||
-- require("prototypes/Undying")
|
||||
local poison = require("prototypes/Poison")
|
||||
local spawner = require("prototypes/Spawner")
|
||||
local wasp = require("prototypes/Wasp")
|
||||
local laser = require("prototypes/Laser")
|
||||
local energyThief = require("prototypes/EnergyThief")
|
||||
-- require("prototypes/Decaying")
|
||||
-- require("prototypes/Undying")
|
||||
|
||||
if settings.startup["rampant-newEnemies"].value then
|
||||
|
||||
@ -57,15 +57,15 @@ if settings.startup["rampant-newEnemies"].value then
|
||||
if settings.startup["rampant-laserEnemy"].value then
|
||||
laser.addFaction()
|
||||
end
|
||||
-- if settings.startup["rampant-energyEnemy"].value then
|
||||
-- laser.addFaction()
|
||||
-- end
|
||||
-- require("prototypes/Decaying")
|
||||
-- require("prototypes/Poison")
|
||||
-- require("prototypes/Undying")
|
||||
if settings.startup["rampant-energyThiefEnemy"].value then
|
||||
energyThief.addFaction()
|
||||
end
|
||||
if settings.startup["rampant-poisonEnemy"].value then
|
||||
poison.addFaction()
|
||||
end
|
||||
-- require("prototypes/Decaying")
|
||||
-- require("prototypes/Undying")
|
||||
|
||||
|
||||
for _, unitSpawner in pairs(data.raw["unit-spawner"]) do
|
||||
if (unitSpawner.name ~= "biter-spawner") then
|
||||
@ -79,14 +79,6 @@ if settings.startup["rampant-newEnemies"].value then
|
||||
end
|
||||
end
|
||||
|
||||
-- for k, wall in pairs(data.raw["wall"]) do
|
||||
-- if not wall.collision_mask then
|
||||
-- wall.collision_mask = {"player-layer", "item-layer", "object-layer" }
|
||||
-- end
|
||||
-- wall.collision_mask[#wall.collision_mask+1] = "layer-11"
|
||||
-- print(serpent.dump(wall.collision_mask))
|
||||
-- end
|
||||
|
||||
if settings.startup["rampant-enableSwarm"] then
|
||||
for k, unit in pairs(data.raw["unit"]) do
|
||||
if (string.find(k, "biter") or string.find(k, "spitter")) and unit.collision_box then
|
||||
|
88
data.lua
88
data.lua
@ -25,91 +25,3 @@ if settings.startup["rampant-useDumbProjectiles"].value then
|
||||
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 },
|
||||
-- }
|
||||
|
||||
-- })
|
||||
|
@ -90,6 +90,11 @@ local SPAWNER_WORM_VARIATIONS = constants.SPAWNER_WORM_VARIATIONS
|
||||
local SPAWNER_NEST_TIERS = constants.SPAWNER_NEST_TIERS
|
||||
local SPAWNER_NEST_VARIATIONS = constants.SPAWNER_NEST_VARIATIONS
|
||||
|
||||
local POISON_WORM_TIERS = constants.POISON_WORM_TIERS
|
||||
local POISON_WORM_VARIATIONS = constants.POISON_WORM_VARIATIONS
|
||||
local POISON_NEST_TIERS = constants.POISON_NEST_TIERS
|
||||
local POISON_NEST_VARIATIONS = constants.POISON_NEST_VARIATIONS
|
||||
|
||||
local ENERGY_THIEF_WORM_TIERS = constants.ENERGY_THIEF_WORM_TIERS
|
||||
local ENERGY_THIEF_WORM_VARIATIONS = constants.ENERGY_THIEF_WORM_VARIATIONS
|
||||
local ENERGY_THIEF_NEST_TIERS = constants.ENERGY_THIEF_NEST_TIERS
|
||||
@ -110,6 +115,7 @@ local BASE_ALIGNMENT_LASER = constants.BASE_ALIGNMENT_LASER
|
||||
local BASE_ALIGNMENT_TROLL = constants.BASE_ALIGNMENT_TROLL
|
||||
local BASE_ALIGNMENT_ENERGY_THIEF = constants.BASE_ALIGNMENT_ENERGY_THIEF
|
||||
local BASE_ALIGNMENT_DEADZONE = constants.BASE_ALIGNMENT_DEADZONE
|
||||
local BASE_ALIGNMENT_POISON = constants.BASE_ALIGNMENT_POISON
|
||||
|
||||
local BASE_AI_MIN_STATE_DURATION = constants.BASE_AI_MIN_STATE_DURATION
|
||||
local BASE_AI_MIN_TEMPERAMENT_DURATION = constants.BASE_AI_MIN_TEMPERAMENT_DURATION
|
||||
@ -131,15 +137,12 @@ local BASE_COLLECTION_THRESHOLD = constants.BASE_COLLECTION_THRESHOLD
|
||||
|
||||
local CHUNK_SIZE = constants.CHUNK_SIZE
|
||||
|
||||
local BASE_ALIGNMENT_PATHS = constants.BASE_ALIGNMENT_PATHS
|
||||
|
||||
local EVOLUTION_INCREMENTS = constants.EVOLUTION_INCREMENTS
|
||||
|
||||
local SENTINEL_IMPASSABLE_CHUNK = constants.SENTINEL_IMPASSABLE_CHUNK
|
||||
|
||||
-- imported functions
|
||||
|
||||
local roundToNearest = mathUtils.roundToNearest
|
||||
local randomTickEvent = mathUtils.randomTickEvent
|
||||
local euclideanDistancePoints = mathUtils.euclideanDistancePoints
|
||||
local roundToFloor = mathUtils.roundToFloor
|
||||
@ -734,40 +737,6 @@ function baseUtils.rebuildNativeTables(natives, surface, rg)
|
||||
"fast")
|
||||
end
|
||||
|
||||
-- processUnitClass(DECAYING_NEST_VARIATIONS,
|
||||
-- DECAYING_NEST_TIERS,
|
||||
-- DECAYING_NEST_VARIATIONS,
|
||||
-- DECAYING_NEST_TIERS,
|
||||
-- DECAYING_WORM_VARIATIONS,
|
||||
-- DECAYING_WORM_TIERS,
|
||||
-- surface,
|
||||
-- natives,
|
||||
-- BASE_ALIGNMENT_DECAYING,
|
||||
-- "decaying")
|
||||
|
||||
-- processUnitClass(UNDYING_NEST_VARIATIONS,
|
||||
-- UNDYING_NEST_TIERS,
|
||||
-- UNDYING_NEST_VARIATIONS,
|
||||
-- UNDYING_NEST_TIERS,
|
||||
-- UNDYING_WORM_VARIATIONS,
|
||||
-- UNDYING_WORM_TIERS,
|
||||
-- surface,
|
||||
-- natives,
|
||||
-- BASE_ALIGNMENT_UNDYING,
|
||||
-- "undying")
|
||||
|
||||
-- processUnitClass(POSION_NEST_VARIATIONS,
|
||||
-- POSION_NEST_TIERS,
|
||||
-- POSION_NEST_VARIATIONS,
|
||||
-- POSION_NEST_TIERS,
|
||||
-- POSION_WORM_VARIATIONS,
|
||||
-- POSION_WORM_TIERS,
|
||||
-- surface,
|
||||
-- natives,
|
||||
-- BASE_ALIGNMENT_POSION,
|
||||
-- "posion")
|
||||
|
||||
|
||||
if settings.startup["rampant-laserEnemy"].value then
|
||||
processUnitClass(LASER_NEST_VARIATIONS,
|
||||
LASER_NEST_TIERS,
|
||||
@ -808,18 +777,53 @@ function baseUtils.rebuildNativeTables(natives, surface, rg)
|
||||
end
|
||||
|
||||
if settings.startup["rampant-energyThiefEnemy"].value then
|
||||
processUnitClass(0,
|
||||
0,
|
||||
ENERGY_THIEF_NEST_VARIATIONS,
|
||||
processUnitClass(ENERGY_THIEF_NEST_VARIATIONS,
|
||||
ENERGY_THIEF_NEST_TIERS,
|
||||
0,
|
||||
0,
|
||||
ENERGY_THIEF_WORM_VARIATIONS,
|
||||
ENERGY_THIEF_WORM_TIERS,
|
||||
surface,
|
||||
natives,
|
||||
BASE_ALIGNMENT_ENERGY_THIEF,
|
||||
"spawner")
|
||||
"energy-thief")
|
||||
end
|
||||
|
||||
if settings.startup["rampant-poisonEnemy"].value then
|
||||
processUnitClass(POISON_NEST_VARIATIONS,
|
||||
POISON_NEST_TIERS,
|
||||
0,
|
||||
0,
|
||||
POISON_WORM_VARIATIONS,
|
||||
POISON_WORM_TIERS,
|
||||
surface,
|
||||
natives,
|
||||
BASE_ALIGNMENT_POISON,
|
||||
"poison")
|
||||
end
|
||||
|
||||
-- processUnitClass(DECAYING_NEST_VARIATIONS,
|
||||
-- DECAYING_NEST_TIERS,
|
||||
-- DECAYING_NEST_VARIATIONS,
|
||||
-- DECAYING_NEST_TIERS,
|
||||
-- DECAYING_WORM_VARIATIONS,
|
||||
-- DECAYING_WORM_TIERS,
|
||||
-- surface,
|
||||
-- natives,
|
||||
-- BASE_ALIGNMENT_DECAYING,
|
||||
-- "decaying")
|
||||
|
||||
-- processUnitClass(UNDYING_NEST_VARIATIONS,
|
||||
-- UNDYING_NEST_TIERS,
|
||||
-- UNDYING_NEST_VARIATIONS,
|
||||
-- UNDYING_NEST_TIERS,
|
||||
-- UNDYING_WORM_VARIATIONS,
|
||||
-- UNDYING_WORM_TIERS,
|
||||
-- surface,
|
||||
-- natives,
|
||||
-- BASE_ALIGNMENT_UNDYING,
|
||||
-- "undying")
|
||||
|
||||
natives.evolutionTableUnitSpawner = normalizeProbabilities(natives.evolutionTableUnitSpawner)
|
||||
natives.evolutionTableWorm = normalizeProbabilities(natives.evolutionTableWorm)
|
||||
end
|
||||
|
@ -6,17 +6,16 @@ local constants = require("Constants")
|
||||
|
||||
-- imported constants
|
||||
|
||||
local EVOLUTION_INCREMENTS = constants.EVOLUTION_INCREMENTS
|
||||
local BASE_ALIGNMENT_BOBS = constants.BASE_ALIGNMENT_BOBS
|
||||
|
||||
-- imported functions
|
||||
|
||||
local mFloor = math.floor
|
||||
local mMin = math.min
|
||||
|
||||
-- module code
|
||||
|
||||
local function fileEntity(baseAlignment, entity, evolutionTable, evo)
|
||||
local evoRequirement = mFloor((evo or entity.prototype.build_base_evolution_requirement)/EVOLUTION_INCREMENTS) * EVOLUTION_INCREMENTS
|
||||
local evoRequirement = mMin(evo or entity.prototype.build_base_evolution_requirement, 1)
|
||||
local eTable = evolutionTable[baseAlignment]
|
||||
if not eTable then
|
||||
eTable = {}
|
||||
@ -32,14 +31,14 @@ end
|
||||
|
||||
function bobs.processBobsUnitClass(natives, surface)
|
||||
local position = { x = 0, y = 0 }
|
||||
|
||||
|
||||
local entity = surface.create_entity({
|
||||
name = "bob-biter-spawner",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "bob-spitter-spawner",
|
||||
position = position
|
||||
@ -116,7 +115,7 @@ function bobs.processBobsUnitClass(natives, surface)
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_BOBS, entity, natives.evolutionTableWorm)
|
||||
entity.destroy()
|
||||
|
||||
|
||||
end
|
||||
|
||||
return bobs
|
||||
|
@ -152,7 +152,7 @@ constants.BASE_ALIGNMENT_FIRE = 7
|
||||
constants.BASE_ALIGNMENT_PHYSICAL = 8
|
||||
constants.BASE_ALIGNMENT_LASER = 9
|
||||
constants.BASE_ALIGNMENT_INFERNO = 10
|
||||
constants.BASE_ALIGNMENT_POSION = 11
|
||||
constants.BASE_ALIGNMENT_POISON = 11
|
||||
constants.BASE_ALIGNMENT_TROLL = 12
|
||||
constants.BASE_ALIGNMENT_FAST = 13
|
||||
constants.BASE_ALIGNMENT_WEB = 14
|
||||
@ -179,7 +179,7 @@ constants.BASE_PROCESS_INTERVAL = constants.TICKS_A_SECOND * 2
|
||||
-- neutralPath[constants.BASE_ALIGNMENT_WASP] = true
|
||||
|
||||
-- local acidPath = {}
|
||||
-- acidPath[constants.BASE_ALIGNMENT_POSION] = true
|
||||
-- acidPath[constants.BASE_ALIGNMENT_POISON] = true
|
||||
-- acidPath[constants.BASE_ALIGNMENT_INFEST] = true
|
||||
|
||||
-- local decayingPath = {}
|
||||
@ -282,6 +282,13 @@ if settings.startup["rampant-energyThiefEnemy"].value then
|
||||
tbl[constants.BASE_ALIGNMENT_ENERGY_THIEF] = 0.4
|
||||
end
|
||||
|
||||
if settings.startup["rampant-poisonEnemy"].value then
|
||||
pushBasePath(constants.BASE_ALIGNMENT_POISON)
|
||||
|
||||
local tbl = constants.BASE_ALIGNMENT_EVOLUTION_BASELINE
|
||||
tbl[constants.BASE_ALIGNMENT_POISON] = 0.4
|
||||
end
|
||||
|
||||
-- constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_FIRE] = { constants.BASE_ALIGNMENT_INFERNO }
|
||||
-- constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_SUICIDE] = { constants.BASE_ALIGNMENT_NUCLEAR }
|
||||
-- constants.BASE_ALIGNMENT_PATHS[constants.BASE_ALIGNMENT_WASP] = { constants.BASE_ALIGNMENT_SPAWNER }
|
||||
@ -545,17 +552,27 @@ constants.ENERGY_THIEF_LOOKUP = {}
|
||||
for tier=1, wormTiers do
|
||||
local t = ((wormTiers == 5) and constants.TIER_NAMING_SET_5[tier]) or constants.TIER_NAMING_SET_10[tier]
|
||||
for i=1,wormVariations do
|
||||
constants.ENERGY_THIEF_LOOKUP["energy-thief-worm" .. "-v" .. i .. "-t" .. t .. "-rampant"] = true
|
||||
constants.ENERGY_THIEF_LOOKUP["energy-thief-worm-v" .. i .. "-t" .. t .. "-rampant"] = true
|
||||
end
|
||||
end
|
||||
|
||||
for tier=1, wormTiers do
|
||||
for tier=1, unitTiers do
|
||||
local t = ((unitTiers == 5) and constants.TIER_NAMING_SET_5[tier]) or constants.TIER_NAMING_SET_10[tier]
|
||||
for i=1,wormVariations do
|
||||
constants.ENERGY_THIEF_LOOKUP["energy-thief-biter" .. "-v" .. i .. "-t" .. t .. "-rampant"] = true
|
||||
for i=1,unitVariations do
|
||||
constants.ENERGY_THIEF_LOOKUP["energy-thief-biter-v" .. i .. "-t" .. t .. "-rampant"] = true
|
||||
end
|
||||
end
|
||||
|
||||
constants.POISON_LOOKUP = {}
|
||||
|
||||
for tier=1, unitTiers do
|
||||
local t = ((unitTiers == 5) and constants.TIER_NAMING_SET_5[tier]) or constants.TIER_NAMING_SET_10[tier]
|
||||
for i=1,unitVariations do
|
||||
constants.POISON_LOOKUP["poison-biter-v" .. i .. "-t" .. t .. "-rampant"] = "poison-cloud-v" .. i .. "-cloud-rampant"
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
constants.SPAWNER_EGG_TIMEOUT = constants.TICKS_A_SECOND * 5
|
||||
|
||||
constants.NEUTRAL_NEST_TIERS = nestTiers
|
||||
@ -684,4 +701,12 @@ constants.ENERGY_THIEF_WORM_VARIATIONS = wormVariations
|
||||
constants.ENERGY_THIEF_UNIT_TIERS = unitTiers
|
||||
constants.ENERGY_THIEF_UNIT_VARIATIONS = unitVariations
|
||||
|
||||
constants.POISON_NEST_TIERS = nestTiers
|
||||
constants.POISON_NEST_VARIATIONS = nestVariations
|
||||
constants.POISON_WORM_TIERS = wormTiers
|
||||
constants.POISON_WORM_VARIATIONS = wormVariations
|
||||
constants.POISON_UNIT_TIERS = unitTiers
|
||||
constants.POISON_UNIT_VARIATIONS = unitVariations
|
||||
|
||||
|
||||
return constants
|
||||
|
@ -6,7 +6,6 @@ local constants = require("Constants")
|
||||
|
||||
-- imported constants
|
||||
|
||||
local EVOLUTION_INCREMENTS = constants.EVOLUTION_INCREMENTS
|
||||
local BASE_ALIGNMENT_NE = constants.BASE_ALIGNMENT_NE
|
||||
local ENABLED_BOBS_UNITS = constants.ENABLED_BOBS_UNITS
|
||||
|
||||
@ -18,12 +17,12 @@ local BASE_ALIGNMENT_NE_YELLOW = constants.BASE_ALIGNMENT_NE_YELLOW
|
||||
|
||||
-- imported functions
|
||||
|
||||
local mFloor = math.floor
|
||||
local mMin = math.min
|
||||
|
||||
-- module code
|
||||
|
||||
local function fileEntity(baseAlignment, entity, evolutionTable, evo)
|
||||
local evoRequirement = mFloor((evo or entity.prototype.build_base_evolution_requirement)/EVOLUTION_INCREMENTS) * EVOLUTION_INCREMENTS
|
||||
local evoRequirement = mMin(evo or entity.prototype.build_base_evolution_requirement, 1)
|
||||
local eTable = evolutionTable[baseAlignment]
|
||||
if not eTable then
|
||||
eTable = {}
|
||||
@ -37,18 +36,18 @@ local function fileEntity(baseAlignment, entity, evolutionTable, evo)
|
||||
aTable[#aTable+1] = entity.name
|
||||
end
|
||||
|
||||
function ne.processNEUnitClass(natives, surface)
|
||||
function ne.processNEUnitClass(natives, surface)
|
||||
local position = { x = 0, y = 0 }
|
||||
|
||||
local factionSet = {}
|
||||
|
||||
|
||||
local entity = surface.create_entity({
|
||||
name = "biter-spawner",
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
|
||||
entity = surface.create_entity({
|
||||
name = "spitter-spawner",
|
||||
position = position
|
||||
@ -56,8 +55,8 @@ function ne.processNEUnitClass(natives, surface)
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
|
||||
|
||||
if settings.startup["NE_Blue_Spawners"].value then
|
||||
|
||||
if settings.startup["NE_Blue_Spawners"].value then
|
||||
entity = surface.create_entity({
|
||||
name = "ne-spawner-blue",
|
||||
position = position
|
||||
@ -76,7 +75,7 @@ function ne.processNEUnitClass(natives, surface)
|
||||
factionSet[#factionSet+1] = BASE_ALIGNMENT_NE_RED
|
||||
entity.destroy()
|
||||
end
|
||||
|
||||
|
||||
if settings.startup["NE_Green_Spawners"].value then
|
||||
entity = surface.create_entity({
|
||||
name = "ne-spawner-green",
|
||||
@ -87,7 +86,7 @@ function ne.processNEUnitClass(natives, surface)
|
||||
entity.destroy()
|
||||
end
|
||||
|
||||
|
||||
|
||||
if settings.startup["NE_Yellow_Spawners"].value then
|
||||
entity = surface.create_entity({
|
||||
name = "ne-spawner-yellow",
|
||||
@ -97,7 +96,7 @@ function ne.processNEUnitClass(natives, surface)
|
||||
factionSet[#factionSet+1] = BASE_ALIGNMENT_NE_YELLOW
|
||||
entity.destroy()
|
||||
end
|
||||
|
||||
|
||||
if settings.startup["NE_Pink_Spawners"].value then
|
||||
entity = surface.create_entity({
|
||||
name = "ne-spawner-pink",
|
||||
@ -109,7 +108,7 @@ function ne.processNEUnitClass(natives, surface)
|
||||
end
|
||||
|
||||
factionSet[#factionSet+1] = BASE_ALIGNMENT_NE
|
||||
|
||||
|
||||
if ENABLED_BOBS_UNITS then
|
||||
entity = surface.create_entity({
|
||||
name = "bob-biter-spawner",
|
||||
@ -123,9 +122,9 @@ function ne.processNEUnitClass(natives, surface)
|
||||
position = position
|
||||
})
|
||||
fileEntity(BASE_ALIGNMENT_NE, entity, natives.evolutionTableUnitSpawner, 0.0)
|
||||
entity.destroy()
|
||||
entity.destroy()
|
||||
|
||||
for _,alignment in ipairs(factionSet) do
|
||||
for _,alignment in ipairs(factionSet) do
|
||||
entity = surface.create_entity({
|
||||
name = "bob-big-fire-worm-turret",
|
||||
position = position
|
||||
|
@ -11811,6 +11811,606 @@ energy-thief-worm-v19-t10-rampant=Energy Thief worm: Juggernaut class
|
||||
energy-thief-biter-v20-t10-rampant=Energy Thief biter: Juggernaut class
|
||||
energy-thief-biter-nest-v20-t10-rampant=Energy Thief biter nest: Juggernaut class
|
||||
energy-thief-worm-v20-t10-rampant=Energy Thief worm: Juggernaut class
|
||||
poison-biter-v1-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v1-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v1-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v2-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v2-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v2-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v3-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v3-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v3-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v4-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v4-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v4-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v5-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v5-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v5-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v6-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v6-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v6-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v7-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v7-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v7-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v8-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v8-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v8-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v9-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v9-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v9-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v10-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v10-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v10-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v11-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v11-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v11-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v12-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v12-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v12-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v13-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v13-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v13-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v14-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v14-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v14-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v15-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v15-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v15-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v16-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v16-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v16-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v17-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v17-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v17-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v18-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v18-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v18-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v19-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v19-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v19-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v20-t1-rampant=Poison biter: Larva class
|
||||
poison-biter-nest-v20-t1-rampant=Poison biter nest: Larva class
|
||||
poison-worm-v20-t1-rampant=Poison worm: Larva class
|
||||
poison-biter-v1-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v1-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v1-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v2-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v2-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v2-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v3-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v3-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v3-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v4-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v4-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v4-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v5-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v5-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v5-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v6-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v6-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v6-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v7-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v7-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v7-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v8-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v8-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v8-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v9-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v9-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v9-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v10-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v10-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v10-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v11-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v11-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v11-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v12-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v12-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v12-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v13-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v13-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v13-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v14-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v14-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v14-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v15-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v15-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v15-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v16-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v16-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v16-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v17-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v17-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v17-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v18-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v18-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v18-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v19-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v19-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v19-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v20-t2-rampant=Poison biter: Pupae class
|
||||
poison-biter-nest-v20-t2-rampant=Poison biter nest: Pupae class
|
||||
poison-worm-v20-t2-rampant=Poison worm: Pupae class
|
||||
poison-biter-v1-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v1-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v1-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v2-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v2-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v2-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v3-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v3-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v3-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v4-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v4-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v4-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v5-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v5-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v5-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v6-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v6-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v6-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v7-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v7-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v7-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v8-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v8-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v8-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v9-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v9-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v9-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v10-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v10-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v10-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v11-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v11-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v11-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v12-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v12-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v12-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v13-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v13-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v13-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v14-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v14-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v14-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v15-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v15-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v15-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v16-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v16-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v16-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v17-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v17-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v17-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v18-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v18-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v18-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v19-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v19-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v19-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v20-t3-rampant=Poison biter: Worker class
|
||||
poison-biter-nest-v20-t3-rampant=Poison biter nest: Worker class
|
||||
poison-worm-v20-t3-rampant=Poison worm: Worker class
|
||||
poison-biter-v1-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v1-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v1-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v2-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v2-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v2-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v3-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v3-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v3-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v4-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v4-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v4-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v5-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v5-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v5-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v6-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v6-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v6-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v7-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v7-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v7-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v8-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v8-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v8-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v9-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v9-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v9-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v10-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v10-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v10-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v11-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v11-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v11-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v12-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v12-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v12-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v13-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v13-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v13-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v14-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v14-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v14-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v15-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v15-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v15-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v16-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v16-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v16-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v17-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v17-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v17-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v18-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v18-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v18-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v19-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v19-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v19-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v20-t4-rampant=Poison biter: Grunt class
|
||||
poison-biter-nest-v20-t4-rampant=Poison biter nest: Grunt class
|
||||
poison-worm-v20-t4-rampant=Poison worm: Grunt class
|
||||
poison-biter-v1-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v1-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v1-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v2-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v2-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v2-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v3-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v3-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v3-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v4-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v4-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v4-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v5-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v5-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v5-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v6-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v6-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v6-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v7-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v7-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v7-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v8-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v8-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v8-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v9-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v9-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v9-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v10-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v10-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v10-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v11-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v11-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v11-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v12-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v12-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v12-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v13-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v13-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v13-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v14-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v14-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v14-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v15-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v15-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v15-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v16-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v16-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v16-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v17-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v17-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v17-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v18-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v18-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v18-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v19-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v19-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v19-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v20-t5-rampant=Poison biter: Soldier class
|
||||
poison-biter-nest-v20-t5-rampant=Poison biter nest: Soldier class
|
||||
poison-worm-v20-t5-rampant=Poison worm: Soldier class
|
||||
poison-biter-v1-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v1-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v1-t6-rampant=Poison worm: General class
|
||||
poison-biter-v2-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v2-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v2-t6-rampant=Poison worm: General class
|
||||
poison-biter-v3-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v3-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v3-t6-rampant=Poison worm: General class
|
||||
poison-biter-v4-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v4-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v4-t6-rampant=Poison worm: General class
|
||||
poison-biter-v5-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v5-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v5-t6-rampant=Poison worm: General class
|
||||
poison-biter-v6-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v6-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v6-t6-rampant=Poison worm: General class
|
||||
poison-biter-v7-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v7-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v7-t6-rampant=Poison worm: General class
|
||||
poison-biter-v8-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v8-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v8-t6-rampant=Poison worm: General class
|
||||
poison-biter-v9-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v9-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v9-t6-rampant=Poison worm: General class
|
||||
poison-biter-v10-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v10-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v10-t6-rampant=Poison worm: General class
|
||||
poison-biter-v11-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v11-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v11-t6-rampant=Poison worm: General class
|
||||
poison-biter-v12-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v12-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v12-t6-rampant=Poison worm: General class
|
||||
poison-biter-v13-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v13-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v13-t6-rampant=Poison worm: General class
|
||||
poison-biter-v14-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v14-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v14-t6-rampant=Poison worm: General class
|
||||
poison-biter-v15-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v15-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v15-t6-rampant=Poison worm: General class
|
||||
poison-biter-v16-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v16-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v16-t6-rampant=Poison worm: General class
|
||||
poison-biter-v17-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v17-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v17-t6-rampant=Poison worm: General class
|
||||
poison-biter-v18-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v18-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v18-t6-rampant=Poison worm: General class
|
||||
poison-biter-v19-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v19-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v19-t6-rampant=Poison worm: General class
|
||||
poison-biter-v20-t6-rampant=Poison biter: General class
|
||||
poison-biter-nest-v20-t6-rampant=Poison biter nest: General class
|
||||
poison-worm-v20-t6-rampant=Poison worm: General class
|
||||
poison-biter-v1-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v1-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v1-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v2-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v2-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v2-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v3-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v3-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v3-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v4-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v4-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v4-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v5-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v5-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v5-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v6-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v6-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v6-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v7-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v7-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v7-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v8-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v8-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v8-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v9-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v9-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v9-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v10-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v10-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v10-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v11-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v11-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v11-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v12-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v12-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v12-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v13-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v13-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v13-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v14-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v14-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v14-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v15-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v15-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v15-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v16-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v16-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v16-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v17-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v17-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v17-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v18-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v18-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v18-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v19-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v19-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v19-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v20-t7-rampant=Poison biter: Overlord class
|
||||
poison-biter-nest-v20-t7-rampant=Poison biter nest: Overlord class
|
||||
poison-worm-v20-t7-rampant=Poison worm: Overlord class
|
||||
poison-biter-v1-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v1-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v1-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v2-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v2-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v2-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v3-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v3-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v3-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v4-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v4-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v4-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v5-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v5-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v5-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v6-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v6-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v6-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v7-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v7-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v7-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v8-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v8-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v8-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v9-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v9-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v9-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v10-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v10-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v10-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v11-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v11-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v11-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v12-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v12-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v12-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v13-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v13-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v13-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v14-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v14-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v14-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v15-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v15-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v15-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v16-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v16-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v16-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v17-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v17-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v17-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v18-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v18-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v18-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v19-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v19-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v19-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v20-t8-rampant=Poison biter: Titan class
|
||||
poison-biter-nest-v20-t8-rampant=Poison biter nest: Titan class
|
||||
poison-worm-v20-t8-rampant=Poison worm: Titan class
|
||||
poison-biter-v1-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v1-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v1-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v2-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v2-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v2-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v3-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v3-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v3-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v4-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v4-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v4-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v5-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v5-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v5-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v6-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v6-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v6-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v7-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v7-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v7-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v8-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v8-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v8-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v9-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v9-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v9-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v10-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v10-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v10-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v11-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v11-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v11-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v12-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v12-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v12-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v13-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v13-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v13-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v14-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v14-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v14-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v15-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v15-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v15-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v16-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v16-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v16-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v17-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v17-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v17-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v18-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v18-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v18-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v19-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v19-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v19-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v20-t9-rampant=Poison biter: Leviathan class
|
||||
poison-biter-nest-v20-t9-rampant=Poison biter nest: Leviathan class
|
||||
poison-worm-v20-t9-rampant=Poison worm: Leviathan class
|
||||
poison-biter-v1-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v1-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v1-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v2-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v2-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v2-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v3-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v3-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v3-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v4-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v4-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v4-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v5-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v5-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v5-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v6-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v6-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v6-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v7-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v7-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v7-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v8-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v8-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v8-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v9-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v9-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v9-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v10-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v10-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v10-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v11-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v11-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v11-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v12-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v12-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v12-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v13-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v13-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v13-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v14-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v14-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v14-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v15-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v15-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v15-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v16-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v16-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v16-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v17-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v17-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v17-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v18-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v18-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v18-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v19-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v19-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v19-t10-rampant=Poison worm: Juggernaut class
|
||||
poison-biter-v20-t10-rampant=Poison biter: Juggernaut class
|
||||
poison-biter-nest-v20-t10-rampant=Poison biter nest: Juggernaut class
|
||||
poison-worm-v20-t10-rampant=Poison worm: Juggernaut class
|
||||
|
||||
[entity-description]
|
||||
|
||||
@ -11894,6 +12494,7 @@ rampant-suicideEnemy=Suicide Biter Faction
|
||||
rampant-physicalEnemy=Physical Biter Faction
|
||||
rampant-acidEnemy=Acid Biter Faction
|
||||
rampant-energyThiefEnemy=Energy Thief Biter Faction
|
||||
rampant-poisonEnemy=Poison Biter Faction
|
||||
|
||||
[mod-setting-description]
|
||||
rampant-useDumbProjectiles=Turns off homing projectiles for worms and spitters
|
||||
@ -11974,4 +12575,5 @@ rampant-fireEnemy=Fire Biter Faction
|
||||
rampant-suicideEnemy=Suicide Biter Faction
|
||||
rampant-physicalEnemy=Physical Biter Faction
|
||||
rampant-acidEnemy=Acid Biter Faction
|
||||
rampant-energyThiefEnemy=Energy Thief Biter Faction
|
||||
rampant-energyThiefEnemy=Energy Thief Biter Faction
|
||||
rampant-poisonEnemy=Poison Biter Faction
|
653
prototypes/Poison.lua
Executable file
653
prototypes/Poison.lua
Executable file
@ -0,0 +1,653 @@
|
||||
-- imports
|
||||
|
||||
local physicalBall = require("utils/AttackBall")
|
||||
local biterUtils = require("utils/BiterUtils")
|
||||
local smokeUtils = require("utils/SmokeUtils")
|
||||
local swarmUtils = require("SwarmUtils")
|
||||
package.path = "../libs/?.lua;" .. package.path
|
||||
local constants = require("Constants")
|
||||
|
||||
-- constants
|
||||
|
||||
local poison = {}
|
||||
|
||||
local POISON_UNIT_TIERS = constants.POISON_UNIT_TIERS
|
||||
local POISON_UNIT_VARIATIONS = constants.POISON_UNIT_VARIATIONS
|
||||
|
||||
local POISON_NEST_TIERS = constants.POISON_NEST_TIERS
|
||||
local POISON_NEST_VARIATIONS = constants.POISON_NEST_VARIATIONS
|
||||
|
||||
local POISON_WORM_TIERS = constants.POISON_WORM_TIERS
|
||||
local POISON_WORM_VARIATIONS = constants.POISON_WORM_VARIATIONS
|
||||
|
||||
-- imported functions
|
||||
|
||||
local buildUnitSpawner = swarmUtils.buildUnitSpawner
|
||||
local buildWorm = swarmUtils.buildWorm
|
||||
local createAttackBall = physicalBall.createAttackBall
|
||||
local createRangedAttack = biterUtils.createRangedAttack
|
||||
local createMeleeAttack = biterUtils.createMeleeAttack
|
||||
|
||||
local softSmoke = "the-soft-smoke-rampant"
|
||||
|
||||
local makeCloud = smokeUtils.makeCloud
|
||||
|
||||
local makeUnitAlienLootTable = biterUtils.makeUnitAlienLootTable
|
||||
local makeSpawnerAlienLootTable = biterUtils.makeSpawnerAlienLootTable
|
||||
local makeWormAlienLootTable = biterUtils.makeWormAlienLootTable
|
||||
|
||||
function poison.addFaction()
|
||||
|
||||
local biterLoot = makeUnitAlienLootTable("green")
|
||||
local spawnerLoot = makeSpawnerAlienLootTable("green")
|
||||
local wormLoot = makeWormAlienLootTable("green")
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "damage-type",
|
||||
name = "healing"
|
||||
}
|
||||
})
|
||||
|
||||
for i=1,10 do
|
||||
makeCloud(
|
||||
{
|
||||
name = "poison-cloud-v" .. i,
|
||||
scale = 0.80 + (i * 0.15),
|
||||
wind = true,
|
||||
slowdown = -1.3,
|
||||
duration = 60 * (i * 5)
|
||||
},
|
||||
{
|
||||
type = "direct",
|
||||
action_delivery =
|
||||
{
|
||||
type = "instant",
|
||||
target_effects =
|
||||
{
|
||||
type = "nested-result",
|
||||
action =
|
||||
{
|
||||
{
|
||||
type = "area",
|
||||
radius = 2 + (i * 0.5),
|
||||
force = "ally",
|
||||
entity_flags = {"placeable-enemy"},
|
||||
action_delivery =
|
||||
{
|
||||
type = "instant",
|
||||
target_effects =
|
||||
{
|
||||
type = "damage",
|
||||
damage = { amount = -8 * i, type = "healing"}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
type = "area",
|
||||
radius = 2 + (i * 0.5),
|
||||
force = "enemy",
|
||||
action_delivery =
|
||||
{
|
||||
type = "instant",
|
||||
target_effects =
|
||||
{
|
||||
type = "damage",
|
||||
damage = { amount = 14 * i, type = "poison"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
end
|
||||
|
||||
-- poison biters
|
||||
buildUnitSpawner(
|
||||
{
|
||||
unit = {
|
||||
name = "poison-biter",
|
||||
|
||||
loot = biterLoot,
|
||||
attributes = {
|
||||
explosion = "blood-explosion-small"
|
||||
},
|
||||
attack = {
|
||||
damageType = "poison"
|
||||
},
|
||||
resistances = {},
|
||||
|
||||
type = "biter",
|
||||
tint1 = {r=0.1, g=0.8, b=0.1, a=1},
|
||||
tint2 = {r=0.1, g=0.8, b=0.1, a=1}
|
||||
},
|
||||
|
||||
unitSpawner = {
|
||||
name = "poison-biter-nest",
|
||||
|
||||
loot = spawnerLoot,
|
||||
attributes = {},
|
||||
resistances = {},
|
||||
tint = {r=0.1, g=0.8, b=0.1, a=1}
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
unit = {
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "fire",
|
||||
decrease = {
|
||||
[1] = 1,
|
||||
[2] = 1,
|
||||
[3] = 1,
|
||||
[4] = 1,
|
||||
[5] = 2,
|
||||
[6] = 2,
|
||||
[7] = 3,
|
||||
[8] = 3,
|
||||
[9] = 3,
|
||||
[10] = 4
|
||||
},
|
||||
percent = {
|
||||
[1] = 30,
|
||||
[2] = 30,
|
||||
[3] = 30,
|
||||
[4] = 40,
|
||||
[5] = 40,
|
||||
[6] = 40,
|
||||
[7] = 45,
|
||||
[8] = 45,
|
||||
[9] = 45,
|
||||
[10] = 50
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "poison",
|
||||
decrease = {
|
||||
[1] = 5,
|
||||
[2] = 5,
|
||||
[3] = 7,
|
||||
[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 = "electric",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "explosion",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "laser",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
unitSpawner = {
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "fire",
|
||||
decrease = {
|
||||
[1] = 1,
|
||||
[2] = 1,
|
||||
[3] = 1,
|
||||
[4] = 1,
|
||||
[5] = 2,
|
||||
[6] = 2,
|
||||
[7] = 3,
|
||||
[8] = 3,
|
||||
[9] = 3,
|
||||
[10] = 4
|
||||
},
|
||||
percent = {
|
||||
[1] = 30,
|
||||
[2] = 30,
|
||||
[3] = 30,
|
||||
[4] = 40,
|
||||
[5] = 40,
|
||||
[6] = 40,
|
||||
[7] = 45,
|
||||
[8] = 45,
|
||||
[9] = 45,
|
||||
[10] = 50
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "poison",
|
||||
decrease = {
|
||||
[1] = 5,
|
||||
[2] = 5,
|
||||
[3] = 7,
|
||||
[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 = "electric",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "explosion",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "laser",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
createMeleeAttack,
|
||||
|
||||
{
|
||||
unit = POISON_UNIT_VARIATIONS,
|
||||
unitSpawner = POISON_NEST_VARIATIONS
|
||||
},
|
||||
|
||||
{
|
||||
unit = POISON_UNIT_TIERS,
|
||||
unitSpawner = POISON_NEST_TIERS
|
||||
}
|
||||
)
|
||||
|
||||
-- poison worms
|
||||
buildWorm(
|
||||
{
|
||||
name = "poison-worm",
|
||||
|
||||
loot = wormLoot,
|
||||
attributes = {
|
||||
},
|
||||
attack = {
|
||||
type = "projectile",
|
||||
damageType = "poison",
|
||||
softSmokeName = softSmoke,
|
||||
pointEffects = function(attributes)
|
||||
return
|
||||
{
|
||||
{
|
||||
type="create-entity",
|
||||
entity_name = attributes.cloud
|
||||
}
|
||||
}
|
||||
end
|
||||
},
|
||||
resistances = {},
|
||||
|
||||
attackName = "poison-worm",
|
||||
tint = {r=0.15, g=0.85, b=0.15, a=0.65},
|
||||
pTint = {r=0, g=0.85, b=0, a=1},
|
||||
sTint = {r=0, g=0, b=0, a=1}
|
||||
},
|
||||
|
||||
{
|
||||
{
|
||||
type = "attack",
|
||||
mapping = "cloud",
|
||||
[1] = "poison-cloud-v1-cloud-rampant",
|
||||
[2] = "poison-cloud-v2-cloud-rampant",
|
||||
[3] = "poison-cloud-v3-cloud-rampant",
|
||||
[4] = "poison-cloud-v4-cloud-rampant",
|
||||
[5] = "poison-cloud-v5-cloud-rampant",
|
||||
[6] = "poison-cloud-v6-cloud-rampant",
|
||||
[7] = "poison-cloud-v7-cloud-rampant",
|
||||
[8] = "poison-cloud-v8-cloud-rampant",
|
||||
[9] = "poison-cloud-v9-cloud-rampant",
|
||||
[10] = "poison-cloud-v10-cloud-rampant"
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "fire",
|
||||
decrease = {
|
||||
[1] = 1,
|
||||
[2] = 1,
|
||||
[3] = 1,
|
||||
[4] = 1,
|
||||
[5] = 2,
|
||||
[6] = 2,
|
||||
[7] = 3,
|
||||
[8] = 3,
|
||||
[9] = 3,
|
||||
[10] = 4
|
||||
},
|
||||
percent = {
|
||||
[1] = 30,
|
||||
[2] = 30,
|
||||
[3] = 30,
|
||||
[4] = 40,
|
||||
[5] = 40,
|
||||
[6] = 40,
|
||||
[7] = 45,
|
||||
[8] = 45,
|
||||
[9] = 45,
|
||||
[10] = 50
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "poison",
|
||||
decrease = {
|
||||
[1] = 5,
|
||||
[2] = 5,
|
||||
[3] = 7,
|
||||
[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 = "electric",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "explosion",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
type = "resistance",
|
||||
name = "laser",
|
||||
decrease = {
|
||||
[1] = -3,
|
||||
[2] = -3,
|
||||
[3] = -7,
|
||||
[4] = -7,
|
||||
[5] = -10,
|
||||
[6] = -10,
|
||||
[7] = -13,
|
||||
[8] = -13,
|
||||
[9] = -16,
|
||||
[10] = -18
|
||||
},
|
||||
percent = {
|
||||
[1] = -35,
|
||||
[2] = -35,
|
||||
[3] = -40,
|
||||
[4] = -40,
|
||||
[5] = -45,
|
||||
[6] = -45,
|
||||
[7] = -50,
|
||||
[8] = -55,
|
||||
[9] = -55,
|
||||
[10] = -60
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
function (attack, attributes, tier)
|
||||
return createRangedAttack(attack,
|
||||
createAttackBall(attack))
|
||||
end,
|
||||
|
||||
POISON_WORM_VARIATIONS,
|
||||
POISON_WORM_TIERS
|
||||
)
|
||||
end
|
||||
|
||||
return poison
|
@ -1372,20 +1372,20 @@ function swarmUtils.buildUnits(template, attackGenerator, upgradeTable, variatio
|
||||
unit.attributes.corpse = makeSpitterCorpse(unit)
|
||||
entity = makeSpitter(unit.name,
|
||||
unit.attributes,
|
||||
attackGenerator(unit.attack, unit.attributes),
|
||||
attackGenerator(unit.attack, unit.attributes, t),
|
||||
unit.resistances)
|
||||
elseif (unit.type == "biter") then
|
||||
unit.attributes.corpse = makeBiterCorpse(unit)
|
||||
entity = makeBiter(unit.name,
|
||||
unit.attributes,
|
||||
attackGenerator(unit.attack, unit.attributes),
|
||||
attackGenerator(unit.attack, unit.attributes, t),
|
||||
unit.resistances)
|
||||
elseif (unit.type == "drone") then
|
||||
entity = makeDrone(unit.name,
|
||||
unit.attributes,
|
||||
unit.resistances,
|
||||
attackGenerator(unit.attack),
|
||||
unit.death(unit.attack, unit.attributes))
|
||||
unit.death(unit.attack, unit.attributes, t))
|
||||
end
|
||||
|
||||
result[#result+1] = entity.name
|
||||
@ -1484,7 +1484,7 @@ function swarmUtils.buildWorm(template, upgradeTable, attackGenerator, variation
|
||||
data:extend({
|
||||
makeWorm(worm.name,
|
||||
worm.attributes,
|
||||
attackGenerator(worm.attack),
|
||||
attackGenerator(worm.attack, worm.attributes, t),
|
||||
worm.resistances)
|
||||
})
|
||||
end
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
function generateLocal()
|
||||
-- local names = {"Alpha", "Beta", "Gamma", "Delta", "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega"}
|
||||
local names = {"Neutral", "Acid", "Physical", "Electric", "Suicide", "Nuclear", "Fire", "Inferno", "Troll", "Fast", "Laser", "Wasp", "Spawner", "Energy Thief", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega"}
|
||||
local names = {"Neutral", "Acid", "Physical", "Electric", "Suicide", "Nuclear", "Fire", "Inferno", "Troll", "Fast", "Laser", "Wasp", "Spawner", "Energy Thief", "Poison", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", "Chi", "Psi", "Omega"}
|
||||
local sizes = {"Larva", "Pupae", "Worker", "Grunt", "Soldier", "General", "Overlord", "Titan", "Leviathan", "Juggernaut"}
|
||||
|
||||
print("[entity-name]")
|
||||
@ -186,5 +186,16 @@ function generateLocal()
|
||||
end
|
||||
end
|
||||
|
||||
name = names[15]
|
||||
|
||||
for t = 1, 10 do
|
||||
local size = sizes[t]
|
||||
for v = 1, 20 do
|
||||
print("poison-biter-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter: " .. size .. " class")
|
||||
print("poison-biter-nest-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " biter nest: " .. size .. " class")
|
||||
print("poison-worm-v" .. v .. "-t" .. t .. "-rampant=" .. name .. " worm: " .. size .. " class")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
@ -19,7 +19,7 @@ local AttackBall = {}
|
||||
|
||||
stickerUtils.makeSticker({
|
||||
name = "the-sticker"
|
||||
|
||||
|
||||
})
|
||||
|
||||
function AttackBall.createAttackBall(attributes)
|
||||
@ -29,8 +29,8 @@ function AttackBall.createAttackBall(attributes)
|
||||
elseif attributes.damage and (attributes.type == "projectile") then
|
||||
attributes.damage = attributes.damage * 2.7
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
local templateDamage = { amount = attributes.damage, type = attributes.damageType or "acid" }
|
||||
local templateArea = {
|
||||
type = "area",
|
||||
@ -40,7 +40,7 @@ function AttackBall.createAttackBall(attributes)
|
||||
{
|
||||
{
|
||||
type = "instant",
|
||||
target_effects = (attributes.areaEffects and attributes.areaEffects(attributes)) or
|
||||
target_effects = (attributes.areaEffects and attributes.areaEffects(attributes)) or
|
||||
{
|
||||
{
|
||||
type = "damage",
|
||||
@ -60,12 +60,12 @@ function AttackBall.createAttackBall(attributes)
|
||||
target_effects = (attributes.pointEffects and attributes.pointEffects(attributes)) or
|
||||
{
|
||||
{
|
||||
type= "create-entity",
|
||||
entity_name = attributes.crater or "acid-splash-purple"
|
||||
type= "create-entity",
|
||||
entity_name = attributes.crater or "acid-splash-purple"
|
||||
},
|
||||
{
|
||||
type = "damage",
|
||||
damage = templateDamage
|
||||
type = "damage",
|
||||
damage = templateDamage
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -91,11 +91,11 @@ function AttackBall.createAttackBall(attributes)
|
||||
attributes,
|
||||
templateActions)
|
||||
end
|
||||
|
||||
|
||||
return name
|
||||
end
|
||||
|
||||
function AttackBall.generateLegacy()
|
||||
function AttackBall.generateLegacy()
|
||||
AttackBall.createAttackBall({name="acid-ball", type="projectile", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="the-soft-smoke-rampant", damage=4, radius=1.2})
|
||||
AttackBall.createAttackBall({name="acid-ball-1", type="projectile", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="the-soft-smoke-rampant", damage=9, radius=1.3})
|
||||
AttackBall.createAttackBall({name="acid-ball-2", type="projectile", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="the-soft-smoke-rampant", damage=14, radius=1.4})
|
||||
@ -112,7 +112,7 @@ function AttackBall.generateLegacy()
|
||||
AttackBall.createAttackBall({name="wide-acid-ball-direction", directionOnly=true, type="projectile", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="the-soft-smoke-rampant", damage=18, radius=3})
|
||||
AttackBall.createAttackBall({name="acid-ball-4-direction", directionOnly=true, type="projectile", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="the-soft-smoke-rampant", damage=25, radius=1.75})
|
||||
AttackBall.createAttackBall({name="acid-ball-5-direction", directionOnly=true, type="projectile", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="the-soft-smoke-rampant", damage=50, radius=2})
|
||||
AttackBall.createAttackBall({name="acid-ball-6-direction", directionOnly=true, type="projectile", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="the-soft-smoke-rampant", damage=70, radius=2.5})
|
||||
AttackBall.createAttackBall({name="acid-ball-6-direction", directionOnly=true, type="projectile", pTint={r=0, g=1, b=1, a=0.5}, sTint={r=0, g=1, b=1, a=0.5}, softSmokeName="the-soft-smoke-rampant", damage=70, radius=2.5})
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -10,13 +10,13 @@ function droneUtils.makeDrone(name, attributes, biterResistances, biterAttack, b
|
||||
resistances[#resistances+1] = v
|
||||
end
|
||||
attributes.name = name
|
||||
|
||||
|
||||
local drone = {
|
||||
type = "combat-robot",
|
||||
name = n,
|
||||
icon = "__base__/graphics/icons/defender.png",
|
||||
icon_size = 32,
|
||||
flags = {"placeable-off-grid", "not-on-map", "not-repairable", "breaths-air"},
|
||||
flags = {"placeable-off-grid", "not-on-map", "not-repairable", "breaths-air", "hide-from-bonus-gui"},
|
||||
subgroup="capsule",
|
||||
order="e-a-a",
|
||||
max_health = attributes.health or 60,
|
||||
@ -187,7 +187,7 @@ function droneUtils.makeDrone(name, attributes, biterResistances, biterAttack, b
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return drone
|
||||
end
|
||||
|
||||
@ -222,7 +222,7 @@ function droneUtils.createCapsuleProjectile(name, attributes, entityName)
|
||||
-- if attributes.sourceEffect then
|
||||
-- actions[#actions+1] = attributes.sourceEffect(attributes)
|
||||
-- end
|
||||
|
||||
|
||||
local cap = {
|
||||
type = "projectile",
|
||||
name = n,
|
||||
|
@ -2,13 +2,75 @@ local smokeUtils = {}
|
||||
|
||||
-- module code
|
||||
|
||||
function smokeUtils.makeCloud(attributes, attack)
|
||||
local name = attributes.name .. "-cloud-rampant"
|
||||
|
||||
data:extend({
|
||||
{
|
||||
type = "smoke-with-trigger",
|
||||
name = name,
|
||||
flags = {"not-on-map"},
|
||||
show_when_smoke_off = true,
|
||||
animation =
|
||||
{
|
||||
filename = "__base__/graphics/entity/cloud/cloud-45-frames.png",
|
||||
flags = { "compressed" },
|
||||
priority = "low",
|
||||
width = 256,
|
||||
height = 256,
|
||||
frame_count = 45,
|
||||
animation_speed = 0.5,
|
||||
line_length = 7,
|
||||
scale = attributes.scale or 3,
|
||||
},
|
||||
slow_down_factor = attributes.slowdown or 0,
|
||||
affected_by_wind = attributes.wind,
|
||||
cyclic = true,
|
||||
duration = attributes.duration or 60 * 20,
|
||||
fade_away_duration = attributes.outDuration or 2 * 60,
|
||||
spread_duration = attributes.inDuration or 10,
|
||||
color = attributes.tint or { r = 0.2, g = 0.9, b = 0.2 },
|
||||
action = attack or
|
||||
{
|
||||
type = "direct",
|
||||
action_delivery =
|
||||
{
|
||||
type = "instant",
|
||||
target_effects =
|
||||
{
|
||||
type = "nested-result",
|
||||
action =
|
||||
{
|
||||
type = "area",
|
||||
radius = 11,
|
||||
entity_flags = {"breaths-air"},
|
||||
action_delivery =
|
||||
{
|
||||
type = "instant",
|
||||
target_effects =
|
||||
{
|
||||
type = "damage",
|
||||
damage = { amount = 8, type = "poison"}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
action_cooldown = attributes.cooldown or 30
|
||||
}
|
||||
})
|
||||
|
||||
return name
|
||||
end
|
||||
|
||||
function smokeUtils.makeSmokeWithGlow(attributes)
|
||||
local name = attributes.name .. "-glow-smoke-rampant"
|
||||
data:extend(
|
||||
{
|
||||
smokeUtils.makeSmokeBasic
|
||||
{
|
||||
name = name,
|
||||
name = name,
|
||||
color = attributes.smokeWithGlowTint,
|
||||
start_scale = 0.5,
|
||||
end_scale = 1,
|
||||
@ -16,7 +78,7 @@ function smokeUtils.makeSmokeWithGlow(attributes)
|
||||
spread_delay = 120,
|
||||
fade_away_duration = 90,
|
||||
fade_in_duration = 60,
|
||||
animation =
|
||||
animation =
|
||||
{
|
||||
filename = "__base__/graphics/entity/fire-smoke/fire-smoke.png",
|
||||
flags = { "compressed" },
|
||||
@ -30,7 +92,7 @@ function smokeUtils.makeSmokeWithGlow(attributes)
|
||||
priority = "high",
|
||||
animation_speed = 0.25,
|
||||
},
|
||||
glow_animation =
|
||||
glow_animation =
|
||||
{
|
||||
filename = "__base__/graphics/entity/fire-smoke/fire-smoke-glow.png",
|
||||
flags = { "compressed" },
|
||||
@ -55,7 +117,7 @@ function smokeUtils.makeSmokeWithoutGlow(attributes)
|
||||
data:extend({
|
||||
smokeUtils.makeSmokeBasic
|
||||
{
|
||||
name = name,
|
||||
name = name,
|
||||
color = attributes.smokeWithoutGlowTint,
|
||||
start_scale = 0.5,
|
||||
end_scale = 1,
|
||||
@ -63,7 +125,7 @@ function smokeUtils.makeSmokeWithoutGlow(attributes)
|
||||
spread_delay = 120,
|
||||
fade_away_duration = 90,
|
||||
fade_in_duration = 60,
|
||||
animation =
|
||||
animation =
|
||||
{
|
||||
filename = "__base__/graphics/entity/fire-smoke/fire-smoke.png",
|
||||
flags = { "compressed" },
|
||||
@ -77,7 +139,7 @@ function smokeUtils.makeSmokeWithoutGlow(attributes)
|
||||
priority = "high",
|
||||
animation_speed = 0.25,
|
||||
},
|
||||
}
|
||||
}
|
||||
})
|
||||
return name
|
||||
end
|
||||
@ -86,7 +148,7 @@ function smokeUtils.makeSmokeSoft(attributes)
|
||||
local name = attributes.name .. "-soft-smoke-rampant"
|
||||
data:extend({
|
||||
smokeUtils.makeSmokeBasic({
|
||||
name = name,
|
||||
name = name,
|
||||
color = attributes.softSmokeTint,
|
||||
start_scale = 0.5,
|
||||
end_scale = 1.2,
|
||||
@ -102,14 +164,14 @@ function smokeUtils.makeSmokeAddingFuel(attributes)
|
||||
local name = attributes.name .. "-adding-fuel-rampant"
|
||||
data:extend({
|
||||
smokeUtils.makeSmokeBasic({
|
||||
name = name,
|
||||
name = name,
|
||||
start_scale = 0.5,
|
||||
end_scale = 0.7,
|
||||
duration = 300,
|
||||
spread_delay = 120,
|
||||
fade_away_duration = 60,
|
||||
fade_in_duration = 60,
|
||||
animation =
|
||||
animation =
|
||||
{
|
||||
filename = "__base__/graphics/entity/fire-smoke/fire-smoke.png",
|
||||
flags = { "compressed" },
|
||||
|
11
settings.lua
11
settings.lua
@ -468,7 +468,16 @@ data:extend({
|
||||
name = "rampant-energyThiefEnemy",
|
||||
setting_type = "startup",
|
||||
default_value = true,
|
||||
order = "l[modifier]-x[unit]",
|
||||
order = "l[modifier]-z[unit]",
|
||||
per_user = false
|
||||
},
|
||||
|
||||
{
|
||||
type = "bool-setting",
|
||||
name = "rampant-poisonEnemy",
|
||||
setting_type = "startup",
|
||||
default_value = true,
|
||||
order = "l[modifier]-za[unit]",
|
||||
per_user = false
|
||||
},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user