Equipment Enhancement Component¶
Overview¶
UMIPEquipmentEnhancementComponent is a level-based feature that enhances equipment using materials: it extends UMIPApplyItemOnEquipmentComponent (item selection, fee, interaction, action progress bar) and implements enhancement logic (boost/penalty, PreEnhanceCheck, per-material tag info). It opens the enhance widget on interaction and runs ServerDoThisFeature → DoThisFeature with item and material validation.
Key traits:
- Base: UMIPApplyItemOnEquipmentComponent (→ UMIPBasePlayerLevelBasedFeatureComponent, IMIPCurrencyFeeInterface, IMIPInteractableComponentInterface).
- Overrides: OnUseItem (material application), CheckIfValidMaterial, PreCheckForErrorsForCurrentItem, DoThisFeature, ClientOnAppliedInternal; OnInteractedClient/OnEndInteractedClient for widget open/close.
- Enhancement: Uses UItemPiece_Enhanceable, UItemPiece_EnhanceDefinition, UMIPBaseItemEnhancePenaltyEffect; per-material tag info for success/penalty; broadcast via UMIPEquipmentEnhancementBroadcaster/Receiver.
All paths below are relative to Plugins/ModularInventoryPlus/Source/ModularInventoryPlus/.
Key Classes & Files¶
| Class | File |
|---|---|
UMIPEquipmentEnhancementComponent |
Public/Enhancement/MIPEquipmentEnhancementComponent.h |
UMIPEquipmentEnhancementComponent¶
- Flow: Interaction with NPC/tag → show enhance widget; user selects item (item selection) and materials; fee check; DoThisFeature (server) applies enhancement, updates item piece (MIPItemEnhanceStruct), ClientOnAppliedInternal broadcasts result.
- Integration: UMIPPlayerServerIMC (item), UMIPCurrencyComponent (fee), UMIPClientWidgetsManagerComponent (enhance widget), UMIPItemSelectionComponent (select item to enhance).