------------------------------------------------------------------------------
Automatic Combat Resolution (AutoCombat):
Beginning with XcomUtil 9.0, you can also invoke the AutoCombat feature by
saving your combat as the 10th saved game with the name AutoCombat. This
tells XcomUtil to fight the battle for you and can be used to save you the
tedium of fighting battles that are just too easy or as a way to play an
entirely combatless game. See the AutoCombat section for more details.
Using AutoCombat, XcomUtil will update the files with an approximation of
the results, rather than requiring you to actually fight the battle. To
reduce the complexity of the algorithm, I have imposed a few
simplifications. Hand-to-hand weapons, grenades, and extra clips are
ignored. Whenever you capture Elerium-115 or Zrbite, you automatically
capture a power source. Whenever you capture a ship, you capture some
alien alloys and navigation, based on the size of the ship. All other
items that are part of the map, such as alien entertainment, are ignored.
However, you do capture any equipment carried by the aliens if you win.
If you find this to be too restrictive, don't activate AutoCombat until
after you have done what you wanted to do or simply play the entire battle
yourself.
To activate AutoCombat at any time during combat, just save your game as
game number 10 with the name AutoCombat, then immediately abort combat.
You can optionally add a number which will be used as a probability
threshold for aborting AutoCombat, which defaults to 25%. For example,
AutoCombat75 will indicate that you want to activate AutoCombat, but only
if you have at least a 75% chance of success, as determined by the
AutoCombat algorithm defined in XCOMUTIL.CFG.
The rules on wounding and killing soldiers are designed to allow you to
protect your most valuable soldiers. However, they are also designed to
make it very difficult to win complicated battles without using a large
number of well equipped, experienced troops. Don't expect rookies with
pistols to come home. It is possible to gain combat experience from
AutoCombat, but it will be distributed randomly.
AutoCombat Algorithm:
The basic success percentage for each soldier with a loaded weapon is 5%
for each rank above rookie or seaman. Thus, each soldier contributes from
0% to 25% to your total chance of success in combat.
High reactions and firing accuracy add even more when the damage of your
weapons is greater than the average health of the aliens. Similarly,
soldiers with Psi/MC skill greater than the Psi/MC Strength of the aliens
add to your chance of success. Aliens and other factors, like darkness,
reduce your chances of success. To reduce the penalty for darkness,
soldiers who carry flares in darkness get a bonus.
All of these factors and the amount they effect your chances of success
are specified using StatStrings in the AutoCombat section of XCOMUTIL.CFG.
The default abort threshold is also defined there.
If the final success percentage is less than the abort threshold, there
will be no combat. If the percentage is 100 or greater you win.
Otherwise, your success is randomly determined.
If you lose, the number of aliens killed is based on the amount by which
you missed your success percentage. If you win, all aliens are killed or
stunned. The soldier credited with the kill is selected randomly. If
that soldier is using a small launcher loaded with a stun bomb, the alien
is always stunned. Otherwise, the chances are only 1 in 32 that the alien
will be stunned. You earn 20 points for each alien you kill and 10 points
or each corpse you recover. All alien ammo clips are captured as full
clips. Human ammo clips are emptied according to how much they are used,
just as in normal combat.
The algorithm to determine who gets wounded is as follows. Each alien can
wound one human. The probability of each alien actually hitting a human
is the difference between the total success percentage and the success
roll, a number between 1 and 100. If the difference is more than 90, the
maximum chance that the alien misses the soldier is 90%. If the
difference is more than 200, the maximum chance is 95%. Thus, the more
overwhelming your force, the fewer soldiers will be killed or wounded.
The probability that any given soldier will be wounded is based on the
order defined by the SortStats in XCOMUTIL.CFG. The last soldier in the
craft, has one chance of being selected. The next to the last soldier has
2 chances, the one before that has 3 chances, and so on. The Nth soldier
from the back, the first one off the craft, has N chances to be selected.
That is, if you have 4 soldiers in the craft, their chances of being the
one wounded are 10%, 20%, 30%, and 40%, respectively. The last soldier on
a full Skyranger has less than a 1% chance of being selected.
By default, soldiers with high Psi/MC skill or very high firing accuracy
are moved to the back of the craft to protect them. Thus, it is highly
unlikely that they will be wounded if there are many soldiers in the
battle. However, any soldier can be killed, regardless of where he or she
is placed in the craft.
Tanks are always considered to be the first units into combat and the
first units wounded or killed. Each tank receives the wounds that would
have gone to the four soldiers it replaces, but tank armor greatly reduces
the amount of damage taken. Compared to soldiers, tanks do not
significantly improve the chances of success. However, if they are not
destroyed in combat, they are immediately repaired when you return to your
base.
The damage inflicted by each wound is the average weapon damage of the
aliens. The damage reduces armor first. When it is gone, it reduces
health, until the human is dead. If a dead human is selected for
wounding, another is selected in its place. If a live human has not been
found after three tries, the potential wound is ignored.
During AutoCombat, the XCOMUTIL.LOG file records a summary of the battle,
along with all Hits (armor damaged, but no wounds), Wounds, and Kills. It
also reports Healed when a Medi-Kit is successfully used after a soldier
is wounded. The victory points lost because a soldier is killed in combat
is 20 plus 10 for each rank above rookie/seaman.
------------------------------------------------------------------------------
XcomUtil.cfg (AutoCombat Section)
------------------------------------------------------------------------------
AutoCombat
AbortThreshold=25
StatStrings
+50 u:3-3 // Tanks
+5 u:-2 R:1-1 W:- // Armed Squaddie/Able Seaman
+10 u:-2 R:2-2 W:- // Armed Sergeant/Ensign
+15 u:-2 R:3-3 W:- // Armed Captain/Lieutentant
+20 u:-2 R:4-4 W:- // Armed Colonel/Commander
+25 u:-2 R:5-5 W:- // Armed Commander/Captain
+5 u:-2 A:1- // Effective Armor
+5 u:-2 W:2- // Effective Auto Weapon
+10 u:-2 W:3- // Effective Snap/Aimed Weapon
+100 u:-2 W:-25 // Effective Psi w/PsiAmp
+5 u:-2 r:60- // Human w/Reactions 60+
+5 u:-2 r:50- W:3- // Human w/Effective Snap/Aimed Weapon and Reactions 50+
+10 u:-2 f:60- W:3- // Human w/Effective Snap/Aimed Weapon and Accuracy 60+
+10 L:-9 u:-2 W:-27 // Human in Darkness w/Flare
-20 L:-9 u:4-14 // Alien in Darkness
-50 u:11-11 U:- // Chryssalid/Tentaculat
-50 u:17-17 U:- // Zombie
-50 u:4-14 W:-25 // Effective Psi
-5 u:4-14 A:1- // Effective Armor
-5 u:4-14 W:2- // Effective Auto Weapon
-15 u:4-14 W:3- // Effective Snap/Aimed Weapon
-10 u:4-14 r:60- // Alien w/Reactions 60+
/StatStrings
/AutoCombat
------------------------------------------------------------------------------
AutoCombat in XCOMUTIL.CFG:
XCOMUTIL.CFG contains the StatStrings which define the AutoCombat algorithm.
Instead of defining StatIds or movement directions, the strings define the
probability modifiers associated with the conditions of the battlefield and
the combatants. To support this, new statids have been added:
A = armor superiority ( 0 = ineffective, 1 = greater than avg damage)
T = Terror from the Deep (0 = XCOM, 1 = TFTD)
u = unit type: XCOM TFTD
0 = Human Human
1 = Human/Personal Armor Human/Aqua Armor
2 = Human/Power Armor Human/Ion Armor
3 = Tank Tank
4 = Sectoid Aquatoid
5 = Snakeman Gill_Man
6 = Ethereal Lobster_Man
7 = Muton Tasoth
8 = Floater Calcinite
9 = Celatid Deep_One
10 = Silacoid Bio_Drone
11 = Chryssalid Tentaculat
12 = Reaper Triscene
13 = Sectopod Hallucinoid
14 = Cyberdisc Xarquid
15 = Civilian1 Civilian1
16 = Civilian2 Civilian2
17 = Zombie Zombie
U = remove unit from further consideration, if StatString is true
W = weapon superiority and type
lower = when weapon damage exceeds average enemy health
0/none = ignore, 1 = never, 2 = auto, 3 = snap/aimed,
255 = no item of that type is present
upper = weapon type
n = index in OBDATA.DAT, 255/none = most powerful
The W statid is very complicated. It is used to evaluate the
effectiveness of your weapons against the enemy. The upper value
determines the specific kind of weapon, if necessary, while the lower
value can be used to judge the effectiveness against your average
opponent. Although these values are not handled in the usual fashion as
ranges, use of this format allowed me to conveniently parse this with the
other statids.
W:2- indicates that the most powerful weapon can inflict damage exceeding
the average enemy health only when using a burst of three shots on auto.
W:3- indicates that it can exceed the average enemy health with just a
single shot. W:1- indicates that all normal weapons are virtually useless
against the enemy. W:-40 indicates that the soldier has a blaster
launcher, ignoring the average alien health. W:- merely indicates the
presence of some aimed weapon, without regard to its effectiveness.
W:255- indicates that the unit has no aimed weapon.
If the weapon type is unspecified, only aimed weapons will be considered.
W:-25 is handled uniquely and indicates that the soldier has a PsiAmp and
has Psi Skill vs Psi Strength superiority. The lower value is meaningless
because this particular weapon is not effected by the health of the
target. Since the aliens do not use PsiAmps, any alien with PsiSkill is
automatically assumed to be carrying one.