Jump to content

Rocket Scatter Overhaul


Amineri

Recommended Posts

I've just confirmed experimentally that adding both eWP_Heavy and eWP_Sniper, along with eWP_MoveLimited to the Blaster Launcher, and having a Heavy soldier with the Snapshot perk does not allow the unit to move and fire the Blaster Launcher.

 

So, here's my thinking for the Blaster Launcher:

1) Remove the eWP_MoveLimited from the Blaster Launcher

2) Set the iRange = 12, something quite low.

3) Add (Aim - 40) / 4 to the range

4) Snapshot and Javelin Rocket range boosts would still apply.

 

Here are some example ranges:

Not moving :

65 Aim rookie : range = 18.25

85 Aim soldier : range = 23.25

85 Aim soldier w/ Javelin Rockets (+34%) : range = 31.2

85 Aim Soldier with a SCOPE (95 aim) : range = 25.75 (almost sight distance)

95 Aim soldier w/ Javelin Rockets (+34%) : range = 34.5

 

Moving :

65 Aim rookie : range = 9

85 Aim :

w/o Snapshot, w/o Javelin : range = 11.8

w/o Snapshot, w/ Javelin : range = 15.6

w/ Snapshot, w/o Javelin : range = 15.6

w/ Snapshot, w/ Javelin : range = 20.9

 

95 aim :

w/o Snapshot, w/o Javelin : range = 12.8

w/o Snapshot, w/ Javelin : range = 17.3

w/ Snapshot, w/o Javelin : range = 17.3

w/ Snapshot, w/ Javelin : range = 23.1

 

These ranges are well below what can be achieved with a Rocket Launcher, but the Blaster Launcher (a) never misses (b) does not need line-of-sight © does +50% damage.

 

If the eAbility_Aim were added to the Blaster Launcher, the +20 aim boost it supplies on the following turn would add +5 range (~3.3 tiles) to a non-moving shot.

Thoughts on this?
I think it is also possible to adjust grenades ranges in a similar (but scaled down distance-wise) way, if people are interested in that as an option.
Link to comment
Share on other sites

I went ahead and implemented my plan above, but with a few tweaks.

 

1) I made the delta range be 0 at 65 aim.

 

That is, the range formula is (aim - 65) / 4. I actually compute this in Unreal distance units, so it technically 64*(aim-65)/4, so fractional parts don't get lost.

 

This aim adjustment to range is optional, as I added a if(true) before the statement. A 1 byte hex edit to change the true to false will skip the statement.

 

 

2) I adjusted the default range offset for SnapShot when moving from 67% to 75%.

 

3) I added optional code to have grenade range adjusted by soldier aim as well. Range is adjusted by 1 for each 10 aim delta from 65. Formula is (Aim - 65) / 10. This statement is OFF by default (there is a if(false) statement preceding it)

 

--------------------

 

Blaster Launchers will no longer display a scatter amount, nor can soldiers speak the "missed" speach when firing a Blaster Launcher.

 

 

Here is the complete set of hex necessary to implement all Scatter / Range adjustments for Grenades and Rockets:

 

 

 

Cumulative changes to Free Aim distances and Rocket Scatter Mechanics:


XGAbility_Targeted.RollForHit -- portion altered that controls Rocket Scatter -- any ability with eProp_ScatterTarget = 45 (NOT BLASTER LAUNCHER)

