Panzercracker Posted December 2, 2013 Share Posted December 2, 2013 Can you make EXALT still exist for covert operation after attack their HQ? I like their gun appearent. I am trying collecting them for the rest of my troops. Link to comment Share on other sites More sharing options...
Tycus Posted December 2, 2013 Share Posted December 2, 2013 (edited) 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. :facepalm: That is exactly what I was trying to say in my last post; perhaps I should have used another word to describe those cheap copies of existing maps (re-done is too strong word to describe map with minimal, almost cosmetic difference from original). <..>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.Thought so, because that part of code in <XGStrategyAI.DetermineHQAssaultSquad> doesn't make any sense, and I strongly suspect, that if we try to dig deeper and to find actual function, responsible for that - it will lead us to same result, as in case with EXALT reinforcements. Edit: got ninja'd by Panzercracker (I hate, when forum does that). Can you make EXALT still exist for covert operation after attack their HQ? I like their gun appearent. I am trying collecting them for the rest of my troops.You know, that you can still do scans and have covert operations, even if you have all clues to pinpoint EXALT HQ location, right? There is nothing forcing you to raid (except continued EXALT activity). Edited December 2, 2013 by Tycus Link to comment Share on other sites More sharing options...
wghost81 Posted December 2, 2013 Author Share Posted December 2, 2013 Yes, but I'm preserving all base defense related code anyway. Try to change some values and look at the result. Link to comment Share on other sites More sharing options...
Drakous79 Posted December 3, 2013 Share Posted December 3, 2013 (edited) Thought so, because that part of code in <XGStrategyAI.DetermineHQAssaultSquad> doesn't make any sense, and I strongly suspect, that if we try to dig deeper and to find actual function, responsible for that - it will lead us to same result, as in case with EXALT reinforcements. Agreed. Also EWI_HQAssault has no dynamic aliens set in DefaultMaps.ini. Maybe someone could test it with Uber Etheral.Edit: Tested with DynamicAliens[0]=eChar_Outsider, DynamicAliens[1]=eChar_EtherealUber and none of them spawned. I suspect there are streamed parts of maps, that contain events or scripts (maybe action scripts). In already mentioned ini are following maps listed as StreamingMaps: EWI_HQAssaultEWI_ExaltHQAssault_StreamStream file contains strings: SelectAlienSet | Alien Set 0 | Trigger Alien First WaveURB_TrainyardURB_Trainyard_CovExt (Covert Extraction)CovExt file contains strings: m_arrAlienSets | Is this the first wave of reinforcements? | Array reinforcement eventsURB_TruckStopURB_TruckStop_CNH (Capture and Hold)CNH file contains strings: m_arrAlienSets | m_nFirstAlienEnteredRemoteEvent | Wave system eventsIf are these files opened with UE Explorer, there are no classes inside. Here are some pictures with debug info from XCOM HQ Assault. AIDebugWaveSystem truehttp://i.imgur.com/eyqxlOl.jpg Two events before the end. AIDebugWaveSystemContentRequests truehttp://i.imgur.com/ApirIpH.jpg The last wave. Notice note about XComWaveSystem deactivated. AIDebugWaveSystemContentRequests truehttp://i.imgur.com/NjR8HFb.jpg And Exalt's debug.http://i.imgur.com/mc09yfB.jpg And here is some logged output from HQ assault mission: XCom_Content: Alien Content Requested - # current requests: 11 XCom_Content: Alien: ePawnType_Mechtoid XCom_Content: RequestAlienContentForPawnType TRACE: Script call stack: (XGAISpawnMethod_DropIn_13) XGAISpawnMethod::Init (XGAISpawnMethod_DropIn_13) XGAISpawnMethod::InitParams (XGAISpawnMethod_DropIn_13) XGAISpawnMethod_DropIn::InitDropIn (XComWaveSystem_1) XComWaveSystem::CreateSpawnMethod (XComWaveSystem_1) XComWaveSystem::SpawnGroup (XComWaveSystem_1) XComWaveSystem::SpawnWave (XComWaveSystem_1) XComWaveSystem::UpdateWaveSpawning (XComWaveSystem_1) XComWaveSystem::OnEndTurn (XGOvermind_0) XGOvermind::UpdateWaves (XGOvermind_0) XGOvermind::EndTurn (XGAIPlayerOvermindHandler_0) XGAIPlayerOvermindHandler::EndTurn (XGAIPlayer_0) XGAIPlayer::ExecutingAI XCom_Content: Large: eItem_MechtoidPlasmaCannon XCom_Content: Calling CacheAlienContentAsync: # current requests: 11 XCom_Content: CacheContentAsync: Starting XCom_Content: Loading GameUnit_XComMechtoid for ePawnType_Mechtoid XCom_Content: Loading package GameUnit_XComMechtoid_SF (async) XCom_Content: Loading Weapon_MechtoidPlasmaCannon for eItem_MechtoidPlasmaCannon XCom_Content: Loading package Weapon_MechtoidPlasmaCannon_SF (async) XCom_Content: CacheContentAsync: Requested 2 Archetypes XCom_Content: Alien Content Requested - # current requests: 13 XCom_Content: LoadContentArchetype: Async load of ePawnType_Sectoid complete XCom_Content: LoadContentArchetype: Async load of eItem_SectoidPlasmaPistol complete XCom_Content: LoadContentArchetype: Async load of ePerk_MindMerge complete XCom_Content: LoadContentArchetype: Async load of ePawnType_Mechtoid complete XCom_Content: LoadContentArchetype: Async load of eItem_MechtoidPlasmaCannon complete XCom_Content: Loading package ..\..\XComGame\CookedPCConsole\Sectoid1_Bank2_SF.upk (0 remaining for ..\..\XComGame\CookedPCConsole\Sectoid1_Bank2_SF.upk) ScriptWarning: Accessed None 'kTriggerEvent' XComWaveSystem EWI_HQAssault_Stream.TheWorld:PersistentLevel.XComWaveSystem_1 Edited December 3, 2013 by Drakous79 Link to comment Share on other sites More sharing options...
wghost81 Posted December 3, 2013 Author Share Posted December 3, 2013 I'm almost done with Larger Pods and after some little tweaking I will release it. EXALT will be buffed too: http://static2.nexusmods.com/15/mods/151/images/404-2-1386052582.jpg EXALT will have 4+ (4-6) pods with heavy+medic+(3-4)operatives. It is theoretically possible to add more heavies (main alien) or medics (supporting alien), but practically there is no space inside the function. I could free more space by getting rid of alien leaders compatibility code and early Mutons LPR, but I'm not sure I want to do this right now. I think, we have to test it in-game first. Link to comment Share on other sites More sharing options...
wghost81 Posted December 4, 2013 Author Share Posted December 4, 2013 Added a new mod to turn off disabling shot effect for relays: http://www.nexusmods.com/xcom/mods/428 Link to comment Share on other sites More sharing options...
wghost81 Posted December 16, 2013 Author Share Posted December 16, 2013 (edited) Returning to modding EXALT. :smile: This is some EXALT-related code in GetPossibleAliens and GetSupportAlien. if((iMonth < 4) && !bExaltEliteOnly) { AddPossible(25, 100, kSquad.arrPossibleSoldiers); // eChar_ExaltSniper AddPossible(26, 100, kSquad.arrPossibleSoldiers); // eChar_ExaltHeavy AddPossible(27, 100, kSquad.arrPossibleSoldiers); // eChar_ExaltMedic } else { AddPossible(29, 100, kSquad.arrPossibleSoldiers); // eChar_ExaltEliteSniper AddPossible(30, 100, kSquad.arrPossibleSoldiers); // eChar_ExaltEliteHeavy AddPossible(31, 100, kSquad.arrPossibleSoldiers); // eChar_ExaltEliteMedic } case 24: // eChar_ExaltOperative case 25: // eChar_ExaltSniper case 26: // eChar_ExaltHeavy case 27: // eChar_ExaltMedic return 24; // eChar_ExaltOperative break; case 28: // eChar_ExaltEliteOperative if(!bAlt) { return 30; // eChar_ExaltEliteHeavy } else { return 31; // eChar_ExaltEliteMedic } case 29: // eChar_ExaltEliteSniper if(!bAlt) { return 28; // eChar_ExaltEliteOperative } else { return 31; // eChar_ExaltEliteMedic } case 30: // eChar_ExaltEliteHeavy if(!bAlt) { return 28; // eChar_ExaltEliteOperative } else { return 29; // eChar_ExaltEliteSniper } case 31: // eChar_ExaltEliteMedic if(!bAlt) { return 30; // eChar_ExaltEliteHeavy } else { return 29; // eChar_ExaltEliteSniper } break; First thing: all types have equal probabilities, elites replace regular EXALT since Month 4. Second: only elites have 3 different types of units in pod, regular EXALT have operatives as both supporting "aliens". I want to remove Exalt Medic (regular and elite) from list of possible aliens and add it as second support, so EXALT pods will always look like: Heavy + Medic + Operative or Sniper + Medic + Operative. Any thoughts on improvement of EXALT pod composition? UPD: I see now, I'll loose interesting Medic + Heavy + Sniper combo if I'll remove Medics. In this case, I will leave Medics in possible aliens list and just add switches to regular EXALT, which will result in Heavy + Medic + Operative, Sniper + Medic + Operative, Medic + Heavy + Sniper for both regular and elite EXALT pods. Edited December 16, 2013 by wghost81 Link to comment Share on other sites More sharing options...
wghost81 Posted January 17, 2014 Author Share Posted January 17, 2014 Returning to modding EXALT. :smile: Exalt Squad Composition v.1.0. Allows for all three different types of EXALT units in one pod for both regular and elite EXALT. Next thing on my TODO list is to give them lasers from the very beginning and then upgrade elites with plasmas. But if player is allowed to capture powerful weapons early in the game. it won't be fun. So I will make EXALT weapons explode into fragments too. This will mean more fragments, but I hope EXALT will be more of a challenge. And another thing to do is lower suicidal "capture the flag" tendencies. I want to make EXALT prioritize killing XCOM soldiers on the battlefield, not dash for transmitter and die. Link to comment Share on other sites More sharing options...
Hobbes77 Posted January 17, 2014 Share Posted January 17, 2014 I've just read the entire thread since I'm looking to document the number and type of EXALT units during missions to add to the info about the aliens already present http://ufopaedia.org/index.php?title=Alien_Deployment_(EU2012)#Mission_Deployment. As mentioned above, the code in XGStrategyAI, DetermineCovertOpsSquad doesn't correspond to actual missions. default: iNumPods = 4; iNumAliens = 12; // End:0x9f Break; break; } // End:0xdf Loop:False if(Game().GetDifficulty() == 3) { iNumPods += 1; iNumAliens += 3; This would seem to set the number of EXALT units during Covert Ops in 12, divided into 4 pods, with 3 additional units added if playing on Impossible. The issue is that, when playing on Impossible I'm only seeing 12 EXALT units during Covert Extraction missions and 16 units during Data Recovery. With regular Elites it does seem that their regular pods are built around 1 Medic, Sniper or Heavy + 2 Operatives. But with Elites I'm pretty sure I've seen 2 Snipers or Heavies appearing as DynamicAliens type. Anyway, for a few suggestions, I'd say to beef up the Operatives since they have no abilities whatsoever. For instance, add Tactical Sense and Aggression to regular Operatives, and with Elites give them also Lightning Reflexes (which would go rather well since my tactics against EXALT use a lot of Overwatch shots) or even Resilience. Link to comment Share on other sites More sharing options...
wghost81 Posted January 17, 2014 Author Share Posted January 17, 2014 (edited) Number of EXALT depends on current month: switch(GetMonth()) { // End:0x18 case 0: // End:0x37 case 1: iNumPods = 2; iNumAliens = 6; // End:0x9F break; // End:0x3C case 2: // End:0x5C case 3: iNumPods = 3; iNumAliens = 9; // End:0x9F break; // End:0x61 case 4: // End:0x81 case 5: iNumPods = 4; iNumAliens = 12; // End:0x9F break; // End:0xFFFF default: iNumPods = 4; iNumAliens = 12; // End:0x9F break; } // End:0xDF if(Game().GetDifficulty() == 3) { iNumPods += 1; iNumAliens += 3; } Months 0-5 are set specifically and default used for all others (6+). Note that GetMonth() takes Marathon setting into account and halves the return value, resulting in slower progression. Edited January 17, 2014 by wghost81 Link to comment Share on other sites More sharing options...
Recommended Posts