Jump to content

Rocket Scatter Overhaul


Amineri

Recommended Posts

The game crashes when you throw a grenade/smoke grenade :(

 

Blerg.

 

I'd tested that the free-aiming still worked for grenades, but I hadn't tested that actually throwing the grenades still worked. I'm experiencing a CTD when throwing a frag grenade as well. I think it's likely in some code simplification I made to the grenade "to hit" code (yes, it's there and I don't know what it does).

 

I made these simplifications to made room for the various adjustments to scatter amount (blaster launcher, moved, moved with Snapshot), and clearly something isn't quite right with it.

 

I've verified that it's the hex change to XGAbility_Targeted.RollForHit (where the new rocket scatter code is) that is causing the problem, as reverting that pieces allows frag grenades to work properly without CTD.

 

Hopefully will have a new set of hex changes out soon. :)

Link to comment
Share on other sites

Okay, found the issue and corrected it.

 

While I was looking at it, I realized a had another minor bug (Grenades were now incorrectly displaying a to-hit value). I fixed that one too.

 

I was keeping DubiousIntent's comments about accuracy in mind, so I test out giving the Rocket Launcher the eAbility_Aim. This does indeed grant the aim ability to a soldier carrying the Rocket Launcher (ability use ends turn, and grants +20 aim for the next 1 turn -- current help text is incorrect in stating 2 turns). This reduces the scatter amount by almost a factor of 2.

 

For the vanilla Heavy with both an LMG and a Rocket Launcher this has further balance implications because the Aim is generically applied, so would apply to the LMG as well. However, since we're on the subject of realism, having a single soldier carry both a Heavy Machine Gun and a Rocket Launcher (with no support) seems a little unrealistic as well. You'll notice that in the screenshot I have a Rocket-using Heavy with an Assault Rifle. I split the Heavy into two subclasses, one of which uses an LMG (and has a pistol), the other gets a Rocket Launcher (and can only use rifles).

 

Anyhow, the new hex code!!!

 

Two functions changed : XGAbility_Targeted.RollForHit (correcting the grenade CTD) and UITacticalHUD_InfoPanel.Update (correcting the grenade to-hit display).

 

However, here are the compete set of hex changes once again:

 

 

 

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 

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 7B 03 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 B6 00 D4 7C 00 00 1E 00 00 00 3F 16 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


original hex:
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)
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 


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


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
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
	b) Reduced if unit moved (max range = visual range)
		i) to 67% (default) if has perk ePerk_SnapShot (16)
		i) to 50% (default) otherwise 
	c) increased by 33% (default) if ePerk_FirstBlood (29) is available

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 0x509)
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 09 05 00 00 99 03 00 00 

body: 
0B 07 F3 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 05 11 84 00 00 00 00 11 84 00 00 0A 4B 00 24 16 0F 00 D9 83 00 00 2C 55 06 8D 00 0A 5F 00 24 18 0F 00 D9 83 00 00 2C 58 06 8D 00 0A 73 00 24 17 0F 00 D9 83 00 00 2C 56 06 8D 00 0A 87 00 24 47 0F 00 D9 83 00 00 2C 63 06 8D 00 0A FF FF 06 8D 00 07 9F 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 0F 00 D9 83 00 00 90 35 A2 0D 00 00 AA 0D 00 00 00 00 00 0E 84 00 00 2C 40 16 07 73 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 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 07 DD 01 9A 38 3A 00 11 84 00 00 2C 49 16 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 AB 1E 00 00 C8 42 38 3F 2C 40 16 04 27 05 11 84 00 00 00 00 11 84 00 00 0A 04 02 24 4C 0F 00 D9 83 00 00 2C 1B 06 32 02 0A 18 02 24 4A 0F 00 D9 83 00 00 2C 1B 06 32 02 0A 2C 02 24 23 0F 00 D9 83 00 00 2C 1B 06 32 02 0A FF FF 06 32 02 07 A5 02 9B 00 D9 83 00 00 25 16 0F 00 D9 83 00 00 F9 00 D9 83 00 00 19 01 41 BC 00 00 0A 00 94 31 00 00 00 1B A6 34 00 00 00 00 00 00 16 16 0F 19 01 3F BC 00 00 09 00 DF 2D 00 00 00 01 DF 2D 00 00 38 3F 90 00 D9 83 00 00 2C 40 16 04 27 05 11 84 00 00 00 00 11 84 00 00 0A BD 02 24 19 0A EE 04 24 42 07 0B 03 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 06 17 03 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 90 35 A2 0D 00 00 AA 0D 00 00 00 00 00 0E 84 00 00 2C 40 16 07 06 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 1D 16 9F 00 D9 83 00 00 1E 1F 85 AB 3F 16 07 BF 04 97 19 01 41 BC 00 00 09 00 B6 30 00 00 00 01 B6 30 00 00 25 16 07 77 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 1E 85 2B 3F 16 06 87 04 9F 00 D9 83 00 00 1E 00 00 00 3F 16 0F 00 D9 83 00 00 F9 00 D9 83 00 00 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 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 06 F3 04 0A FF FF 04 28 04 28 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 3A 0F 84 00 00 53 
 

 

 

 

Enjoy!

Link to comment
Share on other sites

A possible glitch I found relating to showing the to-hit chance change for Blaster Launchers:

 

The XGAbility_Targeted.ShouldShowPercentage code I included early had already been modified from vanilla in the Long War 1.08 base that I had been using, to prevent the display of the Arc Thrower to-hit chance.

 

I've put together before / after hex cases for both vanilla and long war cases (displaying / not-displaying the arc thrower to-hit):

 

 

 

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  

 

 

 

