Posted November 28, 2021
Stuff about PointDefence in particular and Flyers overall in MOO2.
While Flyers (Missiles, Torpedoes, Fighters) are rather important part of game, published info about them is still quite scarce, and, even worse, is often misleading or outright wrong. Patch 1.50 Manual already contains info about Missile Evasion, Spherical Weapons and Lightning Field (read about them there too, if somewhy not yet), but only briefly mention about possiblity to shot Flyers down using "regular and Pd mount beam weapons, Interceptors, Anti-Missile Rockets". While they are supposedly indeed more intuitive than Sphericals, in reality, related mechanics arent so simple. As we have only Beams, Fighters and Anti-Missile Rockets to cover here, Beam mechanics will be the main theme, so Notes on Beam Weapon Mechanics (NBWM) from aforementioned Manual is a required pre-requisite to read prior. This stuff could be seen as update to NBWM (even with some small errata, even we, patch devs, did mistakes and publish misleading info sometimes too).
Part about Beams and how they can shoot Flyers down, and how to chose a better one.
"Missiles can be shot down by regular and Pd mount beam weapons"
Flyers (except Torpedoes) can be shot down by regular beams, and that pretty well described in NBWM, except not precisely explaining how Beam Defence (BD) of a Flyer is exactly calculated (unlike ships, players cannot just scan flyer to check BD). Also not well explained how damage is actually dealt to Flyer stack if dealt, and how Beam Mods affecting it. Those are easy part. But the Game also offer 5 beams with Point Defence modification (always talking Classix ofc), they are unique in a sence they can automatically fire on incoming Flyer, and having other obsure features, not clearly explained in NBWN, making their comparison difficult.
First some easy stuff.
1. Calculation of BD of Flyer.
As mentioned in NBWM, we need to know BD of target to calculate Chance-to-Hit (CtH) and other stuff. Luckily BD of Flyer is pretty simple stuff:
Missile BD = 5*SpeedBonus{BaseSpeed of Missile{10 for any missile} + 2*FTLlevel{0 for NoDrive; 1 for NuclearDrive; 2 for FusionDrive; 3 for IonDrive; 4 for AntimatterDrive; 5 for HyperDrive; 6 for InterphasedDrive} + FastBonus{+4 if Fast}} + MissileBonus{-10 for NuclearMissile; +15 for MerculiteMissile; +40 for PulsonMissile; +70 for ZeonMissile}.
Fighter BD = 5*SpeedBonus{BaseSpeed of Fighter{4 for AssaultShuttles; 6 for Bombers; 6 for HeavyFighters; 8 for Interceptors} + 2*FTLlevel{0 for NoDrive; 1 for NuclearDrive; 2 for FusionDrive; 3 for IonDrive; 4 for AntimatterDrive; 5 for HyperDrive; 6 for InterphasedDrive} + TransdimentionalBonus{+4 if TransD}} + FighterPilotBonus + RacialDefenciveBonus + [in 1.50 only]HelmsmanBonus.
Racial Defence trait affect only Fighters, while provide no penalty or bonus to Missiles. Also note, that FTLlevel bonus not depends on actual speed bonus of drive provided to ships on Galaxy map.
Torpedoes also have speed of 20 for AntimatterTorpedo and 24 for PlasmaTorpedo, aswell as instahit speed for ProtonTorpedo and DragonBreath, but as no stuff in this stuff can destroy or even target them, we leave them here.
-
2. Calculation of Chance-To-Hit.
Knowing BD of target its already possible to calculate stuff for Regular Beams using NBWM (keep in mind that speed of Flyer is always calculated using the best Drive player have, so they could use better one than ship launching them).
Doing the same for PD beams could be misleading: "Beam weapons get additional bonuses based on their mount type (PD +25 BA) and/or mods (Co +25 BA, AF -20 BA)." Its could be overlooked (while Manual is not actually misleading about it, it is not directly stressed there) that PD bonus is calculated unique way, leading to different outcomes sometimes, and cannot just be added to BA (BeamAttack) like other bonuses (note: 1.50 patch parameter simplified_beam_formula also modify PD bonus to act like a flat BA bonus, like CO, contrary to explanations of Classix mechanic below; refer Manual for details). Important difference occurs only in 3b of CtH formula, but that formula is pretty important, as it directly affect DamageDistribution, and could lead to overestimating of expected damage dealt.
[3a] BA+CO-AF-BD + random(100) roll >= hit_threshold
[3b] hit_threshold = min(40 + range_penalty * - PD_bonus; 95)
* doubled for inherent range penalty mod
For CtH formula 3a PD bonus indeed work just like CO analogue:
Example 1
a) Ship with BA (sum of all non-CO non-PD factors) of 115 fire a Regular CO beam at range 0 at Flyer with BD 100:
115{BA} - 100{BD} + 25{CO} + Roll[1-100] >= 40 + 0, thus ensuring hit no matter roll is.
b) Ship with BA (sum of all non-CO non-PD factors) of 115 fire a PD beam at range 0 at Flyer with BD 100:
115{BA} - 100{BD} + Roll[1-100] >= 40 - 25{PD}, thus ensuring hit no matter roll is.
Cases a) & b) have no difference in PD or CO effect, but guaranteed hit is end of stuff only for beams with Min=Max damages, like MassDriver. For them PD bonus is effectively just a free built-in CO, and its a big deal. But in formula about actual damage affected by accuracy of hit results used by all other beams, it will differ from cases explained in NBWM.
Thus leading to a harder stuff.
3. Calculation of ActualDamage.
ActualDamage = min_dmg + (max_dmg-min_dmg+1) * A / B
A = roll_plus_attack - hit_threshold
B = 100 - hit_threshold
roll_plus_attack = min(random(100) roll + BA+CO-AF-BD; 100)
hit_threshold = min(40 + range_penalty * - PD_bonus; 95)
* doubled for inherent range penalty mod
As PD bonus modify hit_threshold instead of roll_plus_attack, like all other Mod bonuses, its presence skew damage potential to lower values instead (while its increase CtH just like other bonuses as shown above). RangePenalties, instead, skew it to higher values.
Well, if i could read i'd be very upset. Will keep it this horrible BS this way and edit other mentions: of course mentioned stuff is not exist in reality. Looks like what i tried (as example 2 is about it) to write a correct stuff about: As PD bonus modify hit_threshold instead of roll_plus_attack, like all other Mod bonuses, its presence skew damage potential to lower values compared to an equal bonus value directly added to BA, but ended with the nonsense instead, sorry. Of course PD bonus skew damage potential to higher values (just effect is less, in comparison to "regular BA Mod bonus"), and RangePenalties skew damage potential to lower values instead.
Example 2
a) Ship with BA (sum of all non-CO non-PD factors) of 175 fire a Regular IonPulseCannon CO beam at range 0 at Flyer with BD 100. For simplicity that IonPulseCannon is actually mindmg3-maxdmg10 to match PD Phasor instead of actual mindmg2-maxdmg10, but this also will show that IPC's special inherent flag of "Damage Internal Systems" is not important for shooting at Flyers, and work just like a normal beam (unlike cases of shooting it at Monsters, Antarans or Planets).
According to 3a hit is ensured no matter Roll is, so we will use worst case of Roll=1, and damage distribution affected by accuracy of it will be:
roll_plus_attack = (175{BA} - 100{BD} + 25{CO} + 1{Roll}) = 101, capped to 100;
hit_threshold = 40 + 0 = 40;
ActualDamage = 3 + (10 - 3 + 1)*(100{roll_plus_attack}- 40{hit_threshold})/(100 - 40{hit_threshold}) = 3 + 8*60/60 = 11, capped to maxdmg of 10.
b) Ship with BA (sum of all non-CO non-PD factors) of 175 fire a Phasor PD beam at range 0 at Flyer with BD 100.
According to 3a hit is ensured no matter Roll is, so we will use worst case of Roll=1, and damage distribution affected by accuracy of it will be:
roll_plus_attack = (175{BA} - 100{BD} + 1{Roll}) = 76;
hit_threshold = 40 + 0 - 25{PD} = 15;
ActualDamage = 3 + (10 - 3 + 1)*(76{roll_plus_attack}- 15{hit_threshold})/(100 - 15{hit_threshold}) = 3 + 8*61/85 = 8, as no rounding occurs.
Thus, while in cases a) & b) sum of BA-BD calculated in "add and subtract" way is 100, its possible to overstimate actual damage by a whole 20%. While Regular beam would already always do maxdmg with BA-BD>=100, to reach the same for PD beam BA+PD-BD-PD>=100 is required (so PD is not included in other BA bonuses sum). Luckily, damage affected by accuracy formula is more friendly to weapons with smaller difference between mindmg-maxdmg.
c) Ship with BA (sum of all non-CO non-PD factors) of 175 fire a Fusion PD beam at range 0 at Flyer with BD 100.
According to 3a hit is ensured no matter Roll is, so we will use worst case of Roll=1, and damage distribution affected by accuracy of it will be:
roll_plus_attack = (175{BA} - 100{BD} + 1{Roll}) = 76;
hit_threshold = 40 + 0 - 25{PD} = 15;
ActualDamage = 1 + (3 - 1 + 1)*(76{roll_plus_attack}- 15{hit_threshold})/(100 - 15{hit_threshold}) = 1 + 3*61/85 = 3, that is maxgmg, reached just "expected" "add and subtract" way, unlike case b).
d) Ship with BA (sum of all non-CO non-PD factors including AF) of 160 fire a Laser PD beam at range 0 at Flyer with BD 100.
According to 3a hit is ensured no matter Roll is, so we will use worst case of Roll=1, and damage distribution affected by accuracy of it will be:
roll_plus_attack = (160{BA} - 100{BD} + 1{Roll}) = 61;
hit_threshold = 40 + 0 - 25{PD} = 15;
ActualDamage = 1 + (2 - 1 + 1)*(61{roll_plus_attack}- 15{hit_threshold})/(100 - 15{hit_threshold}) = 1 + 2*45/85 = 2, that is maxgmg, reached even with "expected" "add and subtract" sum of 85, below 100.
While Flyers (Missiles, Torpedoes, Fighters) are rather important part of game, published info about them is still quite scarce, and, even worse, is often misleading or outright wrong. Patch 1.50 Manual already contains info about Missile Evasion, Spherical Weapons and Lightning Field (read about them there too, if somewhy not yet), but only briefly mention about possiblity to shot Flyers down using "regular and Pd mount beam weapons, Interceptors, Anti-Missile Rockets". While they are supposedly indeed more intuitive than Sphericals, in reality, related mechanics arent so simple. As we have only Beams, Fighters and Anti-Missile Rockets to cover here, Beam mechanics will be the main theme, so Notes on Beam Weapon Mechanics (NBWM) from aforementioned Manual is a required pre-requisite to read prior. This stuff could be seen as update to NBWM (even with some small errata, even we, patch devs, did mistakes and publish misleading info sometimes too).
Part about Beams and how they can shoot Flyers down, and how to chose a better one.
"Missiles can be shot down by regular and Pd mount beam weapons"
Flyers (except Torpedoes) can be shot down by regular beams, and that pretty well described in NBWM, except not precisely explaining how Beam Defence (BD) of a Flyer is exactly calculated (unlike ships, players cannot just scan flyer to check BD). Also not well explained how damage is actually dealt to Flyer stack if dealt, and how Beam Mods affecting it. Those are easy part. But the Game also offer 5 beams with Point Defence modification (always talking Classix ofc), they are unique in a sence they can automatically fire on incoming Flyer, and having other obsure features, not clearly explained in NBWN, making their comparison difficult.
First some easy stuff.
1. Calculation of BD of Flyer.
As mentioned in NBWM, we need to know BD of target to calculate Chance-to-Hit (CtH) and other stuff. Luckily BD of Flyer is pretty simple stuff:
Missile BD = 5*SpeedBonus{BaseSpeed of Missile{10 for any missile} + 2*FTLlevel{0 for NoDrive; 1 for NuclearDrive; 2 for FusionDrive; 3 for IonDrive; 4 for AntimatterDrive; 5 for HyperDrive; 6 for InterphasedDrive} + FastBonus{+4 if Fast}} + MissileBonus{-10 for NuclearMissile; +15 for MerculiteMissile; +40 for PulsonMissile; +70 for ZeonMissile}.
Fighter BD = 5*SpeedBonus{BaseSpeed of Fighter{4 for AssaultShuttles; 6 for Bombers; 6 for HeavyFighters; 8 for Interceptors} + 2*FTLlevel{0 for NoDrive; 1 for NuclearDrive; 2 for FusionDrive; 3 for IonDrive; 4 for AntimatterDrive; 5 for HyperDrive; 6 for InterphasedDrive} + TransdimentionalBonus{+4 if TransD}} + FighterPilotBonus + RacialDefenciveBonus + [in 1.50 only]HelmsmanBonus.
Racial Defence trait affect only Fighters, while provide no penalty or bonus to Missiles. Also note, that FTLlevel bonus not depends on actual speed bonus of drive provided to ships on Galaxy map.
Torpedoes also have speed of 20 for AntimatterTorpedo and 24 for PlasmaTorpedo, aswell as instahit speed for ProtonTorpedo and DragonBreath, but as no stuff in this stuff can destroy or even target them, we leave them here.
-
2. Calculation of Chance-To-Hit.
Knowing BD of target its already possible to calculate stuff for Regular Beams using NBWM (keep in mind that speed of Flyer is always calculated using the best Drive player have, so they could use better one than ship launching them).
Doing the same for PD beams could be misleading: "Beam weapons get additional bonuses based on their mount type (PD +25 BA) and/or mods (Co +25 BA, AF -20 BA)." Its could be overlooked (while Manual is not actually misleading about it, it is not directly stressed there) that PD bonus is calculated unique way, leading to different outcomes sometimes, and cannot just be added to BA (BeamAttack) like other bonuses (note: 1.50 patch parameter simplified_beam_formula also modify PD bonus to act like a flat BA bonus, like CO, contrary to explanations of Classix mechanic below; refer Manual for details). Important difference occurs only in 3b of CtH formula, but that formula is pretty important, as it directly affect DamageDistribution, and could lead to overestimating of expected damage dealt.
[3a] BA+CO-AF-BD + random(100) roll >= hit_threshold
[3b] hit_threshold = min(40 + range_penalty * - PD_bonus; 95)
* doubled for inherent range penalty mod
For CtH formula 3a PD bonus indeed work just like CO analogue:
Example 1
a) Ship with BA (sum of all non-CO non-PD factors) of 115 fire a Regular CO beam at range 0 at Flyer with BD 100:
115{BA} - 100{BD} + 25{CO} + Roll[1-100] >= 40 + 0, thus ensuring hit no matter roll is.
b) Ship with BA (sum of all non-CO non-PD factors) of 115 fire a PD beam at range 0 at Flyer with BD 100:
115{BA} - 100{BD} + Roll[1-100] >= 40 - 25{PD}, thus ensuring hit no matter roll is.
Cases a) & b) have no difference in PD or CO effect, but guaranteed hit is end of stuff only for beams with Min=Max damages, like MassDriver. For them PD bonus is effectively just a free built-in CO, and its a big deal. But in formula about actual damage affected by accuracy of hit results used by all other beams, it will differ from cases explained in NBWM.
Thus leading to a harder stuff.
3. Calculation of ActualDamage.
ActualDamage = min_dmg + (max_dmg-min_dmg+1) * A / B
A = roll_plus_attack - hit_threshold
B = 100 - hit_threshold
roll_plus_attack = min(random(100) roll + BA+CO-AF-BD; 100)
hit_threshold = min(40 + range_penalty * - PD_bonus; 95)
* doubled for inherent range penalty mod
As PD bonus modify hit_threshold instead of roll_plus_attack, like all other Mod bonuses, its presence skew damage potential to lower values instead (while its increase CtH just like other bonuses as shown above). RangePenalties, instead, skew it to higher values.
Well, if i could read i'd be very upset. Will keep it this horrible BS this way and edit other mentions: of course mentioned stuff is not exist in reality. Looks like what i tried (as example 2 is about it) to write a correct stuff about: As PD bonus modify hit_threshold instead of roll_plus_attack, like all other Mod bonuses, its presence skew damage potential to lower values compared to an equal bonus value directly added to BA, but ended with the nonsense instead, sorry. Of course PD bonus skew damage potential to higher values (just effect is less, in comparison to "regular BA Mod bonus"), and RangePenalties skew damage potential to lower values instead.
Example 2
a) Ship with BA (sum of all non-CO non-PD factors) of 175 fire a Regular IonPulseCannon CO beam at range 0 at Flyer with BD 100. For simplicity that IonPulseCannon is actually mindmg3-maxdmg10 to match PD Phasor instead of actual mindmg2-maxdmg10, but this also will show that IPC's special inherent flag of "Damage Internal Systems" is not important for shooting at Flyers, and work just like a normal beam (unlike cases of shooting it at Monsters, Antarans or Planets).
According to 3a hit is ensured no matter Roll is, so we will use worst case of Roll=1, and damage distribution affected by accuracy of it will be:
roll_plus_attack = (175{BA} - 100{BD} + 25{CO} + 1{Roll}) = 101, capped to 100;
hit_threshold = 40 + 0 = 40;
ActualDamage = 3 + (10 - 3 + 1)*(100{roll_plus_attack}- 40{hit_threshold})/(100 - 40{hit_threshold}) = 3 + 8*60/60 = 11, capped to maxdmg of 10.
b) Ship with BA (sum of all non-CO non-PD factors) of 175 fire a Phasor PD beam at range 0 at Flyer with BD 100.
According to 3a hit is ensured no matter Roll is, so we will use worst case of Roll=1, and damage distribution affected by accuracy of it will be:
roll_plus_attack = (175{BA} - 100{BD} + 1{Roll}) = 76;
hit_threshold = 40 + 0 - 25{PD} = 15;
ActualDamage = 3 + (10 - 3 + 1)*(76{roll_plus_attack}- 15{hit_threshold})/(100 - 15{hit_threshold}) = 3 + 8*61/85 = 8, as no rounding occurs.
Thus, while in cases a) & b) sum of BA-BD calculated in "add and subtract" way is 100, its possible to overstimate actual damage by a whole 20%. While Regular beam would already always do maxdmg with BA-BD>=100, to reach the same for PD beam BA+PD-BD-PD>=100 is required (so PD is not included in other BA bonuses sum). Luckily, damage affected by accuracy formula is more friendly to weapons with smaller difference between mindmg-maxdmg.
c) Ship with BA (sum of all non-CO non-PD factors) of 175 fire a Fusion PD beam at range 0 at Flyer with BD 100.
According to 3a hit is ensured no matter Roll is, so we will use worst case of Roll=1, and damage distribution affected by accuracy of it will be:
roll_plus_attack = (175{BA} - 100{BD} + 1{Roll}) = 76;
hit_threshold = 40 + 0 - 25{PD} = 15;
ActualDamage = 1 + (3 - 1 + 1)*(76{roll_plus_attack}- 15{hit_threshold})/(100 - 15{hit_threshold}) = 1 + 3*61/85 = 3, that is maxgmg, reached just "expected" "add and subtract" way, unlike case b).
d) Ship with BA (sum of all non-CO non-PD factors including AF) of 160 fire a Laser PD beam at range 0 at Flyer with BD 100.
According to 3a hit is ensured no matter Roll is, so we will use worst case of Roll=1, and damage distribution affected by accuracy of it will be:
roll_plus_attack = (160{BA} - 100{BD} + 1{Roll}) = 61;
hit_threshold = 40 + 0 - 25{PD} = 15;
ActualDamage = 1 + (2 - 1 + 1)*(61{roll_plus_attack}- 15{hit_threshold})/(100 - 15{hit_threshold}) = 1 + 2*45/85 = 2, that is maxgmg, reached even with "expected" "add and subtract" sum of 85, below 100.
Post edited September 19, 2022 by DarzaR