Invert colors
JA2 1.13 - Headrock's Assorted Modifications (H.A.M) Mod, Version 3.4

Welcome to the "Headrock's Assorted Modifications" Mod page for H.A.M. version 3. This page elaborates on all the new features available in H.A.M. 3

HAM 3.4 has been released.

ANNOUNCEMENT

HAM 3 is a completely new set of features, independent of HAM B2.8. As HAM B2.8 has already been added to the MAIN SVN version of JA2 1.13, and HAM 3 is based on that version, you will be getting ALL features combined together. There is no need to separately download HAM B2.8 at all.

You WILL be required to download the main SVN version to play, though!

HAM 3.3 download is here:



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 3.4 Features list

H.A.M is now at version 3.4. 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.

Major features


Minor Features


Externalized Values


By editing the JA2_Options.INI file, you can turn all of these features on and off as you please, and can also adjust the effect of most 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.




Leadership requirements for training militia

In vanilla JA2 and 1.13, militia training is affected by the trainer's leadership, but to a very limited extent: The better you are at Leadership, the faster you will train militia. HAM 3 makes the whole affair more interesting, by adding further effects to both Leadership and the TEACHING skill.

Minimum Leadership Requirement

Firstly, with HAM 3 you can set an ABSOLUTE MINIMUM Leadership requirement for Militia training. No matter what number you set this to, a merc would require at LEAST that much leadership to train militia at all! Some characters may thus become incapable of training militia, and will have to practice or study Leadership until they reach the minimum requirement.

"Teaching" Skill Helps Meet the Requirements

In addition, the TEACHING trait can now be used to circumvent the Leadership Requirement. For every level of the "TEACHING" skill, the character will have a certain bonus to his Leadership skill, for the purposes of checking whether he meets the requirement. The bonus comes in the form of a percentage, applied to the "real" leadership score. 200% would mean that a character's leadership is DOUBLED for the requirement check. This is done once for each "TEACHING" skill level, so if the same character is an expert teacher, he/she will get a whopping 400% increase instead of just 200%.

For example, let's say we set the minimum Leadership requirement at 60. Characters with less than 60 Leadership will not be able to train militia AT ALL.
Let's also say that we've set the TEACHING trait to double our effective leadership score. It means that any character with 30 Leadership who also has the Teaching trait CAN train militia despite his low leadership score - he simply has a knack for it! The math is simple: 30 * 2 = 60!
If a character has TWO levels of the TEACHING trait, he can start training militia when his leadership is a measly 15! Why? Because we double our leadership once per every level of "TEACHING": 15 * 2 = 30, and 30 * 2 = 60!
Naturally, using the INI settings explained below, you can play with these values whichever way you like.


Variable Quantity of Trained Militia

In Regular 1.13, there is an INI setting that allows us to determine how many militia are trained when we complete a training session. This is called the "MAX_TRAINING_SQUAD_SIZE". By default it is set to 10, same as it was in vanilla JA2. It doesn't matter who trains the militia or how long it takes, once a training session is completed you will have 10 more militia than you did before, provided there's room enough for all of them.

With a HAM 3, a new feature allows the game to determine the results of any Militia Training session based on the trainer's Leadership score. This takes into account any number of factors, but only works when training Town Garrisons - it does NOT effect mobile militia training.

To calculate how many militia our merc can train, we need to know several things:

What is the maximum number of militia we can train? This is set by MAX_TRAINING_SQUAD_SIZE, as explained before, a 1.13 INI setting. Again, the default value is 10, which is the same as the original JA2.

What is the minimum number of militia that can be trained? Well, if your character can train militia at all, then of course the minimum is 1. But he'd have to be truly inept for that to happen.

What is the minimum required leadership to train militia? You can set this using one of HAM's new settings, as explained earlier in this section. If you do not wish to use a minimum limit, then the minimum is 0 (meaning, anyone can train militia). A character who's leadership is exactly the minimum required, or just a little bit above that minimum, will probably be able to train only 1 militiaman at a time!

What is the amount of leadership required to train a full squad? That's another new HAM INI setting, used only for this purpose. If your merc has this much leadership, or MORE, then he or she will be able to train the full squad size, as determined in the INI setting MAX_TRAINING_SQUAD_SIZE from 1.13. By default, the leadership required for this is 100. You can play with the INI setting as much as you want, to determine whatever works for you! Setting it to 0 is impossible, but if you simply wish to train 10 men every time, you should turn this whole feature off! :D

So now that we know the maximum and minimum, we find out where our merc fits between them.

If a merc has just the bare minimum to train militia at all, he will only train one guy.

If the merc has as much as is required to train a full squad, or more than required, he'll train a full squad (10 by default).

If he's halfway between the minimum and maximum, he will train HALF a squad (5), and all other cases behave exactly the same - on a linear scale.

Example time!
We set the minimum at 1 and the maximum at 100. This is the most basic setting you can use. In this case, any merc can train militia except someone who has NO leadership at all. To train a full squad, our merc would need to have 100 Leadership. If he does not have that much, he will train less than 10 men every session. The exact amount depends on his leadership score - if he has 50, he'll only train 5 men. 51 Leadership will also train 5 men, but 60 Leadership will train 6, and so on and so on.

Example 2
We set the minimum at 30, and the maximum at 90. Anyone less than 30 can't train militia at all. Anyone with 90+ leadership will train a full squad of 10 men. The halfway point is at 60, which is where you'll train half of the men (5 men). At 50 you will train 1/3 of the men (3.3 men, which is rounded down to 3 men).
At 40, you'll be able to train much fewer: 1.6 men to be exact, which unfortunately is rounded down to just ONE man.

In addition to everything above, we also need to take into account the effect of the "TEACHING" trait - if we've enabled that feature (see above for more details). If used, the "TEACHING" trait can cause an otherwise poor leadership merc to train more militia than he normally should.

Please note: When two trainers are working in the same sector, only the BEST of the two determines how many militia are produced. The other trainer assists in speeding up the training, but does not increase the number of militia trained.


HAM 3.3: Separate settings for Mobile Militia

In HAM 3.3, three new settings are introduced that allow controlling the training of Mobile Militia. They function much the same as town garrison training:

Minimum Leadership to train Mobile Militia: This controls how much leadership a character needs for training Mobile Militia. There's a catch though - if your character does not meet the minimum, it's possible that he/she will try to train militia anyway. This will result in a wasted session. So make sure you know what your minimum is set to (default is 0...). Of course, such characters will still receive the ample training in Leadership, whether or not they create any militia at all.

Mobile Militia Quantity affected by leadership: Works the same as for town garrisons (see text box, above). If the character meets the minimum requirement, he/she will train no less than 3 Mobile Militia.

Required Leadership to train a Full Mobile Group: If a character possesses this much leadership, he/she will always train a full squad of Mobile Militia. Please note that the setting that controls the size of a "full squad" is set with a vanilla 1.13 INI setting called "DIV_OF_ORIGINAL_MILITIA", which itself is based on the maximum possible militia per sector, called "MAX_MILITIA_PER_SECTOR". The formula is:
Full Group Size = MAX_MILITIA_PER_SECTOR / DIV_OF_ORIGINAL_MILITIA

The "TEACHING" trait takes effect for this just as it does for town garrison training (see above), whenever determining a merc's Leadership score.

