Example #1
0
 public PanelGrid()
     : base()
 {
     selectedChild = null;
     Screen        = ConfigManager.Screen;
     Init();
 }
Example #2
0
        private void MainBotLoop()
        {
            var main = new MainRoutine(GameState);

            ScreenReader.DetectSide(GameState);
            main.Root.Start(GameState);

            while (true)
            {
                if (!MainWindow.IsPaused)
                {
                    counterCallsPerSecond++;
                    try
                    {
                        var tack = main.Root.Tick(GameState);
                        if (tack != RunStatus.Running)
                        {
                            main.Root.Stop(GameState);

                            main.Root.Start(GameState);
                        }
                        Thread.Sleep(50);
                    }
                    catch (Exception e)
                    {
                    }
                }
                else
                {
                    Thread.Sleep(1000);
                }
            }
        }
Example #3
0
        public static void StartSearchingPractice(Hero hero)
        {
            MainWindow.Log("Starting practice game");
            if (AreWeInMainMenu())
            {
                MainWindow.Log("We are in main menu");
                ControlInput.MouseClick(ControlInput.MouseClickButton.Left, 403, 1053);
                Thread.Sleep(1000);
            }
            if (!AreWeInPlayMenu())
            {
                throw new KeyNotFoundException();
            }

            ChooseGameMode("practice");
            Thread.Sleep(1000);
            ChooseCharacter(hero);
            Thread.Sleep(1000);
            ControlInput.MouseClick(ControlInput.MouseClickButton.Left, 848, 944);
            Thread.Sleep(1000);
            while (true)
            {
                Thread.Sleep(1000);
                if (ScreenReader.FindOnScreen("./images/loading_searching.png", 0.9f, true) == null)
                {
                    break;
                }
            }
        }
Example #4
0
        static void Main(string[] args)
        {
            if (Environment.OSVersion.Version.Major >= 6)
            {
                SetProcessDPIAware();
            }
            var p       = new ScreenReader();
            var playing = false;

            while (ScreenReader.proc == null)
            {
                p.GetObsInstance();
            }

            while (true)
            {
                if (!p.IsLoading())
                {
                    PlayVid();
                    playing = true;
                }
                else
                {
                    if (playing)
                    {
                        ResetVid();
                        playing = false;
                    }
                }
                Thread.Sleep(14);
            }
        }
        protected override RunStatus Run(object context)
        {
            var gameState = (CurrentGameState)context;

            if (!ScreenReader.AreTalentsOpen())
            {
                ControlInput.MouseClick(ControlInput.MouseClickButton.Left, 95, 942);
            }
            Thread.Sleep(700);
            //ScreenReader.UpdateCurrentTalentLevel(gameState);
            MainWindow.Log("Leveling talents for level " + gameState.Me.CharacterLevel);
            foreach (var talent in gameState.Me.HeroData.Talents)
            {
                if (gameState.Me.CharacterLevel < talent.TalentLevel)
                {
                    continue;
                }
                if (!talent.IsLeveled)
                {
                    ControlInput.ChooseTalent(talent.TalentLevel, talent.TalentIndex);
                    talent.IsLeveled = true;
                    talent.HeroChanges(gameState.Me.HeroData);
                    MainWindow.Log("Leveling " + talent.TalentName + "(" + talent.TalentLevel + ")");
                    Thread.Sleep(200);
                }
            }
            Thread.Sleep(400);
            if (ScreenReader.AreTalentsOpen())
            {
                ControlInput.MouseClick(ControlInput.MouseClickButton.Left, 95, 942);
            }
            return(RunStatus.Failure);
        }
Example #6
0
 public void InstallServices(IServiceProvider map)
 {
     _core    = map.GetService(typeof(Core)) as Core;
     _hueCore = map.GetService(typeof(HueCore)) as HueCore;
     _screen  = map.GetService(typeof(ScreenReader)) as ScreenReader;
     _config  = map.GetService(typeof(Config)) as Config;
     _logger  = map.GetService(typeof(FileLogger)) as FileLogger;
 }