original hex, scatter portion: (1098 bytes) (0x612=1554 memory) +456  (total virtual 0x1665)
07 BF 06 84 82 77 00 D1 7C 00 00 2A 16 18 22 00 72 19 00 D1 7C 00 00 09 00 DE 82 00 00 00 01 DE 82 00 00 2A 16 16 18 1F 00 82 1B 9A 36 00 00 00 00 00 00 24 21 16 18 0E 00 81 1B 77 36 00 00 00 00 00 00 26 16 16 16 16 07 98 04 1B 9A 36 00 00 00 00 00 00 24 2D 16 0F 00 D5 7C 00 00 E1 D8 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 01 12 BC 00 00 16 16 0F 00 D6 7C 00 00 38 3F 1B 8A 34 00 00 00 00 00 00 00 D5 7C 00 00 16 0F 00 D2 7C 00 00 12 20 BC 4D 00 00 2C 00 6B 4D 00 00 00 1C 6E 4D 00 00 2C 64 A8 A8 38 57 01 04 FA FF FF 38 57 61 1C 16 16 38 57 1C B5 FC FF FF 16 16 16 07 09 02 84 B2 38 3F 00 D2 7C 00 00 00 D6 7C 00 00 16 18 35 00 19 19 00 D1 7C 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 5C 7D 00 00 00 1B F6 3C 00 00 00 00 00 00 16 16 06 7D 04 0F 00 CE 7C 00 00 D8 01 12 BC 00 00 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 16 0F 35 3B FA FF FF 5E F9 FF FF 00 01 00 CD 7C 00 00 38 44 AB 1E 5E 0B 36 43 38 3F 92 2C 0A 12 20 BC 4D 00 00 2C 00 6B 4D 00 00 00 1C 6E 4D 00 00 2C 0F A8 A8 38 57 01 04 FA FF FF 38 57 61 1C 16 16 38 57 1C B5 FC FF FF 16 16 16 16 16 07 2C 03 9A 12 20 BC 4D 00 00 2C 00 6B 4D 00 00 00 1C 6E 4D 00 00 2C 02 A8 A8 38 57 01 04 FA FF FF 38 57 61 1C 16 16 38 57 1C B5 FC FF FF 16 16 16 25 16 0F 35 3B FA FF FF 5E F9 FF FF 00 01 00 CD 7C 00 00 8F 35 3B FA FF FF 5E F9 FF FF 00 00 00 CD 7C 00 00 16 0F 00 CE 7C 00 00 61 14 00 CE 7C 00 00 00 CD 7C 00 00 16 0F 00 CF 7C 00 00 E2 00 CE 7C 00 00 16 0F 00 D4 7C 00 00 AE AB 1E 00 00 20 40 38 3F 2C 64 16 38 3F 12 20 BC 4D 00 00 37 00 6B 4D 00 00 00 1C 6E 4D 00 00 38 44 AB 1E 00 00 C0 3F 38 3F 2C 64 16 A8 A8 38 57 01 04 FA FF FF 38 57 61 1C 16 16 38 57 1C B5 FC FF FF 16 16 16 16 B7 00 D4 7C 00 00 38 3F 2C 64 16 B8 00 D4 7C 00 00 AE 00 D5 7C 00 00 38 3F 2C 0A 16 16 0F 01 12 BC 00 00 D7 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 D4 00 CF 7C 00 00 00 D4 7C 00 00 16 16 19 00 D1 7C 00 00 13 00 00 00 00 00 00 1B FB 62 00 00 00 00 00 00 01 12 BC 00 00 16 19 01 E6 7B 00 00 13 00 00 00 00 00 00 61 18 1E 00 00 40 40 28 21 98 19 00 00 00 00 00 00 4A 16 14 2D 01 E2 BB 00 00 28 14 2D 01 22 BC 00 00 27 06 B3 06 0F 01 1A BC 00 00 AC E1 D8 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 01 12 BC 00 00 16 16 38 3F 2C 40 16 0F 01 17 BC 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 A5 00 CE 76 00 00 00 1B C8 0E 00 00 00 00 00 00 38 3A 19 01 E8 BB 00 00 0A 00 E8 9B 00 00 00 1B 92 30 00 00 00 00 00 00 16 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 01 1A BC 00 00 19 01 E6 7B 00 00 0A 00 B2 33 00 00 00 1B 18 3E 00 00 00 00 00 00 16 16 14 2D 01 E2 BB 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 59 00 DC 76 00 00 00 1B 93 5E 00 00 00 00 00 00 AB 38 3F 01 17 BC 00 00 1E 0A D7 23 3C 16 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 00 D7 7C 00 00 16 07 B3 06 2D 01 E2 BB 00 00 06 B3 06 1B C3 0E 00 00 00 00 00 00 16 04 0B 



new hex: (1057 file bytes) (total virtual 0x1665) 
07 BF 06 84 82 77 00 D1 7C 00 00 2A 16 18 22 00 72 19 00 D1 7C 00 00 09 00 DE 82 00 00 00 01 DE 82 00 00 2A 16 16 18 1F 00 82 1B 9A 36 00 00 00 00 00 00 24 21 16 18 0E 00 81 1B 77 36 00 00 00 00 00 00 26 16 16 16 16 0F 00 CE 7C 00 00 D8 01 12 BC 00 00 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 16 0F 01 1A BC 00 00 E1 00 CE 7C 00 00 16 07 70 05 1B 9A 36 00 00 00 00 00 00 24 2D 16 0F 00 D5 7C 00 00 12 20 BC 4D 00 00 2A 00 6F 4D 00 00 00 1C 71 4D 00 00 A8 A8 38 57 01 04 FA FF FF 38 57 61 1C 16 16 38 57 1C B5 FC FF FF 16 16 16 0F 00 D4 7C 00 00 12 20 BC 4D 00 00 2A 00 6F 4D 00 00 00 1C 71 4D 00 00 A8 A8 38 57 01 04 FA FF FF 38 57 61 1C 16 16 38 57 1C B5 FC FF FF 16 16 16 0F 00 D2 7C 00 00 AB C1 BA AB 1E 00 00 00 40 C0 00 D5 7C 00 00 16 16 16 16 BC AB 1E DB 0F C9 40 00 D4 7C 00 00 16 16 16 0F 00 D6 7C 00 00 AB C1 BA AB 1E 00 00 00 40 C0 00 D5 7C 00 00 16 16 16 16 BB AB 1E DB 0F C9 40 00 D4 7C 00 00 16 16 16 0F 00 D4 7C 00 00 12 20 23 78 00 00 09 00 70 0F 00 00 00 02 70 0F 00 00 B7 00 D4 7C 00 00 38 3F 93 FA 2C 32 19 01 E6 7B 00 00 0A 00 16 B3 00 00 00 1B BE 33 00 00 00 00 00 00 16 16 2C 28 16 16 07 34 03 97 19 01 E6 7B 00 00 09 00 B6 30 00 00 00 01 B6 30 00 00 25 16 07 24 03 19 19 01 E6 7B 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 0C 00 EA A2 00 00 00 1B B8 36 00 00 00 00 00 00 2C 10 16 B6 00 D4 7C 00 00 1E 00 00 C0 3F 16 06 34 03 B6 00 D4 7C 00 00 1E 00 00 00 40 16 07 EE 04 81 19 19 00 D1 7C 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 5C 7D 00 00 00 1B F6 3C 00 00 00 00 00 00 16 16 00 D4 7C 00 00 1E 00 00 00 3F 0F 35 3B FA FF FF 5E F9 FF FF 00 01 00 CD 7C 00 00 38 44 AB AB BE AC 00 D4 7C 00 00 1E 00 00 A0 41 16 16 00 D2 7C 00 00 16 1E E0 F8 22 46 16 0F 00 CE 7C 00 00 61 14 00 CE 7C 00 00 00 CD 7C 00 00 16 0F 00 CF 7C 00 00 E2 00 CE 7C 00 00 16 B6 00 D6 7C 00 00 AB 00 D4 7C 00 00 AC 01 1A BC 00 00 1E 00 00 A0 41 16 16 16 B8 00 D6 7C 00 00 01 1A BC 00 00 16 0F 00 CE 7C 00 00 01 12 BC 00 00 0F 01 12 BC 00 00 D7 19 01 E6 7B 00 00 0A 00 D7 32 00 00 00 1B FE 32 00 00 00 00 00 00 16 D4 00 CF 7C 00 00 00 D6 7C 00 00 16 16 19 00 D1 7C 00 00 13 00 00 00 00 00 00 1B FB 62 00 00 00 00 00 00 01 12 BC 00 00 16 07 EE 04 B1 E1 D8 00 CE 7C 00 00 01 12 BC 00 00 16 16 1E 00 00 A0 43 16 19 01 E6 7B 00 00 13 00 00 00 00 00 00 61 18 1E 00 00 40 40 28 21 98 19 00 00 00 00 00 00 4A 16 14 2D 01 E2 BB 00 00 28 14 2D 01 22 BC 00 00 27 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 00 D6 7C 00 00 00 D6 7C 00 00 00 D6 7C 00 00 00 D6 7C 00 00 00 D6 7C 00 00 00 D6 7C 00 00 00 D6 7C 00 00 00 D6 7C 00 00 00 D6 7C 00 00 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 06 B3 06 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 01 17 BC 00 00 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0F 01 17 BC 00 00 2C 64 14 2D 01 E2 BB 00 00 27 1B C3 0E 00 00 00 00 00 00 16 04 0B 


