Rampant, fixed


Based on Rampant 1.1.1 (new AI and enemies). - New types of enemies - Works on SA planets, can control biters, demolishers, Gleba units - Can mutate existing nests - Can attack from afar - Improved search for a passage in the defense - Some new mechanics

Content
a month ago
1.1 - 2.1
65.7K
Enemies

i Suggestion: optional setting to turn off the time-based minimum enemy tier

a month ago

Would it be possible to add a setting to turn off the time-based minimum enemy tier? Thanks for maintaining this mod, by the way.

I'd want it to default to on so nothing changes for anyone else. With it off, tier would still come from evolution and from distance to the starting area for new bases. It would just stop the clock from pushing tiers up on its own.

I play with a lot of mods that slow the game down. Expensive mode is the worst offender, and I also run a 10x science multiplier. By the time the clock forces tier 3 I'm often only just into green science, and I can't hold off what shows up. I end up spending most of my time on base defense instead of actually progressing. Evolution and distance already follow how far along I really am. The time floor doesn't, so in a slowed-down game it runs well ahead of me. If I could turn it off, the tiers would still scale with evolution and distance, and I could set the pace myself.

If it helps, this is roughly how I'd do it. As far as I can tell the floor is in evoToTierNorandom in libs/BaseUtils.lua, so a bool setting could gate it:

-- settings.lua
{
    type = "bool-setting",
    name = "rampantFixed--tierByTime",
    setting_type = "runtime-global",
    default_value = true,
    order = "e[modifier]-b[unit]_01"
}
-- libs/BaseUtils.lua, in evoToTierNorandom
local tierByTime = 0
if universe.tierByTime ~= false then
    tierByTime = mMin(mFloor(gameTick / ticksPerTier), 3)  -- existing calculation
end
return mMax(evolutionTier, tierByTime)
-- control.lua, in onModSettingsChange: copy the setting onto universe
universe.tierByTime = settings.global["rampantFixed--tierByTime"].value

Making it runtime-global means it can be flipped mid-game with no restart. Bases only ever move up in tier, so turning it off won't demote anything that already exists. A missing value counts as "on", so old saves behave as before.

New response