Example #7
0
 public static bool AreWeInPlayMenu()
 {
     if (ScreenReader.FindOnScreen("./images/loading_playmenu.png", 0.90f, true,
                                   new Rectangle(150, 0, 200, 50)) != null)
     {
         return(true);
     }
     return(false);
 }
Example #8
0
 public static bool AreWeInMainMenu()
 {
     if (ScreenReader.FindOnScreen("./images/loading_mainmenu.png", 0.90f, true,
                                   new Rectangle(50, 200, 150, 100)) != null)
     {
         return(true);
     }
     return(false);
 }
Example #9
0
        public static void InitializeScreenReader(object sender, RoutedEventArgs args)
        {
            IProgress <string> progress = new Progress <string>(s =>
            {
                Instange.Log.Text += (s + "\n");
                Instange.Log.ScrollToEnd();
            });

            var screenReader = new ScreenReader()
            {
                Log = progress.Report
            };

            screenReader.StartEventWatcher();
        }
Example #10
0
        public static GameMode FindGameMode()
        {
            while (true)
            {
                MainWindow.Log("GAMEMODE LOOP" + DateTime.Now);
                Thread.Sleep(4000);
                foreach (var mode in GameModes.ModesList)
                {
                    var match = ScreenReader.FindOnScreen(mode.LoadingMatchPath, 0.90f, true,
                                                          new Rectangle(30, 20, 170, 40));
                    if (match != null)
                    {
                        MainWindow.Log("Match for " + mode.Name + " was " + match.Similarity);
                        return(mode);
                    }
                }

                MainWindow.Log("GAMEMODE LOOP" + DateTime.Now);
            }
        }
Example #11
0
        public OutputManager()
        {
            ScreenReader             = new ScreenReader();
            ScreenReader.SapiEnabled = settings.SapiIsScreenReaderFallback;
            var screenWidth = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width;

            Notifyer = new TaskbarNotifier()
            {
                ContentClickable         = false,
                TitleClickable           = false,
                EnableSelectionRectangle = false,
                NormalContentColor       = Color.White,
                HoverContentColor        = Color.White,
                NormalTitleColor         = Color.White,
                HoverTitleColor          = Color.White,
                BackColor                = Color.DarkBlue,
                TitleRectangle           = new Rectangle(20, 5, screenWidth / 4 - 40, 25),
                ContentRectangle         = new Rectangle(8, 25, screenWidth / 4 - 16, 60),
                KeepVisibleOnMousOver    = true,
                ChangeContentResetsTimer = true,
                ChangeTitleResetsTimer   = true
            };
        }