--------------------------------------------------------------

XcomGame.int

Localization change:
m_sOverheatedHelp="This weapon is overheated. You must wait for it to cool down."

change to:
m_sOverheatedHelp="scatter"


--------------------------------------------------------------


Rewrite XGAbility_Targeted.GetScatterChance to return expected Rocket Deviation

original hex:
header:
DF 7C 00 00 50 55 00 00 00 00 00 00 C7 7C 00 00 00 00 00 00 00 00 00 00 CA 7C 00 00 00 00 00 00 ED 02 00 00 6A 65 00 00 79 01 00 00 01 01 00 00 

body: (257 file)
07 6B 00 82 77 19 1C 69 FC FF FF 16 09 00 B9 F9 FF FF 00 01 B9 F9 FF FF 2A 16 18 3F 00 19 2E DA 72 00 00 19 1C 69 FC FF FF 16 09 00 B9 F9 FF FF 00 01 B9 F9 FF FF 0A 00 15 6F 00 00 00 2D 01 15 6F 00 00 16 04 2C 64 0F 00 CA 7C 00 00 AC 00 CA 7C 00 00 38 3F 2C 60 16 0F 00 C8 7C 00 00 38 3F 93 1A 26 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 FB 38 44 AB 1E CD CC 4C 3E AA AF 00 CA 7C 00 00 38 3F 2C 0F 16 38 3F 2C 02 16 16 25 2C 28 16 16 07 2C 01 B0 00 C8 7C 00 00 12 20 23 78 00 00 09 00 70 0F 00 00 00 02 70 0F 00 00 16 0F 00 C8 7C 00 00 12 20 23 78 00 00 09 00 70 0F 00 00 00 02 70 0F 00 00 06 4D 01 07 4D 01 B1 00 C8 7C 00 00 38 3F 2C 64 16 0F 00 C8 7C 00 00 1E 00 00 C8 42 0F 01 19 BC 00 00 38 44 00 C8 7C 00 00 04 38 44 00 C8 7C 00 00 04 3A C9 7C 00 00 53 

new hex: (virtual 0x161) 
header:
DF 7C 00 00 50 55 00 00 00 00 00 00 C7 7C 00 00 00 00 00 00 00 00 00 00 CA 7C 00 00 00 00 00 00 ED 02 00 00 6A 65 00 00 61 01 00 00 01 01 00 00 

body:
0F 00 C8 7C 00 00 AB AC 12 20 23 78 00 00 09 00 70 0F 00 00 00 02 70 0F 00 00 38 3F 93 FA 2C 32 1A 26 19 01 E6 7B 00 00 09 00 0D 31 00 00 00 01 0D 31 00 00 16 2C 28 16 16 AB AC 00 CA 7C 00 00 1E 00 00 F0 44 16 AB C1 38 3F 2C 02 16 38 3F 2C 0A 16 16 16 07 F4 00 97 19 01 E6 7B 00 00 09 00 B6 30 00 00 00 01 B6 30 00 00 25 16 07 E4 00 19 19 01 E6 7B 00 00 09 00 0A 31 00 00 00 01 0A 31 00 00 0C 00 EA A2 00 00 00 1B B8 36 00 00 00 00 00 00 2C 10 16 B6 00 C8 7C 00 00 1E 00 00 C0 3F 16 06 F4 00 B6 00 C8 7C 00 00 1E 00 00 00 40 16 07 3E 01 19 19 01 E6 7B 00 00 09 00 0A 31 00 00 00 1B CC 32 00 00 00 00 00 00 16 0C 00 56 A6 00 00 00 1B 83 36 00 00 00 00 00 00 24 13 16 B6 00 C8 7C 00 00 1E 00 00 00 3F 16 0F 01 19 BC 00 00 38 44 00 C8 7C 00 00 04 01 19 BC 00 00 0B 0B 0B 53 

