Class SRMARADHandler
java.lang.Object
megamek.common.weapons.handlers.WeaponHandler
megamek.common.weapons.handlers.AmmoWeaponHandler
megamek.common.weapons.handlers.MissileWeaponHandler
megamek.common.weapons.handlers.srm.SRMHandler
megamek.common.weapons.handlers.srm.SRMARADHandler
- All Implemented Interfaces:
Serializable,AttackHandler
Weapon handler for ARAD (Anti-Radiation) SRM missiles. ARAD missiles receive cluster bonuses against targets with
active electronics, and penalties against targets without electronics. ECM can block the bonus unless the target is
Narc-tagged (Narc overrides ECM).
Cluster Modifiers:
- +1 against targets with qualifying electronics (unless blocked by ECM)
- 0 if target has electronics but ECM blocks (and no Narc override)
- -2 against targets without electronics (minimum 2 hits enforced by engine)
Rules Reference: Tactical Operations: Advanced Units & Equipment, p.180 Quote: "ARAD missiles ignore hostile ECM effects when targeting a unit tagged by a friendly Narc pod. However, the ARAD missile does not receive any further to-hit bonus from the pod."
Forum Ruling (Narc/ECM interaction): BT Forums
- Since:
- 2025-01-17
- See Also:
-
Field Summary
Fields inherited from class megamek.common.weapons.handlers.MissileWeaponHandler
multiAMSFields inherited from class megamek.common.weapons.handlers.AmmoWeaponHandler
ammoFields inherited from class megamek.common.weapons.handlers.WeaponHandler
advancedPD, ammoType, amsBayEngaged, amsBayEngagedCap, amsBayEngagedMissile, amsEngaged, announcedEntityFiring, apdsEngaged, attackingEntity, attackValue, bDirect, bGlancing, bLowProfileGlancing, bMissed, bSalvo, calcDmgPerHitReport, CapMissileAMSMod, CapMissileArmor, CapMissileMissed, CounterAV, damageType, firstHit, game, gameManager, generalDamageType, hit, insertedAttacks, isJammed, isStrafing, isStrafingFirstShot, missed, nDamPerHit, nRange, nSalvoBonus, nukeS2S, numRapidFireHits, numWeapons, numWeaponsHit, originalAV, parentBayHandler, pdBayEngaged, pdBayEngagedCap, pdBayEngagedMissile, pdOverheated, roll, secondShot, sSalvoType, subjectId, target, throughFront, toHit, typeName, underWater, weapon, weaponAttackAction, weaponEntity, weaponType -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected intOverride calcHits() to add ARAD-specific report messages for cluster modifiers.intCalculate ARAD cluster modifier based on target electronics and ECM status.Methods inherited from class megamek.common.weapons.handlers.srm.SRMHandler
calcDamagePerHit, calculateNumClusterMethods inherited from class megamek.common.weapons.handlers.MissileWeaponHandler
calcAttackValue, getAeroSanityAMSHitsMod, getAMSHitsMod, handle, handleSpecialMiss, isAdvancedAMS, isNemesisConfusable, isThunderBolt, setAMSBayReportingFlag, setPDBayReportingFlag, usesClusterTableMethods inherited from class megamek.common.weapons.handlers.AmmoWeaponHandler
checkAmmo, doAmmoFeedProblemCheck, doChecks, explodeRoundInBarrel, getNumberWeapons, useAmmoMethods inherited from class megamek.common.weapons.handlers.WeaponHandler
absorbBuildingDamage, addGlancingBlowReports, addHeat, allShotsHit, announcedEntityFiring, applyGlancingBlowModifier, applyGlancingBlowModifier, calcAeroDamage, calcCapMissileAMSMod, calcCounterAV, calculateNumClusterAero, canEngageCapitalMissile, cares, checkLI, checkPDConditions, checkTerrain, getAttacker, getAttackerId, getBracketingMultiplier, getCapMisMod, getCapMissileAMSMod, getClusterModifiers, getCounterAV, getFireTNRoll, getLargeCraftHeat, getParentBayHandler, getTotalGlancingBlowFactor, getWeaponAttackAction, handleArtilleryDriftMarker, handleBuildingDamage, handleClearDamage, handleClearDamage, handleEntityDamage, handleIgnitionDamage, handlePartialCoverHit, initHit, insertAttacks, isLowProfileGlancingBlow, isStrafing, isStrafingFirstShot, reportMiss, reportMiss, restore, setAnnouncedEntityFiring, setDone, setGlancingBlowFlags, setParentBayHandler, setStrafing, setStrafingFirstShot, specialResolution, unitGainsPartialCoverFromWater, unitStickingOutOfBuildingMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface megamek.common.weapons.handlers.AttackHandler
getBuildingDamageAdjustment, producesReportThisPhase
-
Constructor Details
-
SRMARADHandler
public SRMARADHandler(ToHitData t, WeaponAttackAction w, Game g, TWGameManager m) throws EntityLoadingException - Throws:
EntityLoadingException
-
-
Method Details
-
getSalvoBonus
public int getSalvoBonus()Calculate ARAD cluster modifier based on target electronics and ECM status.Logic:
- Check if target is an Entity (only Entities have electronics)
- Check if target has qualifying electronics (via ARADEquipmentDetector)
- If YES electronics:
- Check if Narc-tagged → +1 (Narc overrides ECM)
- Check if ECM-affected → 0 (ECM blocks bonus)
- Otherwise → +1 (standard bonus)
- If NO electronics → -2 (penalty, minimum 2 enforced automatically)
- Overrides:
getSalvoBonusin classWeaponHandler- Returns:
- Cluster modifier for ARAD missiles
-
calcHits
Override calcHits() to add ARAD-specific report messages for cluster modifiers. This method adds visible feedback to players about ARAD cluster modifier state: - Report 3363: ECM blocked bonus - Report 3364: Narc override (bonus despite ECM) - Report 3368: No electronics penalty - Report 3369: Normal bonus (electronics detected)- Overrides:
calcHitsin classMissileWeaponHandler- Parameters:
vPhaseReport- Vector to collect report messages- Returns:
- Number of missiles that hit
-