Example #12
0
        public void Cmd_DimExtend()
        {
            var acCurDoc = Application.DocumentManager.MdiActiveDocument;
            var acCurDb  = acCurDoc.Database;
            var acCurEd  = acCurDoc.Editor;

            var prEntOpt = new PromptEntityOptions("\nSelect a dimension system to extend: ");

            prEntOpt.SetRejectMessage("\nOnly linear dimensions may be selected.");
            prEntOpt.AllowNone = false;
            prEntOpt.AddAllowedClass(typeof(RotatedDimension), false);

            var prEntRes = acCurEd.GetEntity(prEntOpt);

            if (prEntRes.Status != PromptStatus.OK)
            {
                return;
            }

            var objId    = prEntRes.ObjectId;
            var matrix3d = acCurEd.GetAlignedMatrix();

            var eqPoint = CalcTol.ReturnCurrentTolerance();

            using (var acTrans = acCurDb.TransactionManager.StartTransaction())
            {
                var acEnt = acTrans.GetObject(objId, OpenMode.ForWrite) as Entity;
                if (acEnt != null)
                {
                    acEnt.Unhighlight();

                    var acRotDim = acEnt as RotatedDimension;
                    if (acRotDim != null)
                    {
                        var dimSys = DimSystem.GetSystem(acRotDim, eqPoint, eqPoint);

                        dimSys.Highlight();

                        var promptPointOption2 =
                            new PromptPointOptions(
                                "\nSelect a dimension line to extend or press CTRL to start crossing line:");

                        while (true)
                        {
                            if (dimSys.Count == 0)
                            {
                                break;
                            }

                            dimSys.Highlight();

                            var nArray    = DimSystem.GetActiveViewCount();
                            var ctManager = TransientManager.CurrentTransientManager;

                            var acCirc = new Circle();
                            var acLine = new Line(new Point3d(0, 0, 0), new Point3d(0, 0, 0));

                            acCirc.Color  = SettingsUser.DynPreviewColor;
                            acCirc.Normal = acRotDim.Normal;

                            acLine.Color = SettingsUser.DynPreviewColor;

                            var intCol = new IntegerCollection(nArray);

                            ctManager.AddTransient(acCirc, TransientDrawingMode.Highlight, 128,
                                                   intCol);
                            ctManager.AddTransient(acLine, TransientDrawingMode.Highlight, 128,
                                                   intCol);

                            var sysPts = dimSys.GetSystemPoints(eqPoint);

                            void Handler(object sender, PointMonitorEventArgs e)
                            {
                                var cPt     = dimSys.GetNearest(e.Context.ComputedPoint, eqPoint);
                                var sysPt   = sysPts[cPt];
                                var dlPt    = sysPt.DimLinePoint;
                                var scrSize = ScreenReader.GetSreenSize();

                                acCirc.Radius = scrSize / 200;

                                var point3d = sysPt.Dim1PointIndex != 1
                                    ? sysPt.Dim1.XLine2Point
                                    : sysPt.Dim1.XLine1Point;

                                if (Math.Abs(point3d.DistanceTo(dlPt)) <= eqPoint)
                                {
                                    acCirc.Center     = dlPt;
                                    acLine.StartPoint = dlPt;
                                    acLine.EndPoint   = dlPt;
                                    ctManager.UpdateTransient(acCirc, intCol);
                                    ctManager.UpdateTransient(acLine, intCol);
                                    return;
                                }

                                var point = new Line3d(dlPt, point3d).GetClosestPointTo(e.Context.ComputedPoint).Point;

                                acLine.StartPoint = dlPt;
                                acLine.EndPoint   = point;
                                acCirc.Center     = point;
                                ctManager.UpdateTransient(acCirc, intCol);
                                ctManager.UpdateTransient(acLine, intCol);
                            }

                            acCurEd.PointMonitor += Handler;

                            PromptPointResult ptRes;
                            try
                            {
                                ptRes = acCurDoc.Editor.GetPoint(promptPointOption2);
                            }
                            finally
                            {
                                acCurEd.PointMonitor -= Handler;
                                ctManager.EraseTransient(acCirc, intCol);
                                ctManager.EraseTransient(acLine, intCol);
                                acCirc.Dispose();
                                acLine.Dispose();
                            }

                            var cntrlPressed = (Control.ModifierKeys & Keys.Control) > Keys.None;

                            PromptPointResult ctrlRes = null;
                            if (cntrlPressed)
                            {
                                var promptPointOption3 =
                                    new PromptPointOptions("\nSelect second point of crossing line:")
                                {
                                    UseBasePoint  = true,
                                    UseDashedLine = true,
                                    BasePoint     = ptRes.Value
                                };

                                ctrlRes = acCurDoc.Editor.GetPoint(promptPointOption3);
                                if (ctrlRes.Status != PromptStatus.OK)
                                {
                                    break;
                                }
                            }

                            if (ptRes.Status != PromptStatus.OK)
                            {
                                break;
                            }

                            if (cntrlPressed)
                            {
                                var point3d6 = ptRes.Value.TransformBy(matrix3d);
                                var point3d7 = ctrlRes.Value.TransformBy(matrix3d);
                                var nums     = dimSys.GetSystemByLine(point3d6, point3d7, eqPoint);

                                if (nums.Count <= 0)
                                {
                                    continue;
                                }

                                var sysPoints2 = dimSys.GetSystemPoints(eqPoint);
                                foreach (var num3 in nums)
                                {
                                    var point3d8 = DimSystem.GetCrossing(dimSys, sysPoints2, num3, point3d6,
                                                                         point3d7, eqPoint);
                                    if (point3d8.X != -99999 || point3d8.Y != -99999 || point3d8.Z != -99999)
                                    {
                                        dimSys.Extend(num3, 0, point3d8, eqPoint);
                                    }
                                    else
                                    {
                                        acCurEd.WriteMessage("\nCannot extend lines with zero length.");
                                    }
                                }

                                acTrans.TransactionManager.QueueForGraphicsFlush();
                            }
                            else
                            {
                                var point3d9  = ptRes.Value.TransformBy(matrix3d);
                                var num4      = dimSys.GetNearest(point3d9, eqPoint);
                                var sysPoint  = dimSys.GetSystemPoints(eqPoint)[num4];
                                var point3d10 = sysPoint.DimLinePoint;
                                var point3d11 = sysPoint.Dim1PointIndex != 1
                                    ? sysPoint.Dim1.XLine2Point
                                    : sysPoint.Dim1.XLine1Point;
                                if (Math.Abs(point3d10.DistanceTo(point3d11)) >= eqPoint)
                                {
                                    dimSys.Extend(num4, 0, point3d9, eqPoint);
                                    acTrans.TransactionManager.QueueForGraphicsFlush();
                                }
                                else
                                {
                                    acCurEd.WriteMessage("\nCannot extend lines with zero length.");
                                }
                            }
                        }

                        dimSys.Unhighlight();
                        acTrans.Commit();
                    }
                }
            }
        }
