Exemplo n.º 1
0
 private void HandleSplit(bool shouldSplit, EagleIslandSplit split, bool shouldReset = false)
 {
     if (currentSplit > 0 && shouldReset)
     {
         Model.Reset();
     }
     else if (shouldSplit)
     {
         if (split.ShouldSplit)
         {
             if (Model.CurrentState.CurrentPhase == TimerPhase.NotRunning)
             {
                 Model.Start();
             }
             else
             {
                 Model.Split();
             }
         }
         else
         {
             currentSplit++;
         }
     }
 }
Exemplo n.º 2
0
        public void GetValues()
        {
            if (!mem.HookProcess())
            {
                return;
            }

            LogValues();

            if (Model != null && currentSplit < settings.Splits.Count)
            {
                bool             shouldSplit = false;
                EagleIslandSplit split       = settings.Splits[currentSplit];
                Levels           level;
                switch (split.Field)
                {
                case "Start Game":
                    shouldSplit = mem.GetIntroPanelsActive();
                    break;

                case "Greenwood Glade":
                case "Gemshine Mines":
                case "Smuggleway Bay":
                case "Hollow Hestia":
                case "Falcon's Furnace":
                case "Tomb of the Raven":
                    currentLevel = mem.GetLevel();
                    level        = (Levels)Enum.Parse(typeof(Levels), split.LevelEnum);
                    shouldSplit  = currentLevel == (int)level && lastRoomType == 4 && mem.GetRoomType() == 0 && mem.GetCoordX() == 0 && mem.GetCoordY() == 0;
                    lastRoomType = mem.GetRoomType();
                    break;

                case "Woodberry Warren":
                case "Sanctuary Swamp":
                case "Pinnacle Peak":
                    currentLevel = mem.GetLevel();
                    level        = (Levels)Enum.Parse(typeof(Levels), split.LevelEnum);
                    shouldSplit  = currentLevel == (int)level && lastRoomType == 2 && mem.GetRoomType() == 0 && mem.GetCoordX() == 0 && mem.GetCoordY() == 0;
                    lastRoomType = mem.GetRoomType();
                    break;

                case "Armaura 1":
                    shouldSplit = mem.GetHubEvent() == 16 && mem.GetPosX() == 1158672630 && mem.GetPosY() == 1173225472;
                    break;

                case "Armaura 2":
                    shouldSplit = mem.GetHubEvent() == 15 && mem.GetPosX() == 1154211840 && mem.GetPosY() == 1167802368;
                    break;

                case "Ornis":
                    shouldSplit = mem.GetOrnisFrozen() && mem.GetHubEvent() == 4;
                    break;
                }

                HandleSplit(shouldSplit, split);
            }
        }
Exemplo n.º 3
0
        public void UpdateSplits()
        {
            if (isLoading)
            {
                return;
            }

            Splits.Clear();
            foreach (Control c in flowMain.Controls)
            {
                if (c is EagleIslandSplitSettings)
                {
                    EagleIslandSplitSettings setting = (EagleIslandSplitSettings)c;
                    if (!string.IsNullOrEmpty(setting.cboName.Text))
                    {
                        EagleIslandSplit split = new EagleIslandSplit(setting.cboName.Text, setting.cboName.SelectedValue.ToString(), setting.chkShouldSplit.Checked);
                        Splits.Add(split);
                    }
                }
            }
        }