File information

Last updated

Original upload

Created by

szmind

Uploaded by

szmind

Virus scan

Safe to use

About this mod

Aircombat revolution comes with sending multiple interceptors at once, sending partially damaged jets, implementing quasi-formation management and making pilot rank mean a little more than just a badge. All of this and even more will work with your ongoing LW campaigns so just grab it and unleash the power of squadron. Works with LW and its mods.

Requirements
Permissions and credits
Changelogs
"Andwhatsoever ye do in word or deed, [do] all in the name of the Lord Jesus, giving thanks to God and the Father by him", [Colossians 3:17]

Welcome to the air-revolution, commanders! First of all, this mod is heavily customizable so if you do not agree with anything that has been implemented just customize it to your  liking during installation or later on using the configurator patch-file. I do not claim this mod to be balanced cause balance heavily depends on what mod you are playing. I spent like 200 hours learning how to mod stuff and coding it with not much time to test 'balance issues'. You can have  any air-stats configuration and I do not intend to change it. The mod is supposed to add variety, fun and freedom. You can configure it to be tougher or easier than one-on-one dodge fights based on your individual tests, experience and challenge you seek.
Generally maths prove that attack as squadron yields c.a. 2,5 x more damage output than sending the same number of jets one by one. Reworked UFO stances are supposed to balance it - AGG by doubling UFO firepower (so 2x vs 2,5x), while DEF by cutting contact time by 1/3 (so 2,5x cut to 1,6x). Additionally aggresive UFO is supposed to encourage you to stay DEF yourself (further cutting squadron firepower) while evasive UFO encourages AGG stance increasing your jets vulnerability.

TABLE OF CONTENTS

CREDITS
BASIC CONCEPTS
ADVANCED CONCEPTS
WHAT'S COMING LATER
INSTALLING THE MOD
COMPATIBILITY


CREDITS
First thanks go to my wife who let me work on this for almost 2 months without a word of complaint on wasting precious time for some computer stuff :)
On to contributors:
Firaxis - yep, no mistake. They coded everything ready for old-XCOM style interceptions. Just abandoned the idea on some stage, but all the code was there; waiting for me :) I just made use of every piece of useful code and turned "not useful" into "useful" :)
wghost81 - for UPKUtils
EliotVU for UE Explorer
klipper88 - huge thanks for MAC tests and perfect bug report
critto - for help with understanding MAC directory structure
XMarksTheSpot and SpazmoJones for sharing know-how on interface modding
Ucross for tireless tests, bug hunting, opinions and many worthy suggestions.
SpazmoJones for early bug hunting and gamepad test
Noganeto1 for help with Spanish localization
Riwwer for encouraging me to do more maths and rethink complicated "3x3" stances
GamerChris for inspiration on UFO stances being related to battle speed
Rovlad84 for display bug report
AxemanUnique for instructions on localization edits
And last but not least
- Cmdr "Kogut" Spencer
- Lt. "Red Baron" Kelley
- Maj. "Shotgun" Steinhoff
- Maj. "Fender" Rayburn
- Capt. "Strzała" Paulsen
- Col. "Piła" Katz
for bravely fighting and dying under my command in countless tests of each little change in code (>1000  times)



BASIC CONCEPTS

GAMEPAD/KEYBOARD SUPPORT
1. You can toggle out a jet with Y/triangle button or TAB key (keyboard).
2. You can launch jets without scrolling to launch button using X/square button.

Some gamepad players asked for swapping the above (X with Y). In that case use this small patch after installing the mod (it will not update help icons but will function as intended).
UPK_FILE = xcomstrategygame.upk
[OBJECT] = UIMissionControl_UFORadarContactAlert.ShipSelection.OnUnrealCommand
FIND_HEX=0A 49 04 1D:END
MODDED_CODE=<%i 303>
FIND_HEX=0A 02 05 1D:END
MODDED_CODE=<%i 302>


3. You can still launch jets by scrolling down to launch button and pressing A/cross button or space/enter (keyboard)

AGGRO EXPLAINED
This is one of the first things that Firaxis introduced and I just made use of it. It has been always calculated but has no use for 1 ship. The basic formula is:
aggro = 2 x weapon level
+1 for Firestorm
+2 for AGG stance
-2 for DEF stance
Weapon levels are as follows
Lvl 1. Cannon
Lvl 2. Stingray
Lvl 3. Avalanche
Lvl 4. Laser
Lvl 5. Plasma
Lvl 6. EMP
Lvl 7. Fusion
As Cannon's level 1 does not correspond with its power I coded it to generate aggro 7 (above Avalanche and below Laser). I enclose little XLS file to play and simulate aggro for different configurations, if you like.