--------------------------------------------------------------

Change to part of XGTacticalHUD_InfoPanel.Update to diplay scatter amount

original hex: 0xC94
07 EC 03 97 00 E4 25 00 00 25 16 07 58 03 97 36 35 D2 25 00 00 D8 25 00 00 00 00 00 DD 25 00 00 25 16 06 58 03 07 E9 03 82 82 77 00 DF 25 00 00 2A 16 18 22 00 77 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 2A 16 16 18 35 00 19 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 E7 7C 00 00 00 1B 13 64 00 00 00 00 00 00 16 16 1C 1B 26 00 00 01 9B 25 00 00 70 38 53 00 E4 25 00 00 1F 25 00 16 16 06 7D 04 07 7D 04 82 82 77 00 DF 25 00 00 2A 16 18 22 00 77 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 2A 16 16 18 35 00 19 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 E7 7C 00 00 00 1B 13 64 00 00 00 00 00 00 16 16 1C 1B 26 00 00 01 9B 25 00 00 70 38 53 00 E3 25 00 00 1F 25 00 16 16 07 6E 05 82 82 82 97 00 E5 25 00 00 1D FF FF FF FF 16 18 0D 00 77 00 DF 25 00 00 2A 16 16 18 35 00 19 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 E3 7C 00 00 00 1B 15 64 00 00 00 00 00 00 16 16 18 6A 00 81 19 19 00 DF 25 00 00 09 00 41 BC 00 00 00 01 41 BC 00 00 3D 00 2C 34 00 00 00 1B B3 3C 00 00 00 00 00 00 19 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 09 00 E2 7B 00 00 00 01 E2 7B 00 00 16 16 16 1C 21 26 00 00 01 97 25 00 00 70 38 53 00 E5 25 00 00 1F 25 00 16 16 06 7C 05 1C 21 26 00 00 1F 00 1F 00 16


new hex: 0xC94
07 16 05 82 77 00 DF 25 00 00 2A 16 18 22 00 77 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 2A 16 16 07 B5 03 19 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 E7 7C 00 00 00 1B 13 64 00 00 00 00 00 00 16 1C 1B 26 00 00 01 9B 25 00 00 70 38 53 FA 00 E4 25 00 00 25 16 1F 25 00 16 16 07 05 05 82 82 82 97 00 E5 25 00 00 1D FF FF FF FF 16 18 0D 00 77 00 DF 25 00 00 2A 16 16 18 35 00 19 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 E3 7C 00 00 00 1B 15 64 00 00 00 00 00 00 16 16 18 6A 00 81 19 19 00 DF 25 00 00 09 00 41 BC 00 00 00 01 41 BC 00 00 3D 00 2C 34 00 00 00 1B B3 3C 00 00 00 00 00 00 19 19 00 DF 25 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 09 00 E2 7B 00 00 00 01 E2 7B 00 00 16 16 16 07 DF 04 19 00 E8 25 00 00 0C 00 44 7C 00 00 00 1B 9A 36 00 00 00 00 00 00 24 2D 16 1C 21 26 00 00 01 9D 25 00 00 70 70 38 53 91 00 E5 25 00 00 2C 0A 16 1F 2E 00 16 38 53 FD 00 E5 25 00 00 2C 0A 16 16 16 06 02 05 1C 21 26 00 00 01 97 25 00 00 70 38 53 00 E5 25 00 00 1F 25 00 16 16 06 13 05 1C 21 26 00 00 1F 00 1F 00 16 06 24 05 1C 21 26 00 00 1F 00 1F 00 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 00 E5 25 00 00 00 E5 25 00 00 00 E5 25 00 00 00 E5 25 00 00 00 E5 25 00 00 00 E5 25 00 00 00 E5 25 00 00 00 E5 25 00 00 0B 0B 0B 0B 0B 0B 0B 


--------------------------------------------------------------


Rewrite XGAbility_Targeted.ShouldShowPercentage to show to-hit percentage for Blaster Launcher  -- REMOVED AS BLASTER LAUNCHER CANNOT SCATTER


LONG WAR 1.08:
Long War 1.08 hex: (restricts Arc Thrower to-hit chance from displaying)
header:
F8 7C 00 00 50 55 00 00 00 00 00 00 E1 7C 00 00 00 00 00 00 00 00 00 00 E3 7C 00 00 00 00 00 00 C9 04 00 00 BB A8 00 00 FF 00 00 00 D7 00 00 00 

body:
0F 00 E2 7C 00 00 2E 65 85 00 00 19 01 E6 7B 00 00 0A 00 B9 B5 00 00 00 1B E4 30 00 00 00 00 00 00 16 04 84 84 82 82 9A 1B 74 31 00 00 00 00 00 00 16 26 16 18 0F 00 81 1B 9A 36 00 00 00 00 00 00 24 24 16 16 16 18 1D 00 82 1B 9B 1A 00 00 00 00 00 00 16 18 0E 00 97 1B B7 33 00 00 00 00 00 00 16 25 16 16 16 18 1F 00 82 1B 9A 36 00 00 00 00 00 00 24 20 16 18 0E 00 97 1B B7 33 00 00 00 00 00 00 16 25 16 16 16 18 59 00 82 1B 9A 36 00 00 00 00 00 00 24 2D 16 18 48 00 82 77 00 E2 7C 00 00 2A 16 18 37 00 81 19 19 00 E2 7C 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 5C 7D 00 00 00 1B F6 3C 00 00 00 00 00 00 16 16 16 16 16 04 3A E3 7C 00 00 53 


