public static MinigunStats GenerateNewMinigun(ItemQuality quality) { var genData = MinigunGenerationPresets.GenData[quality]; var stats = new MinigunStats(); stats.Accuracy = RandomService.GetRandom(genData.MinAccuracy, genData.MaxAccuracy); stats.MinAccuracy = stats.Accuracy - 20; stats.AimDistance = 20f; stats.AimRecovery = 0.8f; stats.Quality = quality; stats.DamagePerRound = RandomService.GetRandom(genData.MinDamagePerRound, genData.MaxDamagePerRound); stats.PushForce = stats.DamagePerRound * 10; stats.Range = RandomService.GetRandom(genData.MinRange, genData.MaxRange); stats.RateOfFire = RandomService.GetRandom(genData.MinRateOfFire, genData.MaxRateOfFire); stats.Recoil = RandomService.GetRandom(genData.MinRecoil, genData.MaxRecoil); stats.AmmoPerMag = RandomService.GetRandom(genData.MinAmmoPerMag, genData.MaxAmmoPerMag); return(stats); }
public void Initialize(MinigunStats stats) { if (Repos.ParticleRepo != null) { shotLine = Repos.ParticleRepo.ShotLine; hitParticle = Repos.ParticleRepo.ShotHit; bulletHole = Repos.ParticleRepo.BulletHole; } barrel = GetComponentInChildren <BarrelRotator>(); this.stats = stats; currentAccuracy = this.stats.Accuracy; //body.GetComponent<RifleAssembly>().Assemble(barrel, stock, mag); //muzzleEffect = barrel.GetComponent<BarrelAssembly>().MuzzleEffect; fireSfx = GetComponent <AudioSource>(); firingModes = CreateFiringModes(); CurrentAmmo = this.stats.AmmoPerMag; }