示例#1
0
    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;
        }
    }
示例#2
0
    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();
    }