Jump to content

Modding EXALT


wghost81

Recommended Posts

And now about Wave System.

 

XGOvermind.Init function initializes all map spawns and contains InitWaveSystem call (along with DeployPods call).

 

InitWaveSystem requests WorldInfo on AllActors of class XComWaveSystem and calls XComWaveSystem.Init function. This function checks if wave is valid and calls InitScalableList function.

 

InitScalableList iterates through all Pods in AlienSquad and calls AddCharTypeToScalableList for eMain, eSupport1 and eSupport2 types.

 

AddCharTypeToScalableList sorts aliens by type and adds them to three lists: m_arrScalableList contains all the types available, m_arrScalableFlyInList contains only flying units and m_arrScalableDropInList contains only character with HasTraversal property (i.e. those, who can climb ladders).

 

When comes the time for another wave, SpawnGroup function is called, which in turn calls to SetScalingAliens function.

 

If alien group is Scalable (which is set in properties of alien wave), SetScalingAliens initializes AlienType with random alien from one of the Scalable Groups, described above. If group is not scalable, it forces ExaltOperatives for Exalt maps and ThinMan for the other maps.

 

In DefaultMaps.ini AlienType is defined explicitly for Council Missions via DynamicAliens array, but not defined (eChar_None) for Exalt maps. I think it's done to allow for two different Exalt types (regular and elite) for the same maps.

 

Interesting note: if we'll try and remove all forced ThinMan for Council mission, we'll be able to change dynamic aliens by altering SetScalingAliens function.

Link to comment
Share on other sites

  • Replies 114
  • Created
  • Last Reply

Top Posters In This Topic

And another note: spawn point for the dynamic alien is chosen randomly from array of available spawn points. And there are plenty of spawn points for Exalt maps. As I can see, NumAliens is defined via XComWaveSystem_0 for those maps, so I may try to change it and see what happens. In theory it might spawn more aliens... or just crash, if I got it wrong. :smile:

 

PS I'd appreciate if someone will make wiki article out of this, so it won't get lost.

Link to comment
Share on other sites

Done!

 

http://i.imgur.com/5MEShoa.jpg

 

I modded one of the waves, which consisted of two groups of 1 alien each: made it 4 and 6 aliens respectively.

 

Some more notes: DropIn spawns use overwatch. Any EXALT unit can spawn as DropIn unit, not only sniper. WalkIn units spawn without overwatch. In theory this can be changed, but it won't be easy, as there is no spawn method entry for those waves.

 

Spawn time seems to be controlled through linked variables, which are set by events. One can determine which wave spawns when by setting different number of units per spawn and observing the result in actual gameplay. Or by digging through all sequence action objects, which will be a pain. :smile:

Edited by wghost81
Link to comment
Share on other sites

To decompress packages you need Gildor's UE decompressor utility. After that you can use UPK Utils to analyse map packages as in my example.

 

I've managed to decompile linked events, which trigger the waves. But it is still a pain. Most triggers are already known from experience: approaching an array, hacking first array, hacking second array, operative approaching evac zone. The trick is to determine which event triggers which wave. And as linked event names are buried inside default properties of SeqEvent object, I need to decompile all to find proper trigger. Madness.

 