new hex: (virtual 0xEB) (restricts Arc Thrower to-hit-chance from displaying)
header:
F8 7C 00 00 50 55 00 00 00 00 00 00 E1 7C 00 00 00 00 00 00 00 00 00 00 E3 7C 00 00 00 00 00 00 C9 04 00 00 BB A8 00 00 EB 00 00 00 D7 00 00 00 

body:
0F 00 E2 7C 00 00 2E 65 85 00 00 19 01 E6 7B 00 00 0A 00 B9 B5 00 00 00 1B E4 30 00 00 00 00 00 00 16 04 84 84 82 82 9A 1B 74 31 00 00 00 00 00 00 16 26 16 18 0F 00 81 1B 9A 36 00 00 00 00 00 00 24 24 16 16 16 18 1D 00 82 1B 9B 1A 00 00 00 00 00 00 16 18 0E 00 97 1B B7 33 00 00 00 00 00 00 16 25 16 16 16 18 1F 00 82 1B 9A 36 00 00 00 00 00 00 24 20 16 18 0E 00 97 1B B7 33 00 00 00 00 00 00 16 25 16 16 16 18 0D 00 1B 9A 36 00 00 00 00 00 00 24 2D 16 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 3A E3 7C 00 00 53 



REGULAR:
original hex: (allows Arc Thrower to-hit chance to display)
header:
F8 7C 00 00 50 55 00 00 00 00 00 00 E1 7C 00 00 00 00 00 00 00 00 00 00 E3 7C 00 00 00 00 00 00 C9 04 00 00 BB A8 00 00 FF 00 00 00 D7 00 00 00 

body:
0F 00 E2 7C 00 00 2E 65 85 00 00 19 01 E6 7B 00 00 0A 00 B9 B5 00 00 00 1B E4 30 00 00 00 00 00 00 16 04 84 84 82 82 9A 1B 74 31 00 00 00 00 00 00 16 26 16 18 0F 00 81 1B 9A 36 00 00 00 00 00 00 24 09 16 16 16 18 1D 00 82 1B 9B 1A 00 00 00 00 00 00 16 18 0E 00 97 1B B7 33 00 00 00 00 00 00 16 25 16 16 16 18 1F 00 82 1B 9A 36 00 00 00 00 00 00 24 20 16 18 0E 00 97 1B B7 33 00 00 00 00 00 00 16 25 16 16 16 18 59 00 82 1B 9A 36 00 00 00 00 00 00 24 2D 16 18 48 00 82 77 00 E2 7C 00 00 2A 16 18 37 00 81 19 19 00 E2 7C 00 00 09 00 DD 82 00 00 00 01 DD 82 00 00 0A 00 5C 7D 00 00 00 1B F6 3C 00 00 00 00 00 00 16 16 16 16 16 04 3A E3 7C 00 00 53 


new hex: (virtual 0xEB) (allows Arc Thrower to-hit-chance to display)
header:
F8 7C 00 00 50 55 00 00 00 00 00 00 E1 7C 00 00 00 00 00 00 00 00 00 00 E3 7C 00 00 00 00 00 00 C9 04 00 00 BB A8 00 00 EB 00 00 00 D7 00 00 00 

body:
0F 00 E2 7C 00 00 2E 65 85 00 00 19 01 E6 7B 00 00 0A 00 B9 B5 00 00 00 1B E4 30 00 00 00 00 00 00 16 04 84 84 82 82 9A 1B 74 31 00 00 00 00 00 00 16 26 16 18 0F 00 81 1B 9A 36 00 00 00 00 00 00 24 09 16 16 16 18 1D 00 82 1B 9B 1A 00 00 00 00 00 00 16 18 0E 00 97 1B B7 33 00 00 00 00 00 00 16 25 16 16 16 18 1F 00 82 1B 9A 36 00 00 00 00 00 00 24 20 16 18 0E 00 97 1B B7 33 00 00 00 00 00 00 16 25 16 16 16 18 0D 00 1B 9A 36 00 00 00 00 00 00 24 2D 16 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 3A E3 7C 00 00 53 


--------------------------------------------------------------


Modify XGUnit.HasBombardAbility to return true if Unit has Bombard perk (82)



original XGUnit.HasBombardAbility hex code:
header:
F8 B5 00 00 50 55 00 00 00 00 00 00 E1 B5 00 00 00 00 00 00 00 00 00 00 E3 B5 00 00 00 00 00 00 BE 25 00 00 A0 BF 04 00 91 00 00 00 69 00 00 00 0F 00 E2 B5 00 00 35 D3 0D 00 00 D5 0D 00 00 00 00 19 1B 7B 31 00 00 00 00 00 00 16 09 00 C3 A2 00 00 00 01 C3 A2 00 00 07 84 00 84 84 84 9A 00 E2 B5 00 00 2C 0A 16 18 0E 00 9A 00 E2 B5 00 00 2C 0B 16 16 18 0E 00 9A 00 E2 B5 00 00 2C 08 16 16 18 0E 00 9A 00 E2 B5 00 00 2C 10 16 16 04 27 04 28 04 3A E3 B5 00 00 53 

