@@ -99,9 +99,18 @@ function ThemedSpellPilot({ pilot, onEditVehicles, isEditMode, onEdit, onModuleC
9999 const module = vehicle . modules [ moduleIndex ] ;
100100 const frameType = getModuleTypeForLimits ( module ) ;
101101 const frameLimits = getFrameLimits ( vehicle ) ;
102+ const maxEnabledModules = vehicle . maxEnabledModules || ( frameLimits . weapon + frameLimits . armor ) ;
102103
103- // Custom modules are always allowed
104- if ( frameType === "custom" ) return true ;
104+ // Calculate total equipped modules
105+ const equippedWeapons = getEquippedCount ( vehicle , "weapon" ) ;
106+ const equippedArmor = getEquippedCount ( vehicle , "armor" ) ;
107+ const equippedSupport = getEquippedCount ( vehicle , "support" ) ;
108+ const totalEquippedModules = equippedWeapons + equippedArmor + equippedSupport ;
109+
110+ // If we are trying to equip a new module and we are at or over the max, we can't.
111+ if ( ! module . equipped && totalEquippedModules >= maxEnabledModules ) {
112+ return false ;
113+ }
105114
106115 // Check if unlimited slots for this type
107116 if ( frameLimits [ frameType ] === - 1 ) return true ; // Unlimited
@@ -344,7 +353,16 @@ function ThemedSpellPilot({ pilot, onEditVehicles, isEditMode, onEdit, onModuleC
344353 const passengers = frame . passengers ;
345354 const distance = frame . distance ;
346355
347- return `${ t ( vehicle . frame || "pilot_frame_exoskeleton" ) } | ${ t ( "pilot_passengers" ) } : ${ getPassengersText ( passengers ) } | ${ t ( "pilot_distance" ) } : ${ getDistanceText ( distance ) } ` ;
356+ // Calculate total equipped modules
357+ const equippedWeapons = getEquippedCount ( vehicle , "weapon" ) ;
358+ const equippedArmor = getEquippedCount ( vehicle , "armor" ) ;
359+ const equippedSupport = getEquippedCount ( vehicle , "support" ) ;
360+ const total = equippedWeapons + equippedArmor + equippedSupport ;
361+
362+ // Use maxEnabledModules from vehicle data, or calculate it if not present
363+ const maxDisplay = vehicle . maxEnabledModules || ( frame . limits . weapon + frame . limits . armor ) ;
364+
365+ return `${ t ( vehicle . frame || "pilot_frame_exoskeleton" ) } | ${ t ( "pilot_passengers" ) } : ${ getPassengersText ( passengers ) } | ${ t ( "pilot_distance" ) } : ${ getDistanceText ( distance ) } | ${ t ( "pilot_max_enabled_modules" ) } : ${ total } /${ maxDisplay } ` ;
348366 } ) ( ) }
349367 </ Typography >
350368 </ div >
0 commit comments