Example #13
0
 public void OutputMessageToScreenReader(string message, bool interrupt = false)
 {
     ScreenReader.SayString(message, interrupt);
 }
Example #14
0
        public void Cmd_DimDelete()
        {
            if (!LicensingAgent.Check())
            {
                return;
            }
            var acCurDoc = Application.DocumentManager.MdiActiveDocument;
            var acCurDb  = acCurDoc.Database;
            var acCurEd  = acCurDoc.Editor;

            var prEntOpt = new PromptEntityOptions("\nSelect a dimension system to remove from: ");

            prEntOpt.SetRejectMessage("\nOnly linear dimensions may be selected.");
            prEntOpt.AllowNone = false;
            prEntOpt.AddAllowedClass(typeof(RotatedDimension), false);

            var prEntRes = acCurEd.GetEntity(prEntOpt);

            if (prEntRes.Status != PromptStatus.OK)
            {
                return;
            }

            var objId     = prEntRes.ObjectId;
            var delMatrix = acCurEd.GetAlignedMatrix();

            var eqPoint = CalcTol.ReturnCurrentTolerance();

            using (var acTrans = acCurDb.TransactionManager.StartTransaction())
            {
                var acEnt = acTrans.GetObject(objId, OpenMode.ForWrite) as Entity;
                if (acEnt != null)
                {
                    acEnt.Unhighlight();

                    var acRotDim = acEnt as RotatedDimension;
                    if (acRotDim != null)
                    {
                        var dimSys = DimSystem.GetSystem(acRotDim, eqPoint, eqPoint);

                        var prPtOpts =
                            new PromptPointOptions("\nSelect point to delete or press CTRL to start a crossing line: ");
                        PromptPointResult ptRes;

                        while (true)
                        {
                            if (dimSys.Count <= 0)
                            {
                                break;
                            }

                            dimSys.Highlight();

                            var nArray = DimSystem.GetActiveViewCount();

                            var ctManager = TransientManager.CurrentTransientManager;

                            var acCirc    = new Circle();
                            var acPreview = new Circle();
                            var acLine    = new Line(new Point3d(0, 0, 0), new Point3d(0, 0, 0));

                            acCirc.Color    = SettingsUser.DynPreviewColor;
                            acPreview.Color = SettingsUser.DynPreviewColor;
                            acLine.Color    = SettingsUser.DynPreviewColor;

                            var integerCollections = new IntegerCollection(nArray);

                            ctManager.AddTransient(acCirc, TransientDrawingMode.Main, 128,
                                                   integerCollections);
                            ctManager.AddTransient(acPreview, TransientDrawingMode.Main, 128,
                                                   integerCollections);
                            ctManager.AddTransient(acLine, TransientDrawingMode.Highlight, 128,
                                                   integerCollections);

                            var dPoints = dimSys.GetSystemPoints(eqPoint);

                            void PreviewHandler(object sender, PointMonitorEventArgs e)
                            {
                                var cdPoint = dimSys.GetNearest(e.Context.ComputedPoint, eqPoint);

                                var cPt     = dPoints[cdPoint];
                                var dlPoint = cPt.DimLinePoint;

                                acCirc.Center = dlPoint;

                                var scrSize = ScreenReader.GetSreenSize();

                                acCirc.Radius    = scrSize / 200;
                                acCirc.Normal    = acRotDim.Normal;
                                acPreview.Radius = scrSize / 200;
                                acPreview.Normal = acRotDim.Normal;

                                Point3d tempPt;
                                Point3d tempPt1;
                                Point3d tempPt2;

                                if (cPt.IsLast)
                                {
                                    tempPt = cPt.Dim1PointIndex != 1
                                        ? cPt.Dim1.XLine2Point
                                        : cPt.Dim1.XLine1Point;
                                    tempPt2 = tempPt;
                                }
                                else
                                {
                                    tempPt = cPt.Dim1PointIndex != 1
                                        ? cPt.Dim1.XLine2Point
                                        : cPt.Dim1.XLine1Point;
                                    tempPt1 = cPt.Dim2PointIndex != 1
                                        ? cPt.Dim2.XLine2Point
                                        : cPt.Dim2.XLine1Point;
                                    tempPt2 = dlPoint.DistanceTo(tempPt) <= dlPoint.DistanceTo(tempPt1)
                                        ? tempPt1
                                        : tempPt;
                                }

                                acLine.StartPoint = dlPoint;
                                acLine.EndPoint   = tempPt2;
                                acPreview.Center  = tempPt2;

                                ctManager.UpdateTransient(acCirc, integerCollections);
                                ctManager.UpdateTransient(acPreview, integerCollections);
                                ctManager.UpdateTransient(acLine, integerCollections);
                            }

                            acCurEd.PointMonitor += PreviewHandler;

                            try
                            {
                                ptRes = acCurEd.GetPoint(prPtOpts);
                            }
                            finally
                            {
                                acCurEd.PointMonitor -= PreviewHandler;

                                ctManager.EraseTransient(acCirc, integerCollections);
                                ctManager.EraseTransient(acPreview, integerCollections);
                                ctManager.EraseTransient(acLine, integerCollections);

                                acCirc.Dispose();
                                acPreview.Dispose();
                                acLine.Dispose();
                            }

                            #region CTRL Modifier

                            var ctrlPressed = (Control.ModifierKeys & Keys.Control) > Keys.None;

                            PromptPointResult promptPointResult = null;

                            if (ctrlPressed)
                            {
                                var promptPointOption1 =
                                    new PromptPointOptions("\nSelect second point of crossing line:")
                                {
                                    UseBasePoint  = true,
                                    UseDashedLine = true,
                                    BasePoint     = ptRes.Value
                                };

                                promptPointResult = acCurEd.GetPoint(promptPointOption1);

                                if (promptPointResult.Status != PromptStatus.OK)
                                {
                                    dimSys.Unhighlight();
                                    break;
                                }
                            }

                            if (ptRes.Status != PromptStatus.OK)
                            {
                                dimSys.Unhighlight();
                                break;
                            }

                            #endregion

                            if (ctrlPressed)
                            {
                                var delPt1 = ptRes.Value.TransformBy(delMatrix);
                                var delPt2 = promptPointResult.Value.TransformBy(delMatrix);
                                dimSys.Delete(delPt1, delPt2);
                            }
                            else
                            {
                                dimSys.Delete(ptRes.Value.TransformBy(delMatrix));
                            }
                        }

                        dimSys.Unhighlight();
                    }
                }

                acTrans.Commit();
            }
        }
Example #15
0
 // Gestion del singleton, y se comprueba que tenga audiosource
 void Awake()
 {
     instance = this;
 }
 public MainWindow()
 {
     //InitializeComponent();
     ScreenReader.StartScreenReader();
 }