コード例 #1
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <GlobalSettingsHolder, UiReaderWriter>(
                (settings, uiRW) =>
            {
                var titleText = UiConstants.DefaultTitle;
                uiRW.Write(
                    ui,
                    () =>
                {
                    ui.TitleText = titleText;
                });
                settings.TitleText = titleText;
                r.Run <ConfigSaver>(saver =>
                {
                    saver.Save();
                });

                r.Run <TitleUi>(shell =>
                {
                    uiRW.Write(
                        shell,
                        () =>
                    {
                        shell.Title = titleText;
                    });
                });
            });
        }
コード例 #2
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <GlobalSettingsHolder, UiReaderWriter>(
                (settings, uiRW) =>
            {
                var tt = uiRW.Read(
                    ui,
                    () => ui.TitleText);
                settings.TitleText = tt;
                r.Run <ConfigSaver>(saver =>
                {
                    saver.Save();
                });
                r.Run <TitleUi>(shell =>
                {
                    uiRW.WriteSync(
                        shell,
                        () =>
                    {
                        shell.Title = tt;
                    });
                });
            });
        }
コード例 #3
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <UiReaderWriter>(uiRW =>
            {
                var interval = uiRW.Read(
                    ui,
                    () => ui.TimerIntervalSeconds);

                if (interval < 1)
                {
                    interval = 1;
                }

                r.Run <GlobalSettingsHolder>(settings =>
                {
                    settings.TimerIntervalSeconds = interval;
                    r.Run <ConfigSaver>(saver =>
                    {
                        saver.Save();
                    });

                    r.Run <xofz.Framework.Timer>(t =>
                    {
                        t.Stop();
                        t.Start(interval * 1000);
                    },
                                                 Framework.Home.DependencyNames.Timer);
                });
            });
        }
コード例 #4
0
 public ConfigPresenter(
     ConfigUi ui,
     ShellUi shell,
     MethodRunner runner)
     : base(ui, shell)
 {
     this.ui     = ui;
     this.runner = runner;
 }
コード例 #5
0
 public SetupConfigCommand(
     ConfigUi ui,
     ShellUi shell,
     MethodWebV2 web)
 {
     this.ui    = ui;
     this.shell = shell;
     this.web   = web;
 }
コード例 #6
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <StartHandler>(handler =>
            {
                handler.Handle(
                    ui);
            });
        }
コード例 #7
0
 public static Sprite GetMissionRewardIcon(MissionInstance mission)
 {
     if (!string.IsNullOrEmpty(mission.RewardShopEntryId))
     {
         return(PlayerView.Binder.SpriteResources.getSprite(ConfigUi.GetFloaterSpriteForShopEntry(mission.RewardShopEntryId)));
     }
     if (mission.RewardDiamonds > 0.0)
     {
         return(PlayerView.Binder.SpriteResources.getSprite(ConfigUi.RESOURCE_TYPE_SPRITES[ResourceType.Diamond]));
     }
     return(null);
 }
コード例 #8
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <GlobalSettingsHolder, UiReaderWriter>(
                (settings, uiRW) =>
            {
                var titleText = settings.TitleText;
                uiRW.Write(
                    ui,
                    () =>
                {
                    ui.TitleText = titleText;
                });
            });
        }
コード例 #9
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <GlobalSettingsHolder>(settings =>
            {
                if (settings.Prompt)
                {
                    settings.Prompt = false;
                    r.Run <ConfigSaver>(saver =>
                    {
                        saver.Save();
                    });
                }
            });
        }
コード例 #10
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <GlobalSettingsHolder, UiReaderWriter>(
                (settings, uiRW) =>
            {
                uiRW.Write(
                    ui,
                    () =>
                {
                    ui.TimerIntervalSeconds =
                        settings.TimerIntervalSeconds;
                });
            });
        }
コード例 #11
0
 private void onBuffStarted(CharacterInstance character, Buff buff)
 {
     if (!character.IsPlayerCharacter)
     {
         EffectType effectTypeForBuff = ConfigUi.GetEffectTypeForBuff(buff);
         for (int i = 0; i < this.m_heroStats.Count; i++)
         {
             HeroStats stats = this.m_heroStats[i];
             if (effectTypeForBuff == ConfigPerks.GlobalFrostEffect.EffectType)
             {
                 stats.EnemiesFrozen++;
             }
             else if (effectTypeForBuff == ConfigPerks.GlobalPoisonEffect.EffectType)
             {
                 stats.EnemiesPoisoned++;
             }
             if (buff.Stuns)
             {
                 stats.EnemiesStunned++;
             }
         }
     }
 }
