Exemplo n.º 1
0
    void GetCannon(WeaponModuleCannon[] wmcx1, WeaponModuleCannon[] wmcx2, WeaponModuleCannon[] wmcx3, WeaponModuleCannon[] wmcx4, int level)
    {
        for (int i = 0; i < wmcx1.Length; i++)
        {
            if (wmcx1[i].data.moduleLevel == level)
            {
                float r = Random.Range(0.0f, 1.0f);

                if (r < cannonNumbersProbability.x)
                {
                    weaponModuleCannon = wmcx1[i];
                }
                else if (r < cannonNumbersProbability.x + cannonNumbersProbability.y)
                {
                    weaponModuleCannon = wmcx2[i];
                }
                else if (r < cannonNumbersProbability.x + cannonNumbersProbability.y + cannonNumbersProbability.z)
                {
                    weaponModuleCannon = wmcx3[i];
                }
                else
                {
                    weaponModuleCannon = wmcx4[i];
                }
            }
        }
    }
Exemplo n.º 2
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);
    }
Exemplo n.º 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();
    }