Class CapitalMissileBearingsOnlyHandler
java.lang.Object
megamek.common.weapons.handlers.WeaponHandler
megamek.common.weapons.handlers.BayWeaponHandler
megamek.common.weapons.handlers.AmmoBayWeaponHandler
megamek.common.weapons.handlers.capitalMissile.CapitalMissileBearingsOnlyHandler
- All Implemented Interfaces:
Serializable,AttackHandler
- Since:
- Sep 24, 2004
- See Also:
-
Field Summary
Fields inherited from class megamek.common.weapons.handlers.BayWeaponHandler
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
ConstructorsModifierConstructorDescriptionprotectedThis constructor can only be used for deserialization. -
Method Summary
Modifier and TypeMethodDescriptionprotected intCalculate the attack value based on range This needs to do additional work for Weapon Bays with ammo.protected intCalculates the to-hit penalty inflicted on a capital missile attack by point defense fire this should return 0 unless this is a capital missile attack (otherwise, reporting and to-hit get screwed up)protected intCalculate the damage per hit.protected booleancanEngageCapitalMissile(WeaponMounted counter) Checks to see if this point defense/AMS bay can engage a capital missile This should return true.booleanDo we care about the specified phase?voidFind the available targets within sensor range.protected intprotected intgetCritMod(AmmoType ammoType) protected voidbooleanSigh, according to the ruling linked below, when weapon bays are fired at ground targets, they should make one to-hit roll, but the AV of each weapon should be applied separately as damage - that needs a special handlerprotected booleanhandleSpecialMiss(Entity entityTarget, boolean bldgDamagedOnMiss, IBuilding bldg, Vector<Report> vPhaseReport) protected intCalculate the starting armor value of a flight of Capital Missiles Used for Aero Sanity.protected voidSets the appropriate AMS Bay reporting flag depending on what type of missile this isprotected voidSets the appropriate PD Bay reporting flag depending on what type of missile this isprotected doubleupdateAVForAmmo(double currentAttackValue, AmmoType ammoType, WeaponType bayWeaponType, int range, int wId) protected voiduseAmmo()Methods inherited from class megamek.common.weapons.handlers.BayWeaponHandler
addHeat, handleAeroSanityMethods inherited from class megamek.common.weapons.handlers.WeaponHandler
absorbBuildingDamage, addGlancingBlowReports, allShotsHit, announcedEntityFiring, applyGlancingBlowModifier, applyGlancingBlowModifier, calcAeroDamage, calcCounterAV, calcHits, calculateNumCluster, calculateNumClusterAero, checkLI, checkPDConditions, checkTerrain, doAmmoFeedProblemCheck, doChecks, getAttacker, getAttackerId, getBracketingMultiplier, getCapMissileAMSMod, getClusterModifiers, getCounterAV, getFireTNRoll, getLargeCraftHeat, getNumberWeapons, getParentBayHandler, getSalvoBonus, getTotalGlancingBlowFactor, getWeaponAttackAction, handleArtilleryDriftMarker, handleBuildingDamage, handleClearDamage, handleClearDamage, handleEntityDamage, handleIgnitionDamage, handlePartialCoverHit, initHit, insertAttacks, isLowProfileGlancingBlow, isStrafing, isStrafingFirstShot, isThunderBolt, reportMiss, reportMiss, restore, setAnnouncedEntityFiring, setDone, setGlancingBlowFlags, setParentBayHandler, setStrafing, setStrafingFirstShot, specialResolution, unitGainsPartialCoverFromWater, unitStickingOutOfBuilding, usesClusterTableMethods 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
-
CapitalMissileBearingsOnlyHandler
protected CapitalMissileBearingsOnlyHandler()This constructor can only be used for deserialization. -
CapitalMissileBearingsOnlyHandler
public CapitalMissileBearingsOnlyHandler(ToHitData t, WeaponAttackAction w, Game g, TWGameManager m) throws EntityLoadingException - Throws:
EntityLoadingException
-
-
Method Details
-
cares
Description copied from class:WeaponHandlerDo we care about the specified phase?- Specified by:
caresin interfaceAttackHandler- Overrides:
caresin classWeaponHandler- Parameters:
phase- The current game phase- Returns:
- True when this handler acts or might act in this phase. The handle() method of this handler is only called when this method returns true for the present phase.
-
getMountedAmmo
protected void getMountedAmmo() -
useAmmo
protected void useAmmo()- Overrides:
useAmmoin classWeaponHandler
-
handle
Description copied from class:BayWeaponHandlerSigh, according to the ruling linked below, when weapon bays are fired at ground targets, they should make one to-hit roll, but the AV of each weapon should be applied separately as damage - that needs a special handler- Specified by:
handlein interfaceAttackHandler- Overrides:
handlein classBayWeaponHandler- Parameters:
phase- The present game phasevPhaseReport- The reports list to add new reports to- Returns:
- a
booleanvalue indicating whether this should be kept or not
-
convertHexTargetToEntityTarget
public void convertHexTargetToEntityTarget()Find the available targets within sensor range. Bearings-only missiles scan within the nose arc and target the closest large craft within the preset range band. If none are found, it targets the closest small craft. -
handleSpecialMiss
protected boolean handleSpecialMiss(Entity entityTarget, boolean bldgDamagedOnMiss, IBuilding bldg, Vector<Report> vPhaseReport) - Overrides:
handleSpecialMissin classWeaponHandler- Returns:
- a
booleanvalue indicating whether this attack needs further calculating, like a missed shot hitting a building, or an AMS only shooting down some missiles.
-
canEngageCapitalMissile
Checks to see if this point defense/AMS bay can engage a capital missile This should return true. Only when handling capital missile attacks can this be false.- Overrides:
canEngageCapitalMissilein classWeaponHandler
-
setAMSBayReportingFlag
protected void setAMSBayReportingFlag()Sets the appropriate AMS Bay reporting flag depending on what type of missile this is- Overrides:
setAMSBayReportingFlagin classWeaponHandler
-
setPDBayReportingFlag
protected void setPDBayReportingFlag()Sets the appropriate PD Bay reporting flag depending on what type of missile this is- Overrides:
setPDBayReportingFlagin classWeaponHandler
-
calcAttackValue
protected int calcAttackValue()Description copied from class:AmmoBayWeaponHandlerCalculate the attack value based on range This needs to do additional work for Weapon Bays with ammo. I need to use the ammo within this function because I may run out of ammo while going through the loop Sine this function is called in the WeaponHandler constructor it should be ok to use the ammo here- Overrides:
calcAttackValuein classAmmoBayWeaponHandler- Returns:
- an
intrepresenting the attack value at that range.
-
calcDamagePerHit
protected int calcDamagePerHit()Calculate the damage per hit.- Overrides:
calcDamagePerHitin classWeaponHandler- Returns:
- an
intrepresenting the damage dealt per hit.
-
calcCapMissileAMSMod
protected int calcCapMissileAMSMod()Description copied from class:WeaponHandlerCalculates the to-hit penalty inflicted on a capital missile attack by point defense fire this should return 0 unless this is a capital missile attack (otherwise, reporting and to-hit get screwed up)- Overrides:
calcCapMissileAMSModin classWeaponHandler
-
initializeCapMissileArmor
protected int initializeCapMissileArmor()Calculate the starting armor value of a flight of Capital Missiles Used for Aero Sanity. This is done in calcAttackValue() otherwise- Overrides:
initializeCapMissileArmorin classBayWeaponHandler
-
getCapMisMod
protected int getCapMisMod()- Overrides:
getCapMisModin classWeaponHandler
-
getCritMod
-
updateAVForAmmo
protected double updateAVForAmmo(double currentAttackValue, AmmoType ammoType, WeaponType bayWeaponType, int range, int wId) - Overrides:
updateAVForAmmoin classAmmoBayWeaponHandler
-