SHIP SELECTION
1. Click on a jet to toggle in. Click again to toggle out. You do not need to click small stance button. You can click large ship card and then select stance. Size of squadron depends on the rank of best pilot in the squadron.
2. You will get info (from Shen :) heh) about expected average DPS (damage per second) and %Aim of the fighter against that specific UFO.
3. As soon as you hover mouse over another ship or over launch button the list of selected ships is sorted in decreasing order of AGGRO stat.
4. Ship with the highest aggro is the leader. UFO will attack him first.
5. If you put all ships on the same aggro then the leader will be picked randomly.
6. You can select partially damaged ship (>50% HP by default). A damaged ship suffers aim penalty (-25 by default), cannot activate modules and has 20% penalty to speed (probably slowing down the whole squadron).
7. A damaged ship that can be sent has its status in orange not red. It must be refuelled first. Refuelling is automatic as soon as ship is repaired to 50% (customizable threshold).
8. Click launch button to start the hunting :)
9. Squadron flies to destination with unanimous geoscape speed. That is the speed of slowest jet in squadron.


ENGAGEMENT
1. At start of combat name of leader, its stance and weapon will be displayed.
2. UFO stance will be presented as well.
2. Rest of ships are presented by name, ship icon and HP bar in order of aggro (same as prior to launching). They are called supporting ships. All ships are firing (see their projectiles), but there is only one jet visible to represent whole squadron.
3. Modules are activated by current leader so their availability depends on his stance. Activate modules normally.
4. Clicking on Abort button withdraws current leader and replaces him with next ship in line (if there is any still fighting)
5. Supporting ships take care of themselves and auto-withdraw when below 25% HP (customizable threshold)
6. A ship that was sent damaged (and suffers additional penalties) has its weapon/stance label marked orange.
7. I have lowered the crit damage multiplier from 2.0 to 1.5 of normal-hit damage to smooth RNG a little (customizable).


NEW STANCE MECHANICS
1. Stances work totally different for UFO and jets.
2. Stances picked for jets no longer imply symetric aim penalty/bonus to UFO.
3. Instead jet on AGG gets +15 to Aim but receives +25% more damage.
4. Jet on DEF receives -15 to Aim but can dodge any hit with 20% chance.
5. Chance to hit small UFOs (up to medium scout size) suffers -10 penalty (customizable).
6. Chance to hit large UFOs (size of Terror/Supply and larger) is increased by +15 (customizable).
7. UFO stance is determined randomly on detection (Overseers are always BAL).
8. UFO on DEF concetrates on escaping. It gains +50% battle speed (so contact time is cut by 33%) but suffers -15 to Aim.
9. UFO on AGG is... well - aggresive :) It slows down redirecting power to weapon cooling systems. That means -50% battle speed (double contact time) but gaining +100% firing speed (bullet swarm).
10. The above are all customizable parameters.
11. For more stance consequences (for jets) see below.

CROWD IN THE AIR AND QUASI-FORMATIONS

1. Beware 'lone bullets' :)
2. When UFO misses the missed bullet is considered 'lone bullet'. It missed the leader but it can hit supporting ships!
3. Supporters on BAL stance have 20% chance to be hit by a lone bullet (customizable).
4. Supporters on AGG have 40% chance to be hit by a lone bullet (customizable).
5. The above is supposed to discourage sending large AGG squadron against puny Scout and returning without scratch.
6. Lone bullets deal only 80% of regular damage on default (customizable though) and cannot crit.
7. Supporters on DEF are safe from lone bullets (hard coded).


ON ENGAGEMENT OVER

