Skip to content

#1379 - Add OverrideCovertActionRewardString event - #1611

Open
boundir wants to merge 1 commit into
X2CommunityCore:masterfrom
boundir:feature/1379-override-covert-action-reward-string
Open

#1379 - Add OverrideCovertActionRewardString event#1611
boundir wants to merge 1 commit into
X2CommunityCore:masterfrom
boundir:feature/1379-override-covert-action-reward-string

Conversation

@boundir

@boundir boundir commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

We trigger an event when RewardState.GetRewardString() is called, inside UICovertActionStaffSlot::UpdateData:

/// EventID: OverrideCovertActionRewardString,
/// EventData: [
///     in XComGameState_Reward RewardState,
///     in XComGameState_StaffSlot StaffSlotState,
///     in bool bPreview,
///     inout string RewardString
/// ],
/// EventSource: UICovertActionStaffSlot,
/// NewGameState: none

RewardState: the reward granted by filling this slot.
StaffSlotState: the slot the reward belongs to.
bPreview: true for the preview string (GetRewardPreviewString) and false for the completion string (GetRewardString)
RewardString: the vanilla string. Setting it to "" suppresses the slot's reward line.

@github-actions

Copy link
Copy Markdown
Contributor

Pull request modifies event listener templates

Difference (click to expand)
diff --git a/target/CHL_Event_Compiletest.uc b/target/CHL_Event_Compiletest.uc
index ece5a3b..ebcdcee 100644
--- a/target/CHL_Event_Compiletest.uc
+++ b/target/CHL_Event_Compiletest.uc
@@ -511,6 +511,30 @@ static function EventListenerReturn OnOverrideClipSize(Object EventData, Object
 	return ELR_NoInterrupt;
 }
 
+static function EventListenerReturn OnOverrideCovertActionRewardString(Object EventData, Object EventSource, XComGameState GameState, Name EventID, Object CallbackObject)
+{
+	local UICovertActionStaffSlot SlotUI;
+	local XComLWTuple Tuple;
+	local XComGameState_Reward RewardState;
+	local XComGameState_StaffSlot StaffSlotState;
+	local bool bPreview;
+	local string RewardString;
+
+	SlotUI = UICovertActionStaffSlot(EventSource);
+	Tuple = XComLWTuple(EventData);
+
+	RewardState = XComGameState_Reward(Tuple.Data[0].o);
+	StaffSlotState = XComGameState_StaffSlot(Tuple.Data[1].o);
+	bPreview = Tuple.Data[2].b;
+	RewardString = Tuple.Data[3].s;
+
+	// Your code here
+
+	Tuple.Data[3].s = RewardString;
+
+	return ELR_NoInterrupt;
+}
+
 static function EventListenerReturn OnOverrideDamageRemovesReserveActionPoints(Object EventData, Object EventSource, XComGameState GameState, Name EventID, Object CallbackObject)
 {
 	local XComGameState_Unit UnitState;
What? (click to expand)

The Highlander documentation tool generates event listener examples from event specifications.
This comment contains the modifications that would be made to the copy-pasteable event listeners in documentation, for PR authors and reviewers to inspect for correctness, and will automatically be kept up-to-date whenever this PR is updated.

@Tedster59

Copy link
Copy Markdown
Contributor

Is there an issue documenting what this is adding and the use case?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants