1
0
mirror of https://github.com/veden/Rampant.git synced 2024-12-26 20:54:12 +02:00
Rampant/settings.lua
2023-03-26 14:39:00 -07:00

1220 lines
36 KiB
Lua

-- Copyright (C) 2022 veden
-- This program is free software: you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation, either version 3 of the License, or
-- (at your option) any later version.
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <https://www.gnu.org/licenses/>.
data:extend({
{
type = "bool-setting",
name = "rampant--useDumbProjectiles",
description = "rampant--useDumbProjectiles",
setting_type = "startup",
default_value = true,
order = "a[modifier]-a[projectiles]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--disableCollidingProjectiles",
setting_type = "startup",
default_value = true,
order = "b[modifier]-b[trigger]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--unitsAffectedByTiles",
setting_type = "startup",
default_value = true,
order = "b[modifier]-b[trigger]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--oldRedEnemyMapColor",
setting_type = "startup",
default_value = false,
order = "b[modifier]-c[trigger]",
per_user = false
},
{
type = "int-setting",
name = "rampant--attackWaveMaxSize",
setting_type = "runtime-global",
minimum_value = 20,
maximum_value = 600,
default_value = 75,
order = "b[modifier]-f[wave]",
per_user = false
},
{
type = "int-setting",
name = "rampant--maxNumberOfSquads",
setting_type = "runtime-global",
minimum_value = 1,
maximum_value = 300,
default_value = 30,
order = "b[modifier]-f[wave]",
per_user = false
},
{
type = "int-setting",
name = "rampant--maxNumberOfBuilders",
setting_type = "runtime-global",
minimum_value = 1,
maximum_value = 120,
default_value = 10,
order = "b[modifier]-f[wave]",
per_user = false
},
{
type = "int-setting",
name = "rampant--unitAndSpawnerFadeTime",
setting_type = "startup",
minimum_value = 1,
maximum_value = 30000000 * 60,
default_value = 5 * 60,
order = "b[modifier]-f[wave]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--enableFadeTime",
setting_type = "startup",
default_value = true,
order = "b[modifier]-f[wave]",
per_user = false
},
-- {
-- type = "bool-setting",
-- name = "rampant--liteMode",
-- setting_type = "startup",
-- default_value = false,
-- order = "b[modifier]-g[ai]",
-- per_user = false
-- },
{
type = "bool-setting",
name = "rampant--enableSwarm",
description = "rampant--enableSwarm",
setting_type = "startup",
default_value = true,
order = "b[modifier]-j[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--enableShrinkNestsAndWorms",
description = "rampant--enableShrinkNestsAndWorms",
setting_type = "startup",
default_value = false,
order = "b[modifier]-j[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--safeBuildings-curvedRail",
setting_type = "runtime-global",
default_value = false,
order = "c[modifier]-b[safe]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--safeBuildings-straightRail",
setting_type = "runtime-global",
default_value = false,
order = "c[modifier]-c[safe]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--safeBuildings-bigElectricPole",
setting_type = "runtime-global",
default_value = false,
order = "c[modifier]-d[safe]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--safeBuildings-railSignals",
setting_type = "runtime-global",
default_value = false,
order = "c[modifier]-e[safe]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--safeBuildings-railChainSignals",
setting_type = "runtime-global",
default_value = false,
order = "c[modifier]-f[safe]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--safeBuildings-trainStops",
setting_type = "runtime-global",
default_value = false,
order = "c[modifier]-g[safe]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--safeBuildings-lamps",
setting_type = "runtime-global",
default_value = false,
order = "c[modifier]-h[safe]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--addWallResistanceAcid",
description = "rampant--addWallResistanceAcid",
setting_type = "startup",
default_value = false,
order = "c[modifier]-j[damage]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--disallowFriendlyFire",
setting_type = "startup",
default_value = true,
order = "c[modifier]-k[trigger]",
per_user = false
},
{
type = "int-setting",
name = "rampant--max-evo-dist",
setting_type = "startup",
default_value = 300,
minimum_value = 0,
maximum_value = 100000,
order = "c[max]-k[evolution]",
per_user = false
},
{
type = "double-setting",
name = "rampant--adaptationModifier",
setting_type = "runtime-global",
default_value = 1,
minimum_value = 0.001,
maximum_value = 100.0,
order = "m[total]-b[ai]",
per_user = false
},
{
type = "int-setting",
name = "rampant--max-base-mutations",
setting_type = "runtime-global",
minimum_value = 0,
maximum_value = 9999999999,
default_value = 2,
order = "d[modifier]-a[ai]",
per_user = false
},
{
type = "int-setting",
name = "rampant--maxBaseAlignmentHistory",
setting_type = "runtime-global",
minimum_value = 0,
maximum_value = 16,
default_value = 16,
order = "d[modifier]-a[ai]",
per_user = false
},
{
type = "int-setting",
name = "rampant--initialPeaceTime",
setting_type = "runtime-global",
minimum_value = 0,
default_value = 20,
maximum_value = 9999999999,
order = "d[modifier]-a[ai]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--printAwakenMessage",
setting_type = "runtime-global",
default_value = true,
order = "d[modifier]-a[ai]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--newEnemies",
description = "rampant--newEnemies",
setting_type = "startup",
default_value = true,
order = "e[modifier]-a[unit]",
per_user = false
},
{
type = "int-setting",
name = "rampant--enemySeed",
description = "rampant--enemySeed",
setting_type = "startup",
minimum_value = 1,
default_value = 1024567,
maximum_value = 4294967295,
order = "l[modifer]-b[unit]",
per_user = false
},
{
type = "int-setting",
name = "rampant--newEnemyVariations",
description = "rampant--newEnemyVariations",
setting_type = "startup",
minimum_value = 1,
maximum_value = 7,
default_value = 1,
order = "l[modifier]-h[unit]",
per_user = false
},
{
type = "int-setting",
name = "rampant--tierStart",
setting_type = "startup",
default_value = 1,
minimum_value = 1,
maximum_value = 10,
order = "l[modifier]-l[unit]",
per_user = false
},
{
type = "int-setting",
name = "rampant--tierEnd",
setting_type = "startup",
minimum_value = 1,
maximum_value = 10,
default_value = 6,
order = "l[modifier]-m[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--acidEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-n[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--physicalEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-o[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--suicideEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-p[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--fireEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-q[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--electricEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-r[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--nuclearEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-s[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--infernoEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-t[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--fastEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-u[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--trollEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-v[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--spawnerEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-w[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--waspEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-x[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--laserEnemy",
setting_type = "startup",
default_value = true,
order = "l[modifier]-y[unit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--energyThiefEnemy",
setting_type = "startup",
default_value = true,
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
},
{
type = "bool-setting",
name = "rampant--unitSpawnerBreath",
setting_type = "startup",
default_value = true,
order = "l[modifier]-zb[unit]",
per_user = false
},
-- {
-- type = "bool-setting",
-- name = "rampant--disableVanillaAI",
-- description = "rampant--disableVanillaAI",
-- setting_type = 'runtime-global',
-- default_value = true,
-- order = "m[total]-a[ai]",
-- per_user = false
-- },
{
type = "bool-setting",
name = "rampant--enableMigration",
description = "rampant--enableMigration",
setting_type = 'runtime-global',
default_value = true,
order = "m[total]-c[ai]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--raidAIToggle",
setting_type = "runtime-global",
default_value = true,
order = "m[total]-c[ai]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--siegeAIToggle",
setting_type = "runtime-global",
default_value = true,
order = "m[total]-c[ai]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--enabledPurpleSettlerCloud",
setting_type = "runtime-global",
default_value = true,
order = "d[modifier]-a[ai]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--peacefulAIToggle",
setting_type = "runtime-global",
default_value = true,
order = "m[total]-c[ai]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--printAIStateChanges",
setting_type = "runtime-global",
default_value = false,
order = "m[total]-c[ai]z",
per_user = false
},
{
type = "bool-setting",
name = "rampant--printBaseAdaptation",
setting_type = "runtime-global",
default_value = false,
order = "m[total]-c[ai]z",
per_user = false
},
{
type = "bool-setting",
name = "rampant--printBaseUpgrades",
setting_type = "runtime-global",
default_value = false,
order = "m[total]-c[ai]z",
per_user = false
},
{
type = "bool-setting",
name = "rampant--printBaseSettling",
setting_type = "runtime-global",
default_value = false,
order = "m[total]-c[ai]z",
per_user = false
},
{
type = "bool-setting",
name = "rampant--debugTemperament",
setting_type = "runtime-global",
default_value = false,
order = "m[total]-c[ai]zz",
per_user = false
},
{
type = "bool-setting",
name = "rampant--permanentNocturnal",
description = "rampant--permanentNocturnal",
setting_type = "runtime-global",
default_value = false,
order = "m[total]-a[ai]",
per_user = false
},
{
type = "double-setting",
name = "rampant--aiPointsScaler",
description = "rampant--aiPointsScaler",
setting_type = "runtime-global",
default_value = 1.0,
minimum_value = 0.0,
maximum_value = 100.0,
order = "m[total]-b[ai]1",
per_user = false
},
{
type = "bool-setting",
name = "rampant--legacyChunkScanning",
description = "rampant--legacyChunkScanning",
setting_type = "runtime-global",
default_value = false,
order = "d[modifier]-a[ai]z",
per_user = false
},
{
type = "int-setting",
name = "rampant--squadCompressionThreshold",
description = "rampant--squadCompressionThreshold",
setting_type = "runtime-global",
minimum_value = -1,
default_value = 60,
maximum_value = 600,
order = "d[modifier]-a[ai]z",
per_user = false
},
{
type = "double-setting",
name = "rampant--minimumAdaptationEvolution",
description = "rampant--minimumAdaptationEvolution",
setting_type = "runtime-global",
default_value = 0.2,
minimum_value = 0.0,
maximum_value = 1.0,
order = "m[total]-b[ai]1",
per_user = false
},
{
type = "bool-setting",
name = "rampant--aiPointsPrintSpendingToChat",
description = "rampant--aiPointsPrintSpendingToChat",
setting_type = "runtime-global",
default_value = false,
order = "m[total]-c[ai]z",
per_user = false
},
{
type = "bool-setting",
name = "rampant--aiPointsPrintGainsToChat",
description = "rampant--aiPointsPrintGainsToChat",
setting_type = "runtime-global",
default_value = false,
order = "m[total]-c[ai]z",
per_user = false
},
{
type = "double-setting",
name = "rampant--temperamentRateModifier",
setting_type = "runtime-global",
default_value = 1,
minimum_value = 0.001,
maximum_value = 100.0,
order = "m[total]-b[ai]",
per_user = false
},
{
type = "double-setting",
name = "rampant--baseDistanceModifier",
setting_type = "runtime-global",
default_value = 1,
minimum_value = 0.001,
maximum_value = 100.0,
order = "m[total]-b[ai]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--removeBloodParticles",
description = "rampant--reduceBloodParticles",
setting_type = "startup",
default_value = false,
order = "n[modifier]-a[optimize]",
per_user = false
},
{
type = "double-setting",
name = "rampant--scaleParticleCount",
description = "rampant--scaleParticleCount",
setting_type = "startup",
default_value = 1,
minimum_value = 0.01,
maximum_value = 5.0,
order = "n[modifier]-a[optimize]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--enableLandfillOnDeath",
description = "rampant--reduceBloodParticles",
setting_type = "startup",
default_value = true,
order = "n[modifier]-a[optimize]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--unkillableLogisticRobots",
setting_type = "startup",
default_value = false,
order = "n[modifier]-b[optimize]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--unkillableConstructionRobots",
setting_type = "startup",
default_value = false,
order = "n[modifier]-c[optimize]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitBiterHealthScaler",
description = "rampant--unitBiterHealthScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-a[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitBiterHealingScaler",
description = "rampant--unitBiterHealingScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-a[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitBiterSpeedScaler",
description = "rampant--unitBiterSpeedScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-b[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitBiterDamageScaler",
description = "rampant--unitBiterDamageScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-c[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitBiterRangeScaler",
description = "rampant--unitBiterRangeScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-d[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpitterHealthScaler",
description = "rampant--unitSpitterHealthScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-e[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpitterHealingScaler",
description = "rampant--unitSpitterHealingScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-e[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpitterSpeedScaler",
description = "rampant--unitSpitterSpeedScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-f[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpitterDamageScaler",
description = "rampant--unitSpitterDamageScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-g[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpitterRangeScaler",
description = "rampant--unitSpitterRangeScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-h[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitDroneHealthScaler",
description = "rampant--unitDroneHealthScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-i[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitDroneHealingScaler",
description = "rampant--unitDroneHealingScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-i[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitDroneSpeedScaler",
description = "rampant--unitDroneSpeedScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-j[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitDroneDamageScaler",
description = "rampant--unitDroneDamageScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-k[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitDroneRangeScaler",
description = "rampant--unitDroneRangeScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-l[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitWormHealthScaler",
description = "rampant--unitWormHealthScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-m[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitWormHealingScaler",
description = "rampant--unitWormHealingScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-m[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitWormDamageScaler",
description = "rampant--unitWormDamageScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-n[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitWormRangeScaler",
description = "rampant--unitWormRangeScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-o[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpawnerHealthScaler",
description = "rampant--unitSpawnerHealthScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-p[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpawnerHealingScaler",
description = "rampant--unitSpawnerHealingScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-p[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpawnerOwnedScaler",
description = "rampant--unitSpawnerOwnedScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-q[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpawnerSpawnScaler",
description = "rampant--unitSpawnerSpawnScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-r[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitSpawnerRespawnScaler",
description = "rampant--unitSpawnerRespawnScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-r[unit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitHiveRespawnScaler",
description = "rampant--unitHiveRespawnScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-r[zunit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitHiveHealthScaler",
description = "rampant--unitHiveHealthScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-r[zunit]",
per_user = false
},
{
type = "double-setting",
name = "rampant--unitHiveHealingScaler",
description = "rampant--unitHiveHealingScaler",
setting_type = "startup",
default_value = 1.0,
minimum_value = 0.0001,
maximum_value = 100000.0,
order = "p[modifier]-r[zunit]",
per_user = false
},
{
type = "bool-setting",
name = "rampant--attackWaveGenerationUsePlayerProximity",
setting_type = "runtime-global",
default_value = true,
order = "b[modifier]-b[trigger]",
per_user = false
},
{
type = "double-setting",
name = "rampant--attackPlayerThreshold",
setting_type = "runtime-global",
minimum_value = 0,
default_value = 20,
order = "b[modifier]-c[threshold]",
per_user = false
}
})
-- Converts the RGBA struct to Hexadecimal discarding the alpha value.
-- Since the RGBA struct stores values as percent (0-1) and not actual RGB (0-255) there might be precision errors when converting.
local function rgbaToHex(rgba)
local r = string.format("%x", rgba.r * 255)
local g = string.format("%x", rgba.g * 255)
local b = string.format("%x", rgba.b * 255)
local a = string.format("%x", rgba.a * 255)
if #r == 1 then
r = "0"..r
end
if #g == 1 then
g = "0"..g
end
if #b == 1 then
b = "0"..b
end
if #a == 1 then
a = "0"..a
end
return r..g..b..a
end
-- Sets the default value of the faction tint settings.
-- Change this function if the formating of the tint settings changes.
local function setDefaultValue(tint, tint2, tint3)
return rgbaToHex(tint) .. " " .. rgbaToHex(tint2) .. " " .. rgbaToHex(tint3)
end
local FACTIONS = {
{
-- Neutral faction
type = "neutral",
tint = {r = 0.90, g = 0.90, b = 0.90, a = 1.00},
tint2 = {r = 1.00, g = 1.00, b = 1.00, a = 1.00},
tint3 = {r = 0.50, g = 0.50, b = 0.50, a = 0.20}
},
{
-- Acidic faction
type = "acid",
tint = {r = 1.00, g = 1.00, b = 1.00, a = 1.00},
tint2 = {r = 0.40, g = 0.90, b = 0.40, a = 1.00},
tint3 = {r = 0.40, g = 0.60, b = 0.40, a = 0.20}
},
{
-- Laser faction
type = "laser",
tint = {r = 0.60, g = 0.60, b = 0.84, a = 1.00},
tint2 = {r = 0.60, g = 0.60, b = 0.84, a = 1.00},
tint3 = {r = 0.30, g = 0.30, b = 0.70, a = 0.20}
},
{
-- Fire faction
type = "fire",
tint = {r = 1.00, g = 1.00, b = 1.00, a = 1.00},
tint2 = {r = 0.90, g = 0.20, b = 0.20, a = 1.00},
tint3 = {r = 0.90, g = 0.70, b = 0.70, a = 0.20}
},
{
-- Inferno faction
type = "inferno",
tint = {r = 0.90, g = 0.75, b = 0.75, a = 1.00},
tint2 = {r = 0.70, g = 0.30, b = 0.30, a = 1.00},
tint3 = {r = 0.50, g = 0.00, b = 0.00, a = 0.20}
},
{
-- Wasp faction
type = "wasp",
tint = {r = 1.00, g = 1.00, b = 0.70, a = 1.00},
tint2 = {r = 0.50, g = 0.50, b = 0.00, a = 1.00},
tint3 = {r = 0.80, g = 0.80, b = 0.00, a = 0.20}
},
{
-- Spawner faction
type = "spawner",
tint = {r = 1.00, g = 0.80, b = 1.00, a = 1.00},
tint2 = {r = 0.90, g = 0.30, b = 0.90, a = 1.00},
tint3 = {r = 0.60, g = 0.10, b = 0.60, a = 0.20}
},
{
-- Electric faction
type = "electric",
tint = {r = 0.80, g = 0.80, b = 1.00, a = 1.00},
tint2 = {r = 0.30, g = 0.30, b = 1.00, a = 1.00},
tint3 = {r = 0.10, g = 0.10, b = 0.70, a = 0.20}
},
{
-- Brutal faction
type = "physical",
tint = {r = 0.90, g = 0.90, b = 0.90, a = 1.00},
tint2 = {r = 0.80, g = 0.80, b = 0.80, a = 1.00},
tint3 = {r = 0.20, g = 0.20, b = 0.20, a = 0.20}
},
{
-- Regenerative faction
type = "troll",
tint = {r = 0.55, g = 0.55, b = 0.55, a = 1.00},
tint2 = {r = 1.00, g = 0.30, b = 0.30, a = 1.00},
tint3 = {r = 0.30, g = 0.10, b = 0.10, a = 0.20}
},
{
-- Poison faction
type = "poison",
tint = {r = 0.50, g = 0.70, b = 0.60, a = 1.00},
tint2 = {r = 0.30, g = 0.90, b = 0.30, a = 1.00},
tint3 = {r = 0.05, g = 0.30, b = 0.05, a = 0.20}
},
{
-- Suicide faction
type = "suicide",
tint = {r = 0.80, g = 0.80, b = 0.80, a = 1.00},
tint2 = {r = 1.00, g = 0.50, b = 0.00, a = 1.00},
tint3 = {r = 0.55, g = 0.30, b = 0.15, a = 0.20}
},
{
-- Nuclear faction
type = "nuclear",
tint = {r = 0.10, g = 0.95, b = 0.10, a = 1.00},
tint2 = {r = 1.00, g = 0.50, b = 0.00, a = 1.00},
tint3 = {r = 0.50, g = 0.75, b = 0.00, a = 0.20}
},
{
-- Sapper faction
type = "energyThief",
tint = {r = 0.50, g = 0.50, b = 0.70, a = 1.00},
tint2 = {r = 0.40, g = 0.40, b = 0.40, a = 1.00},
tint3 = {r = 0.10, g = 0.10, b = 0.40, a = 0.20}
},
{
-- Fast faction
type = "fast",
tint = {r = 0.90, g = 0.90, b = 0.90, a = 1.00},
tint2 = {r = 1.00, g = 1.00, b = 0.10, a = 1.00},
tint3 = {r = 0.50, g = 0.50, b = 0.00, a = 0.20}
}
}
for i = 1, #FACTIONS do
local entry = FACTIONS[i]
local setting = "rampant--" .. entry.type .. "Tints"
data:extend({
{
type = "string-setting",
name = setting,
description = setting,
setting_type = "startup",
default_value = setDefaultValue(entry.tint, entry.tint2, entry.tint3),
order = "p[modifier]-r[zzunit]",
},
})
end