Example #1
0
    float CalculateDps(WeaponModuleBase wmb, WeaponModuleMagazine wmm, WeaponModuleCannon wmc)
    {
        float rate1 = wmb.data.rafaleRate * wmm.data.fireRateLimiter * (1.0f + (wmc.cannons.Length - 1.0f) * wmc.data.multiCannonFireRateLimiter);
        float rate2 = wmb.data.fireRate * wmm.data.fireRateLimiter * (1.0f + (wmc.cannons.Length - 1.0f) * wmc.data.multiCannonFireRateLimiter);

        float rate = (rate1 * (wmb.data.rafaleCount - 1.0f) + rate2) / wmb.data.rafaleCount;

        return((wmc.cannons.Length * damages) / rate);
    }
Example #2
0
 void GetMagazine(WeaponModuleMagazine[] wmm, int level)
 {
     for (int i = 0; i < wmm.Length; i++)
     {
         if (wmm[i].data.moduleLevel == level)
         {
             weaponModuleMagazine = wmm[i];
         }
     }
 }
Example #3
0
    public override void SetUpItem()
    {
        base.SetUpItem();
        weaponModuleBase = GetComponent <WeaponModuleBase>();
        weaponModuleBase.SetUpItem();
        weaponModuleMagazine = GetComponentInChildren <WeaponModuleMagazine>();
        weaponModuleMagazine.SetUpItem();
        weaponModuleCannon = GetComponentInChildren <WeaponModuleCannon>();
        weaponModuleCannon.SetUpItem();
        cameraShake  = GameObject.FindObjectOfType <CameraShake>() as CameraShake;
        rgdBody.mass = weaponModuleBase.data.mass + weaponModuleMagazine.data.mass + weaponModuleCannon.data.mass * weaponModuleCannon.cannons.Length;

        float limiter = weaponModuleMagazine.data.fireRateLimiter * (1.0f + (weaponModuleCannon.cannons.Length - 1.0f) * weaponModuleCannon.data.multiCannonFireRateLimiter);

        rate1 = weaponModuleBase.data.rafaleRate * limiter;
        rate2 = weaponModuleBase.data.fireRate * limiter;

        dps = CalculateDps();
    }