public void UpgradeHero(int hero) { HeroCostRunner orCreateHeroCostRunner = Singleton <HeroTeamRunner> .Instance.GetOrCreateHeroCostRunner(hero); if (!(PlayerData.Instance.Coins.Value < orCreateHeroCostRunner.Cost.Value)) { BigDouble value = orCreateHeroCostRunner.Cost.Value; int value2 = orCreateHeroCostRunner.LevelsToUpgrade.Value; Singleton <FundRunner> .Instance.RemoveCoins(value); Singleton <HeroTeamRunner> .Instance.GetOrCreateHeroRunner(hero).Level.Value += value2; } }
public HeroNotificaitonRunner() { Singleton <PropertyManager> .Instance.AddRootContext(this); HeroCostRunner orCreateHeroCostRunner = Singleton <HeroTeamRunner> .Instance.GetOrCreateHeroCostRunner(0); SceneLoader instance = SceneLoader.Instance; HeroUpgradeAvailable = orCreateHeroCostRunner.UpgradeAvailable; UniRx.IObservable <bool> observable = Observable.Return <bool>(value: false); foreach (HeroCostRunner item in Singleton <HeroTeamRunner> .Instance.Costs()) { observable = observable.CombineLatest(item.UpgradeAvailable, (bool combined, bool available) => combined || available); } CompanionUpgradeAvailable = observable.TakeUntilDestroy(instance).ToReactiveProperty(); }