Beispiel #1
0
    def GenTLI(self):
        RF = qjm_interps.RF_From_Calibre(self.calibre)
        PTS = qjm_interps.PTS_From_Calibre(self.calibre)
        RIE = self.rie
        # RN
        RN_Range = 1 + (0.001 * self.range)**0.5
        RN_MV = 0.007 * self.muzzle_vel * 0.1 * (self.calibre)**0.5
        if RN_MV > RN_Range:
            RN = RN_MV
        else:
            RN = (RN_Range + RN_MV) / 2
        # derive accuracy from guidance value
        acc = {'Optical': 1,
               'BR': 1.2,
               'IR': 1.8,
               'SARH': 1.5,
               'ARH': 2.0}

        A = acc[self.guidance]
        RL = 1
        SME = 1
        GE = 2 # guided weapons have a bonus effect
        MCE = 1
        AE = 1
        MBE = qjm_interps.MBE(self.barrels)
        self.RF = RF
        MRN = 1 - 0.19 * ((self.min_range - 1000) / 1000)
        VEL = 1 + .001 * (self.muzzle_vel - 400)
        EN = self.enhancement
        print(self.name, RF , PTS , RIE , RN , A , RL , \
            SME , MCE , AE , MBE , MRN , VEL , EN , GE)
        self.TLI = RF * PTS * RIE * RN * A * RL * \
            SME * MCE * AE * MBE * MRN * VEL * EN * GE
Beispiel #2
0
 def GenTLI(self):
     RF = qjm_interps.RF_From_Calibre(self.calibre)
     PTS = qjm_interps.PTS_From_Calibre(self.calibre)
     RIE = self.rie
     # RN
     RN_Range = 1 + (0.001 * self.range)**0.5
     RN_MV = 0.007 * self.muzzle_vel * 0.1 * (self.calibre)**0.5
     if RN_MV > RN_Range:
         RN = RN_MV
     else:
         RN = (RN_Range + RN_MV) / 2
     # derive accuracy from guidance value
     acc = {'SACLOS wire day': 1.6,
            'SACLOS wire day/night': 1.7,
            'SACLOS radio': 1.7,
            'LOSLBR': 1.8,
            'F&F': 1.9}
     A = acc[self.guidance]
     RL = 1
     SME = 1
     GE = 2 # guided weapons have a bonus effect
     MCE = 1
     AE = 1
     MBE = qjm_interps.MBE(self.barrels)
     self.RF = RF / 2 # factor to deal with ASE
     MRN = 1 - 0.19 * ((self.min_range - 100) / 100)
     PEN = 1 + 0.01 * signed_sqrt(self.penetration - 500)
     VEL = 1 + .001 * (self.muzzle_vel - 400)
     EN = self.enhancement
     self.TLI = RF * PTS * RIE * RN * A * RL * \
         SME * MCE * AE * MBE * MRN * PEN * VEL * EN * GE
Beispiel #3
0
 def GenTLI(self):
     calibre_corrected = qjm_interps.Calibre_From_Weight(self.calibre)
     #RF = 2 # caps at  for large calibres
     RF = qjm_interps.RF_From_Calibre(calibre_corrected)
     PTS = qjm_interps.PTS_From_Calibre(calibre_corrected)
     RIE = 100
     RN = 1
     A = self.accuracy
     RL = 1
     SME = 1
     MCE = 1
     AE = 1
     MBE = 1
     self.RF = RF
     self.TLI = RF * PTS * RIE * RN * A * RL * SME * MCE * AE * MBE
Beispiel #4
0
 def GenTLI(self):
     RF = qjm_interps.RF_From_Calibre(self.calibre)
     PTS = qjm_interps.PTS_From_Calibre(self.calibre)
     RIE = self.rie
     # RN
     RN_Range = 1 + (0.001 * self.range)**0.5
     RN_MV = 0.007 * self.muzzle_vel * 0.1 * (self.calibre)**0.5
     if RN_MV > RN_Range:
         RN = RN_MV
     else:
         RN = (RN_Range + RN_MV) / 2
     A = self.accuracy
     RL = 1
     SME = 1
     MCE = 1
     AE = 1
     MBE = qjm_interps.MBE(self.barrels)
     self.RF = RF
     self.TLI = RF * PTS * RIE * RN * A * RL * SME * MCE * AE * MBE
Beispiel #5
0
 def GenTLI(self):
     # RF - if empty use calibre
     if self.rate_of_fire is None:
         RF = qjm_interps.RF_From_Calibre(self.calibre)
     else:
         RF = self.rate_of_fire * self.rf_multiple
     PTS = qjm_interps.PTS_From_Calibre(self.calibre)
     RIE = self.rie
     # RN
     RN_Range = 1 + (0.001 * self.range)**0.5
     RN_MV = 0.007 * self.muzzle_vel * (0.1 * self.calibre)**0.5
     if RN_MV > RN_Range:
         RN = RN_MV
     else:
         RN = (RN_Range + RN_MV) / 2
     A = self.accuracy
     RL = 1
     SME = 1
     MCE = 1
     AE = 1
     MBE = qjm_interps.MBE(self.barrels)
     self.RF = RF
     self.TLI = RF * PTS * RIE * RN * A * RL * SME * MCE * AE * MBE
Beispiel #6
0
 def GenTLI(self):
     # RF - if empty use calibre
     if self.rate_of_fire is None:
         RF = qjm_interps.RF_From_Calibre(self.calibre)
     else:
         RF = self.rate_of_fire * self.rf_multiple
     PTS = qjm_interps.PTS_From_Calibre(self.calibre)
     RIE = self.rie
     # RN
     RN_Range = 1 + (0.001 * self.range)**0.5
     RN_MV = 0.007 * self.muzzle_vel * (0.1 * self.calibre)**0.5
     if RN_MV > RN_Range:
         RN = RN_MV
     else:
         RN = (RN_Range + RN_MV) / 2
     # derive accuracy from guidance value
     acc = {
         'SACLOS wire day': 1.6,
         'SACLOS wire day/night': 1.7,
         'SACLOS radio': 1.7,
         'LOSLBR': 1.8,
         'F&F': 1.9
     }
     A = acc[self.guidance]
     RL = 1
     SME = 1
     MCE = 1
     AE = 1
     MBE = qjm_interps.MBE(self.barrels)
     self.RF = RF
     MRN = 1 - 0.19 * ((self.min_range - 100) / 100)
     PEN = 1 + 0.01 * signed_sqrt(self.penetration - 500)
     VEL = 1 + .001 * (self.muzzle_vel - 400)
     EN = self.enhancement
     self.TLI = RF * PTS * RIE * RN * A * RL * \
         SME * MCE * AE * MBE * MRN * PEN * VEL * EN