0 of 0

File information

Last updated

Original upload

Created by

Nostro

Uploaded by

NostroTS

Virus scan

Safe to use

Tags for this mod

About this mod

This mod is a collection of small balance fixes. The intention is to make the game more fair and fun.

Permissions and credits
Changelogs
DESCRIPTION

Overall, Troubleshooter is a fantastic game. For the first 100 hours, it is even reasonably balanced. However, after about 200 hours, you will start to notice that the game has a lot of rough edges. Some things are purely broken, some things are awkward, some things do not make sense, and some things are just stupid. The intention of this mod is to fix some of these issues.

This mod works only in offline mode. It is done in a modular form: almost any change could be enabled, disabled, or adjusted by editing settings.py before installing it. For more details, see the INSTALLATION section.

!!! WARNING !!!

Since this mod only changes the "rules" of the game, it doesn't touch your save files. So, your saves are safe and you can always return to an unmodded game.
 
However, the mod changes the categories of the modules for drones. This may spoil some of your drone builds. If you care for your already existing drones, before installing the mod, stash them in the drone hangar. Your old drones will be safe in hangar. In this mod, newly built drones have level 60 and have a max OS upgrade. So, you can experiment with the system without significant time investment.

Alternatively, you can disable changes to drone tetris by editing variables DRONES_TETRIS_MODIFY_COSTS and DRONES_TETRIS_MODIFY_STRUCTURE in the settings.py.

INSTALLATION

Overview


By default, the Troubleshooter game files are encrypted. Luckily, a kind soul created TroubleTool (https://github.com/K0lb3/TroubleTool), which can decrypt the game files. After decryption, you can go to the 'Data' folder and modify the game files as much as you want. 

However, there is a problem with updates and mod compatibility. When the devs release a new update, your changes will be overwritten. Additionally, simple editing does not allow for a straightforward combination of two different mods, if both of them edit the same file.

To address these problems, I made this mod in the form of a Python script. This mod searches the parts of the codes in the game files that need to be changed and changes only them. This makes it compatible with other mods (mainly Mal Mod) and resistant to updates. If the devs release a new update, you only need to re-install the mod and everything will be fine.
 
Finally, the game balance is about the game feeling right, which is a subjective issue. Most likely, my vision of the game will not completely coincide with yours. For every change this mod makes, there will be a person who agrees, a person who strongly disagrees, and a person who doesn't care. Python script allows the player to choose which features to install and which to not install.

To install this mod, you need to do three major steps: a) decrypt game files with a TroubleTool; b) install any other mods you want to install; and c) launch this mod to edit game files. Below, is a more detailed installation instruction.

Installation

a) Decrypting game files

1. Download TroubleTool (https://github.com/K0lb3/TroubleTool)
2. Launch TroubleTool.
3. Press "Extract Pack to Data". This procedure make take some time, so you need to wait.
4. Set Game Data Source to "Data"
5. Press "Apply Settings".
6. Just in case, backup folders Data/xml, Data/script, and Data/CEGUI/datafiles/lua_scripts. These are the folders that the mod modifies. If you want to revert mod changes, restore these folders.

b) Installing other mods

7. Install any other mods you want to install (for example, Mal Mod)

c) Installing Nostro mod

8. Install Python interpreter (https://www.python.org/downloads/).
9. Unzip Nostro Mod to a new folder.
10. Open settings.py in any text editor. Make sure that GAME_FOLDER (path to a Troubleshooter game folder) is specified correctly. The path should be put into "", and r should be put before "".
11. If you want to disable or adjust some of the mod's features, edit optional parameters inside the settings.py. Optional settings that are disabled by default are described below in the section 'Optional Settings'.
12. Launch main.py (double click on the file). This step will launch a script that will modify game files.
13. Launch the game. You can use troubletool for this or launch it as usual. It doesn't matter.

Optional Settings

- Multiple beasts for Giselle. By default, it is disabled. To enable it, set ENABLE_MULTIPLE_BEASTS = True in settings.py.

- Multiple drones for Engineer. By default, in this mod, the hacker can summon 1 drone, and engineer 2. To increase the number of drones for an engineer,  edit EXTRA_DRONES_FOR_ENGINEER in settings.py. For example, if you want to summon all drones, then set variable EXTRA_DRONES_FOR_ENGINEER to 9.

- By default, after crafting, drones starts with level 60 and maxed OS level. It needs to be noted that this may prevent you from gaining drone modules from leveling the drone's frame and OS. So, if you haven't gained them, set DRONES_CRAFT_OS_MAX_LEVEL = False in settings.py.

Re-installation

Once in a while, you will have to re-install this mod. It will be needed if a) I will release a new version of the mod; b) devs will update the game; c) Malediction will release a new version of the Mal mod (in case, you use Mal mod); and d) you will want to adjust some settings.

In order for this mod to be installed properly, it requires 'clean' game files: i.e. untouched by this mod. So, to re-install the mod, you need to first restore the 'clean' state. There are two different scenarios of how to do it.

If situations a) or d) happen, restore the backup made at step 6 and continue with the installation process from step 7. In other cases, you need to start from the very beginning. Sometimes Troubletool doesn't want to update some files in the Data folder, in this case, you will have to delete the Data folder, check the integrity of game files with Steam, and start from the beginning.

CHANGES COMPARED TO VANILLA

0 AT

- Outside of your turn AT reductions cannot put you below 10 AT.

This change fixes everything that is related to 0 AT cheesing. And by everything, I mean everything: too much -AT at the end of the turn, retarded joint tactics, hunter cheese, sacrifice + death potion, etc.

However, there is a catch. Let’s consider Albus at 5 AT. An enemy attacks him in melee. This triggers weapon blocking and counterattack. First, the counterattack will bring Albus to 35 AT, and then weapon blocking will bring him to 10 (because this is an AT limit). You see, the price of the 0 AT fix is an imperfection in AT calculation. It will only occur to characters that are about to take a turn and will be in the range of 1-10.

I don’t like this imperfection, but, in my opinion, the cure is better than the disease. You can adjust the value of the AT limit in the settings.py.

Overload

- After hitting overload level 5, it does not reset after exhaustion expires (i.e. does not go to level 0). Instead, you recover overload equal to the amount of AT you were exhausted.

With this change, the amount of time (AP or AT) you can borrow from the future is limited. It is a strategic resource that you need to manage during the whole mission. The only way to restore it is to wait. If you don't like this change, you can change this by editing "settings.py".

- Fixed Giselle's overload gain during shadow sniping. Now she gains 36 overload instead of 72. As a side effect, Shadow in the Dark (sniper set) now gains 2 AP, while Sniping (sniper basic mastery) now gains 0 AP.

- Added an option to set the amount of overload refund per unused AP. The default value is 12 (vanilla-like).

Albus

- Opportunist (personal mastery): now additionally gives +20% block and -100% dodge.

Albus has bad and mostly useless personal masteries. Furthermore, as a melee character, Albus needs block. At the same time, he struggles to get it. To make at least one of his personal mastery useful, I added +20% block to Opportunist (this is approximately 2 TP). Additionally, Albus needs some mechanism to turn off the dodge. For this reason, I added -100% dodge.

Sion

- Furious Lightning Gale is now a free action.

This was done to balance the power gap between Sion and Irene battle mages. With this change, Sion battle mage is more natural to play and it feels equal to Irene. If you don't like this change, you can change this by editing "settings.py".

Heixing

- Added use counts to Heixing's Sweeping Fire. Ranger can use it 3 times per mission, sweeper can use it 10 times per mission.

Heixing Sweeping Fire is a very strong ability. It is better than some max sp abilities. It needs some constraining. Furthermore, if you put Catharsis on the ranger, you can use it pretty often as a ranger. This additionally creates an imbalance between the ranger and sweeper. My solution to this problem was to add a use count for Sweeping Fire. From my testing, if a sweeper uses Sweeping Fire reasonably (aoe against multiple enemies and a basic attack against single targets), he needs about 7-8 Sweeping Fire shots. So, a sweeper with a use count of 10, will be ok, but he will have the potential to run out of "ammo". Ranger on the other hand is supposed to be focused on single-target attacks and use Sweeping Fire only when it is absolutely necessary. 

From a lore perspective, you can justify this change as a simulation of limited ammo. Sweeping Fire consumes a lot of ammo. As a result, it has limited use.

You can disable this change or adjust use counts in the "settings.py". 

Buffs and Debuffs

- Noise now decreases Block and Dodge by 20.
- Extreme Noise now decreases Block and Dodge by 30.

In my opinion, 10 for Noise and 20 for Extreme Noise are not worth the trouble of applying these debuffs. That is why I reverted the nerf of the noise debuffs.

Character masteries

