From dcb499777f12c1eb1b77e8551654014b3c704aa5 Mon Sep 17 00:00:00 2001 From: furudee Date: Tue, 12 Nov 2024 17:41:29 +0200 Subject: [PATCH] Issue X2CommunityCore#1406 - Add new event trigger after Mission Intro kismet has completed --- .../XComGame/Classes/X2TacticalGameRuleset.uc | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/X2WOTCCommunityHighlander/Src/XComGame/Classes/X2TacticalGameRuleset.uc b/X2WOTCCommunityHighlander/Src/XComGame/Classes/X2TacticalGameRuleset.uc index b0e25ee32..b63059a6f 100644 --- a/X2WOTCCommunityHighlander/Src/XComGame/Classes/X2TacticalGameRuleset.uc +++ b/X2WOTCCommunityHighlander/Src/XComGame/Classes/X2TacticalGameRuleset.uc @@ -3893,6 +3893,24 @@ Begin: sleep(0.0); } + // Start Issue #1406 + /// HL-Docs: feature:PostMissionIntroKismet; issue:1406; tags:tactical + /// This event triggers after mission intro kismet has been completed. + /// For example, a mission such as Supply Extraction spawns their objective crates + /// when `'SeqEvent_OnTacticalMissionStartBlocking'` has been triggered, + /// which happens after `'OnBeginTacticalPlay'` event has already been triggered. + /// As such, you don't have a handle for anything the mission kismet causes before your first XCOM turn. + /// This event can be considered a later alternative to `'OnBeginTacticalPlay'` event. + /// + /// ```event + /// EventID: PostMissionIntroKismet, + /// EventData: none, + /// EventSource: none, + /// NewGameState: none + /// ``` + `XEVENTMGR.TriggerEvent('PostMissionIntroKismet',,,); + // End Issue #1406 + // set up start of match special conditions, including squad concealment ApplyStartOfMatchConditions(); @@ -4240,11 +4258,17 @@ Begin: // kick off the mission intro kismet, and wait for it to complete all latent actions WorldInfo.TriggerGlobalEventClass(class'SeqEvent_OnTacticalMissionStartBlocking', WorldInfo); + while (WaitingForVisualizer()) { sleep(0.0); } + // Start Issue #1406 + /// HL-Docs: ref:PostMissionIntroKismet + `XEVENTMGR.TriggerEvent('PostMissionIntroKismet',,,); + // End Issue #1406 + // kick off the gameplay start kismet, do not wait for it to complete latent actions WorldInfo.TriggerGlobalEventClass(class'SeqEvent_OnTacticalMissionStartNonBlocking', WorldInfo);