new:
F8 B5 00 00 50 55 00 00 00 00 00 00 E1 B5 00 00 00 00 00 00 00 00 00 00 E3 B5 00 00 00 00 00 00 BE 25 00 00 A0 BF 04 00 85 00 00 00 69 00 00 00 05 D3 0D 00 00 00 35 D3 0D 00 00 D5 0D 00 00 00 00 19 01 0A 31 00 00 09 00 C3 A2 00 00 00 01 C3 A2 00 00 0A 40 00 24 08 0A 45 00 24 0A 0A 4A 00 24 0B 0A 51 00 24 10 04 27 0A FF FF 07 7B 00 19 1B 7B 31 00 00 00 00 00 00 16 0C 00 EA A2 00 00 00 1B B8 36 00 00 00 00 00 00 2C 52 16 04 27 04 28 0B 0B 0B 0B 0B 04 0B 53


-------------------------------------------------

Modify XGAIBehavior.GetGrenadeThrowRange to add 50% to weapon range instead of visual range

XGAIBehavior.GetGrenadeThrowRange
original hex:
header:
99 8B 00 00 50 55 00 00 00 00 00 00 83 8B 00 00 00 00 00 00 00 00 00 00 84 8B 00 00 00 00 00 00 10 04 00 00 CB 98 00 00 89 00 00 00 69 00 00 00 

body:
07 48 00 19 01 B8 8A 00 00 0A 00 E3 B5 00 00 00 1B 65 36 00 00 00 00 00 00 16 04 38 3F 90 19 01 B8 8A 00 00 0A 00 94 31 00 00 00 1B A6 34 00 00 00 00 00 00 16 2C 40 16 04 19 19 01 B8 8A 00 00 0A 00 5F B4 00 00 00 1B CC 32 00 00 00 00 00 00 16 0A 00 14 0A 00 00 00 1B 93 32 00 00 00 00 00 00 16 04 3A 84 8B 00 00 53 



new hex: (virtual 0x81)
header:
99 8B 00 00 50 55 00 00 00 00 00 00 83 8B 00 00 00 00 00 00 00 00 00 00 84 8B 00 00 00 00 00 00 10 04 00 00 CB 98 00 00 81 00 00 00 69 00 00 00 

body:
04 AB 19 19 01 B8 8A 00 00 0A 00 5F B4 00 00 00 1B CC 32 00 00 00 00 00 00 16 0A 00 14 0A 00 00 00 1B 93 32 00 00 00 00 00 00 16 45 19 01 B8 8A 00 00 0A 00 E3 B5 00 00 00 1B 65 36 00 00 00 00 00 00 16 05 00 1E 00 00 C0 3F 05 00 1E 00 00 80 3F 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 3A 84 8B 00 00 53 


-------------------------------------------------


Rewrite XGAction_Fire.SetChainedDistance to :

1) Allow Bombadier to work with Frag, Smoke, and Battlescanners
	a) Optional - each 10 aim grants +1 range (DEFAULT OFF)
2) Make Bombadier grant +50% (default) range instead of visual range
3) Allow mods of Psi Inspiration, Telekinetic Field, and Plague
4) Change rocket distance calculation from visual range to:
	a) Set by weapon stat in DGC.ini
		i) Optional - each 4 aim grants +1 range for Blaster Launcher (DEFAULT ON)
	b) Reduced if unit moved (max range = visual range)
		i) to 75% (default) if has perk ePerk_SnapShot (16)
		i) to 50% (default) otherwise 
	c) increased by 33% (default) if ePerk_FirstBlood (29) is available

XGAction_Fire.SetChainedDistance

original hex:
header:
26 84 00 00 50 55 00 00 00 00 00 00 0D 84 00 00 00 00 00 00 00 00 00 00 11 84 00 00 00 00 00 00 1F 07 00 00 82 00 01 00 39 05 00 00 99 03 00 00 

body:
0B 07 2C 05 1B CE 00 00 00 00 00 00 00 00 11 84 00 00 16 05 11 84 00 00 00 00 11 84 00 00 0A F6 00 24 16 0F 00 0E 84 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 0C 00 78 76 00 00 00 1B 1C 35 00 00 00 00 00 00 2C 55 16 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 90 35 A2 0D 00 00 AA 0D 00 00 00 00 00 0E 84 00 00 2C 40 16 0F 48 10 84 00 00 1E 00 00 80 3F 06 2A 05 0A 2B 02 24 18 0F 00 0E 84 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 0C 00 78 76 00 00 00 1B 1C 35 00 00 00 00 00 00 2C 58 16 07 D8 01 19 01 41 BC 00 00 0A 00 E3 B5 00 00 00 1B 65 36 00 00 00 00 00 00 16 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 90 19 01 41 BC 00 00 0A 00 94 31 00 00 00 1B A6 34 00 00 00 00 00 00 16 2C 40 16 06 19 02 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 90 35 A2 0D 00 00 AA 0D 00 00 00 00 00 0E 84 00 00 2C 40 16 0F 48 10 84 00 00 1E 00 00 80 3F 06 2A 05 0A F7 02 24 17 0F 00 0E 84 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 0C 00 78 76 00 00 00 1B 1C 35 00 00 00 00 00 00 2C 56 16 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 90 35 A2 0D 00 00 AA 0D 00 00 00 00 00 0E 84 00 00 2C 40 16 0F 48 10 84 00 00 1E 00 00 80 3F 06 2A 05 0A C3 03 24 47 0F 00 0E 84 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 0C 00 78 76 00 00 00 1B 1C 35 00 00 00 00 00 00 2C 63 16 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 90 35 A2 0D 00 00 AA 0D 00 00 00 00 00 0E 84 00 00 2C 40 16 0F 48 10 84 00 00 1E 00 00 80 3F 06 2A 05 0A 62 04 24 49 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 AB 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 05 00 F0 2C 00 00 00 1E 00 00 C8 42 38 3F 2C 40 16 0F 48 10 84 00 00 1E 00 00 80 3F 06 2A 05 0A 67 04 24 4C 0A 6C 04 24 4A 0A C7 04 24 23 0F 48 10 84 00 00 1E 00 00 80 3F 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 90 19 01 41 BC 00 00 0A 00 94 31 00 00 00 1B A6 34 00 00 00 00 00 00 16 2C 40 16 06 2A 05 0A CC 04 24 19 0A 27 05 24 42 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 90 19 01 41 BC 00 00 0A 00 94 31 00 00 00 1B A6 34 00 00 00 00 00 00 16 2C 40 16 0F 48 10 84 00 00 1E 00 00 80 3F 06 2A 05 0A FF FF 04 27 04 28 04 3A 0F 84 00 00 53 


new hex: (virtual 0x4E5)
header:
26 84 00 00 50 55 00 00 00 00 00 00 0D 84 00 00 00 00 00 00 00 00 00 00 11 84 00 00 00 00 00 00 1F 07 00 00 82 00 01 00 E5 04 00 00 99 03 00 00 

body: 
0B 07 A0 04 1B CE 00 00 00 00 00 00 00 00 11 84 00 00 16 0F 48 10 84 00 00 38 3F 26 0F 00 D9 83 00 00 25 0F 00 D8 83 00 00 25 05 11 84 00 00 00 00 11 84 00 00 0A 61 00 24 16 0F 00 D9 83 00 00 2C 55 06 A3 00 0A 75 00 24 18 0F 00 D9 83 00 00 2C 58 06 A3 00 0A 89 00 24 17 0F 00 D9 83 00 00 2C 56 06 A3 00 0A 9D 00 24 47 0F 00 D9 83 00 00 2C 63 06 A3 00 0A FF FF 06 A3 00 07 CD 01 9B 00 D9 83 00 00 25 16 0F 00 0E 84 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 13 00 78 76 00 00 00 1B 1C 35 00 00 00 00 00 00 00 D9 83 00 00 16 07 66 01 28 0F 00 D8 83 00 00 91 90 2C 40 93 19 01 41 BC 00 00 0A 00 16 B3 00 00 00 1B BE 33 00 00 00 00 00 00 16 2C 41 16 16 2C 0A 16 0F 00 D9 83 00 00 92 90 35 A2 0D 00 00 AA 0D 00 00 00 00 00 0E 84 00 00 2C 40 16 00 D8 83 00 00 16 07 CD 01 19 01 41 BC 00 00 0A 00 E3 B5 00 00 00 1B 65 36 00 00 00 00 00 00 16 9F 00 D9 83 00 00 1E 00 00 C0 3F 16 07 2A 02 9A 00 D9 83 00 00 25 16 05 11 84 00 00 00 00 11 84 00 00 0A 06 02 24 49 0F 00 D9 83 00 00 1D 00 19 00 00 06 2A 02 0A 0B 02 24 4C 0A 10 02 24 4A 0A 24 02 24 23 0F 00 D9 83 00 00 1D C0 06 00 00 0A FF FF 06 2A 02 07 65 04 9A 00 D9 83 00 00 25 16 05 11 84 00 00 00 00 11 84 00 00 0A 51 02 24 19 0A 5F 04 24 42 07 D8 02 19 19 01 41 BC 00 00 0A 00 5F B4 00 00 00 1B CC 32 00 00 00 00 00 00 16 0C 00 56 A6 00 00 00 1B 83 36 00 00 00 00 00 00 24 13 16 0F 00 D9 83 00 00 2C 13 07 D5 02 27 0F 00 D8 83 00 00 91 90 2C 40 93 19 01 41 BC 00 00 0A 00 16 B3 00 00 00 1B BE 33 00 00 00 00 00 00 16 2C 41 16 16 2C 04 16 06 E4 02 0F 00 D9 83 00 00 2C 07 0F 00 0E 84 00 00 19 19 2E FE 2C 00 00 19 12 20 4F FE FF FF 0A 00 D8 F9 FF FF 00 1C F6 FB FF FF 16 09 00 98 F9 FF FF 00 01 98 F9 FF FF 09 00 F0 2C 00 00 00 01 F0 2C 00 00 13 00 78 76 00 00 00 1B 1C 35 00 00 00 00 00 00 00 D9 83 00 00 16 0F 00 D9 83 00 00 92 90 35 A2 0D 00 00 AA 0D 00 00 00 00 00 0E 84 00 00 2C 40 16 00 D8 83 00 00 16 07 DE 03 19 19 01 41 BC 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 0C 00 EA A2 00 00 00 1B B8 36 00 00 00 00 00 00 2C 1D 16 9F 00 D9 83 00 00 1E 1F 85 AB 3F 16 07 5F 04 97 19 01 41 BC 00 00 09 00 B6 30 00 00 00 01 B6 30 00 00 25 16 07 4F 04 19 19 01 41 BC 00 00 0A 00 63 B4 00 00 00 1B 7B 31 00 00 00 00 00 00 16 0C 00 EA A2 00 00 00 1B B8 36 00 00 00 00 00 00 2C 10 16 9F 00 D9 83 00 00 1E 00 00 40 3F 16 06 5F 04 9F 00 D9 83 00 00 1E 00 00 00 3F 16 0A FF FF 06 65 04 07 A0 04 9B 00 D9 83 00 00 25 16 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 00 D9 83 00 00 04 27 04 28 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 3A 0F 84 00 00 53  

 

 

 

