WillRecoveryTimeModifier
Tracking Issue: #650
Tags: events
Allows mods to apply a multiplier to the Will recovery project time, where a
value of 1.0 makes no change, 2.0 doubles the duration, etc. Listeners can
get the recovering unit from the Will project's ProjectFocus
property.
WillRecoveryTimeModifier event
Param | Value |
---|---|
EventID | WillRecoveryTimeModifier |
EventData | XComLWTuple |
EventSource | XComGameState_HeadquartersProjectRecoverWill |
NewGameState | maybe |
Tuple contents
Index | Name | Type | Direction |
---|---|---|---|
0 | TimeMultiplier | float | inout |
1 | bAssumeActive | bool | in |
Listener template
static function EventListenerReturn OnWillRecoveryTimeModifier(Object EventData, Object EventSource, XComGameState GameState, Name EventID, Object CallbackObject)
{
local XComGameState_HeadquartersProjectRecoverWill ProjectState;
local XComLWTuple Tuple;
local float TimeMultiplier;
local bool bAssumeActive;
ProjectState = XComGameState_HeadquartersProjectRecoverWill(EventSource);
Tuple = XComLWTuple(EventData);
TimeMultiplier = Tuple.Data[0].f;
bAssumeActive = Tuple.Data[1].b;
// Your code here
Tuple.Data[0].f = TimeMultiplier;
return ELR_NoInterrupt;
}
The NewGameState
and bAssumeActive
will be whatever caller to CalculateWorkPerHour() passes. Note that
both arguments are optional.
If you want to modify the TimeMultiplier
, you must subscribe with ELD_Immediate
deferral