Welcome to the "Headrock's Assorted Modifications" Mod page. This page elaborates on all the new features available in H.A.M.
HAM Beta v2.8 has been released.
ANNOUNCEMENT
As of 31/3/2009, HAM has been merged into the main JA2 1.13 code. If you download the new 1.13 version (2651/1104 and later), it ALREADY INCLUDES HAM. No additional download is necessary. Please note that Many of HAM's features are turned off by default, as they may change the entire nature of the game. If you wish to use those settings, you will need to edit JA2_Options.INI, which is in your DATA-1.13 sub-folder. If the explanations in the INI are not sufficient, please read the text below for a complete manual on all HAM features and their respective settings. |
Project Description
H.A.M is not really a single mod, it's more of a collection of several modifications I've made to the game. Some of these modifications are very small - no more than bugfixes. Other modifications may have a profound effect on gameplay. The idea is to try and solve problems with JA2 1.13 gameplay, and at the same time to introduce more realism wherever possible without harming gameplay balance. To this end, all of H.A.M.'s modifications can be toggled or adjusted so that the player can choose which of the changes he wants to use, and to what extent.
H.A.M is now at version B2.6. Here is a list of all the different modifications that can be activated with H.A.M, and a short explanation for each feature. Click on the feature name to go directly the the text explaining this feature fully.
Using JA2_Options.INI file, you can turn all of these features on and off as you please, and can also adjust the effect of many features to your liking. One of the most important things about HAM is that it lets you choose which features you want to use, and how much effect you want them to have. In fact, you can even turn all features off if you want.
This version of EDB can be used with the Old Inventory System, and can be toggled on and off through the in-game options menu screen.
INI Setting:
To toggle whether EDB is used at all, refer to the in-game options menu.
For more information about EDB, please read this page.
JA2 1.13 has an option (called RESTRICT_ROAMING) that limits the movement of roaming militia to the sectors around cities. The data about restricted sectors (where militia cannot enter) is held in XML format, in the file /Data-1.13/TableData/Map/RestrictedRoamingMilitia.XML.
However, there were several issues with that system:
I spent some time thinking about how to solve these problems.
Problem #1 is much easier to solve - I simply filled in the gaps in the XML, so that now it doesn't contain only boundaries that militia can't cross, but a whole list of sectors where militia cannot move at all. They'll only enter these sectors if they're called as reinforcements, but can't move through them autonomously. This means that militia will usually return to city patrol, rather than go off to the wilderness. For this reason, installing HAM will overwrite your RestrictedRoamingMilitia.XML file. This should be done regardless of HAM, and you can keep that file even if you uninstall HAM, as it'll work better than the original file anyway.
Problem #2 was more complicated to solve - I needed a method to make sure that militia can patrol the city and the sensitive areas nearby, without allowing them to move from city to city as they wish. Therefore, I've set up two different methods for allowing militia to move about.
Exploration-based Restrictions
Conquest-Based Restrictions
To view a visual presentation of how this works:
View a presentation in GIF format (4.00 MB)
Same presentation in Shockwave Flash (500 KB)
Additionally, HAM now has a feature that enables Roaming Militia to move through the game's "minor cities". This includes any region that's marked as a city, but where Militia cannot be trained. With the JA2 campaign, this includes San Mona, Tixa, Orta, Omerta, and Estoni. Whether Exploration-Based Restrictions or Conquest-Based Restrictions (see above) are chosen, the player would first need to explore/assault these sectors. Subsequently, militia will be free to move through, and WILL attempt to retake those sectors if enemies have wandered into them. In XML-based restrictions, all of these sectors (excluding Tixa, I believe) are not allowed for militia movement at all by the default RestrictRoamingMilitia.XML. To allow them to move through, they must first be removed from the XML. Even then, the sectors would need to be explored or assaulted first by player-controlled mercs.
INI Settings:
PLEASE NOTE that for any of these features to work, you will need to set RESTRICT_ROAMING = TRUE in your Data-1.13/JA2_Options.INI file. Otherwise, militia can go wherever they want.
ALSO NOTE that users who play heavily modded campaigns should be careful about overwriting RestrictedRoamingMilitia.xml, and about turning these features on! They may break the map's design by allowing Militia to go too far, or not far enough.
Smarter Placement of New Roaming Militia
One of the main problems with Roaming Militia in JA2 1.13 is the fact that it is very likely to waste an entire training session and end up creating no militia at all. When the militia generator is told that roaming militia have been trained in a sector, it will look for adjacent sectors where it can place them. It chooses one of the appropriate sectors, randomly, and places militia there. First, if there are no sectors around where roaming militia can be placed at all (such as Grumm G1), the militia training session is automatically wasted. Second, even if there are available placement sectors around, the generator doesn't check whether they are full (maximum militia already present) when putting them there, even if there's a better choice. This means that if half the city is surrounded by roaming militia, you can only train roaming militia in the OTHER half, otherwise your efforts will have been wasted. Even then, because roaming militia (by definition) move about, it's hard to tell where it's best to train them to avoid wasting the effort.
This problem's been fixed in HAM using the following method:
Multi-class Roaming Militia Groups
HAM now offers the option to train Roaming Militia that ISN'T all elite! When this feature is turned on, 25% of the militia (rounded down) will be Elite, 25% (rounded down) will be Regular, and the rest will be Green. Naturally, this depends on the size of militia groups generated, as these are just percentages. This system is great when you use a low Luck in Autoresolve factor, as that feature tends to make the All-Elite roamers much more powerful than the redshirts they usually enouncter in the wilderness. Also note that if a city is surrounded by full roaming militia groups, and the smart generator has been turned on, further training efforts in that city will upgrade the nearby roamers.
Roaming Militia Spreads-Out or Joins-Up
A setting in HAM now allows militia to form up in different methods. In JA2 1.13, if two groups of militia meet, one group will fill up to the maximum, and if anyone is left over, they'll be put in the other team. With HAM, you can tell militia groups to try and "even out", so that after the meeting both groups will be of the same size. If you're using the multi-class option (above), militia will also try to spread out the Greens, Regulars and Elites evenly between both groups. This is chance-based, so you can change the frequency of either of these events occuring.
INI Settings:
JA2 1.13 introduced a Chance-to-Hit indicator over the targetting cursor, to allow us to determine how likely we are to hit the target. This indicator, in the form of a horizontal bar, appears over the cursor in when firing single shots, and also when firing bursts. However, the cursor in its 1.13 form is rather limited in burst mode, and does not appear at all in autofire mode.
To fix this problem, I've made several changes to both the Burst cursor and the Autofire cursor.
Additionally, the Burst Cursor did not show the targetted bodypart. It does now.
Screenshot:
In HAM, the number of bullets remaining in the magazine has been removed - that number is always visible anyway on the gun's picture in our inventory and team panel (either of these is always visible). A targetted-bodypart indicator is added to replace it.
Two CTH indicators have been added to Autofire. The first (top) bar shows the CTH of the first bullet in the autofire salvo. The second (bottom) bar shows the CTH of the LAST bullet in the salvo. Naturally, as you increase the number of bullets you wish to fire, the second bar will drop to show the cumulative effect of the weapon's Auto Penalty.
To accomodate the new CTH bars, the "bullet count" indicator has been moved to the right.
Screenshot:
INI Setting:
PLEASE NOTE that you can turn CTH bars off completely using your in-game options menu.
There have been many discussions in the past few years about JA2's limited use of suppression fire. The importance of auto-firing weaponry was very limited in JA2, which caused many players to frown, as this isn't very realistic. The game seems to rely mostly on well-aimed single shots rather than volume of fire.
JA2 does include a system for suppression fire. At one point, I attempted to dispel the myths by examining the system and trying to understand how it works. During this exploration, I discovered that the main reason why suppression is not felt enough in the game is because it was BROKEN. In fact, any character could only be suppressed once or twice in the ENTIRE GAME, after which they would suffer no further suppression at all!
To fix this, I've introduced a fix to allow suppression to accumulate as it should. In addition, I revamped the entire suppression system, introduced many new elements, and externalized the effects of suppression so that its potency can be controlled through HAM's INI file. With these settings, one could make a game that is much more dependent on steady suppression fire and flanking. Even the AI can be told to fire more auto-volleys than normal.
Quick overview - how does suppression work? I won't go into all details of suppression fire, only the very basics.
Unfortunately, in regular JA2 1.13, this was never really manifested - a target could only lose 8 APs in their entire life due to suppression, which made the system completely irrelevant. |
Fixing JA2's "stuck" suppression system
Controlling how powerful suppression is overall
If this value is increased above 100, each attack will cause MORE AP-loss than normal. The end result is that the same attack is more likely to drain APs, morale, and cause suppression shock (if enabled, see later), and might even cause suppression to characters who were previously immune to suppression due to very high Experience Level.
Lower the value below 100 to reduce the effectiveness of suppression (though you might want to check out other values first, as they would be better suited for that purpose).
Maximum AP loss due to suppression, per turn, attack or overall
You can also use a value of "0" for the first two limits, which removes those limits.
You cannot disable the Minimum Threshold though, but you can set it very very low if you want (like -100).
Suppression Shock
A character will get Suppression Shock based on the number of APs he's lost, and is mitigated by the character's Tolerance value (see box text, above). There's also an INI setting that can increase and decrease the ratio between APs lost and Suppression Shock. You can also set the "absolute maximum" limit on how much suppression shock a character can receive in total.
Suppression Shock's goal is to render a character unable to fire back at his suppressor. In "regular" JA2 1.13, when suppression DOES work it usually sends a character to the ground, making them harder to hit but also increasing their chance to hit you! So the main effect of suppression is to reduce the firing accuracy of the suppressed character. Each suppression shock point accounts for a -5 CTH reduction. Of course, higher-level characters will suffer less shock, and so will drop to the ground but still remain relatively dangerous.
The accumulated Suppression Shock points are halved at the start of a character's turn. Therefore, if a character manages to stay out of incoming fire for a few turns, his suppression shock will have disappeared.
Please note that shock is also accumulated from injury. They work the same way, reducing the character's chance-to-hit.
Finally, Suppression Shock is a key ingredient in "cowering", another new addition to the suppression system.
Cowering in Fear
The effect is that anyone shooting at the this character will have a penalty to their CTH based on the cowering target's shock value. The more shocked the character is, the harder he is to hit (up to a certain limit, of course).
At the same time, suppression shock (if enabled) would make the cowering character be less accurate too, so while he's hard to hit he's also much less accurate himself.
When a character reaches the limit of his Tolerance, he will drop a stance and the message "Character cowers in fear!" will appear on your screen. This indicates to you that the character has suffered a considerable amount of suppression.
There's also an INI setting that makes cowering even more important. When this setting is used, any character who has reached "cowering" state will suffer more (or less) from any further suppression fire in his direction. Therefore, if the "Character cowers in fear!" message is displayed, then you know that any further suppression fire on that character will be even more powerful towards neutralizing him.
Please note that the cowering formula is mostly INDEPENDENT from Suppression Shock: cowering also works with shock accumulated through being injured. However, injury gives very little shock compared to Suppression Fire, so a combination of Suppression Shock and Cowering is optimal.
New Externalized Settings for the Cowering Feature
Firstly, we can set the cowering effect based on the targetted bodypart. The idea is that a character who cowers while prone would be very hard to hit, but not as hard to hit if he's cowering while crouched. Also, if crouched, the cowering character will deal a different amount of CTH penalty to his opponents if they are shooting at his head, torso, or legs. This goes to simulate a cowering person's tendency to protect his head but neglect his extremities. Of course, you can set it so that neither crouching nor the targetted bodypart affect the penalty at all!
Furthermore, I've externalized a nice little value that determines how close we have to be to a cowering enemy, to get rid of that pesky CTH penalty he's giving us. By default, at a range of 10 tiles or more, the cowering character gives us the full penalty, but as we get closer to him, the penalty begins to disappear. At a range of one tile, we can hardly feel the penalty at all. With HAM, you can set the minimum distance, making cowering characters easier to hit at longer ranges. This will significantly change the way the game is played. In general, the larger you set this range limit, the more this game resembles JA2 1.13 (where long-range shooting is the primary tactic). If you set this limit very low (say, around 5 or less), you'll have to get VERY close to the cowering character to kill him, requiring some intensive close-quarters combat! The HAM default is 10, and feels about right so far.
AI uses more Suppression Fire
INI Settings:
The difference between option #1 and #2 is very limited.
Please note that values above 0 are not recommended. Most importantly, values above 5 will cause suppression to become mostly pointless (except for Suppression Shock and Cowering, if enabled).
Also note that lowering the limit will also lower the effectiveness of suppression shock automatically (like SUPPRESSION_SHOCK_EFFECTIVENESS, above). This may have the effect of making some characters immune to Suppression Shock.
Please note that shock from injury also causes this effect, so it is independent of Suppression Shock. However, without Suppression Shock, you are unlikely to see much cowering at all.
Please note: Increasing this value further will reduce the chance of enemies fleeing due to suppression fire. If you think enemies flee too much, increase the value. If you want to see mass enemy retreats (at least at early stages of the campaign), reduce this value.
In yet another attempt to revamp the autofiring system, I've introduced a new method to handle Tracer Ammo.
In JA2 1.13, Tracer Ammo (color-coded yellow) is used mainly to increase the accuracy of autofiring weapons. When tracer ammo is loaded into the gun, the gun's Auto Penalty and Burst Penalty will drop considerably, making it more stable. Combined with a foregrip and/or bipod, the penalty can be completely eliminated, meaning that all shots will be fired with the same accuracy (same CTH as an unaimed single shot).
In addition, tracer fire also "lights up the night", by causing a trail of light to follow each bullet. This light can reveal enemies at night, but also reveals the shooter himself.
Unfortunately, neither of these effects is very realistic. As I see it, the Auto/Burst penalty goes to simulate recoil, meaning that the gun jerks around while you're firing it, so that each consecutive bullet will make it fire less accurately than before. In real life, tracer fire does nothing against this. It only allows the firer to see where (SOME!) of his bullets are going, making it easier for him to know how far his gun has jerked, so that the shooter can compensate. But even with tracers, it is still hard to compensate for recoil. Furthermore, the ligh trails shouldn't be created by every bullet in the magazine - in tracer magazines, only 1 out of every few bullets is a tracer.
So there are two problems to fix, and this is how I've done it:
With the new tracer-fire system, the first and most important effect is that not every bullet in the tracer magazine is a tracer bullet. In fact, using an INI setting, you can tell the program how many bullets there are per every 1 tracer bullet, as it is in real life. The first noticeable effect of this is that in the game, you'll only see light trails for tracer bullets, while all other bullets in the magazine will not produce a light trail. But the effect goes much deeper than that.
When auto-firing, the program keeps track of the bullets left in the magazine. Using a simple calculation, it now knows which bullet we are firing, and determines whether this bullet should be a tracer. If it is, the tracer bullet will "bump up" your Chance-to-Hit by a certain amount (also INI-settable). This bump increases the accuracy of the remainder of your autofire salvo. So on the one hand, the CTH keeps decreasing because of the gun's Autofire Penalty. On the other hand, the more bullets you fire (and hence, more tracers), the more CTH bumps you'll get. This more accurately depicts the shooter's struggle to aim his weapon correctly, as he sees where the tracers are going.
Here's an animated explanation of this:
So overall, you can control how good Tracers are at negating auto penalties, and if you set it high enough, then longer bursts will actually become more accurate than they started! The key would be to find a balance between the number of bumps, and the number of tracers in each magazine. This is done through the INI settings.
INI Settings:
Please note: while you can raise and lower the bump to very large numbers, do try to keep it low, otherwise, game balance will suffer considerably. The important thing here is to find a combination of settings that work for you.
JA2 1.13's INI file (Data-1.13\JA2_Options.INI) allows us to decide what parts of the game influence our progress level, and how much influence they each give. Progress, if you don't know, determines the difficulty of the enemies you meet, and also the types of weapons and equipment available, both from enemy drops and from Bobby Ray's.
The four controls in JA2_Options.INI are:
The idea is that you can set them to different values, totalling 100, and thus decide how important each of these things is, when calculating your current progress. For instance, if "GAME_PROGRESS_CONTROL" is set very high (like 50 or more), then each city sector you conquer will boost your progress level. If "GAME_PROGRESS_INCOME" is set very high, then the loyalty level in your captured cities will be very important in determining the progress.
Unfortunately, there was a problem with the inner-workings of the system, in the way the game calculates GAME_PROGRESS_CONTROL and GAME_PROGRESS_VISITED.
One of the most annoying problems in JA2 is that despite the fact that we have autofire capability, long-range weapons fitted with scopes are still the most important tool on the battlefield. As the campaign progresses, tactics quickly require more and more long-range sniper fire, rendering Machine-Guns and other automatic weapons relatively useless.
H.A.M offers several solutions to this problem. One is the new Suppression System, another is the Realistic Tracer System. There is also the option of increasing the AP costs required to aim a weapon.
With this Increased AP system, aimed shots will cost a lot more APs than they used to. If the AP cost used to be 1 AP per aiming level, then now it relies on the weapon itself, as well as the type of scope attached.
Here's the outline of the system:
The main effect is that this makes sniper rifles (or any weapon capable of more than 4 aiming levels) will cost considerably more APs to aim to its full potential. This discourages aimed shots in favour of maneuvering (to close the distance and use less APs).
However, this system has several problems. Most importantly, since some of the huge anti-material rifles (like the M2 Gepard) cost a ton of APs already, this system could increase the aiming costs so much that it would be impossible to aim these weapons to their full extent. Still, I assume some people would want to play with this, to nerf down the power of scope-equipped rifles in favour of suppressive fire and flanking tactics.
Still, if this system doesn't sound good to you, check out the Dynamic Aiming Levels System, below. It is a far better system, which doesn't cause any issues, and is also more realistic, in my opinion.
INI Setting:
Another way to tackle the overwhelming superiority of aimed shots is to reduce the number of aiming levels that some weapons can achieve. After all, no matter how much time you spend on aiming a pistol, it will never be as accurate as a sniper rifle.
When this system is activated, it will reduce the number of aiming levels that most weapons can achieve. A scope will increase the number of allowed aiming levels, but most scopes will only increase it by one or two points. Furthermore, no weapon can achieve its true aiming potential unless a bipod is used (and prone).
Here is a table of the weapons and the number of aiming levels they can achieve:
Pistols, Machine-Pistols, one-handed SMGs, and all other one-handed weapons. | Maximum aiming levels without scope | 1 |
Maximum aiming levels without using a bipod | 2 | |
Maximum aiming levels when using a bipod and scope | 2 | |
Two-Handed SMGs, Shotguns, and Machine-Guns. | Maximum aiming levels without scope | 2 |
Maximum aiming levels without using a bipod | 3 | |
Maximum aiming levels when using a bipod and scope | 3 | |
Assault Rifles, Rifles and Sniper Rifles, with a range of no more than 50 tiles. | Maximum aiming levels without scope | 2 |
Maximum aiming levels without using a bipod | 3 | |
Maximum aiming levels when using a bipod and scope | 4 | |
Assault Rifles, Rifles and Sniper Rifles, with a range of 50 tiles or more. | Maximum aiming levels without scope | 3 |
Maximum aiming levels without using a bipod | 4 | |
Maximum aiming levels when using a bipod and scope | 8 |
As you can see, without a scope you won't be able to aim most weapons very well, and the longer-ranged weapons cannot fully benefit from a scope if you aren't using a bipod.
The type of scope you're using also has an important effect on the number of aiming levels:
Of course, you'll need a bipod to reach the highest potential with weapons that have a 7x to 10x scope. Also note that the game calculates this based on the scope's "Minimum Range for Aiming Bonus" value, so it's mod-friendly. Mostly.
INI Setting:
Please note that the in-game option "Restrict Extra Aim Levels" will disable this system, as well as the normal 4/6/8 system.
There's been some resentment in the community towards the CTH bars, with the claim that in reality, soldiers don't know how likely they are to hit. I agree partially with this, as a trained soldier will know at least roughly how accurate his shot is. So I've made sort of a half-way system.
In JA2 1.13, the CTH bar shows our exact CTH, as does the "F" key readout. With the CTH Approximation system, most soldiers will not show the exact CTH of their shot. Instead, the CTH will be "rounded". If a soldier is particularly bad at marksmanship, and is untrained, his approximation would be so bad that he'll see a CTH readout of either 0%, 50%, or 100%. With the CTH bar, this will show either an empty bar, a half-empty bar, or a full bar. As the soldier gets better, his CTH readout will be more accurate (I.E., actual CTH will be rounded to a closer number). The expert soldiers (roughly 9 EXP Level, 90 Marksmanship, and 90 Wisdom) will have a fully-accurate CTH which is what we have today. The SNIPER trait will help the soldier reach a better approximation ability much sooner than that. Of course, this works on a scale, so a mediocre soldier will have mediocre approximation.
INI Settings:
One of the greatest frustrations in JA2 1.13 is that militia, while mildly useful, tend to pick up equipment from the ground, often good equipment dropped from enemies (before you can pick it up! AAARRGGG), and they don't give it back. With this new feature turned on, militia who get themselves killed (which happens too often) will actually drop some or all of their equipment on the ground.
There are two things that control how this behaves. The first is the INI setting - you can decide the conditions in which militia will drop their stuff. You can decide that this happens every time a militia dies, or that killing militia yourself will NOT cause them to drop their equipment (to prevent you from going on a killing spree just to get that cool enemy drop a militia just picked up, hehehehe). Also, your in-game menu-options setting, the infamous "ENEMIES DROP ALL", will decide whether militia drop all of their equipment, or just some of it (like enemies do).
INI Settings:
Also use your in-game options menu to decide whether they drop everything they have, or randomly drop some (or none) of it.
In JA2, the way that trainers and students work is a bit lopsided. Mercs become tired at different speeds, and require different amounts of sleep. Therefore, when training, it is not rare for a trainer to be asleep while his trainee is getting tired, and so they keep switching around (one's asleep while the other's awake). If we want to make them work at the same time (and thus earn the bonus involved), we need to micromanage the sleeping hours, which can get tedious very fast, and is much harder when you're training a large group of mercs simultaneously.
The Smart Training Handler takes care of this problem by synchronizing the sleeping hours of all trainers and students so that they go to sleep and wake up at the same times.
While this may be a minor feature, it's quite a complex one, as it has lots of different INI settings - but you'll probably want to keep the default settings anyway.
With the system fully turned on, if a trainer goes to sleep then all his students will go to sleep as well. Also, if all students go to sleep, the trainer will also go to sleep. It works the same with the wake-up times.
There's also a nice new setting that will control what a student/trainer does if they wake up and no one's available to work with them. Instead of training on their own (without the trainer, who's sleeping), they'll actually rest and wait until the trainer wakes up. The same occurs if the trainer wakes up and finds that all his students are still sleeping (although he should automatically wake them all up, if the system is fully activated). Please note that if students rest, they don't study, so in a trainer/student combo you can ONLY gain experience when both characters are awake!
The effect of the fully activated system is an increase of roughly 10%-20% in the efficiency of training. You won't have to micromanage your character's sleep times. Additionally, you won't need a second trainer to cover the "dead hours" when the main trainer is asleep. On the other hand, the trainer's characteristics are much more important now, as his sleep/fatigue values will affect the training speed of the whole group - so characters who get tired quickly and/or have to sleep alot are less efficient trainers!
Also note that with the system fully turned on, sending a trainer to bet will send all students to bed automatically, and sending all students to bed will send the trainer to bed automatically. This will keep the synchronization. If for some reason you want the trainer to sleep alone, you'll have to change his assignment first.
INI Settings:
This feature is only important to those who use the New Inventory System.
In JA2 1.13, characters will repair our LBE's much sooner than the rest of our inventory. This is odd, since the condition of an LBE isn't really important - it has no effect, unless you let it drop to 0. Therefore, it's often a much better idea to repair other items first, such as headgear, slung guns, or any other piece of inventory for that matter.
With the new system, LBE's will be repaired LAST. Only once the repairer has repaired all other items in the inventory, he/she will start repairing the LBE's. This makes repairs more efficient, especially if you're pressed for time.
INI Setting:
None! I consider this a bug fix, as I truly see no reason why LBEs should be repaired first.
In JA2, assigning a merc to REPAIR or DOCTOR will automatically place that character's toolkit or medikit into his hand. If the character doesn't have a kit, the assignment cannot be started at all.
The problem is that because of the way this was handled, the item that was in our main hand (usually our weapon!) is moved somewhere else in the inventory, usually swapped with the kit. This is annoying because it can take some tedious work to put all the weapons back into the characters' hands, especially if you have a large group of mercs.
With the Smarter Item Switch, the program looks at the item we're holding in our main hand. If it is a weapon, the program first tries to swap hands (putting the weapon into your second hand). If it fails to do that, it'll try to put the weapon into the sling slot. Only if both these attempts fail, the program will put the weapon where the kit was.
Now, after you've finished repairs, you can switch back the weapons much faster. Go to tactical mode, and on the team panel, right-click each weapon, and it'll be switched back to your main hand. Obviously this is a little less useful with dual-wielded weapons, but that was also true in the original item swap method.
INI Setting:
None! I consider this a bugfix, as it certainly doesn't make the situation any worse than it already was no matter how you look at it.
ChrisL created a hotkey that will switch goggles for an entire squad, but I find that this hotkey doesn't always perform what I want it to perform. So I've fixed that hotkey, and added an alternate one which in my opionion works much better.
So now, SHIFT-N will remove any worn goggles even if it can't find something to replace them with. Another SHIFT-N click will put the goggles back on, as normal.
The new hotkey solves this. Instead of changing each merc's goggles to the opposite of what they were wearing, the feature picks either day or night and switches everyone in the team to the appropriate goggles. Inappropriate goggles (like sungoggles, if night is chosen) will be removed even if there's nothing to switch them with. A second CTRL-SHIFT-N will choose the other setting.
Why is this better? Because now, we can force our entire team to use the same type of goggles. If after SHIFT-N, one of our squaddies is wearing his night goggles, it means that EVERYBODY is wearing night goggles (or at least not wearing sun goggles). If our merc is wearing sun goggles, that means all his buddies are wearing sun-goggles too. This is mainly a timesaving feature, and can be very important when you find yourself in a hostile sector and want to find the best goggles as quickly as possible, for everybody.
INI Setting:
None! This is an extra hotkey, so nothing is forcing you to use it if you don't want to. Give it a try though, see if you like it.
There are many situations when we want to select our entire squad. One way to do this in JA2 involves trying to move a squad member, then cancelling the move - this selects the entire squad, but requires several clicks. I've reduced this to a single click.
When looking at the merc list in the strategic screen, right-click the assignment field of the merc, where it says (for instance) "SQUAD 1". This will select all of the mercs who are in squad one, immediately.
You can use CTRL or SHIFT (either one is fine) together with a right-click, to select multiple squads. Clicking on a squad name that's already selected will deselect that squad.
The same thing goes for groups. For instance, click on a "DOCTOR" assignment field, and all doctors in the same sector will also be selected. CTRL/SHIFT works here too.
This allows us to quickly select an entire squad or several squads, regardless of the sorting of the mercenary panel. This allows us, for instance, to give a new assignment to all squad members, so basically it saves us some extra clicking.
INI Setting:
None! This is an extra feature that simply allows an alternative - you don't have to use it if you don't want to. But why on earth wouldn't you want to?
With HAM, you can decide how much money you want to get from your controlled mines. This is done with a percentage value that allows both decreasing and increasing the cashflow. So, basically, you can make a game where money flows easily, or a game where a few dollars a day is all you get.
Please note that it is currently impossible to turn off mine income completely (as that would crash the game). But you can set it so low that any incoming money would be really pathetic (a few dozen dollars a day).
INI Setting:
Please note: If you set it to 0, the program will immediately reset it to 1, to prevent crashes.
Whether we like it or not, autoresolve happens. And there isn't much I can do to help make it work better, but I do what I can. I've externalized a specific value that controls how much Autoresolve depends on pure luck (rather than the skills of all participants).
By adjusting this value, you can make luck more or less of a factor in autoresolve. It will ALWAYS be a factor, but in my opinion it was simply too important in the past.
INI Setting:
JA2 has a serious problem. Take a pistol, walk to one side of the map, and put a buddy on the other side of the map. Make sure there are no obstacles between them that could block the shot. Now fire the pistol at your buddy about 100 times. Statistically, one of those bullets will be a sure hit.
This is because the Chance to Hit can never drop below 1% . So one in every 100 shots is a sure hit, which is absolutely ridiculous (and leads to such hopeless shots). Since in JA2 our automatic weapons can spit out a lot of lead, it means that lucky shots occur far too often. To fix this, I've externalized both the minimum and maximum CTH values. We can now lower the minimum to 0, meaning that hopeless shots are just that - hopeless.
In addition, I've created a third value that allows placing the minimum CTH somewhere between 1% and 0%. This is called the "Minimum CTH Divisor". It works only if Minimum CTH has been set to 0.
To find out how to set the divisor, do this:
So if the CTH divisor is set to 50, the minimum CTH will be 1/5000. This means that 1 in every 5000 bullets is a sure hit.
INI Settings:
MAXIMUM_POSSIBLE_CTH
There's a trick here though, caused by the way the physics engine works in the game. When a bullet is designated as a "hit", it'll be fired directly at the target. It can still hit obstacles on the way, but it'll at least be flying directly at the targets. However, a "missed" bullet can go pretty much anywhere, so there's always a statistical chance that it would STILL fly in the right direction and hit the target, even if it was designated to miss completely. This is something I can't easily resolve, but allowing the CTH to drop to 0 makes that less probable.
If your target has moved at all during its turn, you will receive a penalty to your CTH when firing at that target. This is true for both enemies and mercs. Following many requests on this subject, I've externalized the value of the penalty.
Basically, this value determines how much CTH the shooter loses for every tile his target has moved.
Please note that there's a hardcoded maximum limit of 30 CTH loss. I might externalize it in the future.
INI Settings:
Again, remember that you cannot suffer more than a 30 CTH penalty for target movement!
This setting allows us to place a modifier on ALL automatic weapons in the game, increasing or decreasing their rate of fire. This is a flat modifier, it adds or subtracts a number from the "Autofire Bullets / 5 AP" value of all automatic weapons. This is simply a hack that allows us make autofire faster (or slower) without having to change the XML.
INI Settings:
The method in which skills are gained in JA2 is unconventional. In essence, each time a character performs some skill-related action, he or she will be eligible to gain several "Sub-Points" in one or more skills. Whether they gain those Sub-Points is based on luck and of course how high their skill level already is. Once enough Sub-Points have been accumulated, the skill goes up one point. Again, as you get better in the skill, you'll gain less and less Sub-Points, but the number you need to accumulate stays the same.
Also note that Experience Level works a bit differently - You gain EXP Sub-Points every time you gain sub-points in any other skill or attribute, and the number of sub-points you need to gather grows larger and larger with each experience level. To go from level 1 to level 2 you need X sub-points, to go from level 2 to level 3 you need 2*X sub-points, from 3 to 4 requires 3*X sub-points points, etcetera.
The INI settings in HAM allow you to change the number of Sub-Points you need to collect to advance in skill, attribute, or Experience Level.
Here's a list of the skills/attributes:
SKILLS
ATTRIBUTES
INI Settings:
PLEASE NOTE: These are independent from one another - you can make one category improve faster without changing the others.
ALSO NOTE: Experience Level Cost cannot be higher than 6500 (the program will correct higher values automatically). This is due to program limitations. Still, a value of 6500 means it takes 20 times longer to go up an experience level!