OverrideWeaponScale
Tracking Issue: #921
The OverrideWeaponScale
event allows mods to rescale weapons for unit pawns.
This event is triggered from two places:
1) XComUnitPawn::EquipWeapon()
is used by items in weapon slots, as well as for utility items
that use the Display Multi Slot Items functionality.
2) XComUnitPawn::AttachItem()
is used for utility items by default. In this case,
the ItemState
component of the Tuple will be none
.
OverrideWeaponScale event
Param | Value |
---|---|
EventID | OverrideWeaponScale |
EventData | XComLWTuple |
EventSource | XComUnitPawn |
NewGameState | none |
Tuple contents
Index | Name | Type | Direction |
---|---|---|---|
0 | bOverride | bool | out |
1 | fOverrideWeaponScale | float | inout |
2 | ItemState | XComGameState_Item | in |
Listener template
static function EventListenerReturn OnOverrideWeaponScale(Object EventData, Object EventSource, XComGameState GameState, Name EventID, Object CallbackObject)
{
local XComUnitPawn UnitPawn;
local XComLWTuple Tuple;
local bool bOverride;
local float fOverrideWeaponScale;
local XComGameState_Item ItemState;
UnitPawn = XComUnitPawn(EventSource);
Tuple = XComLWTuple(EventData);
fOverrideWeaponScale = Tuple.Data[1].f;
ItemState = XComGameState_Item(Tuple.Data[2].o);
// Your code here
Tuple.Data[0].b = bOverride;
Tuple.Data[1].f = fOverrideWeaponScale;
return ELR_NoInterrupt;
}