- Character masteries intended for ability slots (A Million Years of Training, Precision Sniping, Divide and Conquer Algorithm, Endless Training, Wind Witch) are now fixed masteries (like Leton's Frozen Blood). That is they don't cost TP and don't take a mastery slot.

These masteries are either useless or mandatory. I made this change mainly to give a helping hand to Leton and engineer. For Leton and Kylie engineer, these masteries put too much pressure on the ability slots and, at the same time, they are really needed. For Irene and Bianca, this change is almost irrelevant. For Giselle, this gives an extra ability slot, which slightly offsets her nerfs introduced by other changes. This change could be disabled in settings.py.

Common masteries

- Altruist AT bonus changed to 5.

Altruist is one of the ways to achieve super low AT. Changing its bonus from 10 to 5 brings the effect of this set to a reasonable level.

- Awaken: restores only 50% of max SP (taken from Mal mod).

Awaken is one of the things that oversimplifies the game. I like how Mal mod fixes this issue. I don't want to duplicate the changes made by Mal mod. However, I find this fix absolutely essential, and some people use my mod without Mal mod.
 
The implementation is compatible with Mal mod. This mod will check if Mal mod is installed. If it is installed, the script will do nothing. Otherwise, it will edit the scripts accordingly.

- Breakthrough can now ignore maximum 30% block. Example: for a 20% block enemy breakthrough will ignore 10%, for a 100% block, it will ignore 30%.

When enemy snipers with a Breakthrough crit your battle mages it feels unfair. Similarly, when you easily crit high-block enemies, it robs the challenge from the game. However, Breakthrough feels right against enemies with middle block values (less than approximately 60%). For these reasons, I put a limit of 30%. With this change, your tanks will no longer suddenly explode. However, it will be harder for you to deal with high-block enemies. Overall, the challenge should be the same, but the game will be less volatile. If you don't like this change, you can edit the Breakthrough limit in "settings.py".

- Prior Planning can now ignore maximum 30% dodge. Example: for an enemy with a 20% dodge, Prior planning will ignore 10%, while for a 100% dodge, it will ignore 30%.

The rationale is similar to the breakthrough. Enemy snipers with Prior Planning ruin Misty and yashas. On the other hand, Prior Planning makes hitting destrons easier. To smooth things out, I put a cap on a Prior Planning dodge ignore value. You can edit it in settings.py.

- Gathering now gives -5 AT at the end of the turn.

In my opinion, -5 AT at the end of the turn is strong, and -10 is super strong. Additionally, activating gathering is as easy as Best Condition, which gives -5. For these reasons, the bonus was changed from 10 to 5. The bonus could be editied in settings.py.

- One Shot One Kill: now can be activated 2 times per turn.
- One Shot One Kill is now an Elementalist mastery.
- Judgement (set): 1s1k is replaced with Heavy Strike.

1s1k is one of the masteries that breaks the game. I usually play without 1s1k, and the game is fine. However, black mages do not really function without it. So, my first step was to change 1s1k type from common to elementalist. The black mages theme is to kill the target with one hit, so it actually fits the vision of the class. Battle mages are not affected by this change, since they do not want 1s1k. In case of MK, it would balance the power gap between mk and gs. In case of witches, they are black mages with bells and whistles. So, it also kind of fits their vision.

Nonetheless, Bibi BM with 1s1k is too strong, while without it, she is too weak. My second step was to add a limit on how much this mastery could be activated during a turn. 

Finally, we need to do something with judgement. With the above changes, it becomes a common mastery that uses elementalist one. Since nobody uses this mastery set, we can pick any solution (or none at all). My choice was to replace 1s1k with Heavy Strike.

If you do not like these changes, you can adjust them by editing "settings.py".

- Overwhelm and Punishment now cost 1 TP.

These masteries by themselves are not really useful. Their only noticeable value is being a part of the Unpredictable set. I think they are overpriced, and 1 TP is a fair cost.

Battle Mage

- Magic Conversion now heals 2% per CMP.
- Magic Relief now heals 3% per 3 CMP.

In the vanilla, at 25 CMP, the battle mage will regain about 60% with each of these masteries. This is a lot. If you combine two masteries, you will get full HP heal. With this change, each mastery will heal for about 25%, which is reasonable. If you do not like this change, you can adjust the healing in settings.py.

Fire

- Joy of Burning: now reduce 1 AT per tile. Cannot reduce AT by more than 5.

Joy of Burning is an interesting mechanic. However, the numbers are too high. For a -AT at the end of the turn, 5 is a strong bonus. For this reason, the numbers were adjusted to something reasonable.

Greatswordsman

- Dazzling Blade now gives flat +15% block instead of block against adjacent. Additionally, the Dazzling Blade now costs 1 TP.

In the vanilla, this mastery costs 3 TP and does not really do anything. By changing it to give a flat block, it starts to do something. However, its TP cost is still high. For a 2 TP, it would be a weak mastery. For a 1 TP, it would be a strong mastery. Since Albus is not a game-breaking gigachad character, I decided to lower the cost to 1.

Grenadier

- Direct Hit: TP cost is lowered to 2. Now activates against EXPOSED and FLANKED.

Since we fight mostly against humans, the exposed state is rarely activated (humans tend to use cover). Therefore, the Direct Hit is mostly useless. For this reason, I made it to activate on flanked targets. Additionally, I think the 3 TP cost is too high, so I lowered it to 2.

- Chancetaker: Now activates against EXPOSED and FLANKED. Max distance was change from 10 to 20.

Same as with Direct Hit, exposed is rarely activated. Therefore, "exposed and flanked" is a more reasonable condition. Changing distance from 10 to 20 is a cheep way of removing distance requirement.

Gunman

- Rapid Fire (gunman set): Competence was replaced with Concentration. For all enemies that had Rapid Fire set, Competence was replaced with Concentration. If the enemy had both masteries, Competence was removed so that the enemy could roll for something better.

Competence is a part of the Rapid Fire set due to poetic reasons: to shoot fast, you need to be competent. This is the only reason. Competence does not support any particular gunman playstyle, and it is bad for build tetris. It has no synergy with other gunman sets, which creates unnecessary tension for the build. In my opinion, Concentration is a better option for this set. It supports gunman playstyles since gunman builds require crit. Concentration is also a part of other gunman sets, which is good for build tetris. You can also justify it from the poetic point of view: to shoot fast, you need to be concentrated.

- I Know It All Already now also applies to counter attacks.

I Know It All Already prevents a character from gaining too much AT due to the responsive attacks. This has good synergy with the ranger class. However, a revenge shot is counter attack, and you need to search for other means of AT compensation. I think this is an oversight and I Know It All Already should also affect counter attacks.

Ranger

- 'You can't do anything' cannot increase cooldown above 2.

This set was probably intended to counter PC battle mages, and it does this job well. However, you can easily catch 5-10 ranger shots between your turns, which will lead to a 5-10 cd on all your abilities. If this happens, then your battle mage (or ESP pet) will have to wait for half (of full) mission, which is too much. With the cap on the cooldown increase, the set is still countering battle mages, but you have a reasonable option to deal with your mistake (wait for 2 turns). 

Scholar

- The Early Bird set now has Catharsis instead of Informant. 

This change was made to improve build tetris.

Sniper

- Shadow Step: reduced AT bonus at the end of the turn to 5.

End game Giselle has an attack range of 17, which makes activating Shadow Step as easy as Best Condition. The bonus of 10 is super strong, while 5 is just strong. For this reason, I changed the bonus to 5 (you can adjust it in settings.py).

- Sniper in the Dark: Can restore APs no more than two times per turn.

Similar to 1s1k, this is one of the things that breaks the game. It gives too much killing power to the player. With the activation limit, Giselle can kill 4 targets per turn (2 AP restore + chain fire), and she still has a pet. In my opinion, even after this nerf, Giselle is still very strong. The activation limit could be changed in settings.py.

- Watch for a Chance: now works against EXPOSED and FLANKED.

Since we fight mostly against humans, exposed is rarely activated. It is more fair to make it also activate against flanked.

- Piercing Bullet set now has Piercing Strike instead of Prior Planning.
- The Best Snipe set now has Piercing Strike instead of Breakthrough.

From a poetic perspective, Piercing Strike fits Piercing Bullet better than Prior Planning, and it fits Best Snipe equally well as Breakthrough. From a gameplay perspective, Piercing Strike is better than Breakthrough because Giselle has a lot of flat block ignore. As a result, Piercing strike fits better the general theme of a sniper. As for Piercing Bullet, Piercing Strike is better for gameplay than Prior Planning, because Giselle has high accuracy. From a build tetris perspective, Piercing Strike is much easier to fit in, which opens more room for interesting combinations.

Swordsman

- Blade Deflection now gives a flat +15% block instead of a block against melee.

Albus (as well as Alisa WK) struggles with block. This change makes this mastery to be useful.

BEASTS

Beasts General

- The speed of all beasts is increased by 30.

The low speed of beasts is a fundamental flaw of the balance. To function, characters should have around 100 speed, and beasts have a base speed of 55-60. As a result, you need to invest significantly in speed with masteries, which ruins the joy of making builds for beasts. That is why I increased their speed by 30. They still need to get about 20 speed from masteries, which could be achieved relatively easily. This change has the side effect of making all beast maps a little bit harder, which is always a welcome change.

- Inrush Training is now a default behavior. You can switch this mastery with something else.

Inrush Training is so good that it is mandatory. De facto, almost every beast build has inrush. This is basically a tax. It feels that this should be a default beast behavior. Now, it is a default behavior.

- Summon Beast: added use counts. Sniper can summon beast 1 time per mission, hunter 3 times per mission.

Inrush Training open a lot of room for breaking the game (awaken nuking, free repositioning, constant re-summoning to accelerate the beast, beast friend 0 AT loop, etc.). To counter it, I added use counts. This should force the player to build beasts as units, but not as a tool to break the game. The values of the use counts could be adjusted in settings.py.

- Killer's Seal now has no effect on beasts.

Killer's Seal on beasts is one of the ways to cheese the game. Combined with Inrush Training, it gives you a controlled crit on a chosen beast ability, which is bad for balance.

- Drakis, Crabs, and Mungos now require Monster Taming.

Sniper should be able to handle beasts, while hunter should be able to handle monsters. Even non-legendary drakis, crabs, and mungos are comparable to or even stronger than some legendaries. That is why it makes sense to make them hunter only.

- Added an option to enable summoning multiple beats. By default, it is disabled (to enable it, set ENABLE_MULTIPLE_BEASTS = True in settings.py).

Needless to say, this is an unbalanced option intended for fun. For example, now you can play a game with full-beast teams. For convinience, this option also removes cooldown, AP and vigor costs from Summon Beast ability.

- Beasts can no longer get from the challenge mode the following masteries: Flame Sac, Ice Sac, Lightning Sac, and Poison Sac.

Due to how challenge mode works, it is very likely for beasts to get one of those masteries. As a result, it is very likely that beasts will leave on death a fart cloud. After killing a couple dozens of beasts the map turns into a fart kingdom. To prevent this effect, I added fart masteries to the beast's challenge mode ban list.

KYLIE AND DRONES

HACKER

End game hacker can reach 10 support protocol uses, 8 attack protocol uses (total 38), and 4 reboots. For the sake of balancing, I assume that, on average, Kylie hacker will have about 30 protocols.

- Distributed Process now gives 1.5% (instead of 3%) per protocol.

At 30 protocols, this mastery will give about 50% bonus damage, which is more or less reasonable. In an unmodded game, it was 100+% bonus damage, which is too much.

- Delay Process now gives 1% (instead of 3%) per protocol.

In an unmodded game, this mastery with 30 protocols gave around 100% damage reduction. This is clearly broken. 30% is more reasonable and still strong.

 - Abstraction now gives 1% (instead of 1.5%) per mastery.

 At 20 scholar/hacker masteries, unmodded mastery gives a 30% hit. This is a little too much. 20% is a more reasonable value.

- Parallel Process now shreds 0.5% dodge (instead of 1%) per protocol, gives 0.5% block (instead of 2%), and costs 1 TP (instead of 3 TP).

This mastery gave too much survivability to the hacker, and the values needed to be toned down. After the nerf, the mastery started to cost too much. To avoid this, the TP cost was lowered.

- Code Optimization (-1 AP for protocols) now affects only support protocols.

This mastery gives too much offensive power to hacker. With this mastery, during a single, turn Kylie can use move protocol, use attack protocol, gain overcharge, reposition herself with a move protocol, and use ultimate. By restraining this mastery to only support protocols, we will keep hacker offensive power within reasonable boundaries.

- Multi Processing now reduces AT by 1 at the end of the turn per 5 available protocols (instead of 2 per 2).

End-game hacker has 38 protocols. Additionally, the game counts additional 6 protocol (I don't know why). So, in unmodded game, the hacker can potentially gives you -44 AT at the end of the turn. Needless to say this is too much. In this mod, hacker will get 5-8 AT reduction, which is more or less reasonable (and still strong).

ENGINEER

- Extra Parts set now has Professional Book instead of Veteran.

Veteran is a part of this set only due to poetic reasons. It fits neither engineer gameplay, nor its build tetris. Professional Book gives useful stats, has better build tetris synergy and serves the same poetic reasons.

- Improved Consecutive Attack now has Powerful Main Battery instead of Power Control.

Power Control is probably the most strange choice as a component for this set. It should be replaced with something.

- Mechanical Engineer (set that gives damage) and Mechanical Engineering (default engineer mastery that gives block shred) now works against all enemies.

This change makes these masteries useful.

- Powerful Main Battery now applies armor break on hit (instead of crit).

Usually, crit inflicts death. Therefore, it makes more sense for this mastery to be applied on hit.

- Improved Consecutive Attack now can restore AP two times per turn.

Two times per turn is a reasonable limit, which will keep engineer's power within reasonable boundaries. You can edit activation limit in the settings.py.

- Master Machine Craftsman's Bracelet additionally reduces the cast delay of the attack protocols by 25%.

With the changes made by the devs and this mod, the engineer is more or less ok. However, it lacks a little bit of cast delay on its attack protocols. For an engineer, the less useful slot is bracelet. So, it makes sense to add the cast delay bonus to the bracelet from the machine crafter set.

DRONES

- After crafting, drones have a level of 60 and a maximum upgrade level of their OS.

The need for drone leveling was probably one of the top reasons that killed the desire to deal with them, and now it is gone. You can edit the crafting level in settings.py.

It needs to be noted that this option may prevent you from gaining drone modules from leveling the drone's frame and OS. So, if you haven't gained them, set DRONES_CRAFT_OS_MAX_LEVEL = False in settings.py.

- Drones with legendary (red) parts can be summoned only by an engineer.

This change serves two purposes. Firstly, it reinforces psychological perception that the engineer is better with drones than the hacker. Secondly, if we modify legendary drones gear, this change will be isolated to engineer and will not affect the hacker.

- The weights and speed penalties of the red drone gear were set to be equal to the similar purple ones.

In my opinion, the weights of purple gear are more or less balanced. In an unmodded game, red gear weighs more, which may force you to use a mix of purple and red gear. This change makes red gear just a better version of the purple one.

- Legendary drone gear can now be unlocked with crafting.

This change gives an option to use red gear before the game is finished.

- Added legendary web launcher, overheat engine, nanoskin, and fire control system.

These items are present in the game files, but not present in the game. 

- Hacker can now summon only 1 drone. Engineer can summon 2 drones by default. Multiple Calculating Device now does nothing.

Firstly, this change reinforce the difference between the engineer and hacker. Secondly, it frees one gear slot for engineer (in unmodded game, multiple calculating device was mandatory for engineer).

Additionally, if you don't care about balance, you can increase the amount of extra drones the engineer can summon by editing "settings.py". For example, if you want to summon all drones, then before launching main.py go to settings.py and set variable EXTRA_DRONES_FOR_ENGINEER to 9.

- Added Magic Armor to the Titanium Carbon Heavy Armor

Judging from the code, this item was supposed to have Magic Armor. Probably, it was removed because the destrons in the final mission would be to challenging. In my opinion, extra challenge is always welcome, and legendary gear should not be worse than purple one.

- Mark Target for drones now has no cooldown.

This will provide more options for building a support drone.

DRONES: MODULES

- Auto Rearrangement can restore AP 1 time per turn. CD is reduced on any kill.

Similar to 1s1k, this mastery should have an activation limit. Two times per turn would be too much power to Kylie, so 1 is a good middle ground. The activation limit could be edited in settings.py.

- Reinforced Rifle: now applies armor break on hit instead of crit.

In unmodded game rifle is a little worse than the ice laser. This change is intended to lower power gap between them and give rifle some identity.

DRONES: FRAMES

- Search Area for scout frame is now a free action and has 3 extra uses.
- Advanced Radar: removed limit on SP gain and doubled the amount of SP gained for scout drone.
- Real-Time Information Analysis System (sp for scanning enemies): doubled the amount of SP gained for scout drone.

I feel that in the unmodded game, scout frame lacks identity. These changes are intended to make the scout frame good with scanning and getting information SP from observing enemies.

- Engine Accelerator: for a high-speed drone it is a free action.
- Rapid Movement: for a high-speed drone it is a free action.
- Optical Camouflage: for a high-speed drone it is a free action. For high-speed and scout frames, the cooldown is reduced by 5.

With these changes, I wanted to make a high-speed drone to be fast and convenient with motion and stealth-related abilities. The reduction to the camouflage cooldown will allow to create a passive drone that will be constantly in stealth and just provide vision (similar to an observer from Starcraft).

DRONES: TETRIS

Build tetris for humans is very enjoyable and addictive, while drone tetris is not. In order to fix the problem, we need to first understand the math that lies behind it.

The default budget of the TP limit for each group is 2 per slot. For humans, the average TP cost of mastery is around 2. Whenever you acquire a new slot, you will naturally have something to fit in. On the other hand, for drones, the average TP cost of a module is around 3-4. As a result, you are always hungry for more output and more TP limit. For drones, it is common to have many free slots and not be able to fit anything inside them.

The second problem is the composition of mastery sets. For humans, mastery sets usually consist of masteries that belong to four different categories. There are cases when a set uses two masteries of the same category. However, cases when a set has three masteries of the same group are rare. When this happens, you usually feel tension in this category. For drones, many sets have 3-4 masteries of the same group. This makes completing sets difficult, and drone builds not enjoyable.

Due to these reasons, drones tetris does not feel like tetris. It rather feels like a futile attempt to fit many large square objects into a few small round holes. It seems that developers realized this problem. New modules cost less, and their set composition is more diverse in terms of categories. However, the old sets and modules still have the issues described above.

To remedy the situation, I reviewed all modules and lowered their costs where it was possible in terms of balance. Then I reviewed every set and changed the type of their components to spread them among different categories (trying to be as lore-friendly as possible). The detailed list of changes is listed below. If you don't like them, you can edit variables DRONES_TETRIS_MODIFY_COSTS and DRONES_TETRIS_MODIFY_STRUCTURE in the settings.py.

Frame

Attack Balance Control Device: TP 3->1
Defense Balance Control Device: TP 3->1, ->Security
Infrared Sensor: TP 3->2
Machine Control Program: TP 3->2
Reinforced Machine: TP 3->2, ->Reinfrocement
Sub Attack Equipment: TP 4->3
Sub Support Equipment: TP 4->3
Sub Calculating Device: TP 3->1, ->Support
Supplementary Output Control: TP 3->2, Bonus 3->2, ->Security
Supplementary Output Reinforcement: TP 1->2, Bonus 5->6, ->Security

Support

Additional Booster: TP 4->3
Advanced Radar: TP 2->1
Alternator: TP 2->1
Broadband Sensor: ->Security
Central Control Program: TP 3->2, ->Security
Disk Radome: TP 4->3
Emergency Fuel: ->Security
Emergency Rescue System: ->AI
Fast Recharger: TP 3->2
Fuel Conversion Program: TP 2->1, ->AI
High-end Fuel: ->Reinforcement
High Speed Driving Program: TP 3->1, ->AI
Information Confusing Device: TP 4->2, ->Security
Supplementary Battery: TP 2->1
Supplementary Fuel: ->Frame
Unified Reinforcement Program: TP 3->2
Weight Dispersion: TP 3->2, ->Frame
Weight Management Program: TP 3->2
Weight Optimization: TP 3->2, ->Reinforcement

Reinforcement

Acceleration Propeller: TP 3->2, ->Frame
Aiming Procedure Optimization: TP 4->2
Auxiliary Engine: -> Frame
Engine Accelerator: -> Support
ESP Amplifier: TP 2->1
Fire Stability Control: TP 3->1
Highly Efficient Flamethrower: TP 3->2, ->Support
Highly Efficient Refrigerator: TP 3->2, ->Support
Reinforced Fire Thrower: TP 4->2, ->Support
Reinforced Freezing Laser: TP 4->2, ->Support
Reinforced Rifle: TP 4->2, ->Support

Security

Energy Storage Device: TP 2->1
Shock Conversion: TP 2->1
System Restoration Program: TP 3->2
System Security Program: TP 3->2

AI

Auto Dodge Mobility: TP 2->1
Auto Overwatch Movement: TP 4->3
Auto Punishment: TP 4->2
Auto Responsive Fire: TP 4->3
Auto Suppressive Fire: TP 4->2, ->Security
Automatic Re-attack: TP 4->3
Close-Range Defensive Maneuver: TP 3->2
Emergency Drive: TP 4->3, ->Security
Enemy Information Analysis Program: TP 3->1
Heat Conversion Optimization: TP 3->2
Massive Information Processing AI: TP 4->2
Optimized Information Distributed Processing: TP 2->1
Real Time Output Optimization: TP 3->2, Bonus 9->8
Real Time Forward Output Optimization: TP 3->2, Bonus 3->2
Survival Mode: TP 4->3

Sets

High Performance Optical Camouflage Device: Inertia Control -> Engine Amplifier

ITEMS

- Gear can now be equipped in the top pocket.

The game has 3 specialized slots (alchemy bag, grenadier bag, and extra gear slot), 1 universal (ninja), and 1 half-universal (bottom pocket: gear + grenades). From a symmetry perspective, it makes sense to make the top pocket a half-universal slot (potions + gear). This change would be interesting for building options and could help underperforming classes. Sure, it will make a game easier. However, I think this mod (and mal mod) introduces enough difficulty, so it is possible to sacrifice a little bit of challenge in favor of a little bit more interesting gameplay.

- Pascal's Protective Gear now increases the amount of blocked damage by 15%.

In vanilla, martial artists with Pascal's gear were immune to melee damage. In addition, it doubled the survivability of your tanks. This is too much for a single piece of gear. Nerfing the bonus to 15% solves the problem of immunity for martial artists. For other tanks, it will give about 40% of survivability, which is still a very strong bonus.

PATCH NOTES

Version 1.19.0

- Prior Planning can ignore maximum 30% dodge.
- Gunman: I Know It All Already now also applies to counter attacks.
- Awaken: restores only 50% of max SP (taken from Mal mod).
- To prevent accidental double installation, the mod will check if it is installed. If yes, it will display a warning.

Version 1.18.0

- Beasts can no longer get from the challenge mode the following masteries: Flame Sac, Ice Sac, Lightning Sac, and Poison Sac.
- Overwhelm and Punishment now cost 1 TP.
- Ranger: 'You can't do anything' cannot increase cooldown above 2.

Version 1.17.0

- Pascal's Protective Gear now increases the amount of blocked damage by 15%.
- Added an option to enable summoning multiple beats. By default, it is disabled (to enable it, set ENABLE_MULTIPLE_BEASTS = True in settings.py).

Version 1.16.0

- Supplementary Output Reinforcement: TP 1->2, Bonus 5->6
- Supplementary Output Control: TP 3->2, Bonus 3->2
- Output Reinforcement System: TP 1->2, Bonus 6->7
- Real Time Output Optimization: TP 1->2, Bonus 7->8
- Real Time Forward Output Optimization: TP 3->2, Bonus 3->2
- Auto Punishment: TP 2->1
- Automatic Re-attack: TP 2->3
- Mark Target for drones now has no cooldown.
- Engine Accelerator: for a high-speed drone it is a free action.
- Rapid Movement: for a high-speed drone it is a free action.
- Optical Camouflage: for a high-speed drone it is a free action. For high-speed and scout frames, the cooldown is reduced by 5.

Version 1.15.0

- Sniper: Piercing Bullet set now has Piercing Strike instead of Prior Planning.
- Sniper: The Best Snipe set now has Piercing Strike instead of Breakthrough.
- Gear can now be equipped in the top pocket.
- Search Area for scout frame is now a free action and has 3 extra uses.
- Advanced Radar: removed limit on SP gain and doubled the amount of SP gained for scout drone.
- Real-Time Information Analysis System (sp for scanning enemies): doubled the amount of SP gained for scout drone.
- Reinforced Rifle: now applies armor break on hit instead of crit.

Version 1.14.0

- The cost and categories of drone modules were changed (see "DRONES TETRIS" section of the readme/description). This may spoil some of your drone builds. If you care for your already existing drones, stash them in the drone hangar and build new ones (they will be level 60 and have a max OS upgrade).

Version 1.13.0

- After crafting, drones have a level of 60 and a maximum upgrade level of their OS.

Version 1.12.0

- Engineer: Extra Parts set now has Professional Book instead of Veteran.
- Engineer: Improved Consecutive Attack now has Powerful Main Battery instead of Power Control.
- Engineer: Mechanical Engineer (set that gives damage) and Mechanical Engineering (default engineer mastery that gives block shred) now works against all enemies.
- Engineer: Powerful Main Battery now applies armor break on hit (instead of crit).
- Engineer: Improved Consecutive Attack now can restore AP two times per turn.
- Drones: Auto Rearrangement can restore AP 1 time per turn. CD is reduced on any kill.
- Master Machine Craftsman's Bracelet additionally reduces the cast delay of the attack protocols by 25%.

Version 1.11.0

- Drones with legendary (red) parts can be summoned only by Engineer.
- The weights and speed penalties of the red drone gear were set to be equal to the similar purple ones.
- Legendary drone gear can now be unlocked with crafting.
- Added legendary web launcher, overheat engine, nanoskin, and fire control system.
- Hacker can now summon only 1 drone. Engineer can summon 2 drones by default. Multiple Calculating Device now does nothing.
- Added Magic Armor to the Titanium Carbon Heavy Armor.

Version 1.10.0

- Hacker: Distributed Process now gives 1.5% (instead of 3%) per protocol.
- Hacker: Delay Process now gives 1% (instead of 3%) per protocol.
- Hacker: Abstraction now gives 1% (instead of 1.5%) per mastery.
- Hacker: Parallel Process now shreds 0.5% dodge (instead of 1%) per protocol, gives 0.5% block (instead of 2%), and costs 1 TP (instead of 3 TP).
- Hacker: Code Optimization (-1 AP for protocols) now affects only support protocols.
- Hacker: Multi Processing now reduces AT by 1 at the end of the turn per 5 available protocols (instead of 2 per 2).
- Scholar: The Early Bird set now has Catharsis instead of Informant.

Version 1.9.0

- Character masteries intended for ability slots (A Million Years of Training, Precsion Sniping, Divide and Conquer Algorithm, Endless Training, Wind Witch) are now fixed masteries (like Leton's Frozen Blood). That is they don't cost TP and don't take a mastery slot.

Version 1.8.0

- Killer's Seal now has no effect on beasts.
- Drakis, Crabs, and Mungos now require Monster Taming.
- Altruist AT bonus changed to 5.

Version 1.7.0

- Sniper in the Dark: Can restore APs no more than two times per turn.
- Shadow Step: reduced AT bonus at the end of the turn to 5.
- Watch for a Chance: now works against EXPOSED and FLANKED.
- Speed of all beasts is increased by 30.
- Inrush Training is now a default behavior. You can switch this mastery with something else.
- Summon Beast: added use counts. Sniper can summon beast 1 time per mission, hunter 3 times per mission.

Version 1.6.0

- Direct Hit: TP cost is lowered to 2. Now activates against EXPOSED and FLANKED.
- Chancetaker: Now activates against EXPOSED and FLANKED. Max distance was change from 10 to 20.
- Noise now decreases Block and Dodge by 20.
- Extreme Noise now decreases Block and Dodge by 30.

Version 1.5.0

- Outside of your turn AT reductions cannot put you below 10 AT. 

Version 1.4.0

- Added use counts to Heixing's Sweeping Fire. Ranger can use it 3 times per mission, sweeper can use it 10 times per mission.
- Rapid Fire (gunman set): Competence was replaced with Concentration. For all enemies that had Rapid Fire set, Competence was replaced with Concentration. If the enemy had both masteries, Competence was removed so that the enemy could roll for something better.
- Gathering now gives -5 AT at the end of the turn.

Version 1.3.0.

- One Shot One Kill: now can be activated 2 times per turn.
- One Shot one Kill is now an Elementalist mastery.
- Judgement (set): 1s1k is replaced with Heavy Strike.

Version 1.2.0.

- Joy of Burning: now reduce 1 AT per tile. Cannot reduce AT by more than 5.

- Overload: added an option to set the amount of overload refund per unused AP. The default value is 12 (vanilla-like).

Version 1.1.0.

- Battle Mage: Magic Conversion now heals 2% per CMP.
- Battle Mage: Magic Relief now heals 3% per 3 CMP.

- Breakthrough can now ignore maximum 30% block.

Version 1.0.0.

- Overload: After hitting overload level 5, it does not reset after exhaustion expires. Instead, you recover overload equal to the amount of AT you were exhausted.

- Overload: Fixed Giselle's overload gain during shadow sniping. Now she gains 36 overload instead of 72. As a side effect, Shadow in the Dark (sniper set) now gains 2 AP, while Sniping (sniper basic mastery) now gains 0 AP.

- Albus: Opportunist (personal mastery) now additionally gives +20% block and -100% dodge.

- Sion: Furious Lightning Gale is now a free action.

- Greatswordsman: Dazzling Blade now gives flat +15% block instead of block against adjacent. Additionally, the Dazzling Blade now costs 1 TP.

- Swordsman: Blade Deflection now gives a flat +15% block instead of a block against melee.