Not having applied this code would only make it so that the Blaster Launcher would not display its scatter chance.

 

Future versions of Long War (1.5+) shouldn't have this issue, as I've worked out to display the adjusted Arc Thrower to-hit chance. (as well as have the amount of adjustment based on the current difficulty setting).

Link to comment
Share on other sites

I played around a bit with trying to get grenades to scatter in the same manner as rockets, but was unable to get them to do so.

 

Adding the ability property eProp_ScatterTarget to the Frag Grenade ability did cause the game to enter into the scatter code, compute a scattered target location, and display the expected amount of scatter. However, the grenade did not ever scatter in practice.

 

Continuing to play around with the Frag Grenade ability BuildAbility settings, I found that if I removed the EAbilityDisplayProperty eDisplayProp_ProjectilePreview, when using the ability the 'traced out arc' would no longer display and the grenade would now explode in the square of the throwing soldier.

 

This leads me to suspect that the grenade throwing code is using some similar form of pathfinding code like the unit movement, and that the ability is showing / creating the path along which the grenade will travel (hence why removing the path caused the grenade to not travel).

 

In effect this would make adding scatter to grenades about the same level of complexity as adding scatter to unit movement -- very difficult.

 

When I added the eDisplayProp_ProjectilePreview to the rocket abilities it displayed the same arcing path as for grenades, but the rocket projectile path was unchanged (it didn't arc). Given that the Blaster Launcher has yet another pathing mechanic, I suspect that the pathing code for all of these is hard-coded (based on weapon type) somewhere in the code I haven't found.

 

I haven't yet testing the Blaster Launcher scatter so it may be that it is not possible to add scatter to the Blaster Launcher (in the same way that it isn't possible to add scatter to grenades). Well... at least I haven't figured out any way to add scatter, and don't have any ideas...

 

This has made me realize that I definitely need to do some testing with the Blaster Launcher!

Link to comment
Share on other sites

How did you activate eability_aim with the rocket launcher, given the rocket launcher can't be made the 'active weapon' and doesn't generate its own set of icons?

 

Also, can you give a sense of the power of Snap Shot when applied to your system? I'm trying to figure out where it goes in the rocketeer perk tree.

Link to comment
Share on other sites

@ johnnylump

 

I just added eAbility_Aim as an ability to the Rocket Launcher. The only slightly glitchy thing was that the AOE bubble came up when I activated Aim on the Rocketeer. However, no damage was taken. I verified that the aim bonus applies generically (so applies to the main-hand weapon as well).

 

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

 

Moving and shooting rockets:

Right now rockets can move shoot from the beginning (if they can do it at all). With a Rocket Launcher range of 30 (20 tiles), after moving a Rocket is basically a frag grenade that does more damage, has a bigger AOE, and is very inaccurate. Scatter for a rookie after moving and firing 10 tiles is the same scatter as max range would be normally ... ~ 3.5 tiles. This makes using a rocket like this a bit of a risky, desperate move until the soldier gets decent aim.

 

I didn't want to make Snapshot too strong for Rocketeers, so it's currently somewhat weak. Instead of max range shifting from 20 tiles to 10 tiles, it shifts from 20 tiles to 13.33 tiles. Scatter at 13.33 tiles is the same as it would have been at 20 tiles without moving.

 

However, once combined with the Javelin Rockets perk, and with a higher rank soldier with decent aim (especially if combined with the aim ability) it will become more powerful.

 

Rocket Launcher has 30 base range (20 tiles), with Javelin Rockets this becomes 40 range (26.7 tiles). With Snapshot, the range is reduced from 40 to 26.7 (~18 tiles) -- basically visual range. It's really the combination of the two perks that is powerful -- the ability to move and shoot a rocket up to visual range (or stay stationary and be a "rocket sniper")

 

It's pretty easy to change how SnapShot will affect rocket scatter -- I coded the values in as full floats so they can be easily tweaked (as opposed to an int cast to a float).

Link to comment
Share on other sites

  • 2 weeks later...

So, some bad news.

 

The pathing system used for the Blaster Launcher renders any scatter amount set unused. That is, Blaster Launchers just won't scatter, no matter how much scatter is applied. (the same is true for grenades).

 

I tested this by taking a Blaster Launcher-equipped soldier on a mission, changed the MIN_SCATTER up to 200 (crazy large), and giving the soldier 20 rocket charges. Shot after shot followed the path exactly, even though the average scatter should have been ~5 tiles. I also got the soldier-speak indicating that the shot had scattered considerably, but it didn't.

 

This means that all of the scatter calculations apply only to the regular Rocket Launcher. However, the chained distance adjustments still apply to both.

 

Something to take into consideration when setting the Blaster Launcher stats. It also has the unfortunate side-effect of once again (in the end game) making the Rocket-using soldier's aim stat pretty much irrelevant.

 

Options I'm considering:

1) Making the max chained distance for the Blaster Launcher based on the soldier's aim stat. Higher aim = longer range.

2) For Snapshot, adding eWP_Sniper to the Blaster Launcher, so that it can only move and fire at all if the SnapShot perk has been chosen.

 

Any other thoughts or suggestions on how to make the Blaster Launcher a useful and powerful upgrade without making it an "I win" button ?

Link to comment
Share on other sites

Perhaps you could increase base damage but also make it more similar to the original XCOM by making it unstable and blow up xcom agents ~15% of the time...

Not sure If anyone else but me would find that nostalgic and fun or just throw the keyboard on the monitor, so perhaps not the best of ideas :)

 

Giving it an extra shot might be an alternative?

Link to comment
Share on other sites

  • Recently Browsing   0 members

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