Beispiel #1
0
 public void FillRifleStats(RifleStats stats)
 {
     RifleName.SetDynamicText("Rifle", stats.Quality);
     Accuracy.SetDynamicText(stats.Accuracy.ToString("0"));
     Recoil.SetDynamicText(stats.Recoil.ToString("0.00"));
     Damage.SetDynamicText(stats.DamagePerRound.ToString("0.0"));
     RateOfFire.SetDynamicText((1f / stats.RateOfFire).ToString("0.00"));
     Ammo.SetDynamicText(stats.AmmoPerMag);
     Range.SetDynamicText(stats.Range.ToString("0.0"));
 }
        public static RifleStats GenerateNewRifle(ItemQuality quality)
        {
            var genData = RifleGenerationPresets.GenData[quality];
            var stats   = new RifleStats();

            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);
        }
        void GenerateNewRifle()
        {
            var rifle = Instantiate(RiflePrefab, Platform).GetComponent <Rifle>();

            var body   = Instantiate(Repos.RifleRepo.GetRandomBody(), rifle.transform);
            var stock  = Instantiate(Repos.RifleRepo.GetRandomStock());
            var mag    = Instantiate(Repos.RifleRepo.GetRandomMag());
            var barrel = Instantiate(Repos.RifleRepo.GetRandomBarrel());

            var quality = Enum.GetValues(typeof(ItemQuality)).Cast <ItemQuality>().PickOne();

            rifle.Initialize(WeaponGenerator.GenerateNewRifle(quality), body.transform, barrel.transform, stock.transform, mag.transform);

            Panel.FillRifleStats(rifle.GetWeaponStats() as RifleStats);

            currentRifleStats = rifle.GetWeaponStats() as RifleStats;
            currentRifleData  = new RifleAssemblyData
            {
                BarrelId = barrel.GetComponent <AssemblyPart>().AssemblyPartId,
                BodyId   = body.GetComponent <AssemblyPart>().AssemblyPartId,
                StockId  = stock.GetComponent <AssemblyPart>().AssemblyPartId,
                MagId    = mag.GetComponent <AssemblyPart>().AssemblyPartId,
            };
        }