Jump to content

Modding EXALT


wghost81

Recommended Posts

Most of the council mission maps (this includes slingshot and progeny) have dynamic alien types defined in the DefaultMaps.ini config file. In theory it should be possible to create map variants by defining multiple map config entries that point to the same map upk file but have different dynamic alien types.

 

However, none of the EXALT maps have dynamic aliens configured in this file, so there must be some other mechanic at work. It seems unlikely to be baked into the map itself since reinforcements can be either regular EXALT or elites.

Link to comment
Share on other sites

  • Replies 114
  • Created
  • Last Reply

Top Posters In This Topic

<..>

However, none of the EXALT maps have dynamic aliens configured in this file, so there must be some other mechanic at work. It seems unlikely to be baked into the map itself since reinforcements can be either regular EXALT or elites.

However, I may have seen some sort of type override, that replaces normal EXALT with Elites, so it could be still there, but I can be wrong. Sometimes I feel that either I am running in circles :wallbash:, or code was purposefully obscured by devs to make modding even harder, than it is (maybe I just need a break, or try modding something else in meantime).

Edited by Tycus
Link to comment
Share on other sites

Seems, it's not there; :sad:

 

m_kSquad.iNumDynamicAliens defines the number of dynamically deployed aliens on council missions, EXALT missions and base defense mission. It is set in corresponding Determine* function of XComStrategyGame and later used in XComGame XGDeployAI class:

 

function array<TAlienSpawn> DeployPods(out TAlienSquad kAlienSquad)
{
    m_kSquad = kAlienSquad;
    SetDeploymentFlags();
    GetPlayerStart();
    GetPossibleSpawns();
    DeployMissionCommander();
    DeploySecondaryAliens();
    DeploySoldiers();
    DeployHunters();
    DeployRoaming();
    return m_arrDeployments;
    //return ReturnValue;    
}

function DeployRoaming()
{
    KismetRoamingNumber(m_kSquad.iNumDynamicAliens);
    //return;    
}

function KismetRoamingNumber(int iNum)
{
    local array<SequenceObject> arrEvents;
    local SequenceObject kEvent;

    WorldInfo.GetGameSequence().FindSeqObjectsByClass(class'SeqEvent_RoamingAlienNumberSet', true, arrEvents);
    // End:0x91
    foreach arrEvents(kEvent,)
    {
        SeqEvent_RoamingAlienNumberSet(kEvent).iNumAliens = iNum;        
    }    
    TriggerGlobalEventClass(class'SeqEvent_RoamingAlienNumberSet', self);
    //return;    
}

 

There is essentially nothing in this code. It triggers an event — that's all. I'm beginning to think, that actual definition of dynamic aliens and timing happens inside some native function.

Link to comment
Share on other sites

<..>

There is essentially nothing in this code. It triggers an event — that's all. I'm beginning to think, that actual definition of dynamic aliens and timing happens inside some native function.

I have found similar dead-end as well - trigger of an event, that parses some parameters (likely "our" EXALT guys in question), but from where it takes those parameters... seems like a native function to me, so I would say there is like 70% chance, that it is indeed in some native function (and out of our reach); I just don't understand, what incentive devs have to hard-code something like that.

 

Anyway, this probably means, that I have to find alternative way to make EXALT more of a threat on tactical level (in my mod).

Edited by Tycus
Link to comment
Share on other sites

My mistake: EXALT missions don't use iNumDynamicAliens variable. So it is definitely hard-coded. :sad:

Thanks for clarification (and confirmation). That is not good, but it is not like first hard-coded limitation out there we have to work with.

 

<..>

I'm switching those relays off anyway, 'cause I don't get the logic behind this.

You can remove them off map completely, right? (for CaptupeAndHold type of mission, that is)

Besides, it is not like those relays were needed in first place; on I/I I have used them like twice, first time to see, what it does, and second time just for fun, when I almost solo-ed Data Recovery with covert operative (rest of the team were only for free overwatch-on-drop-in kills and for taking care of EXALT already present on the map).

Edited by Tycus
Link to comment
Share on other sites

No, I don't think I could remove them from maps, as they seem to be "build-in" objects (meld canisters are placed dynamically, that's why I was able to disable them). But I certainly can remove disabling shot effect. Edited by wghost81
Link to comment
Share on other sites

No, I don't think I could remove them from maps, as they seem to be "build-in" objects (meld canisters are placed dynamically, that's why I was able to disable them). But I certainly can remove disabling shot effect.

Ok then. I should have figured that out myself, but I wrongly assumed that these missions seem to use Terror mission maps (actually using separate re-used maps), also because that is possible to have dynamically placed objects on maps, so these relays are similar to meld canisters, and can be safely removed from maps.

Edited by Tycus
Link to comment
Share on other sites

Ok then. I should have figured that out myself, but I wrongly assumed that these missions seem to use Terror mission maps (actually using separate re-used maps), also because that is possible to have dynamically placed objects on maps, so these relays are similar to meld canisters, and can be safely removed from maps.

 

 

I've noticed the positions of the relays coincide directly with the position of the green pods in the abduction variants of the same maps.

 

Ghost, on the topic of dynamic aliens, have you considered upping the alien reinforcements in the XCOM base defense mission? Especially towards the end of the mission; you have your 6 top soldiers by then and they don't make the reinforcements difficult enough to compensate.

Link to comment
Share on other sites

Ok then. I should have figured that out myself, but I wrongly assumed that these missions seem to use Terror mission maps (actually using separate re-used maps), also because that is possible to have dynamically placed objects on maps, so these relays are similar to meld canisters, and can be safely removed from maps.

I though so, but again, I can't seem to find the placement code.

 

I've noticed the positions of the relays coincide directly with the position of the green pods in the abduction variants of the same maps.

That's an interesting observation. Which could suggest, that those maps were in fact re-done for EXALT missions and those objects aren't dynamic.

 

Ghost, on the topic of dynamic aliens, have you considered upping the alien reinforcements in the XCOM base defense mission? Especially towards the end of the mission; you have your 6 top soldiers by then and they don't make the reinforcements difficult enough to compensate.

The base defense code is a very strange one. I'm working on Larger Pods Mod for EW now and I see some places inside the code, which do not match with my in-game experience. First, as I remember, there are no random stationary pods on the map, all aliens drop in during combat. Second, numDynamicAliens is equal to 10 in the code, but, again, as I remember there were more. I suspect that the final version of this mission is hard-coded in some native function, because it's heavily scripted.
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...