コード例 #12
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <KeyboardLoader>(loader =>
            {
                try
                {
                    loader.Load();
                }
                catch
                {
                    // oh noes!! windows 98!
                }
            });

            r?.Run <UiReaderWriter>(uiRW =>
            {
                uiRW.Write(
                    ui,
                    ui.FocusTitleTextTextBox);
            });
        }
コード例 #13
0
        protected virtual void onBootstrap()
        {
            var s = this.mainShell;

            if (s == null)
            {
                return;
            }

            var m = this.newMessenger?.Invoke();

            if (m != null)
            {
                m.Subscriber = s;
            }

            var e = this.executor;

            e?.Execute(new SetupMethodWebCommand(
                           new MethodWebV2(),
                           m,
                           this.newConfigSaver,
                           this.newSettingsProvider));

            var w = e?.Get <SetupMethodWebCommand>()?.W;

            w?.Run <EventSubscriber>(sub =>
            {
                var cd = AppDomain.CurrentDomain;
                UnhandledExceptionEventHandler handler = this.handleException;
                sub.Subscribe(
                    cd,
                    nameof(cd.UnhandledException),
                    handler);
            });
            w?.RegisterDependency(s);

            HomeUi          homeUi       = null;
            HomeNavUi       homeNavUi    = null;
            StatisticsUi    statsUi      = null;
            TimestampsUi    timestampsUi = null;
            TimestampEditUi editUi       = null;
            DailyUi         dailyUi      = null;
            ConfigUi        configUi     = null;
            LicenseUi       licenseUi    = null;

            w?.Run <UiReaderWriter, Lotter>(
                (uiRW, lotter) =>
            {
                uiRW.WriteSync(
                    s,
                    () =>
                {
                    homeUi       = this.newHomeUi?.Invoke();
                    homeNavUi    = this.newHomeNavUi?.Invoke(lotter);
                    statsUi      = this.newStatsUi?.Invoke();
                    timestampsUi = this.newTimestampsUi?.Invoke(lotter);
                    editUi       = this.newEditUi?.Invoke();
                    dailyUi      = this.newDailyUi?.Invoke(lotter);
                    configUi     = this.newConfigUi?.Invoke();
                    licenseUi    = this.newLicenseUi?.Invoke(s);
                });
            });

            var homeFinished       = new ManualResetEvent(false);
            var homeNavFinished    = new ManualResetEvent(false);
            var statsFinished      = new ManualResetEvent(false);
            var editFinished       = new ManualResetEvent(false);
            var timestampsFinished = new ManualResetEvent(false);
            var dailyFinished      = new ManualResetEvent(false);
            var mainFinished       = new ManualResetEvent(false);
            var shutdownFinished   = new ManualResetEvent(false);
            var licenseFinished    = new ManualResetEvent(false);
            var configFinished     = new ManualResetEvent(false);

            w?.Run <Do <Do> >(invoker =>
            {
                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupHomeCommand(
                            homeUi,
                            s,
                            this.newReaderWriter,
                            this.newDataWatcher,
                            w));
                    homeFinished.Set();
                });

                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupHomeNavCommand(
                            homeNavUi,
                            s.NavUi,
                            new NavigatorNavLogicReader(w),
                            w));
                    homeNavFinished.Set();
                });

                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupStatisticsCommand(
                            statsUi,
                            homeUi,
                            w));
                    statsFinished.Set();
                });

                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupTimestampEditCommand(
                            editUi,
                            homeUi,
                            w));
                    editFinished.Set();
                });

                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupMainCommand(
                            s,
                            w,
                            new SettingsHolder()));
                    mainFinished.Set();
                });

                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupShutdownCommand(
                            w));
                    shutdownFinished.Set();
                });

                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupLicenseCommand(
                            licenseUi,
                            w));
                    licenseFinished.Set();
                });

                homeFinished.WaitOne();

                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupTimestampsCommand(
                            timestampsUi,
                            homeUi,
                            w));
                    timestampsFinished.Set();
                });

                invoker.Invoke(
                    () =>
                {
                    e?.Execute(
                        new SetupDailyCommand(
                            dailyUi,
                            homeUi,
                            new NavigatorUiReader(w),
                            w));
                    dailyFinished.Set();
                });
            });

            // update to single-file format
            w?.Run <FileTimestampManager>(manager =>
            {
                manager.ConvertToSingleFile();
            });

            w?.Run <DataWatcher>(watcher =>
            {
                watcher.Start();
            });

            w?.Run <Navigator>(
                nav =>
            {
                nav.Present <HomePresenter>();

                w.Run <Do <Do> >(invoker =>
                {
                    homeNavFinished.WaitOne();
                });

                nav.PresentFluidly <HomeNavPresenter>();

                w.Run <Do <Do> >(invoker =>
                {
                    timestampsFinished.WaitOne();
                });

                nav.PresentFluidly <TimestampsPresenter>();
            });

            w?.Run <Do <Do> >(invoker =>
            {
                dailyFinished.WaitOne();
                invoker.Invoke(() =>
                {
                    e?.Execute(
                        new SetupConfigCommand(
                            configUi,
                            homeUi,
                            w));
                    configFinished.Set();
                });

                statsFinished.WaitOne();
                editFinished.WaitOne();
                mainFinished.WaitOne();
                shutdownFinished.WaitOne();
                licenseFinished.WaitOne();
                configFinished.WaitOne();
            });
        }