Also, please note that if you use variable Mobile Militia quantity, you might find that training militia takes a long time without specialized "teacher" mercs. For this reason, it may be a good idea to balance things out by setting the DIV_OF_ORIGINAL_MILITIA INI setting to 3 or even 2. It's your game!



INI Settings:
MINIMUM_LEADERSHIP_TO_TRAIN_MILITIA
Range: 0 - 100
0 = No leadership requirement. Any merc can train militia, even if they have NO leadership skill.
1 = JA2 default. Any merc with even 1 point of leadership can train militia.
10 = Any merc with at least 10 points of leadership can train militia.


TEACHER_TRAIT_EFFECT_ON_LEADERSHIP
Range: 0 - 10000
100 = JA2 default. The 'TEACHING' trait has no effect on the merc's effective "Leadership" score, for purposes of militia training requirements and/or the number of militia produced.
200 = Each level of the 'TEACHING' trait will double the effective leadership score. Therefore, "expert" teachers get x4 their original score.
300 = Each level of the 'TEACHING' trait will triple the effective leadership score. Therefore, "expert" teachers get x9 their original score.
50 = Each level of the 'TEACHING' trait will halve the effective leadership score. Therefore, "expert" teachers lose 75% of their original score. This is a negative effect, and may not be desirable.


LEADERSHIP_AFFECTS_MILITIA_QUANTITY
Range: TRUE/FALSE
TRUE = The merc's leadership score determines how many militia are created per training session, when training town garrisons.
FALSE = JA2 Default. Any merc will train the same number of militia per session.


REQ_LEADERSHIP_FOR_MAX_MILITIA
Requires LEADERSHIP_AFFECTS_MILITIA_QUANTITY to be set to TRUE.
Range: 0 - 100
0 = JA2 Default. Any merc will train a full contingent of militia per session. This is similar to turning off LEADERSHIP_AFFECTS_MILITIA_QUANTITY.
100 = Only mercs with 100 Leadership (after "TEACHING" trait bonuses, if used) can train a full contingent of militia per session.
50 = Only mercs with 50 Leadership or more (after "TEACHING" trait bonuses, if used) can train a full contingent of militia per session.



Mobile Militia INI Settings:
MINIMUM_LEADERSHIP_TO_TRAIN_MOBILE_MILITIA
Range: 0 - 100
0 = No leadership requirement. Any merc can train mobile militia, even if they have NO leadership skill.
1 = JA2 default. Any merc with even 1 point of leadership can train mobile militia.
10 = Any merc with at least 10 points of leadership can train mobile militia.


LEADERSHIP_AFFECTS_MOBILE_MILITIA_QUANTITY
Range: TRUE/FALSE
TRUE = The merc's leadership score determines how many mobile militia are created per training session.
FALSE = JA2 Default. Any merc will train the same number of militia per session.


REQ_LEADERSHIP_FOR_MAX_MOBILE_MILITIA
Requires LEADERSHIP_AFFECTS_MOBILE_MILITIA_QUANTITY to be set to TRUE.
Range: 0 - 100
0 = JA2 Default. Any merc will train a full contingent of mobile militia per session. This is similar to turning off LEADERSHIP_AFFECTS_MILITIA_QUANTITY.
100 = Only mercs with 100 Leadership (after "TEACHING" trait bonuses, if used) can train a full contingent of mobile militia per session.
50 = Only mercs with 50 Leadership or more (after "TEACHING" trait bonuses, if used) can train a full contingent of mobile militia per session.








Customizable "Increased Aiming Costs" feature