1. If UFO is defeated the 'kill' is granted to the last leader.
2. BUT: UFO destruction chance is based on the weapon which fired the killing bullet - not the weapon of last leader. The bullet is marked!
3. Therefore: if you want to manage kill-granting concentrate on leader; if you care about non-destruction of UFO manage your squadron with skill :)
4. Chances of destruction are a bit lower than in LW (customizable) - namely by 10 percentage points on default. E.g. where you would get 20% in LW here you get 10%, where you would get 30%, here you get 20%. If you would get <= 10% in LW you get a guaranteed crash (no destruction). The 10% parameter is moddable and you can even set it negative to increase the destruction ratio (read Advanced Concepts for more info)
5. You will get individual battle report for every ship. If a pilot is promoted you will be informed of his new rank and size of squadron that he can now command.
6. ...cause max size of squadron depends on the highest rank of pilot selected for the interception.
7. Ships fly back to base at their own geoscape speed - damaged ships return with 80% of their speed. So you can see a nice string of up to 4  jets returning to base :)
8. Ships that returned with more than 50% HP will be scheduled for refuelling first - then for repairs.
9. Refuelling time has been increased to 6 hours (hard coded) to prevent reengagement. RPG-wise consider it as 'refuelling, quick service and ammo replenishing'.


ADVANCED CONCEPTS

MODULES CLARIFICATION
Modules are activated by the current leader depending on its stance and cannot be carried over to the next leader. Therefore:

    Aiming module - will work only for shots of the leader, not supporters. It expires as soon as you switch the leader.
    Dodge module - will work only for leader, but dodged bullet does not turn into a lone bullet so it is a final miss. It expires as soon as you change the leader.
    Tracking module - is the only one that carries over. It does not expire on leader's change

There is still the limit of 1 charge of a module per battle, not per ship. But you can activate Aiming with AGG leader, then switch to DEF supporter, who can activate Dodging as a new leader.


LONE BULLETS
Lone bullet is still one bullet. It will hit only one target. Supporters with BAL/AGG stance roll for being hit in order of aggro or saying it differently - in order they appear in the formation. Therefore ships just behind the leader roll first. Not because they stay in direct line behind the leader but because AGG is considered 'staying close to leader' or 'staying close to UFO'. The further a ship in the formation (so further from leader) the lower the chance that it will have to roll for being hit - cause the bullet probably has already hit someone else. Though if everybody is on DEF and the last ship is on BAL, all lone bullets will come after him (but with only 20% to hit).

PILOT RANKS / SQUADRON SIZE

As mentioned in basics max size of squadron depends on a pilot with highest rank among those  selected for interception. It does not matter if he is the leader or a supporter. If he turns out to be a supporter you can consider him RPG-wise 'a veteran training the less experienced' :) You will also learn shortly the dependance - each officer rank allows a pilot to command a squadron of +1 jet. So Leutenant can command 2, Captain 3 etc. up to 6 jets at Commander.

CONFIGURATIONS WORTH CONSIDERING

You might consider the following ideas enabled by configurator (it takes just 5 seconds with PatcherGUI to apply new config):

1. Set MinHP_PctToLaunch at 1.0 to completely disable sending damaged ships.

2. Set LoneBulletDamageScaler at 0.0 to totally disable 'lone bullet' mechanics.

3. Set AutoAbortThreshold at 0.0 to disable auto-escape of supporting ships. Or set it at say 0.50-0.60 to minimize the chance of supporter being one-shot killed (large UFOs can punch you for 50-70% with single shot without warning :) Or even better - you can use the configurator to manage your settings throught campaign! Consider it as commander's tool. In early game you might wish to disable auto-abort of supporters, while in late-game set it to 0.60 cause you mainly fight large UFO's then.

4. UFO Interception Tweak is a great feature - bless SpazmoJones for the idea. It allows for longer fights with lower damage - smoothing the overall RNG impact. It also compensates for lower impact of modules by increasing number of available effects (e.g. 3 dodges/hits with Spazmofactor at 1.5 or 4 dodges/hits with factor at 2.0; for my tests I was even using 3.0 to make fights against Scouts longer). Beware though - game records only 60 s of shooting. If you go beyond that then at 60s ships will stop firing :) Is it moddable? Of course, but who would like to sit for >60 s watching. Oh, wait - we all used to do so with one-on-one interceptions spliting it into 4 x 20 s + flight time :))

5. UFO destruction modifiers. You can scale original LW chance of UFO destruction with one simple factor.
This still means that even a small overkill translates into small chance of destruction.
Therefore you can also set a minimum %threshold of overkill above which the chance starts occuring at all.
The threshold translates into percent chance that must be accumulated before any further %chance is applied at all.
So for example setting threshold at 20 means that if chance of destruction is < 20% UFO crashes without checking the chance.
Well, actually the check is performed but you get a +20 handicap (your dice rolls 20-120 instead of 0-100)
If you overkill for 30% chance with the above setting the actual chance will be (30 - 20)= 10%


