private UniRx.IObservable <float> CreateGearSetBonusMultiplier(BonusTypeEnum bonusType, int setIndex, float mult) { GearSetRunner orCreateGearSetRunner = GetOrCreateGearSetRunner(setIndex); return(from level in orCreateGearSetRunner.MaxAllLevel select(level < 1) ? BonusTypeHelper.GetOrigin(bonusType) : mult); }
public override void Install(Dictionary <string, object> parameters) { if (parameters != null && parameters.ContainsKey("GearSetGearIndex")) { m_gearSetGearIndex = (int)parameters["GearSetGearIndex"]; } GearSetRunner gearSetRunner = (GearSetRunner)Singleton <PropertyManager> .Instance.GetContext("GearSetRunner", base.transform); GearRunner gearRunner = gearSetRunner.GearRunners[m_gearSetGearIndex]; Add("GearRunner", gearRunner); Add("GearViewRunner", Singleton <GearCollectionRunner> .Instance.GetOrCreateGearViewRunner(gearRunner.GearIndex)); }
private void SetNewBundle() { List <BundleTierConfig> bundles = PersistentSingleton <Economies> .Instance.BundleTiers; int value = PlayerData.Instance.LifetimeBundles.Value; if (value == 0 || PlayerData.Instance.LifetimePrestiges.Value == 0) { bundles = PersistentSingleton <Economies> .Instance.BundleTiers.FindAll((BundleTierConfig s) => s.BundleTier == 1); } else { switch (value) { case 1: bundles = PersistentSingleton <Economies> .Instance.BundleTiers.FindAll((BundleTierConfig s) => s.BundleTier == 2); break; case 2: bundles = PersistentSingleton <Economies> .Instance.BundleTiers.FindAll((BundleTierConfig s) => s.BundleTier == 3); break; } } int currentBundle = (int)bundles[UnityEngine.Random.Range(0, bundles.Count)].ProductEnum; if (PersistentSingleton <Economies> .Instance.IAPs.Find((IAPConfig s) => s.ProductEnum == (IAPProductEnum)currentBundle).Reward.Type == RewardEnum.AddToGearLevel) { BundleTierConfig bundleTierConfig = PersistentSingleton <Economies> .Instance.BundleTiers.Find((BundleTierConfig s) => s.ProductEnum == m_iapConfig.ProductEnum); List <GearSetRunner> list = new List <GearSetRunner>(); for (int j = 0; j < BundleTiersToGearSets.GetLength(1); j++) { if (BundleTiersToGearSets[bundleTierConfig.BundleTier - 1, j] != -1) { GearSetRunner orCreateGearSetRunner = Singleton <GearSetCollectionRunner> .Instance.GetOrCreateGearSetRunner(BundleTiersToGearSets[bundleTierConfig.BundleTier - 1, j]); if (orCreateGearSetRunner != null) { list.Add(orCreateGearSetRunner); } } } GearRunner gearRunner = Singleton <GearSetCollectionRunner> .Instance.GetRandomUnlockableGear(list); if (gearRunner == null) { gearRunner = Singleton <GearSetCollectionRunner> .Instance.GetRandomHighestGear(list); } if (gearRunner != null) { PlayerData.Instance.CurrentBundleGearIndex.Value = gearRunner.GearIndex; } else { int i; for (i = bundles.Count - 1; i >= 0; i--) { IAPConfig iAPConfig = PersistentSingleton <Economies> .Instance.IAPs.Find((IAPConfig s) => s.ProductEnum == bundles[i].ProductEnum); if (iAPConfig.Reward.Type == RewardEnum.AddToGearLevel) { bundles.Remove(bundles[i]); } } if (bundles.Count == 0) { bundles.Add(PersistentSingleton <Economies> .Instance.BundleTiers.Find((BundleTierConfig s) => s.ProductEnum == IAPProductEnum.bundle1)); } currentBundle = (int)bundles[UnityEngine.Random.Range(0, bundles.Count)].ProductEnum; } } PlayerData.Instance.BundleTimeStamp.Value = ServerTimeService.NowTicks(); PlayerData.Instance.CurrentBundleEnum.SetValueAndForceNotify(currentBundle); if (PersistentSingleton <GameAnalytics> .Instance != null) { PersistentSingleton <GameAnalytics> .Instance.NewBundle.Value = (IAPProductEnum)currentBundle; } }