Schall Endgame Evolution


Adds GUI to display evolution factor and monitor alien spawn rates. Adds progressively higher tiers of aliens (configurable) at very-late game, bringing some real challenge! (Locale: English, Deutsch, 正體中文, 简体中文, Português Brasileiro, Русский)

2 months ago
0.16 - 1.1
30753

FAQ

Q: Why using the term "category" for classification of new aliens, rather than using more creative names?
A: The term "category" is used to denote energy scale in some events of the real world, such as hurricanes. I borrowed this, so the number of tiers can potentially be infinite, if needed in the future.

Q: Why limiting highest tier to category X? Can I have something like... category XL?
A: I am not sure about weaponry mods from other authors. But for all the new powerful weapons from my Schall Alien Tech mod, I believe current category X is already tough enough to stress test players' base defense. So I set the limit to category X, on earlier versions.

Since 0.17.8, the highest tier is raised to category XX. However, note that each tier higher is 2^(1/3) times larger in linear scale, and 2 times stronger in strength. They may be too large on screen, and use a lot of graphics RAM if this is overdone.
Category XX (20) is 40 times of behemoth in linear scale, and 65536 times stronger. Note the high tiers spitters have better range as well. Category XX spitter has 32 range, and will one shot anything human made. I have not tested it, but will probably be already beyond what players can handle.
Category XL (40) is something not really imaginable...

Q: I enjoy fighting category XX, why are the limits get dropped?
A: Since 0.17.11 / 0.18.3, the highest tier is dropped to category XV. This is because the game pathfinding seems to have problem with very large units. These huge beasts were procrastinating around instead of attacking their targets, thus posing little threat to players. Therefore, they are disabled for the moment, until the problem is completly solved.
Note that these updates also have a few measures to help alleviate the pathfinding problem, making category XI to XV seemingly working fine.

Q: Any benefits for fighting these tougher aliens?
A: Apart from the satisfaction of conquering these beasts, their death will also give you better rewards, if you have Schall Alien Loot mod installed. Alien of each tier higher, will give up DOUBLE of the previous tier. For example, each category X alien will give you 32× amount of category V alien, or roughly 64× of behemoth biters.

Q: What the exact effects of "difficulty" option?
A: The new high tier aliens will come at lower evolution factor (thus earlier), and the "costs" (pollution to join attack values) are lower as well. The higher difficulty, the earlier and cheaper/more the aliens come.
Try progressing the difficulty step-by-step, even though you "think" you had enough gear to handle the attacks!

Instructions to Fellow Modders

Adding Optional Dependency

Your mod should work with or without this mod. The call to support fellow mods is first introduced in version 0.17.11 / 0.18.3 of this mod. Your mod should require this mod and version (or above) to utilize it. So first of all, in "info.json" of your mod folder, please add an optional dependency "? SchallEndgameEvolution >= 0.17.11" (for 0.17) or "? SchallEndgameEvolution >= 0.18.3" (for 0.18), to make sure the load order is correct.

Here is an example:

"dependencies": ["base >= 0.17.0", "? SchallEndgameEvolution >= 0.17.11"]

Assigning Display Tiers

Inserting tiers to specific unit name patterns are done by the function calls of this mod, which are created in data updates stage. You simply need to assign the appropriate name patterns (or full name of every units) with the corresponding tier. You need the make the calls in either control.lua, and under script.on_load, script.on_init, and script.on_configuration_changed.

Syntax as the following:

remote.call("SchallEndgameEvolution", "add_pattern", pattern, tier)

*pattern* is the Lua pattern used to match with internal name of your units (e.g., "giant-biter", "giant-spitter"). To match with every names starting with "giant", "^giant%-" is the right pattern for this. If you are unfamiliar with Lua patterns, it also works by entering full name of every units into this field.
*tier* is the desired display tier. 1: small, 2: medium, 3: big, 4: behemoth, 5: category V, 10: category X. Ranges from 1 to 20, as integers. This is the same tier number as used in Schall Alien Loot, so you may want to register the name there as well. (Please see its FAQ.)

The full code (in control.lua) to make both "giant-biter" and "giant-spitter" recognized as tier 5 is as the following:

local function add_pattern()
if remote.interfaces["SchallEndgameEvolution"] then
remote.call("SchallEndgameEvolution", "add_pattern", "^giant%-", 5)
end
end

local function on_load()
add_pattern()
end

local function on_init()
add_pattern()
end

local function on_configuration_changed()
add_pattern()
end

script.on_load( on_load)
script.on_init( on_init)
script.on_configuration_changed( on_configuration_changed)

Evolution GUI

The two important GUI are as the following picture: button GUI and frame GUI.

Initially, only the button GUI shows up, which shows the current "evolution phase". Such phase denotes the highest category of alien that can be generated from spawners. "Category" is a newly introduced term to denote the tier of an alien, in place of the verbal terms: small, medium, big, behemoth. Category values are in Roman numerals: I being the weakest, X being the strongest. In the real world, such category scale is also used to denote the energy scale (e.g., hurricane).

