diff --git a/gamedata/icontypes.lua b/gamedata/icontypes.lua index 93ea28f34c4..83563028573 100644 --- a/gamedata/icontypes.lua +++ b/gamedata/icontypes.lua @@ -3067,10 +3067,22 @@ local icontypes = { bitmap = "icons/mine.png", size = 0.55649996 }, - scavengerdroppodbeacon = { + scavbeacon_t1 = { + bitmap = "icons/beacon.png", + size = 1.25 + }, + scavbeacon_t2 = { + bitmap = "icons/beacon.png", + size = 1.5 + }, + scavbeacon_t3 = { bitmap = "icons/beacon.png", size = 1.74299991 }, + scavbeacon_t4 = { + bitmap = "icons/beacon.png", + size = 2 + }, scavengerdroppodfriendly = { bitmap = "icons/mine.png", size = 0.55649996 diff --git a/gamedata/scavengers/unitdef_post.lua b/gamedata/scavengers/unitdef_post.lua index 0baf36686b9..271932555c1 100644 --- a/gamedata/scavengers/unitdef_post.lua +++ b/gamedata/scavengers/unitdef_post.lua @@ -96,7 +96,7 @@ local function scavUnitDef_Post(name, uDef) -- Set autoheal of scav units if uDef.health then if not string.find(name, "armscavengerbossv2") then - if not string.find(name, "scavengerdroppodbeacon") then + if not string.find(name, "scavbeacon") then uDef.health = uDef.health * 1.25 uDef.hidedamage = true end diff --git a/language/en/units.json b/language/en/units.json index a2a83da38ca..3939efbc895 100644 --- a/language/en/units.json +++ b/language/en/units.json @@ -773,7 +773,10 @@ "raptor_antinuke": "Raptor Antinuke", "scavempspawner": "New Nuke Spawner", "scavengerdroppod": "Scavenger Droppod", - "scavengerdroppodbeacon": "Teleport Beacon", + "scavbeacon_t1": "Teleport Beacon Level 1", + "scavbeacon_t2": "Teleport Beacon Level 2", + "scavbeacon_t3": "Teleport Beacon Level 3", + "scavbeacon_t4": "Teleport Beacon Level 4", "scavengerdroppodfriendly": "Friendly Droppod", "scavfort": "Fortification Wall", "scavmist": "Mist", @@ -1568,7 +1571,10 @@ "scavdtl": "Lightning Turret", "scavempspawner": "Spawning a new nuke", "scavengerdroppod": "Scavenger Droppod", - "scavengerdroppodbeacon": "Calls in Scavenger Reinforcements", + "scavbeacon_t1": "Calls in Scavenger Reinforcements", + "scavbeacon_t2": "Calls in Scavenger Reinforcements", + "scavbeacon_t3": "Calls in Scavenger Reinforcements", + "scavbeacon_t4": "Calls in Scavenger Reinforcements", "scavengerdroppodfriendly": "Spawning droppod for reinforcements", "scavfort": "Advanced Fortification", "scavmist": "Scav Nano Cloud", diff --git a/luarules/configs/gui_soundeffects.lua b/luarules/configs/gui_soundeffects.lua index 7a389217aa5..67d841c9173 100644 --- a/luarules/configs/gui_soundeffects.lua +++ b/luarules/configs/gui_soundeffects.lua @@ -2813,10 +2813,11 @@ GUIUnitSoundEffects = { scavtacnukespawner = {}, lootdroppod_gold = {}, lootdroppod_printer = {}, - scavengerdroppod = {}, + scavbeacon_t1 = {}, + scavbeacon_t2 = {}, + scavbeacon_t3 = {}, + scavbeacon_t4 = {}, scavengerdroppodfriendly = {}, - scavempspawner = {}, - scavtacnukespawner = {}, scavmist = {}, scavmistxl = {}, scavmistxxl = {}, diff --git a/luarules/configs/scav_spawn_defs.lua b/luarules/configs/scav_spawn_defs.lua index dcdb9500d84..e3758f93fb3 100644 --- a/luarules/configs/scav_spawn_defs.lua +++ b/luarules/configs/scav_spawn_defs.lua @@ -14,8 +14,8 @@ local difficulty = difficulties[Spring.GetModOptions().scav_difficulty] local difficultyParameters = { [difficulties.veryeasy] = { - gracePeriod = 9 * Spring.GetModOptions().scav_graceperiodmult * 60, - bossTime = 55 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames + gracePeriod = 1 * Spring.GetModOptions().scav_graceperiodmult * 60, + bossTime = 65 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames scavSpawnRate = 240 * Spring.GetModOptions().scav_spawntimemult, burrowSpawnRate = 240 * Spring.GetModOptions().scav_spawntimemult, turretSpawnRate = 500 * Spring.GetModOptions().scav_spawntimemult, @@ -33,8 +33,8 @@ local difficultyParameters = { }, [difficulties.easy] = { - gracePeriod = 8 * Spring.GetModOptions().scav_graceperiodmult * 60, - bossTime = 50 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames + gracePeriod = 1 * Spring.GetModOptions().scav_graceperiodmult * 60, + bossTime = 60 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames scavSpawnRate = 200 * Spring.GetModOptions().scav_spawntimemult, burrowSpawnRate = 210 * Spring.GetModOptions().scav_spawntimemult, turretSpawnRate = 420 * Spring.GetModOptions().scav_spawntimemult, @@ -51,8 +51,8 @@ local difficultyParameters = { bossResistanceMult = 1.5, }, [difficulties.normal] = { - gracePeriod = 7 * Spring.GetModOptions().scav_graceperiodmult * 60, - bossTime = 45 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames + gracePeriod = 1 * Spring.GetModOptions().scav_graceperiodmult * 60, + bossTime = 55 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames scavSpawnRate = 180 * Spring.GetModOptions().scav_spawntimemult, burrowSpawnRate = 180 * Spring.GetModOptions().scav_spawntimemult, turretSpawnRate = 380 * Spring.GetModOptions().scav_spawntimemult, @@ -69,8 +69,8 @@ local difficultyParameters = { bossResistanceMult = 2, }, [difficulties.hard] = { - gracePeriod = 6 * Spring.GetModOptions().scav_graceperiodmult * 60, - bossTime = 40 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames + gracePeriod = 1 * Spring.GetModOptions().scav_graceperiodmult * 60, + bossTime = 50 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames scavSpawnRate = 160 * Spring.GetModOptions().scav_spawntimemult, burrowSpawnRate = 150 * Spring.GetModOptions().scav_spawntimemult, turretSpawnRate = 340 * Spring.GetModOptions().scav_spawntimemult, @@ -87,8 +87,8 @@ local difficultyParameters = { bossResistanceMult = 2.5, }, [difficulties.veryhard] = { - gracePeriod = 5 * Spring.GetModOptions().scav_graceperiodmult * 60, - bossTime = 35 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames + gracePeriod = 1 * Spring.GetModOptions().scav_graceperiodmult * 60, + bossTime = 45 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames scavSpawnRate = 140 * Spring.GetModOptions().scav_spawntimemult, burrowSpawnRate = 120 * Spring.GetModOptions().scav_spawntimemult, turretSpawnRate = 320 * Spring.GetModOptions().scav_spawntimemult, @@ -105,8 +105,8 @@ local difficultyParameters = { bossResistanceMult = 3, }, [difficulties.epic] = { - gracePeriod = 4 * Spring.GetModOptions().scav_graceperiodmult * 60, - bossTime = 30 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames + gracePeriod = 1 * Spring.GetModOptions().scav_graceperiodmult * 60, + bossTime = 40 * Spring.GetModOptions().scav_bosstimemult * 60, -- time at which the boss appears, frames scavSpawnRate = 120 * Spring.GetModOptions().scav_spawntimemult, burrowSpawnRate = 90 * Spring.GetModOptions().scav_spawntimemult, turretSpawnRate = 260 * Spring.GetModOptions().scav_spawntimemult, @@ -125,18 +125,16 @@ local difficultyParameters = { } -local burrowName = 'scavengerdroppodbeacon_scav' - --[[ So here we define lists of units from which behaviours tables and spawn tables are created dynamically. - We're setting up 5 levels representing the below: + We're setting up 7 levels representing the below: - Level 1 - Tech 0 - very early game crap, stuff that players usually build first in their games. pawns and grunts, scouts, etc. - Level 2 - Tech 1 - at this point we're introducing what remains of T1, basically late stage T1, but it's not T2 yet - Level 3 - Tech 2 - early/cheap Tech 2 units. we're putting expensive T2's later for smoother progression - Level 4 - Tech 2.5 - Here we're introducing all the expensive late T2 equipment. - Level 5 - Tech 3 - Here we introduce the cheaper T3 units - Level 6 - Tech 3.5/Tech 4 - The most expensive units in the game, spawned in the endgame, right before and alongside the final boss + Level 1 and 2 - Tech 0 - very early game crap, stuff that players usually build first in their games. pawns and grunts, scouts, etc. + Level 3 - Tech 1 - at this point we're introducing what remains of T1, basically late stage T1, but it's not T2 yet + Level 4 - Tech 2 - early/cheap Tech 2 units. we're putting expensive T2's later for smoother progression + Level 5 - Tech 2.5 - Here we're introducing all the expensive late T2 equipment. + Level 6 - Tech 3 - Here we introduce the cheaper T3 units + Level 7 - Tech 3.5/Tech 4 - The most expensive units in the game, spawned in the endgame, right before and alongside the final boss Now that we talked about tiers, let's talk about roles. There will be 3 of these for Land and Sea, and only one for Air because there we don't really introduce any behaviours. They're just sent to enemy on fight command. @@ -152,13 +150,25 @@ local burrowName = 'scavengerdroppodbeacon_scav' While it follows the 6 levels, the table is structured differently. You can set maximum of this turret you want to be spawned. ]] -local tierConfiguration = { -- Double for basic squads - [1] = {minAnger = 0, maxAnger = 25, maxSquadSize = 30}, - [2] = {minAnger = 10, maxAnger = 40, maxSquadSize = 20}, - [3] = {minAnger = 25, maxAnger = 60, maxSquadSize = 15}, - [4] = {minAnger = 40, maxAnger = 80, maxSquadSize = 7}, - [5] = {minAnger = 60, maxAnger = 500, maxSquadSize = 5}, - [6] = {minAnger = 80, maxAnger = 1000, maxSquadSize = 3}, +local tierConfiguration = { -- Double everything for basic squads + [1] = {minAnger = 0, maxAnger = 10, maxSquadSize = 1}, + [2] = {minAnger = 10, maxAnger = 25, maxSquadSize = 13}, + [3] = {minAnger = 20, maxAnger = 45, maxSquadSize = 11}, + [4] = {minAnger = 35, maxAnger = 65, maxSquadSize = 9}, + [5] = {minAnger = 45, maxAnger = 85, maxSquadSize = 7}, + [6] = {minAnger = 60, maxAnger = 500, maxSquadSize = 5}, + [7] = {minAnger = 80, maxAnger = 1000, maxSquadSize = 3}, +} + +---------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------- +---------------------------------------------------------------------------------------------- + +local BurrowUnitsList = { + ['scavbeacon_t1_scav'] = {minAnger = tierConfiguration[1].minAnger, maxAnger = tierConfiguration[3].maxAnger}, + ['scavbeacon_t2_scav'] = {minAnger = tierConfiguration[3].minAnger, maxAnger = tierConfiguration[5].maxAnger}, + ['scavbeacon_t3_scav'] = {minAnger = tierConfiguration[5].minAnger, maxAnger = tierConfiguration[7].maxAnger}, + ['scavbeacon_t4_scav'] = {minAnger = tierConfiguration[7].minAnger, maxAnger = tierConfiguration[7].maxAnger}, } ---------------------------------------------------------------------------------------------- @@ -182,6 +192,20 @@ local LandUnitsList = { ["legsh_scav"] = 1, }, [2] = { + --Armada + ["armflea_scav"] = 1, + ["armpw_scav"] = 1, + ["armfav_scav"] = 1, + ["armsh_scav"] = 1, + --Cortex + ["corak_scav"] = 1, + ["corfav_scav"] = 1, + ["corsh_scav"] = 1, + --Legion + ["leggob_scav"] = 1, + ["legsh_scav"] = 1, + }, + [3] = { --Armada ["armflash_scav"] = 1, ["armzapper_scav"] = 1, @@ -190,7 +214,7 @@ local LandUnitsList = { --Legion ["leghades_scav"] = 1, }, - [3] = { + [4] = { --Armada ["armlatnk_scav"] = 1, ["armamph_scav"] = 1, @@ -205,7 +229,7 @@ local LandUnitsList = { ["legmrv_scav"] = 1, ["legstr_scav"] = 1, }, - [4] = { + [5] = { --Armada --Cortex @@ -214,7 +238,7 @@ local LandUnitsList = { }, - [5] = { + [6] = { --Armada ["armpwt4_scav"] = 1, ["armmar_scav"] = 1, @@ -223,7 +247,7 @@ local LandUnitsList = { --Legion --N/A }, - [6] = { + [7] = { --Armada ["armraz_scav"] = 1, --Cortex @@ -245,6 +269,17 @@ local LandUnitsList = { ["leglob_scav"] = 1, }, [2] = { + --Armada + ["armham_scav"] = 1, + ["armpincer_scav"] = 1, + --Cortex + ["corthud_scav"] = 1, + ["corgarp_scav"] = 1, + --Legion + ["legcen_scav"] = 1, + ["leglob_scav"] = 1, + }, + [3] = { --Armada ["armwar_scav"] = 1, ["armstump_scav"] = 1, @@ -259,7 +294,7 @@ local LandUnitsList = { ["legkark_scav"] = 1, ["legner_scav"] = 1, }, - [3] = { + [4] = { --Armada ["armzeus_scav"] = 1, --Cortex @@ -269,7 +304,7 @@ local LandUnitsList = { ["legshot_scav"] = 1, }, - [4] = { + [5] = { --Armada ["armsnipe_scav"] = 1, ["armvader_scav"] = 1, @@ -291,7 +326,7 @@ local LandUnitsList = { ["leginc_scav"] = 1, ["legfloat_scav"] = 1, }, - [5] = { + [6] = { --Armada ["armassimilator_scav"] = 1, ["armmeatball_scav"] = 1, @@ -305,7 +340,7 @@ local LandUnitsList = { ["legpede_scav"] = 1, ["legkeres_scav"] = 1, }, - [6] = { + [7] = { --Armada ["armthor_scav"] = 1, ["armbanth_scav"] = 1, @@ -335,6 +370,18 @@ local LandUnitsList = { ["legbal_scav"] = 1, }, [2] = { + --Armada + ["armrock_scav"] = 1, + ["armjeth_scav"] = 1, + ["armah_scav"] = 1, + --Cortex + ["corstorm_scav"] = 1, + ["corcrash_scav"] = 1, + ["corah_scav"] = 1, + --Legion + ["legbal_scav"] = 1, + }, + [3] = { --Armada ["armart_scav"] = 1, ["armsam_scav"] = 1, @@ -350,7 +397,7 @@ local LandUnitsList = { ["legmh_scav"] = 1, ["legah_scav"] = 1, }, - [3] = { + [4] = { --Armada ["armfido_scav"] = 1, ["armaak_scav"] = 1, @@ -367,7 +414,7 @@ local LandUnitsList = { ["legbart_scav"] = 1, }, - [4] = { + [5] = { --Armada ["armfboy_scav"] = 1, ["armmanni_scav"] = 1, @@ -383,7 +430,7 @@ local LandUnitsList = { ["legmed_scav"] = 1, }, - [5] = { + [6] = { --Armada ["armvang_scav"] = 1, ["armdronecarryland_scav"] = 1, @@ -393,7 +440,7 @@ local LandUnitsList = { ["cormabm_scav"] = 1, --Legion }, - [6] = { + [7] = { --Armada --Cortex @@ -438,6 +485,23 @@ local LandUnitsList = { ["legotter_scav"] = 1, }, [3] = { + --Armada + ["armck_scav"] = 1, + ["armrectr_scav"] = 40, + ["armcv_scav"] = 1, + ["armch_scav"] = 1, + --Cortex + ["corck_scav"] = 1, + ["cornecro_scav"] = 40, + ["corcv_scav"] = 1, + ["corch_scav"] = 1, + --Legion + ["legcv_scav"] = 1, + ["legck_scav"] = 1, + ["legch_scav"] = 1, + ["legotter_scav"] = 1, + }, + [4] = { --Armada ["armrectr_scav"] = 40, ["armack_scav"] = 1, @@ -458,7 +522,7 @@ local LandUnitsList = { ["legacv_scav"] = 1, ["legack_scav"] = 1, }, - [4] = { + [5] = { --Armada ["armrectr_scav"] = 40, ["armack_scav"] = 1, @@ -479,7 +543,7 @@ local LandUnitsList = { ["legacv_scav"] = 1, ["legack_scav"] = 1, }, - [5] = { + [6] = { --Armada ["armrectr_scav"] = 40, ["armack_scav"] = 1, @@ -500,7 +564,7 @@ local LandUnitsList = { ["legacv_scav"] = 1, ["legack_scav"] = 1, }, - [6] = { + [7] = { --Armada ["armrectr_scav"] = 40, ["armack_scav"] = 1, @@ -531,203 +595,236 @@ local LandUnitsList = { local SeaUnitsList = { Raid = { [1] = { - --Armada - ["armdecade_scav"] = 1, - ["armsh_scav"] = 1, - --Cortex - ["coresupp_scav"] = 1, - ["corsh_scav"] = 1, - --Legion - ["legsh_scav"] = 1, + --Armada + ["armdecade_scav"] = 1, + ["armsh_scav"] = 1, + --Cortex + ["coresupp_scav"] = 1, + ["corsh_scav"] = 1, + --Legion + ["legsh_scav"] = 1, }, [2] = { - --Armada - --Cortex - --Legion + --Armada + ["armdecade_scav"] = 1, + ["armsh_scav"] = 1, + --Cortex + ["coresupp_scav"] = 1, + ["corsh_scav"] = 1, + --Legion + ["legsh_scav"] = 1, }, [3] = { - --Armada - ["armlship_scav"] = 1, - --Cortex - ["corfship_scav"] = 1, + --Armada + --Cortex + --Legion }, [4] = { - --Armada - ["armsubk_scav"] = 1, - --Cortex - ["corshark_scav"] = 1, + --Armada + ["armlship_scav"] = 1, + --Cortex + ["corfship_scav"] = 1, }, [5] = { - --Armada + --Armada + ["armsubk_scav"] = 1, + --Cortex + ["corshark_scav"] = 1, + }, + [6] = { + --Armada - --Cortex + --Cortex }, - [6] = { - --Armada + [7] = { + --Armada - --Cortex + --Cortex }, }, Assault = { [1] = { - --Armada + --Armada - --Cortex + --Cortex }, [2] = { - --Armada - ["armpship_scav"] = 1, - ["armroy_scav"] = 1, - ["armanac_scav"] = 1, - --Cortex - ["corpship_scav"] = 1, - ["corroy_scav"] = 1, - ["corsnap_scav"] = 1, - --Legion - ["legner_scav"] = 1, + --Armada + + --Cortex }, [3] = { - --Armada - ["armcrus_scav"] = 1, - --Cortex - ["corcrus_scav"] = 1, - ["corhal_scav"] = 1, + --Armada + ["armpship_scav"] = 1, + ["armroy_scav"] = 1, + ["armanac_scav"] = 1, + --Cortex + ["corpship_scav"] = 1, + ["corroy_scav"] = 1, + ["corsnap_scav"] = 1, + --Legion + ["legner_scav"] = 1, }, [4] = { - --Armada - ["armbats_scav"] = 1, - --Cortex - ["corbats_scav"] = 1, + --Armada + ["armcrus_scav"] = 1, + --Cortex + ["corcrus_scav"] = 1, + ["corhal_scav"] = 1, }, [5] = { - --Armada - ["armpshipt3_scav"] = 1, - ["armptt2_scav"] = 1, - --Cortex - ["corblackhy_scav"] = 1, + --Armada + ["armbats_scav"] = 1, + --Cortex + ["corbats_scav"] = 1, }, [6] = { - --Armada - ["armepoch_scav"] = 1, - ["armserpt3_scav"] = 1, - --Cortex - ["coresuppt3_scav"] = 1, + --Armada + ["armpshipt3_scav"] = 1, + ["armptt2_scav"] = 1, + --Cortex + ["corblackhy_scav"] = 1, + }, + [7] = { + --Armada + ["armepoch_scav"] = 1, + ["armserpt3_scav"] = 1, + --Cortex + ["coresuppt3_scav"] = 1, }, }, Support = { [1] = { - --Armada - ["armpt_scav"] = 1, - --Cortex - ["corpt_scav"] = 1, + --Armada + ["armpt_scav"] = 1, + --Cortex + ["corpt_scav"] = 1, }, [2] = { - --Armada - ["armsub_scav"] = 1, - ["armah_scav"] = 1, - ["armmh_scav"] = 1, - --Cortex - ["corsub_scav"] = 1, - ["corah_scav"] = 1, - ["cormh_scav"] = 1, - --Legion - ["legah_scav"] = 1, - ["legmh_scav"] = 1, + --Armada + ["armpt_scav"] = 1, + --Cortex + ["corpt_scav"] = 1, }, [3] = { - --Armada - ["armantiship_scav"] = 1, - ["armdronecarry_scav"] = 1, - ["armaas_scav"] = 1, - --Cortex - ["cordronecarry_scav"] = 1, - ["corantiship_scav"] = 1, - ["corarch_scav"] = 1, + --Armada + ["armsub_scav"] = 1, + ["armah_scav"] = 1, + ["armmh_scav"] = 1, + --Cortex + ["corsub_scav"] = 1, + ["corah_scav"] = 1, + ["cormh_scav"] = 1, + --Legion + ["legah_scav"] = 1, + ["legmh_scav"] = 1, }, [4] = { - --Armada - ["armserp_scav"] = 1, - ["armmship_scav"] = 1, - ["armsjam_scav"] = 1, - ["armtrident_scav"] = 1, - --Cortex - ["corssub_scav"] = 1, - ["cormship_scav"] = 1, - ["corsjam_scav"] = 1, - ["corsentinel_scav"] = 1, + --Armada + ["armantiship_scav"] = 1, + ["armdronecarry_scav"] = 1, + ["armaas_scav"] = 1, + --Cortex + ["cordronecarry_scav"] = 1, + ["corantiship_scav"] = 1, + ["corarch_scav"] = 1, }, [5] = { - --Armada + --Armada + ["armserp_scav"] = 1, + ["armmship_scav"] = 1, + ["armsjam_scav"] = 1, + ["armtrident_scav"] = 1, + --Cortex + ["corssub_scav"] = 1, + ["cormship_scav"] = 1, + ["corsjam_scav"] = 1, + ["corsentinel_scav"] = 1, + }, + [6] = { + --Armada - --Cortex + --Cortex }, - [6] = { - --Armada - ["armdecadet3_scav"] = 1, - --Cortex - ["corslrpc_scav"] = 1, + [7] = { + --Armada + ["armdecadet3_scav"] = 1, + --Cortex + ["corslrpc_scav"] = 1, }, }, Healer = { [1] = { - --Armada - ["armcs_scav"] = 1, - ["armrecl_scav"] = 1, - ["armch_scav"] = 1, - --Cortex - ["corcs_scav"] = 1, - ["correcl_scav"] = 1, - ["corch_scav"] = 1, - --Legion - ["legch_scav"] = 1, + --Armada + ["armcs_scav"] = 1, + ["armrecl_scav"] = 1, + ["armch_scav"] = 1, + --Cortex + ["corcs_scav"] = 1, + ["correcl_scav"] = 1, + ["corch_scav"] = 1, + --Legion + ["legch_scav"] = 1, }, [2] = { - --Armada - ["armcs_scav"] = 1, - ["armrecl_scav"] = 1, - ["armch_scav"] = 1, - --Cortex - ["corcs_scav"] = 1, - ["correcl_scav"] = 1, - ["corch_scav"] = 1, - --Legion - ["legch_scav"] = 1, + --Armada + ["armcs_scav"] = 1, + ["armrecl_scav"] = 1, + ["armch_scav"] = 1, + --Cortex + ["corcs_scav"] = 1, + ["correcl_scav"] = 1, + ["corch_scav"] = 1, + --Legion + ["legch_scav"] = 1, }, [3] = { - --Armada - ["armacsub_scav"] = 1, - ["armmls_scav"] = 1, - --Cortex - ["coracsub_scav"] = 1, - ["cormls_scav"] = 1, + --Armada + ["armcs_scav"] = 1, + ["armrecl_scav"] = 1, + ["armch_scav"] = 1, + --Cortex + ["corcs_scav"] = 1, + ["correcl_scav"] = 1, + ["corch_scav"] = 1, + --Legion + ["legch_scav"] = 1, }, [4] = { - --Armada - ["armacsub_scav"] = 1, - ["armmls_scav"] = 1, - --Cortex - ["coracsub_scav"] = 1, - ["cormls_scav"] = 1, + --Armada + ["armacsub_scav"] = 1, + ["armmls_scav"] = 1, + --Cortex + ["coracsub_scav"] = 1, + ["cormls_scav"] = 1, }, [5] = { - --Armada - ["armacsub_scav"] = 1, - ["armmls_scav"] = 1, - --Cortex - ["coracsub_scav"] = 1, - ["cormls_scav"] = 1, - + --Armada + ["armacsub_scav"] = 1, + ["armmls_scav"] = 1, + --Cortex + ["coracsub_scav"] = 1, + ["cormls_scav"] = 1, }, [6] = { - --Armada - ["armacsub_scav"] = 1, - ["armmls_scav"] = 1, - --Cortex - ["coracsub_scav"] = 1, - ["cormls_scav"] = 1, + --Armada + ["armacsub_scav"] = 1, + ["armmls_scav"] = 1, + --Cortex + ["coracsub_scav"] = 1, + ["cormls_scav"] = 1, + + }, + [7] = { + --Armada + ["armacsub_scav"] = 1, + ["armmls_scav"] = 1, + --Cortex + ["coracsub_scav"] = 1, + ["cormls_scav"] = 1, }, }, } @@ -738,97 +835,109 @@ local SeaUnitsList = { local AirUnitsList = { [1] = { - --Armada - ["armpeep_scav"] = 1, - ["armsehak_scav"]= 1, - --Cortex - ["corfink_scav"] = 1, - ["corbw_scav"] = 1, - ["corhunt_scav"] = 1, - --Legion - ["legfig_scav"] = 1, + --Armada + ["armpeep_scav"] = 1, + ["armsehak_scav"] = 1, + --Cortex + ["corfink_scav"] = 1, + ["corbw_scav"] = 1, + ["corhunt_scav"] = 1, + --Legion + ["legfig_scav"] = 1, }, [2] = { - --Armada - ["armca_scav"] = 1, - ["armfig_scav"] = 1, - ["armkam_scav"] = 1, - ["armthund_scav"] = 1, - ["armsfig_scav"] = 1, - ["armcsa_scav"] = 1, - --Cortex - ["corca_scav"] = 1, - ["corveng_scav"] = 1, - ["corshad_scav"] = 1, - ["corsfig_scav"] = 1, - ["corcsa_scav"] = 1, - --Legion - ["legca_scav"] = 1, - ["legmos_scav"] = 1, - ["legcib_scav"] = 1, - ["legkam_scav"] = 1, + --Armada + ["armpeep_scav"] = 1, + ["armsehak_scav"] = 1, + --Cortex + ["corfink_scav"] = 1, + ["corbw_scav"] = 1, + ["corhunt_scav"] = 1, + --Legion + ["legfig_scav"] = 1, }, [3] = { - --Armada - ["armaca_scav"] = 1, - ["armawac_scav"] = 1, - ["armsaber_scav"] = 1, - ["armseap_scav"] = 1, - ["armsb_scav"] = 1, - ["armlance_scav"] = 1, - --Cortex - ["coraca_scav"] = 1, - ["corawac_scav"] = 1, - ["corcut_scav"] = 1, - ["corsb_scav"] = 1, - ["corseap_scav"] = 1, - ["cortitan_scav"] = 1, - --Legion - ["legaca_scav"] = 1, - ["legwhisper_scav"] = 1, + --Armada + ["armca_scav"] = 1, + ["armfig_scav"] = 1, + ["armkam_scav"] = 1, + ["armthund_scav"] = 1, + ["armsfig_scav"] = 1, + ["armcsa_scav"] = 1, + --Cortex + ["corca_scav"] = 1, + ["corveng_scav"] = 1, + ["corshad_scav"] = 1, + ["corsfig_scav"] = 1, + ["corcsa_scav"] = 1, + --Legion + ["legca_scav"] = 1, + ["legmos_scav"] = 1, + ["legcib_scav"] = 1, + ["legkam_scav"] = 1, + }, [4] = { - --Armada - ["armhawk_scav"] = 1, - ["armbrawl_scav"] = 1, - ["armpnix_scav"] = 1, - ["armstil_scav"] = 1, - ["armblade_scav"] = 1, - ["armliche_scav"] = 1, - --Cortex - ["corvamp_scav"] = 1, - ["corape_scav"] = 1, - ["corhurc_scav"] = 1, - ["corcrw_scav"] = 1, - ["corcrwh_scav"] = 1, - --Legion - ["legstronghold_scav"] = 1, - ["legvenator_scav"] = 1, - ["legionnaire_scav"] = 1, - ["legnap_scav"] = 1, - ["legmineb_scav"] = 1, - ["legphoenix_scav"] = 1, - ["legfort_scav"] = 1, + --Armada + ["armaca_scav"] = 1, + ["armawac_scav"] = 1, + ["armsaber_scav"] = 1, + ["armseap_scav"] = 1, + ["armsb_scav"] = 1, + ["armlance_scav"] = 1, + --Cortex + ["coraca_scav"] = 1, + ["corawac_scav"] = 1, + ["corcut_scav"] = 1, + ["corsb_scav"] = 1, + ["corseap_scav"] = 1, + ["cortitan_scav"] = 1, + --Legion + ["legaca_scav"] = 1, + ["legwhisper_scav"] = 1, }, [5] = { - --Armada - ["armthundt4_scav"] = 1, - --Cortex - ["cordronecarryair_scav"] = 1, - --Legion - --N/A + --Armada + ["armhawk_scav"] = 1, + ["armbrawl_scav"] = 1, + ["armpnix_scav"] = 1, + ["armstil_scav"] = 1, + ["armblade_scav"] = 1, + ["armliche_scav"] = 1, + --Cortex + ["corvamp_scav"] = 1, + ["corape_scav"] = 1, + ["corhurc_scav"] = 1, + ["corcrw_scav"] = 1, + ["corcrwh_scav"] = 1, + --Legion + ["legstronghold_scav"] = 1, + ["legvenator_scav"] = 1, + ["legionnaire_scav"] = 1, + ["legnap_scav"] = 1, + ["legmineb_scav"] = 1, + ["legphoenix_scav"] = 1, + ["legfort_scav"] = 1, }, [6] = { - --Armada - ["armfepocht4_scav"] = 1, - ["armlichet4_scav"] = 1, - --Cortex - ["corfblackhyt4_scav"] = 1, - ["corcrwt4_scav"] = 1, - --Legion - --N/A + --Armada + ["armthundt4_scav"] = 1, + --Cortex + ["cordronecarryair_scav"] = 1, + --Legion + --N/A + }, + [7] = { + --Armada + ["armfepocht4_scav"] = 1, + ["armlichet4_scav"] = 1, + --Cortex + ["corfblackhyt4_scav"] = 1, + ["corcrwt4_scav"] = 1, + --Legion + --N/A }, } ---------------------------------------------------------------------------------------------- @@ -846,15 +955,17 @@ local Turrets = { ["leglht_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 10}, ["armrl_scav"] = {type = "antiair", surface = "land", spawnedPerWave = 0.1, maxExisting = 10}, ["corrl_scav"] = {type = "antiair", surface = "land", spawnedPerWave = 0.1, maxExisting = 10}, + ["cortl_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 4}, + ["armtl_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 4}, + ["armfrt_scav"] = {type = "antiair", surface = "sea", spawnedPerWave = 0.1, maxExisting = 2}, + ["corfrt_scav"] = {type = "antiair", surface = "sea", spawnedPerWave = 0.1, maxExisting = 2}, + }, + [2] = { --["cordl_scav"] = {type = "normal", surface = "mixed", spawnedPerWave = 0.1, maxExisting = 1}, --["armdl_scav"] = {type = "normal", surface = "mixed", spawnedPerWave = 0.1, maxExisting = 1}, --Sea Only ["armfhlt_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 5}, ["corfhlt_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 5}, - ["armfrt_scav"] = {type = "antiair", surface = "sea", spawnedPerWave = 0.1, maxExisting = 2}, - ["corfrt_scav"] = {type = "antiair", surface = "sea", spawnedPerWave = 0.1, maxExisting = 2}, - ["cortl_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 4}, - ["armtl_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 4}, ["armfrock_scav"] = {type = "antiair", surface = "sea", spawnedPerWave = 0.1, maxExisting = 2}, ["corfrock_scav"] = {type = "antiair", surface = "sea", spawnedPerWave = 0.1, maxExisting = 2}, ["corgplat_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 5}, @@ -882,7 +993,7 @@ local Turrets = { ["armfmkr_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 1}, ["corfmkr_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 1}, }, - [2] = { + [3] = { ["armbeamer_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 5}, ["corhllt_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 5}, ["legmg_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 5}, @@ -910,7 +1021,7 @@ local Turrets = { ["legrad_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, ["legjam_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, }, - [3] = { + [4] = { ["armcir_scav"] = {type = "antiair", surface = "land", spawnedPerWave = 0.1, maxExisting = 3}, ["corerad_scav"] = {type = "antiair", surface = "land", spawnedPerWave = 0.1, maxExisting = 3}, ["leglupara_scav"] = {type = "antiair", surface = "land", spawnedPerWave = 0.1, maxExisting = 3}, @@ -960,7 +1071,7 @@ local Turrets = { ["armuwmmm_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 1}, ["coruwmmm_scav"] = {type = "normal", surface = "sea", spawnedPerWave = 0.1, maxExisting = 1}, }, - [4] = { + [5] = { -- T2 popup arty ["armamb_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, ["cortoast_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, @@ -985,7 +1096,7 @@ local Turrets = { ["corscreamer_scav"] = {type = "antiair", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, ["leglraa_scav"] = {type = "antiair", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, }, - [5] = { + [6] = { -- nukes ["corsilo_scav"] = {type = "nuke", surface = "land", spawnedPerWave = 0.1, maxExisting = 3}, ["armsilo_scav"] = {type = "nuke", surface = "land", spawnedPerWave = 0.1, maxExisting = 3}, @@ -999,7 +1110,7 @@ local Turrets = { ["armafus_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, ["corafus_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 2}, }, - [6] = { + [7] = { --Epic Bulwark and Pulsar/rag/cal ["armannit3_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 3}, ["cordoomt3_scav"] = {type = "normal", surface = "land", spawnedPerWave = 0.1, maxExisting = 3}, @@ -1380,46 +1491,46 @@ for tier, _ in pairs(AirUnitsList) do end ------Tier 1 0-25% (Land and Air) -addNewSquad({ type = "healerLand", minAnger = tierConfiguration[1].minAnger, units = { "20 armrectr_scav","20 cornecro_scav",}, weight = 40, maxAnger = 1000}) --Rezzers/Entire Game +addNewSquad({ type = "healerLand", minAnger = tierConfiguration[2].minAnger, units = { "20 armrectr_scav","20 cornecro_scav",}, weight = 40, maxAnger = 1000}) --Rezzers/Entire Game --Land -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[1].minAnger, units = { "20 armfav_scav","20 corfav_scav",}, weight = 6, maxAnger = tierConfiguration[1].maxAnger}) --Rovers/Whole Tier Length -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[1].minAnger, units = { "6 armflash_scav","6 corgator_scav","6 leghelios_scav",}, weight = 4, maxAnger = tierConfiguration[1].maxAnger}) --T1 Veh Raid -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[2].minAnger, units = { "5 armstump_scav","5 corraid_scav","5 leggat_scav",}, weight = 4, maxAnger = tierConfiguration[2].maxAnger}) --T1 Veh Assault -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[2].minAnger, units = { "2 armjanus_scav","2 corlevlr_scav","2 legrail_scav",}, weight = 4, maxAnger = tierConfiguration[2].maxAnger}) --T1 Veh Unique -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[2].minAnger, units = { "1 armart_scav","2 armsam_scav","1 corwolv_scav","2 cormist_scav","2 legbar_scav"}, weight = 4, maxAnger = tierConfiguration[2].maxAnger}) --T1 Arty/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[2].minAnger, units = { "20 armfav_scav","20 corfav_scav",}, weight = 6, maxAnger = tierConfiguration[2].maxAnger}) --Rovers/Whole Tier Length +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[2].minAnger, units = { "6 armflash_scav","6 corgator_scav","6 leghelios_scav",}, weight = 4, maxAnger = tierConfiguration[2].maxAnger}) --T1 Veh Raid +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[3].minAnger, units = { "5 armstump_scav","5 corraid_scav","5 leggat_scav",}, weight = 4, maxAnger = tierConfiguration[3].maxAnger}) --T1 Veh Assault +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[3].minAnger, units = { "2 armjanus_scav","2 corlevlr_scav","2 legrail_scav",}, weight = 4, maxAnger = tierConfiguration[3].maxAnger}) --T1 Veh Unique +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[3].minAnger, units = { "1 armart_scav","2 armsam_scav","1 corwolv_scav","2 cormist_scav","2 legbar_scav"}, weight = 4, maxAnger = tierConfiguration[3].maxAnger}) --T1 Arty/AA --air -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[1].minAnger, units = { "3 armpeep_scav","3 corfink_scav","9 legfig_scav",}, weight = 4, maxAnger = tierConfiguration[1].maxAnger}) --T1 Air Scouts -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[2].minAnger, units = { "12 corbw_scav",}, weight = 4, maxAnger = tierConfiguration[2].maxAnger}) --Bladewings -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[2].minAnger, units = { "20 armfig_scav","20 corveng_scav",}, weight = 4, maxAnger = tierConfiguration[2].maxAnger}) --Fighters -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[2].minAnger, units = { "12 armthund_scav","12 corshad_scav","5 legcib_scav",}, weight = 4, maxAnger = tierConfiguration[2].maxAnger}) --Bombers +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[2].minAnger, units = { "3 armpeep_scav","3 corfink_scav","9 legfig_scav",}, weight = 4, maxAnger = tierConfiguration[2].maxAnger}) --T1 Air Scouts +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[3].minAnger, units = { "12 corbw_scav",}, weight = 4, maxAnger = tierConfiguration[3].maxAnger}) --Bladewings +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[3].minAnger, units = { "20 armfig_scav","20 corveng_scav",}, weight = 4, maxAnger = tierConfiguration[3].maxAnger}) --Fighters +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[3].minAnger, units = { "12 armthund_scav","12 corshad_scav","5 legcib_scav",}, weight = 4, maxAnger = tierConfiguration[3].maxAnger}) --Bombers ------Tier 2 25-60% -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[3].minAnger, units = { "10 armfav_scav","10 corfav_scav","25 armzapper_scav",}, weight = 6, maxAnger = tierConfiguration[3].maxAnger}) --Rover and EMP Rover/Whole Tier Length +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "10 armfav_scav","10 corfav_scav","25 armzapper_scav",}, weight = 6, maxAnger = tierConfiguration[4].maxAnger}) --Rover and EMP Rover/Whole Tier Length --Land -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[3].minAnger, units = { "6 armlatnk_scav","6 cortorch_scav","6 legmrv_scav",}, weight = 4, maxAnger = tierConfiguration[3].maxAnger}) --T2 Veh Raid -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[3].minAnger, units = { "6 armbull_scav","6 correap_scav","1 corgol_scav","5 legsco_scav","2 armyork_scav","2 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[3].maxAnger}) --T2 Veh Assault/AA -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "2 armmanni_scav","2 corban_scav","1 legvcarry_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Veh Unique -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "3 armmart_scav","1 armmerl_scav","1 armyork_scav","3 cormart_scav","1 corvroc_scav","1 corsent_scav","1 leginf_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Arty/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "6 armlatnk_scav","6 cortorch_scav","6 legmrv_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Veh Raid +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[4].minAnger, units = { "6 armbull_scav","6 correap_scav","1 corgol_scav","5 legsco_scav","2 armyork_scav","2 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Veh Assault/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "2 armmanni_scav","2 corban_scav","1 legvcarry_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T2 Veh Unique +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "3 armmart_scav","1 armmerl_scav","1 armyork_scav","3 cormart_scav","1 corvroc_scav","1 corsent_scav","1 leginf_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T2 Arty/AA --air -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[4].minAnger, units = { "3 armawac_scav","3 corawac_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Air Scouts -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[4].minAnger, units = { "2 armstil_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --EMP Bombers -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[4].minAnger, units = { "20 armhawk_scav","20 corvamp_scav",}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --Fighters -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[4].minAnger, units = { "15 armblade_scav","15 armbrawl_scav","1 legfort_scav","1 corcrw_scav", "1 corcrwh_scav","15 corape_scav"}, weight = 4, maxAnger = tierConfiguration[4].maxAnger}) --T2 Gunships +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[5].minAnger, units = { "3 armawac_scav","3 corawac_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T2 Air Scouts +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[5].minAnger, units = { "2 armstil_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --EMP Bombers +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[5].minAnger, units = { "20 armhawk_scav","20 corvamp_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --Fighters +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[5].minAnger, units = { "15 armblade_scav","15 armbrawl_scav","1 legfort_scav","1 corcrw_scav", "1 corcrwh_scav","15 corape_scav"}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T2 Gunships ------Tier 3 60-80% --Dilluters -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "15 armfav_scav","15 corfav_scav",}, weight = 8, maxAnger = tierConfiguration[5].maxAnger}) --Rover Whole Tier Length -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "6 cortorch_scav","6 legmrv_scav",}, weight = 3, maxAnger = tierConfiguration[5].maxAnger}) --T2 Veh Raid +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "15 armfav_scav","15 corfav_scav",}, weight = 8, maxAnger = tierConfiguration[6].maxAnger}) --Rover Whole Tier Length +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "6 cortorch_scav","6 legmrv_scav",}, weight = 3, maxAnger = tierConfiguration[6].maxAnger}) --T2 Veh Raid --Land -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "12 armmar_scav",}, weight = 3, maxAnger = tierConfiguration[5].maxAnger}) --T3 Raid -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "6 armmeatball_scav","6 armassimilator_scav","2 armyork_scav","2 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T3 Assault/AA -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "6 corshiva_scav","2 armraz_scav","1 legpede_scav","1 armyork_scav","1 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T3 Assault/AA -addNewSquad({ type = "specialLand", minAnger = tierConfiguration[5].minAnger, units = { "2 armvang_scav","2 corcat_scav","1 armyork_scav","1 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T3 Arty/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "12 armmar_scav",}, weight = 3, maxAnger = tierConfiguration[6].maxAnger}) --T3 Raid +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "6 armmeatball_scav","6 armassimilator_scav","2 armyork_scav","2 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Assault/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "6 corshiva_scav","2 armraz_scav","1 legpede_scav","1 armyork_scav","1 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Assault/AA +addNewSquad({ type = "specialLand", minAnger = tierConfiguration[6].minAnger, units = { "2 armvang_scav","2 corcat_scav","1 armyork_scav","1 corsent_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T3 Arty/AA --air -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[5].minAnger, units = { "40 armfig_scav","40 corveng_scav",}, weight = 4, maxAnger = tierConfiguration[5].maxAnger}) --T2 Fighters -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[5].minAnger, units = { "15 armblade_scav","15 armbrawl_scav","1 legfort_scav","1 corcrw_scav", "1 corcrwh_scav","15 corape_scav"}, weight = 2, maxAnger = tierConfiguration[5].maxAnger}) --T2 Gunships +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[6].minAnger, units = { "40 armfig_scav","40 corveng_scav",}, weight = 4, maxAnger = tierConfiguration[6].maxAnger}) --T2 Fighters +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[6].minAnger, units = { "15 armblade_scav","15 armbrawl_scav","1 legfort_scav","1 corcrw_scav", "1 corcrwh_scav","15 corape_scav"}, weight = 2, maxAnger = tierConfiguration[6].maxAnger}) --T2 Gunships ------Tier 4 80%+ -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[6].minAnger, units = { "80 armfig_scav","80 corveng_scav",}, weight = 5, maxAnger = tierConfiguration[6].maxAnger}) --T2 Fighters -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[6].minAnger, units = { "10 armfepocht4_scav",}, weight = 1, maxAnger = tierConfiguration[6].maxAnger}) --Armada Flying Flagships -addNewSquad({ type = "specialAir", minAnger = tierConfiguration[6].minAnger, units = { "10 corfblackhyt4_scav",}, weight = 1, maxAnger = tierConfiguration[6].maxAnger}) --Cortex Flying Flagships +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[7].minAnger, units = { "80 armfig_scav","80 corveng_scav",}, weight = 5, maxAnger = tierConfiguration[7].maxAnger}) --T2 Fighters +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[7].minAnger, units = { "10 armfepocht4_scav",}, weight = 1, maxAnger = tierConfiguration[7].maxAnger}) --Armada Flying Flagships +addNewSquad({ type = "specialAir", minAnger = tierConfiguration[7].minAnger, units = { "10 corfblackhyt4_scav",}, weight = 1, maxAnger = tierConfiguration[7].maxAnger}) --Cortex Flying Flagships -- evocoms --addNewSquad({ type = "specialLand", minAnger = 0, units = { "2 armcom_scav",}, weight = 1, maxAnger = 20}) @@ -1559,8 +1670,7 @@ local config = { -- Don't touch this! ------------------------------------------ useScum = useScum, difficulty = difficulty, difficulties = difficulties, - burrowName = burrowName, -- burrow unit name - burrowDef = UnitDefNames[burrowName].id, + burrowUnitsList = BurrowUnitsList, -- burrow unit name scavSpawnMultiplier = Spring.GetModOptions().scav_spawncountmult, burrowSpawnType = Spring.GetModOptions().scav_scavstart, swarmMode = Spring.GetModOptions().scav_swarmmode, diff --git a/luarules/gadgets/gfx_raptor_scum_gl4.lua b/luarules/gadgets/gfx_raptor_scum_gl4.lua index 59da34f8e4b..5ff1a212bfe 100644 --- a/luarules/gadgets/gfx_raptor_scum_gl4.lua +++ b/luarules/gadgets/gfx_raptor_scum_gl4.lua @@ -97,7 +97,10 @@ if gadgetHandler:IsSyncedCode() then raptor_turret_antinuke_t2_v1 = {radius = 512, growthrate = 0.2}, raptor_turret_meteor_t4_v1 = {radius = 1536, growthrate = 0.8}, - scavengerdroppodbeacon_scav = {radius = 800, growthrate = 0.8}, + scavbeacon_t1_scav = {radius = 400, growthrate = 0.4}, + scavbeacon_t2_scav = {radius = 600, growthrate = 0.6}, + scavbeacon_t3_scav = {radius = 800, growthrate = 0.8}, + scavbeacon_t4_scav = {radius = 1000, growthrate = 1}, } for unitDefName, scumParams in pairs(scumGenerators) do if UnitDefNames[unitDefName] then diff --git a/luarules/gadgets/pve_boss_drones.lua b/luarules/gadgets/pve_boss_drones.lua index cd3e9bc3ab1..a3b18a2c428 100644 --- a/luarules/gadgets/pve_boss_drones.lua +++ b/luarules/gadgets/pve_boss_drones.lua @@ -698,7 +698,38 @@ local unitListNames = { spawnTimer = 4, }, }, - ["scavengerdroppodbeacon_scav"] = { + ["scavbeacon_t1_scav"] = { + [1] = { + name = "scavmist_scav", + type = "ground", + spawnRadius = 100, + fightRadius = 750, + spawnedPerWave = 1, + maxAllowed = 4, + spawnTimer = 40, + }, + }, + ["scavbeacon_t2_scav"] = { + [1] = { + name = "scavmist_scav", + type = "ground", + spawnRadius = 100, + fightRadius = 750, + spawnedPerWave = 1, + maxAllowed = 2, + spawnTimer = 20, + }, + [2] = { + name = "scavmistxl_scav", + type = "ground", + spawnRadius = 100, + fightRadius = 750, + spawnedPerWave = 1, + maxAllowed = 4, + spawnTimer = 40, + }, + }, + ["scavbeacon_t3_scav"] = { [1] = { name = "scavmist_scav", type = "ground", @@ -727,6 +758,35 @@ local unitListNames = { spawnTimer = 40, }, }, + ["scavbeacon_t4_scav"] = { + [1] = { + name = "scavmist_scav", + type = "ground", + spawnRadius = 100, + fightRadius = 750, + spawnedPerWave = 1, + maxAllowed = 2, + spawnTimer = 10, + }, + [2] = { + name = "scavmistxl_scav", + type = "ground", + spawnRadius = 100, + fightRadius = 750, + spawnedPerWave = 1, + maxAllowed = 4, + spawnTimer = 20, + }, + [3] = { + name = "scavmistxxl_scav", + type = "ground", + spawnRadius = 100, + fightRadius = 750, + spawnedPerWave = 1, + maxAllowed = 8, + spawnTimer = 40, + }, + }, } -- convert unitname -> unitDefID local unitList = {} diff --git a/luarules/gadgets/pve_supply_drops.lua b/luarules/gadgets/pve_supply_drops.lua index 2a379d5ba0c..dfe2ef67e4b 100644 --- a/luarules/gadgets/pve_supply_drops.lua +++ b/luarules/gadgets/pve_supply_drops.lua @@ -282,7 +282,7 @@ function gadget:UnitDestroyed(unitID, unitDefID, unitTeam) break end end - if UnitDefs[unitDefID].name == "scavengerdroppodbeacon_scav" then + if string.find(UnitDefs[unitDefID].name, "scavbeacon") then if math.random() <= 0.33 then local posx, posy, posz = Spring.GetUnitPosition(unitID) SpawnLootbox(posx, posy, posz) diff --git a/luarules/gadgets/scav_lootbox_collector.lua b/luarules/gadgets/scav_lootbox_collector.lua index cef828080b9..c5090317a8a 100644 --- a/luarules/gadgets/scav_lootbox_collector.lua +++ b/luarules/gadgets/scav_lootbox_collector.lua @@ -43,8 +43,11 @@ for unitDefName, tier in pairs({lootboxbronze_scav = 1, lootboxsilver_scav = 1, end local spawnerList = {} -if UnitDefNames["scavengerdroppodbeacon_scav"] then - spawnerList[UnitDefNames["scavengerdroppodbeacon_scav"].id] = true +if UnitDefNames["scavbeacon_t1_scav"] then + spawnerList[UnitDefNames["scavbeacon_t1_scav"].id] = true + spawnerList[UnitDefNames["scavbeacon_t2_scav"].id] = true + spawnerList[UnitDefNames["scavbeacon_t3_scav"].id] = true + spawnerList[UnitDefNames["scavbeacon_t4_scav"].id] = true end local teams = Spring.GetTeamList() diff --git a/luarules/gadgets/scav_spawner_defense.lua b/luarules/gadgets/scav_spawner_defense.lua index 522b0382272..45700304230 100644 --- a/luarules/gadgets/scav_spawner_defense.lua +++ b/luarules/gadgets/scav_spawner_defense.lua @@ -845,9 +845,14 @@ if gadgetHandler:IsSyncedCode() then end if canSpawnBurrow then - local burrowID = CreateUnit(config.burrowName, spawnPosX, spawnPosY, spawnPosZ, mRandom(0,3), scavTeamID) - if burrowID then - SetupBurrow(burrowID, spawnPosX, spawnPosY, spawnPosZ) + for name,data in pairs(config.burrowUnitsList) do + if math.random() <= config.spawnChance and data.minAnger < math.max(1, techAnger) and data.maxAnger > math.max(1, techAnger) then + local burrowID = CreateUnit(name, spawnPosX, spawnPosY, spawnPosZ, mRandom(0,3), scavTeamID) + if burrowID then + SetupBurrow(burrowID, spawnPosX, spawnPosY, spawnPosZ) + break + end + end end else timeOfLastSpawn = GetGameSeconds() @@ -977,9 +982,17 @@ if gadgetHandler:IsSyncedCode() then local waveCommanders = {} local waveCommanderCount = 0 - if waveParameters.baseCooldown <= 0 then + if waveParameters.baseCooldown <= 0 or math.max(1, techAnger) < config.tierConfiguration[2].minAnger then -- special waves - if techAnger > config.airStartAnger and waveParameters.airWave.cooldown <= 0 and mRandom() <= config.spawnChance then + if math.max(1, techAnger) < config.tierConfiguration[2].minAnger then + + waveParameters.waveSizeMultiplier = math.min(waveParameters.waveSizeMultiplier, math.max(1, techAnger)*0.1) + waveParameters.waveTimeMultiplier = math.min(waveParameters.waveTimeMultiplier, math.max(1, techAnger)*0.1) + + waveParameters.waveAirPercentage = 40 + waveParameters.waveSpecialPercentage = 0 + + elseif techAnger > config.airStartAnger and waveParameters.airWave.cooldown <= 0 and mRandom() <= config.spawnChance then waveParameters.baseCooldown = mRandom(0,2) waveParameters.airWave.cooldown = mRandom(0,10) @@ -1611,7 +1624,7 @@ if gadgetHandler:IsSyncedCode() then createUnitQueue = {} end - if HumanTechLevel >= 2 and techAnger < config.tierConfiguration[3].minAnger then -- Early T2 + if HumanTechLevel >= 2 and techAnger < config.tierConfiguration[4].minAnger then -- Early T2 HumanTechLevelPenalty = HumanTechLevelPenalty + 0.0001 end @@ -1825,7 +1838,7 @@ if gadgetHandler:IsSyncedCode() then function gadget:UnitDestroyed(unitID, unitDefID, unitTeam, attackerID) if unitTeam == scavTeamID then - if unitDefID == config.burrowDef then + if string.find(UnitDefs[unitDefID].name, "scavbeacon") then if mRandom() <= config.spawnChance then spawnCreepStructuresWave() end @@ -1897,9 +1910,7 @@ if gadgetHandler:IsSyncedCode() then end end - if unitDefID == config.burrowDef and not gameOver then - local kills = GetGameRulesParam(config.burrowName .. "Kills") or 0 - SetGameRulesParam(config.burrowName .. "Kills", kills + 1) + if string.find(UnitDefs[unitDefID].name, "scavbeacon") and not gameOver then burrows[unitID] = nil if attackerID and Spring.GetUnitTeam(attackerID) ~= scavTeamID then diff --git a/luarules/gadgets/unit_transport_dies_load_dies.lua b/luarules/gadgets/unit_transport_dies_load_dies.lua index 4805b560819..bc0d6a7e2f7 100644 --- a/luarules/gadgets/unit_transport_dies_load_dies.lua +++ b/luarules/gadgets/unit_transport_dies_load_dies.lua @@ -31,7 +31,7 @@ if not gadgetHandler:IsSyncedCode() then return end local isCommando = {} for udid, ud in pairs(UnitDefs) do - if string.find(ud.name, 'cormando') or string.find(ud.name, 'legcomt2off') or string.find(ud.name, 'lootbox') or string.find(ud.name, 'scavengerdroppodbeacon_scav') then + if string.find(ud.name, 'cormando') or string.find(ud.name, 'legcomt2off') or string.find(ud.name, 'lootbox') or string.find(ud.name, 'scavbeacon') then isCommando[udid] = true end if ud.customParams.subfolder and ud.customParams.subfolder == "other/hats" then diff --git a/luaui/Widgets/gui_defenserange.lua b/luaui/Widgets/gui_defenserange.lua index 08859bbf2a9..c1084f40a2c 100644 --- a/luaui/Widgets/gui_defenserange.lua +++ b/luaui/Widgets/gui_defenserange.lua @@ -115,7 +115,10 @@ modConfig["BYAR"]["unitList"] = { leglraa = { weapons = { 2 } }, -- t2 aa railgun -- SCAVENGERS - scavengerdroppodbeacon_scav = { weapons = { 1 } }, + scavbeacon_t1_scav = { weapons = { 1 } }, + scavbeacon_t2_scav = { weapons = { 1 } }, + scavbeacon_t3_scav = { weapons = { 1 } }, + scavbeacon_t4_scav = { weapons = { 1 } }, armannit3 = { weapons = { 1 } }, --armbotrail = { weapons = { 1 } }, diff --git a/luaui/Widgets/gui_defenserange_gl4.lua b/luaui/Widgets/gui_defenserange_gl4.lua index e2eb6679dd9..ccb2d0cf2f2 100644 --- a/luaui/Widgets/gui_defenserange_gl4.lua +++ b/luaui/Widgets/gui_defenserange_gl4.lua @@ -253,7 +253,10 @@ local function initUnitList() ['corantiship'] = { weapons = { 3 } }, -- SCAVENGERS - ['scavengerdroppodbeacon_scav'] = { weapons = { 1 } }, + ['scavbeacon_t1_scav'] = { weapons = { 1 } }, + ['scavbeacon_t2_scav'] = { weapons = { 1 } }, + ['scavbeacon_t3_scav'] = { weapons = { 1 } }, + ['scavbeacon_t4_scav'] = { weapons = { 1 } }, ['armannit3'] = { weapons = { 1 } }, ['armminivulc'] = { weapons = { 1 } }, diff --git a/luaui/configs/DeferredLightsGL4config.lua b/luaui/configs/DeferredLightsGL4config.lua index d6b611ade6d..93160dcb451 100644 --- a/luaui/configs/DeferredLightsGL4config.lua +++ b/luaui/configs/DeferredLightsGL4config.lua @@ -17150,7 +17150,202 @@ local unitLights = { lifetime = 0, sustain = 0, animtype = 0}, }, }, - ['scavengerdroppodbeacon'] = { + ['scavbeacon_t1'] = { + blinka = { + lightType = 'point', + pieceName = 'blink1', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 1}, + }, + blinkb = { + lightType = 'point', + pieceName = 'blink2', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkc = { + lightType = 'point', + pieceName = 'blink3', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkd = { + lightType = 'point', + pieceName = 'blink4', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinktop = { + lightType = 'point', + pieceName = 'blinktop', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 100, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkinside = { + lightType = 'point', + pieceName = 'blinkinside', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 100, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + emit = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 150, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['scavbeacon_t2'] = { + blinka = { + lightType = 'point', + pieceName = 'blink1', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 1}, + }, + blinkb = { + lightType = 'point', + pieceName = 'blink2', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkc = { + lightType = 'point', + pieceName = 'blink3', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkd = { + lightType = 'point', + pieceName = 'blink4', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinktop = { + lightType = 'point', + pieceName = 'blinktop', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 100, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkinside = { + lightType = 'point', + pieceName = 'blinkinside', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 100, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + emit = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 150, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['scavbeacon_t3'] = { + blinka = { + lightType = 'point', + pieceName = 'blink1', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 1}, + }, + blinkb = { + lightType = 'point', + pieceName = 'blink2', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkc = { + lightType = 'point', + pieceName = 'blink3', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkd = { + lightType = 'point', + pieceName = 'blink4', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 50, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinktop = { + lightType = 'point', + pieceName = 'blinktop', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 100, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + blinkinside = { + lightType = 'point', + pieceName = 'blinkinside', + lightConfig = { posx = 0, posy = 1, posz = 0, radius = 100, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.85000002, + modelfactor = 1, specular = 1, scattering = 1, lensflare = 10, + lifetime = 0, sustain = 0, animtype = 0}, + }, + emit = { + lightType = 'point', + pieceName = 'emit', + lightConfig = { posx = 0, posy = 0, posz = 0, radius = 150, + color2r = 0, color2g = 0, color2b = 0, colortime = 0, + r = -1, g = 1, b = 1, a = 0.5, + modelfactor = 0.1, specular = 1.6, scattering = 1.5, lensflare = 0, + lifetime = 0, sustain = 0, animtype = 0}, + }, + }, + ['scavbeacon_t4'] = { blinka = { lightType = 'point', pieceName = 'blink1', diff --git a/modoptions.lua b/modoptions.lua index af0732839a9..892aecfe3d6 100644 --- a/modoptions.lua +++ b/modoptions.lua @@ -737,7 +737,7 @@ local options = { name = "Spawner Placement", desc = "Control where spawners appear", type = "list", - def = "initialbox", + def = "avoid", section = "scav_defense_options", items = { { key = "avoid", name = "Avoid Players", desc="Burrows avoid player units" }, @@ -801,6 +801,7 @@ local options = { max = 3, step = 0.1, section = "scav_defense_options", + hidden = true, }, --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- diff --git a/objects3d/scavs/scavbeacon_t1.s3o b/objects3d/scavs/scavbeacon_t1.s3o new file mode 100644 index 00000000000..65ff0e900f3 Binary files /dev/null and b/objects3d/scavs/scavbeacon_t1.s3o differ diff --git a/objects3d/scavs/scavbeacon_t2.s3o b/objects3d/scavs/scavbeacon_t2.s3o new file mode 100644 index 00000000000..6bf7d8d10e5 Binary files /dev/null and b/objects3d/scavs/scavbeacon_t2.s3o differ diff --git a/objects3d/scavs/scavbeaconprotargun.s3o b/objects3d/scavs/scavbeacon_t3.s3o similarity index 100% rename from objects3d/scavs/scavbeaconprotargun.s3o rename to objects3d/scavs/scavbeacon_t3.s3o diff --git a/objects3d/scavs/scavbeacon_t4.s3o b/objects3d/scavs/scavbeacon_t4.s3o new file mode 100644 index 00000000000..8ccd5c3c4ee Binary files /dev/null and b/objects3d/scavs/scavbeacon_t4.s3o differ diff --git a/scripts/scavs/scavbeaconprotargun.bos b/scripts/scavs/scavbeacon.bos similarity index 100% rename from scripts/scavs/scavbeaconprotargun.bos rename to scripts/scavs/scavbeacon.bos diff --git a/scripts/scavs/scavbeaconprotargun.cob b/scripts/scavs/scavbeacon.cob similarity index 100% rename from scripts/scavs/scavbeaconprotargun.cob rename to scripts/scavs/scavbeacon.cob diff --git a/units/Scavengers/Buildings/Utility/scavbeacon_t1.lua b/units/Scavengers/Buildings/Utility/scavbeacon_t1.lua new file mode 100644 index 00000000000..c37586dae18 --- /dev/null +++ b/units/Scavengers/Buildings/Utility/scavbeacon_t1.lua @@ -0,0 +1,107 @@ +return { + scavbeacon_t1 = { + maxacc = 0, + activatewhenbuilt = true, + autoheal = 10, + blocking = false, + maxdec = 0, + energycost = 5000, + metalcost = 500, + buildpic = "scavengers/SCAVBEACON.DDS", + buildtime = 5000, + category = "ALL NOTLAND NOTSUB NOWEAPON NOTSHIP NOTAIR NOTHOVER SURFACE EMPABLE", + canmove = false, + canSelfDestruct = false, + capturable = true, + cantbetransported = true, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "32 32 32", + collisionvolumetype = "CylY", + energystorage = 20000, + metalstorage = 2000, + energymake = 200, + metalmake = 2, + explodeas = "advmetalmaker", + floater = false, + footprintx = 0, + footprintz = 0, + hidedamage = true, + idleautoheal = 10, + idletime = 90, + levelground = false, + mass = 10000, + health = 5000, + speed = 0.0, + noautofire = false, + objectname = "scavs/scavbeacon_t1.s3o", + script = "scavs/scavbeacon.cob", + seismicsignature = 4, + selfdestructcountdown = 1, + sightdistance = 750, + smoothanim = true, + transportByEnemy = true, + turninplace = true, + turninplaceanglelimit = 90, + turnrate = 0, + unitname = "scavengerbeacon", + upright = false, + yardmap = "", + reclaimable = true, + customparams = { + subfolder = "scavengers", + normaltex = "unittextures/cor_normal.dds", + }, + featuredefs = {}, + sfxtypes = { + explosiongenerators = { + [1] = "custom:PurpleLight", + }, + }, + weapondefs = { + weapon = { + areaofeffect = 72, + avoidfeature = false, + beamtime = 1, + cameraShake = 350, + corethickness = 0.40, + craterareaofeffect = 72, + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.15, + energypershot = 1200, + explosiongenerator = "custom:genericshellexplosion-medium-beam", + impulseboost = 0, + impulsefactor = 0, + largebeamlaser = true, + laserflaresize = 8.8, + name = "Armageddon Heat Ray", + noselfdamage = true, + range = 450, + reloadtime = 15, + rgbcolor = "1 0.8 0", + rgbcolor2 = "0.8 0 0", + scrollspeed = 5, + soundhitdry = "", + soundhitwet = "sizzle", + soundstart = "Lasrmas2", + soundtrigger = 1, + targetmoveerror = 0.1, + thickness = 2, + tolerance = 10000, + turret = true, + weapontype = "BeamLaser", + weaponvelocity = 1800, + damage = { + commanders = 333, + default = 1000, + vtol = 1000, + }, + }, + }, + weapons = { + [1] = { + def = "WEAPON", + }, + }, + }, +} diff --git a/units/Scavengers/Buildings/Utility/scavbeacon_t2.lua b/units/Scavengers/Buildings/Utility/scavbeacon_t2.lua new file mode 100644 index 00000000000..679e771f2fa --- /dev/null +++ b/units/Scavengers/Buildings/Utility/scavbeacon_t2.lua @@ -0,0 +1,106 @@ +return { + scavbeacon_t2 = { + maxacc = 0, + activatewhenbuilt = true, + autoheal = 10, + blocking = false, + maxdec = 0, + energycost = 25000, + metalcost = 2500, + buildpic = "scavengers/SCAVBEACON.DDS", + buildtime = 25000, + category = "ALL NOTLAND NOTSUB NOWEAPON NOTSHIP NOTAIR NOTHOVER SURFACE EMPABLE", + canmove = false, + canSelfDestruct = false, + capturable = true, + cantbetransported = true, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "48 48 48", + collisionvolumetype = "CylY", + energystorage = 20000, + metalstorage = 2000, + energymake = 200, + metalmake = 2, + explodeas = "advmetalmaker", + floater = false, + footprintx = 0, + footprintz = 0, + hidedamage = true, + idleautoheal = 10, + idletime = 90, + levelground = false, + mass = 10000, + health = 25000, + speed = 0.0, + noautofire = false, + objectname = "scavs/scavbeacon_t2.s3o", + script = "scavs/scavbeacon.cob", + seismicsignature = 4, + selfdestructcountdown = 1, + sightdistance = 750, + smoothanim = true, + transportByEnemy = true, + turninplace = true, + turninplaceanglelimit = 90, + turnrate = 0, + unitname = "scavengerbeacon", + upright = false, + yardmap = "", + reclaimable = true, + customparams = { + subfolder = "scavengers", + normaltex = "unittextures/cor_normal.dds", + }, + featuredefs = {}, + sfxtypes = { + explosiongenerators = { + [1] = "custom:PurpleLight", + }, + }, + weapondefs = { + weapon = { + areaofeffect = 72, + avoidfeature = false, + beamtime = 1, + cameraShake = 350, + corethickness = 0.40, + craterareaofeffect = 72, + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.15, + energypershot = 1200, + explosiongenerator = "custom:genericshellexplosion-medium-beam", + impulseboost = 0, + impulsefactor = 0, + largebeamlaser = true, + laserflaresize = 8.8, + name = "Armageddon Heat Ray", + noselfdamage = true, + range = 600, + reloadtime = 15, + rgbcolor = "1 0.8 0", + rgbcolor2 = "0.8 0 0", + scrollspeed = 5, + soundhitdry = "", + soundhitwet = "sizzle", + soundstart = "lasrhvy3", + soundtrigger = 1, + targetmoveerror = 0.1, + thickness = 4, + tolerance = 10000, + turret = true, + weapontype = "BeamLaser", + weaponvelocity = 1800, + damage = { + commanders = 1000, + default = 3000, + }, + }, + }, + weapons = { + [1] = { + def = "WEAPON", + }, + }, + }, +} diff --git a/units/Scavengers/Buildings/Utility/scavengerdroppodbeacon.lua b/units/Scavengers/Buildings/Utility/scavbeacon_t3.lua similarity index 90% rename from units/Scavengers/Buildings/Utility/scavengerdroppodbeacon.lua rename to units/Scavengers/Buildings/Utility/scavbeacon_t3.lua index 113b1db391f..b0b0d1a8ee7 100644 --- a/units/Scavengers/Buildings/Utility/scavengerdroppodbeacon.lua +++ b/units/Scavengers/Buildings/Utility/scavbeacon_t3.lua @@ -1,5 +1,5 @@ return { - scavengerdroppodbeacon = { + scavbeacon_t3 = { maxacc = 0, activatewhenbuilt = true, autoheal = 10, @@ -33,8 +33,8 @@ return { health = 50000, speed = 0.0, noautofire = false, - objectname = "scavs/scavbeaconprotargun.s3o", - script = "scavs/scavbeaconprotargun.cob", + objectname = "scavs/scavbeacon_t3.s3o", + script = "scavs/scavbeacon.cob", seismicsignature = 4, selfdestructcountdown = 1, sightdistance = 750, @@ -77,7 +77,7 @@ return { name = "Armageddon Heat Ray", noselfdamage = true, range = 750, - reloadtime = 30, + reloadtime = 15, rgbcolor = "1 0.8 0", rgbcolor2 = "0.8 0 0", scrollspeed = 5, @@ -86,15 +86,14 @@ return { soundstart = "heatray2xl", soundtrigger = 1, targetmoveerror = 0.1, - thickness = 8, + thickness = 6, tolerance = 10000, turret = true, weapontype = "BeamLaser", weaponvelocity = 1800, damage = { - commanders = 10000, - default = 30000, - vtol = 10000, + commanders = 3000, + default = 10000, }, }, }, diff --git a/units/Scavengers/Buildings/Utility/scavbeacon_t4.lua b/units/Scavengers/Buildings/Utility/scavbeacon_t4.lua new file mode 100644 index 00000000000..bb8d97e44f1 --- /dev/null +++ b/units/Scavengers/Buildings/Utility/scavbeacon_t4.lua @@ -0,0 +1,106 @@ +return { + scavbeacon_t4 = { + maxacc = 0, + activatewhenbuilt = true, + autoheal = 10, + blocking = false, + maxdec = 0, + energycost = 100000, + metalcost = 10000, + buildpic = "scavengers/SCAVBEACON.DDS", + buildtime = 100000, + category = "ALL NOTLAND NOTSUB NOWEAPON NOTSHIP NOTAIR NOTHOVER SURFACE EMPABLE", + canmove = false, + canSelfDestruct = false, + capturable = true, + cantbetransported = true, + collisionvolumeoffsets = "0 0 0", + collisionvolumescales = "85 85 85", + collisionvolumetype = "CylY", + energystorage = 20000, + metalstorage = 2000, + energymake = 200, + metalmake = 2, + explodeas = "commanderExplosion", + floater = false, + footprintx = 0, + footprintz = 0, + hidedamage = true, + idleautoheal = 10, + idletime = 90, + levelground = false, + mass = 10000, + health = 100000, + speed = 0.0, + noautofire = false, + objectname = "scavs/scavbeacon_t4.s3o", + script = "scavs/scavbeacon.cob", + seismicsignature = 4, + selfdestructcountdown = 1, + sightdistance = 750, + smoothanim = true, + transportByEnemy = true, + turninplace = true, + turninplaceanglelimit = 90, + turnrate = 0, + unitname = "scavengerbeacon", + upright = false, + yardmap = "", + reclaimable = true, + customparams = { + subfolder = "scavengers", + normaltex = "unittextures/cor_normal.dds", + }, + featuredefs = {}, + sfxtypes = { + explosiongenerators = { + [1] = "custom:PurpleLight", + }, + }, + weapondefs = { + weapon = { + areaofeffect = 72, + avoidfeature = false, + beamtime = 1, + cameraShake = 350, + corethickness = 0.40, + craterareaofeffect = 72, + craterboost = 0, + cratermult = 0, + edgeeffectiveness = 0.15, + energypershot = 1200, + explosiongenerator = "custom:genericshellexplosion-medium-beam", + impulseboost = 0, + impulsefactor = 0, + largebeamlaser = true, + laserflaresize = 8.8, + name = "Armageddon Heat Ray", + noselfdamage = true, + range = 750, + reloadtime = 15, + rgbcolor = "1 0.8 0", + rgbcolor2 = "0.8 0 0", + scrollspeed = 5, + soundhitdry = "", + soundhitwet = "sizzle", + soundstart = "heatray2xl", + soundtrigger = 1, + targetmoveerror = 0.1, + thickness = 8, + tolerance = 10000, + turret = true, + weapontype = "BeamLaser", + weaponvelocity = 1800, + damage = { + commanders = 16500, + default = 50000, + }, + }, + }, + weapons = { + [1] = { + def = "WEAPON", + }, + }, + }, +}