HAM B2.8 introduced a new system that increases the number of APs required to take aimed shots. This system was comprised of three separate costs:
  1. Extra "AP to Ready"-based cost
    • An extra cost, paid once every time you take aim, which equals half the weapon's "APs to Ready".
  2. Extra cost for the use of a scope
    • An extra cost, paid once every time you take aim, equalling 1 AP (or 4 AP in the 100AP system)
  3. Increased costs for aiming clicks 5 to 8
    • When using more than four aiming clicks, the AP cost per click rises sharply. The last two clicks (#7 and #8) cost 3 APs each! (12 APs in the 100AP system)


HAM 3.1 externalizes all of the above effects, letting you determine exactly which costs you want to pay, and how severe they are.

1. AP to Ready Divisor

You can set how much of the gun's "AP to Ready" cost is added whenever you take aim.
You set this as a divisor, so a value of "2" means that you pay half (1/2) of the AP to Ready cost for any aimed shot.
"3" would be 1/3 of the AP to Ready cost.
A value of "1" means you pay the FULL AP to Ready cost for every aim shot, which might easily make them useless, so watch out.
Setting it to "0" means this particular cost is DISABLED.



2. Separate cost for EACH aiming click, with a scope

You can now set the AP cost of EACH aiming click separately! This only works when using a scope, and only when you are within range to use that scope (as per the scope's "min_range_for_aim_bonus" value).
There are 8 clicks possible, and you can set each one to whatever cost you like. If you wish to use HAM 2.8's original costs, then the values would be:
  • 25AP system: 1, 1, 1, 1, 2, 2, 3, 3.
  • 100AP system: 4, 4, 4, 4, 8, 8, 12, 12.
The default settings in HAM 3.1 will change this to:
  • 25AP system: 1, 1, 2, 2, 2, 2, 3, 3.
  • 100AP system: 4, 5, 6, 7, 8, 9, 10, 11.
You can change ALL of these settings in the file "\data-1.13\APBPConstant.INI".

If you wish to simulate HAM B2.8's extra cost for using a scope, increase the first aim by any amount you wish. Therefore, any aimed shot will have to pay that extra amount. In HAM B2.8, the first aiming click cost 2APs (or 8APs in the 100AP system).



INI Setting:
INCREASED_AIM_COST
HAM B2.8 JA2_Options.INI setting
Must be set to TRUE for the rest of this to work! If set to FALSE, the normal costs will be used (1 AP per click in the 25AP system, 4 in the 100AP system)

FIRST_AIM_READY_COST_DIVISOR
JA2_Options.INI setting
Range: 0 - 255
0 = JA2 Default. This disables the extar cost based on the weapon's AP to Ready value.
1 = Full AP to Ready value will be charged for any aimed shot.
2 = 1/2 of the weapon's AP to Ready value will be charged for any aimed shot.

AP_FIRST_CLICK_AIM_SCOPE
AP_SECOND_CLICK_AIM_SCOPE
AP_THIRD_CLICK_AIM_SCOPE
AP_FOURTH_CLICK_AIM_SCOPE
AP_FIFTH_CLICK_AIM_SCOPE
AP_SIXTH_CLICK_AIM_SCOPE
AP_SEVENTH_CLICK_AIM_SCOPE
AP_EIGHTTH_CLICK_AIM_SCOPE
These are APBPConstant.INI settings! Please note that they're based on the 100AP system.
These are only used when aiming with a SCOPE.
Range: 1 - 100
4 = JA2 Default.






Explosives Cause Suppression

With HAM's Suppression system, explosives may now seem a bit underpowered. While they are still useful in my opinion, they've been made much more useful by allowing them to suppress characters, just like gunfire does.

Any explosive that causes a blast (including HE, Frag, Flashbang and Stun) will also dish out suppression points to everyone who's near the center of the explosion. The exact number of points served is based on the size of the explosion (I.E. the radius), and the distance between the character and the center of the explosion.

So basically, the larger the explosion, the more suppression is causes. The closer you are to the center, the more suppression you get.

Using the current formula, explosions can cause a lot of suppression, sometimes even beyond the range at which they cause damage. This will make them very effective tools, especially if used in close-quarters.

In addition, the effect of a flashbang grenade is often quite severe, especially if used indoors or in underground sectors. If used correctly, flashbangs are likely to suck out a character's entire next turn!

Please note that this feature will have no effect unless the rest of the suppression system is turned on. This is because suppression points may accumulate but need the suppression system to have any effect on the game.

INI Setting:
EXPLOSIVES_CAUSE_SUPPRESSION
Range: TRUE/FALSE
FALSE = JA2 Default. Explosives do not cause suppression.
TRUE = Explosives cause suppression based on their size, and on the distance from the victim to the center of the explosion.






Mobile Militia automatically reinforces Cities and SAMs

Mobile Militia are inherently stupid. Their chief capability is to move around from sector to sector (randomly), avoid superior enemy forces, and attack smaller enemy forces. While they may provide effective defense of the countryside (provided they have numerical superiority), they seem completely oblivious to the status of the towns around which they are patrolling. Then your mercs have to travel back into that city to re-train the local garrison, while there are perceftly good troops already loitering about nearby!

Because of this, there can be situations where an enemy attack has left the town almost defenseless, while strong Mobile Militia patrols waltz around without worry. This had to be rectified, of course.

With HAM 3.3, Mobile Militia can now randomly reinforce town and SAM site sectors, bolstering the local garrison back up to full strength. In simpler terms, it means that Mobile Militia can move back into occupied cities (they don't move back out).

Mobile Militia will only be allowed to reinforce a city if the following conditions are true:
  1. The city has been completely liberated and is free of enemy presence (duh)
  2. Mobile Militia must be trained manually (at a cost you specify). This will NOT work if Mobile Militia are set to spawn automatically (for free), because that would completely unbalance the game (it would make conquered cities nigh-invincible...). The method of Mobile Militia creation is determined by a vanilla JA2 1.13 INI setting called "MUST_TRAIN_MOBILE_MILITIA", which is FALSE by default!

Automatic SAM-site reinforcement works the same way, except you need to have full control of the NEAREST CITY to allow your Mobile Militia to reinforce the SAM sector. If the city is not under full control, neither the city itself nor the SAM next to it may be automatically reinforced.

Also note that this reinforcement can also occur if the target sector is EMPTY - as long as the city is already under player control.

INI Settings:
ALLOW_MOBILE_MILITIA_REINFORCE_TOWN_GARRISONS
Range: TRUE/FALSE
FALSE = JA2 Default. Mobile Militia cannot reinforce town garrisons.
TRUE = If a town is under full control, its weakened garrisons may be reinforced by nearby mobile militia.
ALLOW_MOBILE_MILITIA_REINFORCE_SAM_GARRISONS
Range: TRUE/FALSE
FALSE = JA2 Default. Explosives do not cause suppression.
TRUE = If the town nearest to a SAM site is under full control, the SAM's weakened garrison may be reinforced by nearby mobile militia.
Both these settings require that "MUST_TRAIN_MOBILE_MILITIA" be set to true!






XMLized Dynamic Mobile Militia Restrictions

HAM 1 gave us a new method for restricting militia movement. This was called the "Dynamic Mobile Militia Restrictions" feature. Each city you liberated would automatically "unrestrict" a number of sectors around that city. Also, liberating different combinations of cities allowed militia to patrol between those cities, as well as controlling strategic areas in the vicinity.

However, until HAM 3.4, this system was completely hardcoded. If you chose to use the Dynamic system, you had to accept my pre-defined system, for better or for worse. But now, we have an XML that controls which cities (or combination of cities) unrestricts which sectors. This gives full control over to the player, and even allows setting up XMLs that mimick older militia roaming patterns.

This system has now completely replaced the old "RestrictedRoamingMilitia.XML".

Structure of DynamicRestrictions.XML

This new XML file contains all of the conditions that make up a dynamic restrictions system. Each condition pertains to ONE SECTOR. You can have several conditions for any sector - only one has to come true for that sector to be free for roaming. Sectors that do not appear on this list will not be available for roaming, ever.

Here's an example of a restriction entry:

<RESTRICTION>
	<SectorGrid>A1<SectorGrid>
	<ReqTown>12</ReqTown>
</RESTRICTION>

This is a very simple restriction. If town #12 (Chitzena) is liberated, sector A1 will be available for roaming. Otherwise it is restricted, unless some other condition for sector A1 was fulfilled.

Here's another example, two conditions for the same sector:

<RESTRICTION>
	<SectorGrid>A1</SectorGrid>
	<ReqTown>12</ReqTown>
</RESTRICTION>
<RESTRICTION>
	<SectorGrid>A1</SectorGrid>
	<ReqTown>6</ReqTown>
</RESTRICTION>

These are two different conditions pertaining to the same sector. If Chitzena (12) is liberated, the sector will be allowed. Alternately, if Cambria (6) is liberated, the sector will also be allowed. So you only need to control ONE of these cities for the sector to be free for roaming.

We can also have a combo condition:

<RESTRICTION>
	<SectorGrid>A1</SectorGrid>
	<ReqTown>12</ReqTown>
	<ReqTown>6</ReqTown>
</RESTRICTION>

In this case, you will need to control BOTH cities (Chitzena and Cambria) to allow roaming in sector A1. Controlling only one city won't be enough - both are required.

The town numbers are taken from "Cities.XML". Changing Cities.XML will have a direct effect on Militia Roaming!

Please note that "0" means that the sector is ALWAYS allowed for roaming (it requires no city).

And again, note that any sector which has NO condition will never be allowed for roaming.


The two INI settings that control this feature are RESTRICT_ROAMING and ALLOW_DYNAMIC_RESTRICTED_ROAMING. Both must be set to TRUE for this to work.

The third roaming setting, ALLOW_RESTRICTED_MILITIA_THROUGH_VISITED_SECTORS, will override Dynamic Restrictions, as it always has. If it is activated, militia can roam freely through any explored sectors, regardless of whether they are allowed by the XML or not.






XMLized locations of Sector Facilities

In JA2, there are six different "facilities" that are placed around the map:

  1. A Hospital in Cambria
  2. A Factory ("Industry") in Grumm
  3. A Prison in Tixa
  4. A Military Base in Alma
  5. An Airport in Drassen and in Meduna
  6. A Gun Range in Alma

You can see which facilities a sector has by going to the Strategy Map and right-clicking on that sector (Militia View should be turned off for this). This brings up a pop-up info window about the sector, where the facilities (if any) will be listed.

The Prison, Airports and Military Base have no effect on the game. The only purpose they serve (in vanilla JA2/1.13) is their names that appear on the right-click popup menu.

With HAM 3, the other three facilities DO have an important effect:

  • Gun Range: Increases effectiveness of any Marksmanship training in the sector. (This is available in vanilla 1.13 as well)
  • Hospital: Increases effectiveness of any Medical training in the sector, as long as the trainer and student meet a minimum required Medical score.
  • Factory: Increases speed of repair in the sector, as long as the repairer meets a minimum required Mechanical score.
With HAM 3.4's new XMLized Facility Locations, it is now possible to move ANY facility to ANY sector. If the facility has a bonus associated with it, that bonus goes where the facility goes. In any case, the sector's right-click popup will show that the facility is present.

Additionally, it is now possible to duplicate any facility, so you can put one in as many sectors as you'd like. You can also REMOVE a facility from the game completely, if it doesn't suit your playing style.

Structure of Facilities.XML

This new XML file contains the locations of all facilities in the game. You can place any facility in any sector. You can also place multiple facilities in one sector, and can place any facility in more than one sector.

Example:

<SECTOR>
	<SectorGrid>F8</SectorGrid>
	<FacilityType>1</FacilityType>
	<Hidden>0</Hidden>
</SECTOR>

This places Facility #1 (a Hospital) in sector F8.

<SECTOR>
	<SectorGrid>F8</SectorGrid>
	<FacilityType>1</FacilityType>
	<Hidden>0</Hidden>
</SECTOR>
<SECTOR>
	<SectorGrid>B13</SectorGrid>
	<FacilityType>1</FacilityType>
	<Hidden>0</Hidden>
</SECTOR>

This places a Hospital in sectors F8 and B13. You can place a facility in as many sectors as you'd like, or even place it nowhere. If HAM's Medical Training Bonus is enabled, you can benefit from that bonus in any sector where the Hospital was placed.

The "Hidden" tag is a "TRUE/FALSE" flag (values 0 or 1). It determines whether the facility appears on the sector's right-click popup before actually visiting that sector. For instance, in vanilla JA2, the Gun Range at Alma does not appear when the sector is right-clicked, until sector H12 is explored. This allows keeping facilities hidden so the player doesn't know they are there until he explores/invades the sector.


There are no INI settings associated with this feature, except the ones the control the size of the bonus given by each facility.

This is only the first step in a system that will eventually allow us to add entirely new facilities with new and exciting bonuses (or penalties!).






Bullet Counting Check

In the real world, during intense combat, it is quite easy to forget how many bullets you've fired, and how many are left in the gun. HAM 3.4 has a new experimental feature, based on an idea by Zoolw, that attempts to simulate the difficulty of keeping count.

There are several ways a soldier can keep track of the number of bullets left in the magazine. One is by counting the number of bullets you've fired, which can be really difficult to do while trying to survive in combat. The other way is to weigh the gun in your hand and estimate how many bullets should be in there. Additionally, the larger the magazine is, the harder it should be to keep track of the exact number of bullets remaining.

HAM simulates this by running a check against the character's EXPERIENCE level, WISDOM, and DEXTERITY. The result is then weighed against the number of bullets already fired. If the soldier succeeds the check, he will be able to tell how many bullets are left. Otherwise, the bullet count (visible on the gun in your inventory and in the gun's Description Box) turns into "??", obscuring the real number of bullets left.

Bullet Counting Checks only occur during TURN-BASED COMBAT. Also, if the magazine is full or empty, there's no need for a check at all (the number will always be displayed).

The process in which this is done is fairly complicated. Here are the main points of how it works:

  • The program reads the character's EXP, WIS and DEX.
  • At Experience Level 1, the character needs at least WIS+DEX=180 to be able to tell how many bullets are left. If he doesn't have enough skill, the bullet count will be hidden by default.
  • At Experience Level 2, the character needs at least WIS+DEX=160...
  • For every experience level, the character needs 20 less points in WIS+DEX to be eligible. However, beating the check by a higher margin is also very important, so high skills and experience will ALWAYS help.
  • Now the program looks at how many bullets are left in the gun compared to the size of the magazine. Result = Bullets_Left - Magazine_Size.
  • The emptier the magazine, the harder it's going to be to tell how many bullets are left. Therefore, the character needs to beat the skill check by a higher margin.
  • If the soldier has not beaten the check by enough points, the bullet count is hidden from view.
The end result is that most characters will lose count at some point. The higher their skill levels, the more bullets they can fire from the magazine before they lose count. Experienced characters may be able to keep track all through the magazine. However, the larger the magazine, the harder it is to keep count. Therefore, even the most experienced characters may have some trouble counting all the way through a 100-round magazine. Conversely, most characters will probably be able to count through a pistol magazine. The most experienced characters (100 WIS, 100 DEX, 10 EXP) will be able to count through ANY magazine, no matter how big. Of course, such characters are rare.

If the bullet count has disappeared, there are two ways to know how many bullets are actually left in the gun:
  1. Wait for combat to end. If the game returns to real-time mode, the correct bullet count will reappear.
  2. Take the magazine out of the gun and inspect it. Of course, putting the magazine back in the gun will cost you APs.

Additionally, when the magazine is completely empty, it will show "0" bullets.

Let's take an example here:
Ivan has an EXPERIENCE Level of 3. To be eligible for bullet counting during combat, he needs WIS+DEX of 140. Fortunately, he has Wisdom 83 and Dexterity 95, which together are 178. He beats the requirement by 38 points. This is not much, but in practice he should be able to fire roughly 10 bullets out of a 30-bullet magazine without losing count. Once he's fired enough bullets, the count will disappear, and will only reappear when combat is over (Real-Time). As Ivan's Experience Level or Wis/Dex increase, he should be able to count more and more bullets.

PLEASE REMEMBER that this feature is EXPERIMENTAL. It is not yet balanced, so use at your own risk, and please provide feedback if you can so that this feature can be improved.

JA2_Options.INI Setting:
BULLET_HIDE
Range: TRUE/FALSE
FALSE = JA2 Default. The correct bullet count is always displayed.
TRUE = During Turn-Based Combat, the character must make a check to see whether he can tell how many bullets are left in the gun.

BULLET_HIDE_INTENSITY
Range: 0-1000
0 = Bullet Counting Check is disabled. This is the same as setting BULLET_HIDE to "false".
100 = Bullet Counting is at "normal" intensity. Only an extremely experienced soldier will be able to count bullets all the time.
50 = Bullet Counting is half as difficult. At around level 5, most characters should be able to count through an entire 30-bullet magazine.
200 = Bullet Counting is twice as difficult. Not only will most characters be unable to count their bullets most of the time, but even the most experienced soldiers may not be able to count more than 20 bullets or so.






"Full Suppression" notification

HAM's Suppression System (and in fact, JA2's old broken system as well) was designed primarily to cause AP loss to the suppressed target. The objective of suppression is to suck so many APs out of the target's pool, that he or she will not be able to do much during their next round, and therefore can effectively be flanked and killed by your mercs.

This new notification, when enabled, will display a message on screen to report whenever a target (friend or foe!) has lost SO MANY APs, that they will not be able to do ANYTHING during their next round!

This feature ("Full Suppression Notification") does not change how suppression works, it only determines whether you are NOTIFIED when a character has lost all of their APs for the next round. You can use this knowledge to determine when and where to advance safely. Again, a character that has been fully suppressed will not be able to do anything during the next turn!

As of HAM 3.2, a flashing radio locator will show exactly which character has been "fully suppressed".

INI Setting:
SHOW_MSG_FULLY_SUPPRESSED
Range: TRUE/FALSE
TRUE = Show a message when a character has lost their next round due to concentrated suppression fire.
FALSE = JA2 Default. No message will be shown - you'll have to guess when your enemies have become sufficiently suppressed.






Enabled off-road movement for the Hummer

With this feature activated, the Hummer vehicle's movement is no longer restricted to road sectors. It can now travel through plains, farms, hills, and lightly forested areas. Travel times through such sectors is SLOWER than when using roads, but still much faster than travelling on foot.

Please note that the Hummer CANNOT travel through swamps, dense forests, or other rough terrain.

ALSO NOTE: You must activate this feature BEFORE starting a new game! Otherwise, the Hummer will not be affected!

INI Setting:
HUMVEE_OFFROAD
Range: TRUE/FALSE
TRUE = Hummer no longer restricted to roads.
FALSE = JA2 Default. Hummer can only travel along roads and inside town sectors.






Alternative Progress Calculation

Original JA2 1.13 system

In basic JA2 1.13, we have four different ways to gain progress points:

  • KILLS: Points gained from killing enemies.
  • CONTROL: Points gained from liberating city and SAM site sectors.
  • INCOME: Points gained from mine income.
  • EXPLORATION: Points gained from visiting sectors on the map.

In the regular JA2_Options.INI file, we have four INI settings that can control the importance of each field. We set them on a scale of 0 to 100, determining how many points can be gained from each field. There's a warning there that tells us to set them so that the sum of all four controls equals 100. This goes to ensure that when everything is fulfilled, we get exactly 100 progress points.

Therefore, progress 100 is achieved when:

  • We've killed enough enemies
  • We control all cities (including Meduna) and all SAM-Sites
  • We have 100% loyalty in all cities that have a working mine
  • We've explored all sectors on the map
If any of the fields is set to 0, then we do not have to fulfill that specific goal to get 100 progress points (assuming all the other fields add up to 100!). If we turn off all fields except one, then only that field will have influence on our progress. For instance, if we set all fields to 0 except the "Income" controls, then we will achieve a progress level of 100 if we manage to max our loyalty in all income-producing cities. Kills, control, and exploration are then ignored.

HAM's alternate system

With the new system turned on, all four INI values are ignored completely. Instead, the program will keep track of the four progress fields separately. Each of them can now reach 100 points SEPARATELY of the others. Our actual current progress is then determined by WHICH FIELD HAS COME THE FURTHEST.

It's easier to explain with an example, so here goes:

Example #1:
  • Killed enough men to gain 10 progress points.
  • Control 5% of all city/SAM sectors.
  • Produce 15% of the possible mine income.
  • Explored 20% of all visitable sectors.
In this example, our most advanced field is exploration - we've explored 20% of the possible sectors, which would give us 20 progress points (20% of a possible 100 points equals 20 points). All other progress fields are ignored - they do not contribute to progress.

Example #2:
  • Killed enough men to gain 50 progress points.
  • Control 53% of all city/SAM sectors.
  • Produce 48% of the possible mine income.
  • Explored 43% of all visitable sectors.
In this example, our most advanced field is control - we've liberated 53% of the possible sectors, which would give us 53 progress points (53% of a possible 100 points equals 53 points). All other progress fields are ignored - they do not contribute to progress.

This is dynamic, so the leading field AT ANY GIVEN TIME will control our current progress. As the game proceeds, of course the fields will be competing with each other for the "top spot", so progress will only change if either the leading field is increased, or if another field OVERTAKES and becomes the leading field.

Also note that with this system activated, it becomes impossible to drop below a certain number of progress points. Even if you lose all city/SAM sectors and/or no longer make any money from mines, the progress level will then be determined by hiw many people you've killed or how many sectors are explored (whichever is higher). This is because neither of those two values can ever go back down, so they set the minimum.

One consequence of this is that you can get 100 progress points simply by visiting all sectors on the map. Of course, this can be difficult to achieve without using exploits, so I don't consider it a problem. However, it does mean that exploration is a useful way to push progress upwards.

INI Setting:
ALTERNATE_PROGRESS_CALCULATION
Range: TRUE/FALSE
TRUE = Alternate System Activated. Current progress is determined by whichever progress field has produced the most points SO FAR. All others are ignored.
FALSE = JA2 Default. Original JA2 1.13 INI settings control how many points can be achieved from each progress field, and they are summed together to give the current progress level.






Possible Attachments list at Bobby Ray's

This feature adds a "possible attachments" list to the tooltips of guns in Bobby Ray's on-line store. Put your mouse over a gun to see all items that can be attached to it.

This list works ONLY for guns (I.E. firearms that shoot bullets). Also, it will NOT show items that as flagged as "Hidden Attachment" or "Hidden Add-on".

INI Setting:
BOBBY_RAY_TOOLTIPS_SHOW_POSSIBLE_ATTACHMENTS
Range: TRUE/FALSE
TRUE = Tooltips for Bobby Ray's guns will show all possible attachments for that gun.
FALSE = JA2 Default. Possible attachments are not shown.






Fixed unreal reinforcements advantage

JA2 1.13 introduced a system for reinforcements arriving from nearby sectors to help us or the enemy defend (or attack) a sector. However, those reinforcements have a serious advantage that can sometimes cause them to behave as a "diablo-ex-machina", meaning a terror that appears out of nowhere (sometimes even behind the player!) and can kill with impunity. This is because they appear immediately after the player's turn, and can immediately start killing your troopers, whether or not you've set up an ambush for them. Since we do not know where they will appear or when, they have not only an unfair advantage, but also the potential to wipe out half our team in one turn.

To solve this problem I did something very simple: Reinforcements will now arrive with 0 APs, meaning that on their first turn on the battlefield they can do nothing except stand around like idiots. This gives the player time to thin them out or seek better cover. The player is still required to prepare for reinforcements arrival, but suffers much less of a disadvantage if properly prepared.

This setting can be toggled on SEPARATELY for enemy and militia reinforcements.

INI Setting:
REINFORCEMENTS_ARRIVE_WITH_NO_AP
Range: 0-3
0 = JA2 Default. Reinforcements (especially enemies) can attack on the very first turn that they appear.
2 = Enemy reinforcements arrive with 0 APs and so are unable to act for one whole turn.
3 = Militia reinforcements arrive with 0 APs and so are unable to act for one whole turn.
1 = All reinforcements arrive with 0 APs.






Friends affect tolerance

This is an attempt to add some realistic effects to the way the game calculates a character's Suppression Tolerance.

The system is a little bit complex, but on the whole, it means several things:
  • Large groups have somewhat better tolerance than lone characters.
  • High-leadership mercs help raise the tolerance of friendly characters around them. The higher their leadership, the further away it will have effect. Also, the closer you are to a good leader, the more tolerance bonus you receive.
  • High-level characters will confer a good bonus to tolerance of nearby low-level characters.
  • CONVERSELY, anyone who is in proximity to the dead bodies of friends (and/or unconscious friends) will suffer a tolerance reduction.
  • Finally, characters who themselves are heavily suppressed cannot improve their friends' tolerance levels.
The end result is that high leadership/level characters can significantly decrease the effects of suppression on nearby teammates, and that large teams bunched up together are somewhat harder to suppress than before.
It also means that killing characters/soldiers in a bunched up group will help dispatch the rest of the group because dead bodies will reduce everyone's tolerance!

INI Setting:
FRIENDLIES_AFFECT_TOLERANCE
Range: TRUE/FALSE
FALSE = JA2 Default. Tolerance is based on morale and experience level only.
TRUE = System enabled - high leadership/level characters confer tolerance bonuses to nearby friendlies. Dead characters reduce tolerance for nearby friendlies.






Sightrange reduction for Cowering characters

HAM's suppression system is geared towards disabling enemy combatants by "pinning them down". This is achieved through "cowering", which makes a character much less accurate but also much harder to hit. However, such characters may still be used as "spotters" for friendly sniper fire, suppression fire, and mortar attacks.

HAM's new sight reduction causes "cowering" characters to lose their sight as they become pinned down. Once a character is cowering, his/her exact Suppression Shock level determines the exact degree to which their sight is reduced. Currently, with HAM 3.2, a character who has reached their maximum suppression shock level (default 30) will have lost their sight completely, until that shock dissipates (it's halved at the start of each turn).