To summarize the results: since spawn locations are extremely limited (2 for covert extraction maps, I haven't looked into capture and hold maps yet), we can't increase a number of stationary EXALT pods. So, to increase mission difficulty we need to mod wave system. There are plenty of spawn points for dynamic aliens (like 20-30 for each map), so it is very possible to increase a number of EXALT reinforcements. Spawn timings are tied in to events. It is theoretically possible to mod those, but, IMO, it won't do any good, as spawn points for each wave are tied in to specific trigger locations. Hence, we need to determine which event triggers which wave and adjust it accordingly. Maps still be scripted, but will be more difficult.

 

As a side note, it is possible to mod dynamic alien types inside wave system class itself. It can help in modding Council Missions, as those poor ThinMen are too weak mid-late game and can be replaced with something else.

Edited by wghost81
Link to comment
Share on other sites

"Capture and hold" missions are actually easier to comprehend as events have human-friendly names. :smile:

 

URB_CommercialRestaurant_CNH has 2 alien pods too. I'm afraid, all exalt maps do. :sad: Wave system for this map contains two sets:

1st set:

- disabled when TransmitterCaptured

- has 3 waves

- 1st wave appears on turn 2, has 2 groups.

Groups 0 and 1: 1 unit with 6 possible spawn points, walk in, no overwatch.

- 2nd wave appears on turn 4, has 3 groups.

Groups 0 and 1: 1 unit with 6 possible spawn points, walk in, no overwatch.

Group 2: 1 unit with 6 possible spawn points, drop in, overwatch.

- 3rd wave appears on turn 6, has 3 groups.

Group 0: 2 units, 6 spawn points, walk in, no overwatch.

Group 1: 1 unit, 6 spawn points, walk in, no overwatch.

Group 2: 2 units, 6 spawn points, drop in, overwatch.

2nd set:

- enabled with TransmitterCaptured

- disabled with DataRelayCaptured

- has 2 waves

- 1st wave: 0 turn after enabled, 3 groups.

Group 0 and 1: 1 unit with 6 possible spawn points, walk in, no overwatch.

Group 2: 1 unit with 6 possible spawn points, drop in, overwatch.

- 2nd wave: 2 turn after enabled, 3 groups.

Group 0 and 1: 1 unit with 6 possible spawn points, walk in, no overwatch.

Group 2: 1 unit with 6 possible spawn points, drop in, overwatch.

 

All the maps seem to follow the same pattern, only spawn points are different.

 

I've been thinking... Spawn point or pod point - it doesn't actually make any difference, as only coordinates are used in most cases. It is possible to iterate through all the XComSpawnPoint_Alien map objects, extract coordinates and set spawn locations, based on those coordinates instead of XComAlienPod's. This will allow for more stationary pods per map.

Edited by wghost81
Link to comment
Share on other sites

And another note: spawn point for the dynamic alien is chosen randomly from array of available spawn points. And there are plenty of spawn points for Exalt maps. As I can see, NumAliens is defined via XComWaveSystem_0 for those maps, so I may try to change it and see what happens. In theory it might spawn more aliens... or just crash, if I got it wrong. :smile:

 

PS I'd appreciate if someone will make wiki article out of this, so it won't get lost.

Okaaaaay ... I'll see what I can do about making a wiki page. But I'm not clear on a couple of things.

 

While the thread started out about 'Modding EXALT', this last set of discoveries seems to cover 'Spawn Points' and 'Waves' in general, while EXALT appears to be just a special instance of the same basic processes. Correct? Do you see this as one article about 'Spawn Points' (as opposed to an extension of the 'Maps - XCOM:EU 2012' article) with 'Waves' as a subtopic, or should they be separate articles? Or something else?

 

Edit: Well, I've put together a page and in the process decided it belongs on it's own page with a link from the 'Maps' page: 'Spawn Points - XCOM:EU 2012'

 

-Dubious-

Edited by dubiousintent
Link to comment
Share on other sites

Thanks, dubiousintent.

 

Yes, it's not about EXALT only. In fact, it's more about units deployment mechanism. I suggest this as the title for wiki article.

 

Title: Units deployment

1. XCOM deployment

2. Static aliens deployment

3. Dynamic aliens deplayment

All corresponding content should be moved to this new article. Info on spawn points can stay in the "Spawn Points" article. I will put more info in when I'll have more time.

 

I tried to create a new wiki page named Units_Deployment_-_XCOM:EU_2012, but I've failed. How to suggests to type this into search box, but wiki engine says that search have been disabled. :sad:

Edited by wghost81
Link to comment
Share on other sites

Yeah, search is currently down. There is a way to create a page directly, which is in the 'this is a template' notice at the beginning of the two Template pages. (I see I overlooked adding it to the 'How to' page, though. I'll take care of that.) But I created the 'Units deployment' page from the template for you. No content as yet, but I'll work on it after I get some sleep.

 

-Dubious-

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...