Note that I included the before/after hex for XGAbility_Targeted.ShouldShowPercentage. This should be reverted back to vanilla. I included the hex to make it easier to have the hex on hand.

Link to comment
Share on other sites

  • 2 weeks later...

I'm testing out a new functionality : Making the Thin Man Plague ability scatter using the same mechanics as the Rocket Scatter.

 

Rocket Scatter applies to all Free Aim shots (or should, but doesn't if they invoke a pathing function like grenades and Blaster Launcher) that have the eProp_ScatterTarget ability property. So, I've added that property to the Plague ability when it is built.

 

Change :

XGAbilityTree.BuildAbilities

original:
BuildAbility(35, 8, 2, -1, -20, 21,,, 1, 4, 42, 12, 44,,,, 3, 7, 9, 3);
1B 7E 0D 00 00 00 00 00 00 24 23 24 08 2C 02 1D FF FF FF FF 1D EC FF FF FF 24 15 4A 4A 24 01 24 04 24 2A 24 0C 24 2C 4A 4A 4A 24 03 24 07 24 09 2C 03 4A 16 

new:
original:
BuildAbility(35, 8, 2, -1, -20, 21,,, 1, 4, 42, 12, 44, 45,,, 3, 7, 9, 3);
1B 7E 0D 00 00 00 00 00 00 24 23 24 08 2C 02 1D FF FF FF FF 1D EC FF FF FF 24 15 4A 4A 26 24 04 24 2A 24 0C 24 2C 24 2D 4A 4A 24 03 24 07 24 09 2C 03 4A 16 

I've verified non-crashing but not that the change actually causes the AI shots with Plague to scatter. Would appreciate anyone willing to add this to an existing Rocket Scatter mod install to help me test it out.

Link to comment
Share on other sites

So my first encounter with Thin Men with scattering Plague attacks was inconclusive.

 

There were 3 Thin Men against 6 XCOM. The encounter took place in rocky terrain outside a crashed UFO, with both units at nearly the extreme of visual range. Thin men poison spat 4 times. One time the cloud didn't seem to appear. The cloud was scattered from the aim point, but by more than I was expecting, although 1 cloud was only 1 tile away from hitting an XCOM unit.

 

There might be a bug in the Rocket Scatter code in general where if the unit firing is above the target point, and the randomized range is further away, the final aim point (which is calculated in 3D) might be underneath the map, which might cause the explosion / poison cloud to disappear.

 

This sort of bug crops up all the time with Battlescanners, where the spawned battlescanner ends up underneath the map and so has no LOS to anything.

 

More testing definitely required.

Link to comment
Share on other sites

I just put this in (The Rocket Scatter Overhaul) and it's truly excellent! Well done.

 

I think I'll skip the plague change though as that clipping bug on even Battlescanners really really annoys me.

 

Your Rocket Overhaul allowed the range of Rockets to be set via the DGC weapon attribute "irange=##", can something similar be done for Plague so that we can reduce it from sight range to something a little more tolerable? That'd be the best fix for the problem of Thinmen imo.

Link to comment
Share on other sites

I should've updated this before, but currently the scattering when applied to the Plague ability is seriously glitched. Sometimes the Plague ability is fired at 90 degrees to the target or even in the opposite direction.

 

So, I'd definitely not recommend applying the scattering to Plague.

 

Regarding limiting the distance.... It would be fairly simple to limit Plague distance to the distance set in the Weapons DGC entry in SetChainedDistance. Unfortunately that only applies to the UI that the player uses, not to the mechanic that the AI uses to selection.

 

I was poking around at XGAIBehavior_ThinMan and haven't yet found a way to easily mod it to limit the distance. To limit the AI's range for the Bombardier perk required a separate code change than the limiter for the player UI as well.

 

I'm glad you like the scatter code -- so far I've been pretty happy with it during play as well.

Link to comment
Share on other sites

  • 3 months later...

Some new development ideas for tweaking ranges. This is less for the rocket scatter per se and more following the Blaster Launcher design and tweaking maximum range based on conditions.

 

Possibilities that I've code-level prototyped and should be implementable:

 

1) Grenade maximum range is reduced if unit is suppressed (thinking maybe 50%?)

2) Thin Man poison spit range is reduced if unit is suppressed (similarly thinking 50%) (alternatively they could be prevented from using poison at all if suppressed)

 

Applying a range reduction to rockets right now doesn't make as much sense because suppression causes aim reduction which should result in greater scatter amount.

 

When EW comes out I'll have to make some significant changes to make this mod apply the same for EXALT forces with Rocket Launchers. This should make Suppression a reasonable defense against Grenades, Thin Men, and EXALT Heavies.

 

This would stack multplicatively with the Bombadier perk (which I'd set for a +50% bonus), so a Suppressed bombadier would have 0.5 * 1.5 = 0.75 (75%) of normal grenade range. For an alien grenade (with 17 range = 11.3 tiles) this would work out to a range of 12.75 (8.5 tiles). This would apply to Muton Elites and Heavy Floaters (and in Long War the Engineer subclass with this perk).

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...