Sight reduction comes in two flavours:
  1. Sightrange reduction
    • Reduces the distance to which a character can see. At full reduction, the character can only see one tile forward.
  2. Tunnel Vision
    • Creates a tunnel-vision effect (similar to scope use) when cowering. Unlike scopes, it does NOT increase sight distance, so it's a very negative effect. At full reduction, the character can only see a narrow line of tiles directly in front of him.

It is also possible to combine both systems, so a cowering character's sight-range drops and he also gets tunnel vision, based on the degree of suppression shock accumulated.

INI Setting:
COWERING_REDUCES_SIGHTRANGE
Range: 0-3
0 = HAM Default. A cowering character can see perfectly fine.
2 = Cowering causes reduction in sight distance.
3 = Cowering causes narrower tunnel-vision.
1 = Cowering reduces sight distance AND causes increased tunnel-vision.






Critical headshots cause blindness

Although HAM is mostly geared towards reducing the usefulness of headshots, one cannot ignore the fact that a critical hit on the head should be a very dangeruos thing indeed.

With HAM 3.2, critical headshots can be configured to cause temporary blindness, caused by disorientation and/or blood streaming into the eyes.

HAM allows you to decide how often this temporary blindness occurs, using its primary INI-setting. One in every X critical headshots (statistically) will cause temporary blindness, where X is the value of the INI-setting.