The lower number shows the progress of the current phase. When this number reaches 100, it means the next phase is reached.

By clicking on the button GUI, the frame GUI will show up on the left. Top of frame GUI shows evolution factor in "A / B" format.

Value A is the current evolution factor, which is the same value obtained by inputing "/evolution" in console. For detailed information on this value, please see this document. In short, this value determines what types of aliens are generated from the spawners. High values denote tougher aliens.

Value B denotes the evolution factor when the next tier of alien will begin to show up.

The following three rows show the contributions (causes) to the evolution factors, from sources like time, pollution, and spawner kills.

Below that are the lists of spawn probabilities on various alien types, from each spawner type. Alien types of "zero chances" are hidden, by default option of "Hide unspawned alien types". This will give you a clear picture of what to be expected on the battlefield. It currently supports all alien types from vanilla game, Schall Alien Mutation mod, and Schall Endgame Evolution mod.

Schall Alien Loot mod has full support to this category value. Loot tiers are exactly corresponding to these category values.

Alien types from other mods will still have correct spawn probability values, but category values may not be correct since different mods can have differnt implementations. If you have any favourable want to be supported by this feature, please give me the details on Discussion section.

When frame GUI is on, it will update when each entity get killed. So when heavy combat is being done, you may want to temporarily close this frame to keep UPS high. This is done by pressing the button GUI.

These two GUI can be completely switched off, by unchecking option "Enable evolution GUI" under "Options" → "Mod settings" → "Per Player" tab. Please uncheck this and save before, if you have decided to disable/uninstall this mod from your save file.

Extra Aliens

The major purpose of this mod is, however, to introduce new tiers of aliens in the late game. This is especially important when players have installed some weaponry mods, where even behemoth biters are simply too weak to tanks MK2 series from Schall Tank Platoon mod. Not to say even more powerful weapons, such as BFG 9000 or tanks MK3 series from Schall Alien Tech!

The vanilla game ends with behemoth biters and behemoth spitters (category IV). This mod extends with a maximum of six extra tiers (categories V to X). (0.17.8 has raised the upper limit to category XX, so sixteen extra tiers in total.) Each higher tier is about two times as stronger as the previous tier. If you do not have powerful weaponry mods or want an "easy" difficulty, you may want to limit the highest alien tier the mod will generate, under "Options" → "Mod settings" → "Startup" tab.

Notice that even if you have the settings maxed, high tiers would NOT appear unless certain evolution factor is reached. If you are playing a normal game, you will have enough time to build up your military, so do not worry too much.

To transit an old save to use this mod, you may want to tune to a lower tier limit first. Build up a decent base defense, then load the game with a high but comfortable tier limit.

The following picture demonstrates what could happen to your game, at very-late game with evolution factor 0.9999. Here features category X to category V biters and spitters, together with vanilla behemoth, big, and medium biters.

Category Scale

On higher difficulty, Category V to Category XX aliens will come at lower evolution factor (thus earlier). The "pollution to join attack" values are also reduced.
On highest difficulty ("9 - Inferno"), Category X aliens can come early at evolution factor 0.937 (compared to 0.998 on "1 - Normal"). The "pollution cost" are all as low as their behemoth counterparts... So prepared to face lots of them!
Vanilla aliens (from small to behemoth) are not affected by the difficulty setting.

For those who want the exact figures, below are some formula used:

  • For biters, you can find in enemies.lua line 149 & 157 (0.17.8):

biter_cat[tier].pollution_to_join_attack = 400 * ( 1 + (tier-4)*(diff_max-difficulty)/(diff_max-1) )
table.insert(biterspawner.result_units, {unit.name, {{1 - 0.1 / math.pow(2, (tier-4)/difficulty), 0.0}, {1.0, 0.4 * math.pow(0.68, tier-4)}} } )

  • For spitters, you can find in enemies.lua line 277 & 285 (0.17.8):

spitter_cat[tier].pollution_to_join_attack = 200 * ( 1 + (tier-4)*(diff_max-difficulty)/(diff_max-1) )
table.insert(spitterspawner.result_units, {unit.name, {{1 - 0.1 / math.pow(2, (tier-4)/difficulty), 0.0}, {1.0, 0.4 * math.pow(0.68, tier-4)}} } )

  • tier is the category number, from 5 to 20.
  • difficulty is the difficulty setting in options, from 1 to 9.
  • diff_max is the highest difficulty, 9.

General Properties

  • Aliens have growth in decrease resistance with increasing tiers, so weapons with high shot damage would be better. Machine gun are less effective than tank cannon, for example.
  • Aliens are relatively weaker against fire, so flamethrower turrets may help a lot in softening them.
  • High tier aliens have very good resistance against laser, so laser turrets or personal laser defenses are not effective against them.
  • High tier aliens have good resistance against explosion, so explosives like explosive rounds and even atomic bomb are not effective aginst them.

Defense Strategy

  • Try mixing conventional turrets (from vanilla and Schall Ammo Turrets) and particle turrets (from Schall Alien Tech) in defense line.
  • Aliens are resistant against laser, so do not rely on laser turrets.
  • Cannon turrets and BFG turrets could be the main damage dealer against high tier aliens.
  • Use armour-piercing shells on some cannon turrets, since explosive shells are less effective against high tier aliens.
  • Stasis beam turrets and force cannon turrets can help a lot by prolonging the time for the aliens to reach your base.
  • Flamethrower turrets can become surprisingly useful against high tier aliens, when combined with stasis beam turrets and force cannon turrets.

Offense Strategy

Infantry

  • Infantry weapons in general do not have enough firepower against high tier aliens.
  • BFG 9000 could be the best infantry weapon. Very high damage on direct hit is good against high tier aliens, while its enemy-only large AoE attack is good in clearing the swarms.
  • Plasma rifle can surprisingly be the best infantry weapon! While it may not look powerful enough, it also stuns enemies completely for some time, letting your teammates and turrets to kill them easily.
  • Infantry (power armor) equipment is not good enough in offense, especially when personal laser defense is not effective against high tier aliens. Most new offense equipment (from Schall Gun Pod and Schall Alien Tech) are for vehicles and tanks only.
  • Instead of personal laser defense, it may be good to use discharge defense equipment instead. Option settings in Schall Tank Platoon allows it to be triggered automatically whenever enemies get in range. Pushing back biters may save your life, and still be useful when you are driving a tank.

Tanks

  • Riding a tank with equipment grids (from Schall Tank Platoon and Schall Alien Tech) will fight much more effectively than as infantry.
  • Heavy and super-heavy tanks can easily be the main damage dealers. Their tank variant guns have higher DPS than the turret variant, in damage bonus and maybe fire rate too. But beware, their turret rotation is slow, so plan and drive careful in order not to get trapped by flanking biters.
  • Light particle tank has a tank force cannon, good to push away biters from reaching your friendly heavy tanks in the frontline.
  • Rocket artillery can help a lot in a multiplayer tank action. Fire atomic bomb or napalm bomb at extended range through the tactical missile launcher to clean the spawners and swarms, then let your teammates handle the surviving big beasts.
  • Atomic bomb is a powerful weapon in vanilla game, but still not enough to kill the high tier aliens, because they have very high resistance against explosion.
  • Equip good amount of energy shields on the tank grid, to prevent high tier aliens from one shot killing you.
  • Equip some ammo-consuming defense equipments (from Schall Gun Pod and Schall Alien Tech). They will offer more firepower than personal laser defense.
  • Even as offense, deploying some turrets before any attacks. They may repel or kill the chasing enemies.
  • Hit-and-run tactics can be a better choice than frontal assault, since it is more likely that your firepower is not enough to eliminate incoming biters quickly.

Turrets

  • Try to focus on spawners first, before infantry or tank assault. Cutting alien supplies will save you a lot of ammunitions. Ultra-long range weapons like artillery fire and atomic bomb / napalm bomb fired some rocket artilley excel in this role.
  • To save artillery shells while doing the job, try issuing manual orders to destroy the spawners only. The worms are relatively harmless compared to waves of high tier spitters.

Full List of New (or Changed) Items

Enemies

  • 16 biters:
    • Category V biter
    • Category VI biter
    • Category VII biter
    • Category VIII biter
    • Category IX biter
    • Category X biter
    • Category XI biter
    • Category XII biter
    • Category XIII biter
    • Category XIV biter
    • Category XV biter
    • Category XVI biter (temporarily disabled from 0.17.11 / 0.18.3)
    • Category XVII biter (temporarily disabled from 0.17.11 / 0.18.3)
    • Category XVIII biter (temporarily disabled from 0.17.11 / 0.18.3)
    • Category XIX biter (temporarily disabled from 0.17.11 / 0.18.3)
    • Category XX biter (temporarily disabled from 0.17.11 / 0.18.3)
  • 16 spitters:
    • Category V spitter
    • Category VI spitter
    • Category VII spitter
    • Category VIII spitter
    • Category IX spitter
    • Category X spitter
    • Category XI spitter
    • Category XII spitter
    • Category XIII spitter
    • Category XIV spitter
    • Category XV spitter
    • Category XVI spitter (temporarily disabled from 0.17.11 / 0.18.3)
    • Category XVII spitter (temporarily disabled from 0.17.11 / 0.18.3)
    • Category XVIII spitter (temporarily disabled from 0.17.11 / 0.18.3)
    • Category XIX spitter (temporarily disabled from 0.17.11 / 0.18.3)
    • Category XX spitter (temporarily disabled from 0.17.11 / 0.18.3)