WHAT'S COMING LATER
- multiple jets on the screen :)

INSTALLING THE MOD

The main 'Squadron Unleashed 1.1a.' file will not work as an update of previous version - it only works with fresh LW (or LW with mods but without Squadron Unleashed). MAC specific instructions included a little further below.

You need PatcherGUI to apply the main 'Squadron Unleashed 1.0.txt' patch. For instructions on using PatcherGUI check UPKUtils.

Apart from that you need to manually edit a few entries in XcomStrategyGame.INT, or ESN or DEU or whatever language you play. I
included all supported by Long War. XComStrategyGame.INT or ESN, or whatever is located in C:\Program Files (x86)\Steam\SteamApps\common\XCom-Enemy-Unknown\XEW\XComGame\Localization. Find the appropriate language file and do the edits. You will find necessary edits in 'XComStrategyGame_loc_edits.txt'. You need to edit specified lines, not add them.

You will need to find the followling 5 strings (Use CTRL+F)

1.  m_strReport_Subtitle=
2.  m_strLabelLaunchFighters=
3.  m_strAbortedMission=
4.  m_strLabelThinkMilesAway=
5.  m_str5000Miles=

For each one, replace it with the one of the following ones or those that fit your language:

1.  m_strReport_Subtitle=<Bullet/> Congratulations! <XGParam:StrValue0/> has been promoted to <XGParam:StrValue1/> and can now command a squadron of <XGParam:IntValue0/> fighters.
2.  m_strLabelLaunchFighters="Launch fighter|Launch fighters"
3.  m_strAbortedMission=ABORTED|   disengaged   ||was shot down
4.  m_strLabelThinkMilesAway="Launch (<XGParam:StrValue1/>, DPS: <XGParam:IntValue0/>, Aim: <XGParam:IntValue1/>%)"
5.  m_str5000Miles="0BAL|1AGG|2DEF|3"

--------------------------------
MAC / LINUX SPECIFIC INSTRUCTIONS
--------------------------------
Thanks to critto for help with those instructions and to klipper88 for a bug report which helped me develop a fix for MAC users.

Localization files for the game are located on MAC in two places, second of one is more important:
1. /Users/mac/Library/Application Support/Steam/steamapps/common/XCom-Enemy-Unknown/XCOMData/XEW/XComGame/Localization/INT
2. /Users/mac/Library/Application Support/Steam/steamapps/common/XCom-Enemy-Unknown/XCOM Enemy Unknown.app/Contents/Resources/MacOverrides/XEW

The game actually uses files from the second path. So you should make edits to the INT (or ESN/DEU whatever) files in the above MacOverrides/XEW folder.
I have found this advice on how to access the directory: In the finder, to show this directory you've got to right-click on XCOM Enemy Unknown and select "show package contents."
Just in case - I think you should put the edited localization file also in the first specified directory - just to have same version in both places.

Same instructions apply for Linux users, though default paths for localization files are:
1. ~/.steam/steam/steamapps/common/XCom-Enemy-Unknown/xew/xcomgame/localization/int/
2. ~/.steam/steam/steamapps/common/Xcom-Enemy-Unknown/xew/binaries/share/feraloverrides/ 


COMPATIBILITY
The mod is compatible with any Long War mod that does not interfere with the objects specified in ReadMe. I identified the following so far:
  • UFO Interception Tweak - it has been incorporated with permission from SpazmoJones.
  • LW Customize Air Game. I reupload the compatible version of it (by permission and encouraged by Vazeron1) - however my study of the code proves that using Vazeron's patch disables link to DGC air-stats, be aware of that
  • Slower Interception - it has been incorporated, search for SloMoPlayback in configuration section / configurator fil (it allows to scale time passing applied to escape timer, you can recognize slower animation by escape timer behaviour and increased time gaps between shots; though animations of projectiles do not slow down themselves)

Some mods (like LW Rebalance by UCross) might cross in UICollection_Strategy_SF.UPK (gfxMissionControl.MissionControl object).
However as long as they do not change the file size they will be compatible (like LW Rebalance is). If they do change size or you do not
know - write me and will make an individual combination for you :)


Top