The duration of blindness is based on the severity of the hit. Every 10 points of damage caused by the critical headshot will cause 1 turn of blindness.

INI Setting:
CHANCE_BLINDED_BY_HEADSHOT
Range: 0-10
0 = JA2 Default. Headshots do not cause blindness.
1 = Every critical headshot will cause temporary blindness.
2 = 50% chance that a critical headshot will cause temporary blindness
3 = 33% chance that a critical headshot will cause temporary blindness






Knock-downs cause extra AP loss

In addition to the headshot blindness (above), critical shots to the legs will now also have a severe side-effect.

When a character is knocked down due to being shot in the legs, he/she will also suffer a significant loss of AP's. This happens every time the character is knocked down by a leg-shot.

The exact number of APs lost is governed by an APBP Constant. For every 1 point of damage caused by the leg-shot, the character will lose X APs, where X is the value set in APBPConstants.INI. This may sound like a LOT, but remember that legshots cause a significantly reduced amount of damage.

JA2_Options.INI Setting:
CRITICAL_LEGSHOT_CAUSES_AP_LOSS
Range: TRUE/FALSE
FALSE = JA2 Default. Critical Leg-shots make you fall down, but confer no further penalty.
TRUE = Critical Leg-Shots cause an additional loss of APs, on top of whatever you'll need to get up from the ground.

