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;
}