Thorium
Purpose of feature
Bring interesting mechanic of Season5 into mmo,
while keeping balance, and adding new interesting tactics for players to utilize.
It's designed to have minimal-to-none impact on existing bots.
Numbers are not always backed by math, and are proposed values.
Thorium
What is it ?
A new Mineral that randomly spawns in all rooms.
Every tick its mineralAmount decays at rate Math.ceil(mineralAmount / 1000)
Possible to be lucky and have multiple Thorium nodes.
Where is it ?
Spawns inside walls at the depth 3+.
(optional - deeper in wall it is, bigger its initial mineralAmount)
Can be found via existing FIND_MINERALS constant.
Players need to build tunnels to extract it.
Potentially it can "break" bots that use .find(FIND_MINERALS)[0]
- still - not permanently given Thorium mineral would decay over time.
Why like this:
requires more advanced code to obtain it, does not break existing bots, introduces new mechanics, energy sink
What is special about thorium ?
As in Season 5 :
Both creeps and decayable structures, such as roads and containers, experience accelerated aging and decay. The formula used to calculate this increased decay is Math.floor(Math.log10([total Thorium on the tile]))
Additionally, it cannot be transferred by Terminal in any form.
.send() and .createOrder() method return ERR_INVALID_ARGS if Thorium is passed as resource
What thorium is for ?
Refined in Factory to Refined Thorium
Refined Thorium
What is special about Refined Thorium ?
Additionally to aging and decay, it also causes everything on shared tile take direct damage to hits, equal to: Math.floor(Math.log10([total Refined Thorium on the tile]))
Scenario-1 : creep carries 1000 Refined Thorium on road under rampart:
- creep takes 3dmg to hits and loses additional 3TTL
- road takes 3dmg to hits and its decay timer is decreased by 3
- rampart takes 3dmg to hits and its decay timer is decreased by 3
Scenario-2 : Storage with 1000 Refined Thorium with Rampart on-top:
- storage takes 3dmg to hits
- rampart takes 3dmg to hits and its decay timer is decreased by 3
Additionally, it cannot be transferred by Terminal in any form.
.send() and .createOrder() method return ERR_INVALID_ARGS if Refined Thorium is passed as resource
How to get it ?
Factory takes 5 Batteries and 1 Thorium to output 1 Refined Thorium, at 10 cooldown.
The more Thorium in facory, the bigger the output of produce() according to
For every 5 000 Thorium in factory the output is increased by 1, with ceiling of 5.
Factory also receives direct dmg to hits equal to 5 * output
What that means:
On a tick which Factory with 25010 Thorium stored, produces Refined Thorium
- Factory produces 5 Refined Thorium out of 1 Thorium and 5 Batteries
- Factory gets 5 * 5 dmg directly to its hits as result of .produce()
- Factory gets 4 dmg due to stored Thorium
Why like this:
more advanced production chain, sink for energy, requires more code to prevent factory Meltdown
What Refined Thorium is for ?
Can be used to boost creeps with Labs
- Labs take damage to hits if they contain Refined Thorium
- All creep body is boosted by Refined Thorium
- boosting cost is equal to 3 Refined Thorium and 10 energy per bodypart
- if there is not enough Refined Thorium / Energy - creep is not boosted
- every bodypart has it's effectiveness increased by 40% (on-top of boosts, except TOUGH)
- every creep bodypart takes dmg calculated by (1 * applied_boost_name_length)
- damage is applied AFTER preheal BEFORE any other damage
example.
Creep with 10 T3 MOVE, 10 T2 HEAL, 10 T1 RANGED_ATTACK, 10 TOUGH and 10 T0 ATTACK
It takes every tick:
1 * Math.max(1, XZHO2.length) dmg to MOVE parts
(5dmg per part, 50dmg evenly across 10 parts)
1 * Math.max(1, LHO2.length) dmg to HEAL parts
(4dmg per part, 40dmg evenly across 10 parts)
1 * Math.max(1, KO.length) dmg to RA parts
(2dmg per part, 20dmg evenly across 10 parts)
1 Math.max(1, ''.length) dmg to ATTACK parts
(1dmg per part, 10dmg evenly across 10 parts)
TOUGH parts do not take any damage
Why like this:
Backwards-compatible, adds another layer to explore for players, by allowing creeps to be more performant at the cost of Refined Thorium and hits. While combat performance is boosted, attacker needs to take into account damage that every bodypart receives. Same for creeps that will try to outrepair damage. It Should help break the "Defender" advantage but more calculation would be needed. It can be also utilized for "peaceful" purposes as normal-boost alternative, for haulers/miners/etc
Can put into Nuker instead of Ghodium
Nuker:
- takes dmg to hits due to containing Refined Thorium
Nuke:
- Original nuke behavior applies, except for modification to damage and area
- Damage and area are modified to
20m in center
1m in 3x3
100k in 5x5
20k in 6x6
5k in 7x7
- Additionally : Thorium pile is left on remains of killed creeps, equal to
Math.floor(creep.hitsMax/100)
(50 Thorium max per creep)
- Additionally : Room receives decay status which, for 200 ticks, causes every structure/creep take dmg and decay equal to 1k Refined Thorium being in its tile (3dmg/tick). Multiple nukes stack both damage and duration
Why like this:
Backwards-compatible, makes nuke stronger for impact-center but not game-breaking, can makes breaking room easier due to damage-over-time that is applied to structures, makes rebuilding ramparts not possible during that time