APBPConstants.INI Setting:
AP_LOSS_PER_LEGSHOT_DAMAGE
Determines the ratio between damage suffered in the leg-shot and the number of APs you lose. Please remember that leg-shot damage is usually much lower than torso or head damage.






No enemy detection without recon

With normal JA2, exploration of the map does more than just finding secret locations - each sector you explore becomes "known", and any enemy group traveling across it will be shown as a "?" on your map screen. Therefore, the more you explore, the better knowledge you'll have about enemy movements.

While this may make defensive planning much easier, it is considerably unrealistic. This is mainly because you can potentially explore the entire map and have an accurate omniscient knowledge of all enemy movements, even if you do not actually control the entire map.

With HAM 3.2's "No Enemy Detection" feature activated, enemies can move undetected through explored sectors. There are two exceptions to this:
  1. Enemies in previously-explored city sectors will always be shown on the map (as a big red "?").
  2. Militia can automatically scout all of the adjacent sectors. They not only spot enemies in those sectors, but also tell you how many there are.
This makes the strategic game much harder, as you cannot easily intercept enemy groups moving through your territory until they're almost on top of you. HOWEVER, it puts more emphasis on the training of mobile militia (which has already received a lot of treatment in HAM to make it more useful), because militia can spot those enemies.

This feature rounds-out many of HAM's militia-related features. With dynamic restrictions, your militia can patrol your occupied areas and detect enemies trying to slip through. Therefore, you will need to train your mobile militia properly, so they can patrol your land effectively.

PLEASE NOTE: As of this version of HAM (and JA2 1.13), mercs cannot scout for enemies at all. If you activate the "No Enemy Detection" feature, you will HAVE to rely on mobile militia to scout for you, unless of course you prefer being ambushed by enemies in what you previously considered "safe areas". If your militia coverage isn't sufficient, your mercs face peril whenever they walk outside the cities - who knows where the enemy might've snuck back in?

INI Setting:
NO_ENEMY_DETECTION_WITHOUT_RECON
Range: TRUE/FALSE
FALSE = JA2 Default. Any enemy group moving through a previously-explored sector will be visible as "?" on the strategy map.
TRUE = Only militia can locate enemies within your territory. Enemies in previously-explored city sectors are also shown.






Better Medical training at Hospital

If you don't already know, the Alma training facility at H13 is a great place to train your marksmanship skill. This is because the gun range at that facility confers a bonus to all manners of training.

With HAM 3.2, you can add a similar effect to the Cambria Hospital at sector G8. Any MEDICAL training in that sector will go better than anywhere else, due to the availability of equipment and patients to train on.

INI Setting:
HOSPITAL_TRAINING_BONUS
Range: 0-100
0 = JA2 Default. Cambria hospital is great for healing people, but does not help medical training at all.
25 = Cambria hospital will confer a bonus to all training sessions in the Medical skill that take place there. At 25, the bonus is similar to the default Marksmanship Training bonus you get at the Alma gun-range.






Better repair rates at Factory

Similar to Hospital Training bonus (above), the factory at Grumm H2 will also confer a specific bonus - it will speed up repair rates due to the availability of metalworking machinery. Characters repairing items in this sector will do so faster than elsewhere.

To avoid making the repairer NPCs absolutely needless (which, quite frankly, they already were), you can set a minimum required Mechanical skill to gain the factory bonus. That is, only characters with enough Mechanical skill to understand how the machinery works will be able to use it to increase their repair rates. All other characters will not get the repair bonus at all.

INI Setting:
FACTORY_REPAIR_BONUS
Range: 0-100
0 = JA2 Default. Grumm Factory will confer no bonus whatsoever.
100 = All repairs at the Grumm Factory will be TWICE as fast as anywhere else.
50 = All repairs at the Grumm Factory will be 1.5 as fast as anywhere else.

MIN_MECHANICAL_FOR_FACTORY_REPAIR_BONUS
Range: 0-100
0 = Any character will benefit from the Grumm Factory repair speed increase.
70 = Recommended HAM setting. Only characters with 70+ Mechanical skill will be able to get the Grumm Factory repair speed bonus.






Tolerance bonus for moving characters