コード例 #14
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <GlobalSettingsHolder>(settings =>
            {
                var p = settings.Prompt;
                if (p)
                {
                    r.Run <UiReaderWriter>(uiRW =>
                    {
                        uiRW.WriteSync(
                            ui,
                            () =>
                        {
                            ui.PromptChecked = true;
                        });
                    });

                    r.Run <PromptSelectedHandler>(
                        handler =>
                    {
                        handler.Handle(ui);
                    });
                    return;
                }

                r.Run <PromptUnselectedHandler>(handler =>
                {
                    handler.Handle(ui);
                });
            });

            r?.Run <GlobalSettingsHolder, UiReaderWriter>(
                (settings, uiRW) =>
            {
                var interval = settings
                               .TimerIntervalSeconds;
                uiRW.Write(
                    ui,
                    () =>
                {
                    ui.TimerIntervalSeconds = interval;
                });
            });

            r?.Run <ResetTitleTextKeyTappedHandler>(handler =>
            {
                handler.Handle(ui);
            });

            r?.Run <GlobalSettingsHolder>(settings =>
            {
                var ss = settings.ShowSeconds;
                if (ss)
                {
                    r.Run <UiReaderWriter>(uiRW =>
                    {
                        uiRW.WriteSync(
                            ui,
                            () =>
                        {
                            ui.ShowSecondsChecked = true;
                        });
                    });

                    r.Run <ShowSecondsSelectedHandler>(
                        handler =>
                    {
                        handler.Handle();
                    });
                    return;
                }

                r.Run <ShowSecondsUnselectedHandler>(
                    handler =>
                {
                    handler.Handle();
                });
            });
        }
コード例 #15
0
        public virtual void Handle(
            ConfigUi ui)
        {
            var r = this.runner;

            r?.Run <UiReader, UiReaderWriter>((reader, uiRW) =>
            {
                reader.ReadHomeNav(
                    out var homeNavUi);
                uiRW.Write(
                    homeNavUi,
                    () =>
                {
                    homeNavUi.ActiveKeyLabel = NavKeyLabels.Config;
                });
            });

            r?.Run <UiReaderWriter, TimestampReader, UiReader, DateCalculator>(
                (uiRW, reader, uiReader, dateCalc) =>
            {
                var allTimestamps = reader.ReadAll();
                uiReader.ReadStatistics(
                    out var statsUi);
                var start = uiRW.Read(
                    statsUi,
                    () => statsUi.StartDate);
                var end = uiRW.Read(
                    statsUi,
                    () => statsUi.EndDate)
                          .AddDays(1);
                var startOfWeek = dateCalc.StartOfWeek();
                var endOfWeek   = dateCalc
                                  .EndOfWeek()
                                  .AddDays(1);
                long countThisWeek = 0;
                long countInRange  = 0;
                long totalCount    = allTimestamps.Count;
                foreach (var timestamp in allTimestamps)
                {
                    if (timestamp >= start && timestamp < end)
                    {
                        ++countInRange;
                    }

                    if (timestamp >= startOfWeek && timestamp < endOfWeek)
                    {
                        ++countThisWeek;
                    }
                }

                var tcString    = totalCount.ToString();
                var weekString  = countThisWeek.ToString();
                var rangeString = countInRange.ToString();

                uiRW.Write(
                    ui,
                    () =>
                {
                    ui.TotalTimestampCount    = tcString;
                    ui.ThisWeekTimestampCount = weekString;
                    ui.InRangeTimestampCount  = rangeString;
                });
            });
        }