In HAM 3.3, you can give a "Suppression Tolerance" bonus to characters who are moving. This makes them a bit harder to suppress. The more distance they travel (I.E., the faster they move), the higher the bonus will be.

The bonus itself is calculated based on the distance travelled. For each X tiles you move during the turn, you will receive +1 tolerance. X is the value of the INI setting, below.

The tactical ramifications of this is that characters assaulting an enemy position will lose less APs to incoming gunfire, which allows them to keep running at a reasonable pace. Of course, this depends on the INI setting, and concentrated fire will suppress even the fastest merc anyway.

INI Setting:
TILES_MOVED_PER_BONUS_TOLERANCE_POINT
Range: 0-20
0 = JA2 Default. Movement has no effect on suppression tolerance.
1 = For every tile moved, you will gain +1 tolerance. This is a rather extreme setting, which can easily make running charactes very hard to suppress.
2 = For every 2 tiles moved, you will gain +1 tolerance. Based on JA2 running speed, this puts the maximum attainable bonus at around +10 (for a full turn's run), which is a massive bonus.
5 = For every 5 tiles moved, you will gain +1 tolerance. Based on JA2 running speed, this puts the maximum attainable bonus at around +4 (for a full turn's run), which is respectable.






Smarter automatic reloads

When we run out of bullets during combat, our cursor changes into the "reload my weapon!" cursor (looks like a bunch of bullets). Click this, and the game automatically selects a magazine from your inventory and loads it into the gun.

The way this works is rather primitive. The program will looks through your inventory, reading each magazine you're carrying, to see how many bullets are left in that magazine. When it encounters a magazine with more bullets left than any other, it selects that magazine, and then continues to look in case it finds a magazine with even more bullets left in it.

The end result is that if you have several fully-loaded magazines in your inventory, the program will pick the first one it comes across, and ignore all others.

Since players are far more likely to want the same TYPE OF AMMO loaded into their gun as the type they were using previously, the default system offers no help. It chooses based on how many bullets are left in a magazine, but doesn't give a damn about ammo type at all.

For Example:
You're shooting Tracer bullets and your gun goes empty. You have three more Tracer magazines, all full of ammo, and an HP magazine, also full of ammo. When auto-reloading, the game will select any of these magazines, regardless of their type, based only on WHICH ONE IT ENCOUNTERS FIRST. This is determined by the location of the magazines in your inventory.

One way to work around this, in vanilla 1.13, is to put your "preferred" magazines into your Large Slots, and the "Secondary" magazines into a smaller slot. The program reads the large slots first, so it will choose the magazines you placed there over all others. Of course, this requires that the magazines you want to auto-reload into your gun are full of ammo, otherwise they may be skipped for not having enough.

Naturally, this requires way too much micromanagement.

With HAM's smarter reload feature, this is changed somewhat. In the example above, where there are three full Tracer magazines and one full HP magazine, the game will ALWAYS choose the tracer magazines because they match the ammotype that was previously used in the gun. The system is still based on ammo left, so this only works because all magazines are full. If the tracer magazines were all half-empty, the HP magazine would still always be chosen because it contains more bullets.

It's not a perfect system, because you still have to keep your preferred magazines full. However, as long as they are full, or at least as full as any other magazine in your inventory, the program will prefer them over any other magazine.

THERE IS NO INI SETTING ASSOCIATED WITH THIS FEATURE.
While it's still very crude, it is superior to the vanilla JA2 1.13 system, and therefore I regard it as a bugfix.






Externalized Strength to Weight ratio

This is an externalized value that controls how many STRENGTH points we require to lift 0.5 kilos of weight without suffering the AP/speed/fatigue penalties associated with being overloaded.

The JA2 default value is 1. This means that a character with a STRENGTH value of 1 can carry 0.5 kilos of weight to reach "100% weight" as shown on his character sheet. Anything beyond that will be considered overloading, and the character will suffer as a result. With a strength of 50, he can carry 25 kilos, etcetera.

To change the value, use this formula:
Weight that can be carried safely (in kilos) = Character's Strength / (2*X)
where X is the value you set here.

If you're using the imperial system, use this formula instead:
Weight that can be carried safely (in lbs.) = Character's Strength / X
where X is the value you set here.

INI Setting:
STRENGTH_TO_LIFT_HALF_KILO
Range: 0.1 - 100.0
1.0 = JA2 Default. For each 0.5 kilos your character is carrying, he needs at least one point of strength to avoid overloading.
1.5 = Characters will need 50% more strength than they did originally, to lift the same weight.
0.1 = Characters will need 10% as much strength as they used to, to lift the same weight.
100.0 = Characters will not be able to lift more than 0.5 kilos without becoming overloaded! This is the extreme setting, of course.






Externalized Kills per Progress Point ratios

Originally, while we were able to determine how many progress points can be earned from killing enemies, we could not set how many enemies must be killed PER POINT. The original values were hardcoded, and are based on difficulty:

  • NOVICE: 7 kills per progress point.
  • EXPERIENCED: 10 kills per progress point.
  • EXPERT: 15 kills per progress point.
  • INSANE: 60 kills per progress point!!

HAM allows us to change each of these ratios independently. This should be self explanatory.

INI Setting:
NUM_KILLS_PER_PROGRESS_POINT_NOVICE
NUM_KILLS_PER_PROGRESS_POINT_EXPERIENCED
NUM_KILLS_PER_PROGRESS_POINT_EXPERT
NUM_KILLS_PER_PROGRESS_POINT_INSANE
Range: 1 - 1000
Each setting has its own default (see above)






Externalized Mine Depletion

When a new JA2 campaign is started, the game randomly selected one of the ore mines and sets it to run out of resources sometime later in the game. Once you begin to extract money from that mine, it will "silently" deplete its resources until the head miner notifies you that the mine is about to shut down. Production then begins to drop, and a week later the mine will run out of resources and will stop producing money for the rest of the game.

With HAM 3.1, you can actually CHOOSE which mine will experience this shut-down, rather than let the program choose randomly.

You can also deactivate the "mine depletion" faeture completely, meaning that NONE of the mines will run out at all!

PLEASE NOTE: do not set this to "1" or "3". Mine #1 is in San Mona and will can't be mined anyway. Mine #3 is Alma, and it's possible that it hasn't been set up properly to allow depletion, so your game MIGHT crash. I haven't actually tested that though, so who knows.

INI Setting:
MANUALLY_SELECT_MINE_TO_RUN_OUT
Range: TRUE/FALSE
TRUE = Enables player-choice of which mine will be depleted (or, that no mine will be depleted)
FALSE = JA2 Default. The game chooses one mine randomly, and that mine will become depleted during the game.

WHICH_MINE_RUNS_OUT
Range: 0-6
0 = Disables the "Mine Depletion" feature completely. All mines will continue to generate income throughout the campaign.
2 = Drassen mine will become depleted.
4 = Cambria mine will become depleted.
5 = Chitzena mine will become depleted.
6 = Grumm mine will become depleted.
1 = DO NOT USE. This controls the San Mona Mine, which is not functional.
3 = Alma Mine will become depleted. Be warned, this may have unexpected results!!






CTH Divisor for mortar fire

In the original JA2, mortars were one of the most powerful weapons in the game. They were the only weapon capable of taking out tanks without having to face them head-on (unlike LAW rockets), and were also great for blowing up concentrations of enemies. However, mortar shells were EXTREMELY rare, and only a handful could be found anywhere in Arulco. You also couldn't buy any more of them from Bobby Ray's, so what you found was all you had.

In JA2 1.13, however, mortars have become much more commonplace. Large enemy groups, especially on Expert and Insane levels may have a mortar carrier relatively early in the game. They can cause a LOT of damage to your men, possibly killing several of them in a single hit, and your only answer would be to break through the enemy ranks and find the mortar launcher, or cross your fingers and hope he runs out of shells. This makes some encounters unbelievably difficult.

Of course, once you've picked up a couple of mortars, all hell breaks loose - you are usually far better at shelling enemy concentrations, which gives you an unfair advantage. In any case, regardless of who's holding them, mortars are exceptionally powerful weapons.

The reason that Mortars are so dangerous lies in their accuracy. Mortars may be exceptionally slow, but a single hit can do massive damage, and it is not hard to get a good hit. Since we cannot make mortars fire any slower (they're already abysmally slow, as they should be), and reducing their damage would make them unrealistic, the only reasonable solution would be to make them much less accurate than they are now. This is also quite realistic, as mortars are not pin-point-accurate weapons - like all artillery, they require continuous shelling. In real life, mortars have much more effect at "pinning down" enemy troops, not directly killing them. By reducing accuracy, mortars play a much more realistic role in the squad - you're much less likely to hit your intended target, but you may still cause some damage if you fire at a sufficiently dense enemy group.

HAM's feature works by dividing the final "Chance to Hit" for mortars (and ONLY mortars). You use the INI setting to set the value of X, and then the formula is:
Final CtH = Original CtH / X

INI Setting:
MORTAR_CTH_DIVISOR
Range: 1-255
1 = JA2 Default. Mortar Chance-to-Hit is unchanged (divided by 1...)
2 = After all other calculations are taken into account, Mortar CtH is halved.
3 = After all other calculations are taken into account, Mortar CtH is divided by 3.






Maximum CtH Penalty for shooting at a moving target

An INI setting in HAM 2, called "MOVEMENT_EFFECT_ON_AIMING", allowed us to control the CtH penalty per tiles moved. Basically, this system controls how much harder it is to hit a moving target based on its speed.

However, there was originally a cap on this penalty, meaning there was a limit to how much your Chance-to-Hit can suffer when you shoot at a moving target.

This cap has now been externalized. Used together with MOVEMENT_EFFECT_ON_AIMING, you can now truly control how movement is helpful to avoid gunfire. Increase both values (especially the cap) to make it easier to run from cover to cover across open terrain.

This is how it works:

Shooter gets (X*Y) CtH penalty, but no more than Z.

X = Distance the target has moved this turn. The maximum is usually 20 tiles, based on JA2's default running speed.
Y = value of MOVEMENT_EFFECT_ON_AIMING, an older HAM setting.
Z = value of MAX_CTH_PENALTY_FOR_MOVING_TARGET

INI Setting:
MAX_CTH_PENALTY_FOR_MOVING_TARGET
Range: 0-300
0 = Completely disables the penalty for shooting at a moving target.
30 = JA2 Default. When shooting at a moving target, you can get no more than 30 CtH penalty, ever.
90 = When shooting at a moving target, you can get no more than 90 CtH penalty, ever. This is triple the original value, and in conjunction with a high MOVEMENT_EFFECT_ON_AIMING value can make moving targets considerably harder to hit.






Minimum distance for "Friendly Suppression"

When suppression fire is used, some people have complained about the fact that nearby friendlies also get suppressed.

Friendly suppression is quite realistic, as suppression can effect both sides equally, sometimes even when you expect incoming friendly fire. This was part of the original (broken) JA2 suppression system, where any friendly character situated more than 3 tiles away from the shooter would suffer suppression like anyone else.

However, I've agreed to provide an INI setting that controls that distance. Any friendly character who's further than X tiles away will suffer suppression from the shooter. Friendly characters standing closer than X tiles away will be immune to suppression.

PLEASE NOTE that the INI setting works with METERS, not tiles. 10 Meters = 1 tile.

INI Setting:
MIN_DISTANCE_FRIENDLY_SUPPRESSION
Range: 0-65000 (METERS, not tiles)
0 = Any character will always be suppressed when bullets fly by, friend or foe.
30 = JA2 Default. Any friendly character at 3 or less tiles away from the shooter will not suffer suppression from passing bullets.
100 = Any friendly character at 10 or less tiles away from the shooter will not suffer suppression from passing bullets.






Diversity of Mobile Militia

HAM introduced the feature of Diverse Mobile Militia. In the original JA2, all newly-trained mobile militia were Elites (Dark Blue) or, if Elites were not allowed, they were all Regulars (Light Blue). "Diverse Militia" allowed creating groups that were made up of a combination of Greens, Regulars and Elites, making militia far less capable of slaughtering any enemy group they come across.

With HAM 2, newly created Diverse Militia groups had a ratio of 25% Elites, 25% Regulars, and 50% Greens, with no less than 1 militiaman of each type. HAM 3.4 allows changing these percentage ratio at will.

The two INI settings control the percentage of Elites and Regulars within each group. You can set them to any number, as long as the sum of both settings is no more than 100%. If the sum is less than 100%, the remaining militia will be Green.

For instance, setting Elite Militia to 100% will mimick the old homogenous militia, where all mobile militia were of the highest possible quality (And if Elites are not allowed, Regulars are created instead). Setting 50/50 will create groups with half elites and half regulars (or, again, 100% regulars if Elites are not allowed). If you set them to 30/30, then 30% will be elites, 30% will be regulars, and the remainder (40%) will be green.

If any setting is more than 0%, at least one militia of that type will be created in any group. For instance, 1/99 should create 1% elites and 99% Regulars, but in effect at least 1 elite and one regular will be created no matter the size of the actual militia group. Similarly, if the sum of Elites+Regulars is less than 100, then at least one green will be created in any new group.

Please note that the size of the group is NOT AFFECTED BY THESE SETTINGS. It only affects the composition. Size can be changed using JA2 1.13's "DIV_OF_ORIGINAL_MILITIA" INI setting, and can also be affected by the trainer's leadership using HAM's "LEADERSHIP_AFFECTS_MILITIA_QUANTITY" INI setting.

Also note that as of HAM 3.4, only Mobile Militia are affected by this.

INI Settings:
PERCENT_ROAMING_MILITIA_ELITES
Range: 0-100
0 = No elites will ever be created for Mobile Militia. Militia can still get Elite status through winning battles, but will never be elites when initially created.
100 = JA2 Default. All newly-created Mobile Militia will be Elites. If Elite training is disabled, they will all be Regulars instead.
20 = 20% of all newly created Mobile Militia will be Elites. At least one of any new Mobile Militia group will be an Elite.

PERCENT_ROAMING_MILITIA_REGULARS
Range: 0-100
0 = JA2 Default. No regulars will ever be created for Mobile Militia.
100 = All newly-created Mobile Militia will be Regulars.
20 = 20% of all newly created Mobile Militia will be Regulars. At least one of any new Mobile Militia group will be a Regular.

Please note again - if (PERCENT_ROAMING_MILITIA_ELITES + PERCENT_ROAMING_MILITIA_REGULARS) < 100, then the remaining difference will be Green Militia. In such a case, at least 1 of any new Mobile Militia group will be a Green. To make ALL-GREEN militia, set both of the above to 0!