Ejemplo n.º 1
0
        private async Task CreateTargetAsync(TargetTargetCreatedChromiumEvent e)
        {
            var    targetInfo       = e.TargetInfo;
            string browserContextId = targetInfo.BrowserContextId;

            if (!(browserContextId != null && _contexts.TryGetValue(browserContextId, out var context)))
            {
                context = DefaultContext;
            }

            var target = new ChromiumTarget(
                e.TargetInfo,
                this,
                () => _connection.CreateSessionAsync(targetInfo),
                context);

            if (TargetsMap.ContainsKey(e.TargetInfo.TargetId))
            {
                // TODO add logger
                // _logger.LogError("Target should not exist before targetCreated");
            }

            TargetsMap[e.TargetInfo.TargetId] = target;

            if (await target.InitializedTask.ConfigureAwait(false))
            {
                var args = new TargetChangedArgs {
                    Target = target
                };
                TargetCreated?.Invoke(this, args);
            }
        }
Ejemplo n.º 2
0
        ///<summary>
        ///Update our current object data ("Current Target")
        ///</summary>
        private bool RefreshTargetBehaviors()
        {
            bool conditionTest = false;

            lastBehavioralType = TargetBehavioralTypes.None;
            foreach (var TLA in TargetBehaviors)
            {
                //Check each behavior "pre-condition"
                if (!TLA.BehavioralCondition)
                {
                    continue;
                }

                //Now test the behavior
                conditionTest = TLA.Test.Invoke(ref CurrentTarget);
                if (conditionTest)
                {
                    if (!LastCachedTarget.RAGUID.Equals(CurrentTarget.RAGUID))
                    {
                        TargetChangedArgs TargetChangedInfo = new TargetChangedArgs(CurrentTarget, lastBehavioralType);
                        OnTargetChanged(TargetChangedInfo);
                    }

                    lastBehavioralType = TLA.TargetBehavioralTypeType;
                    break;
                }
            }



            return(conditionTest);
        }
 private void Browser_TargetDestroyed(object sender, TargetChangedArgs e)
 {
     if (DebugInfo)
     {
         Console.WriteLine($"Browser_TargetDestroyed: {e.Target.Url}");
     }
 }
Ejemplo n.º 4
0
        private async void OnBrowserTargetCreated(object sender, TargetChangedArgs e)
        {
            var page = await e.Target.PageAsync();

            if (page == null)
            {
                return;
            }

            await OnPageCreatedAsync(page);
        }
Ejemplo n.º 5
0
        private async void Browser_TargetCreated(object sender, TargetChangedArgs e)
        {
            try
            {
                var page = await e.Target.PageAsync();

                if (page != null)
                {
                    RunScriptOnPage(page);
                }
            }
            catch { }
        }
Ejemplo n.º 6
0
        internal void OnTargetChanged(TargetChangedArgs e)
        {
            Logger.Write(LogLevel.Target, "Changed Object: {0}", MakeStringSingleLine(e.newObject.DebugString));



            LastChangeOfTarget = DateTime.Now;
            if (Bot.Settings.EnableWaitAfterContainers && CurrentTarget.targetType == TargetType.Container)
            {
                //Herbfunks delay for container loot.
                lastHadContainerAsTarget = DateTime.Now;

                if (CurrentTarget.IsResplendantChest)
                {
                    lastHadRareChestAsTarget = DateTime.Now;
                }
            }

            // We're sticking to the same target, so update the target's health cache to check for stucks
            if (CurrentTarget.targetType == TargetType.Unit)
            {
                CurrentUnitTarget = (CacheUnit)CurrentTarget;
                //Used to pause after no targets found.
                lastHadUnitInSights = DateTime.Now;

                // And record when we last saw any form of elite
                if (CurrentUnitTarget.IsBoss || CurrentUnitTarget.IsEliteRareUnique || CurrentUnitTarget.IsTreasureGoblin)
                {
                    lastHadEliteUnitInSights = DateTime.Now;
                }
            }

            bWholeNewTarget   = true;
            bPickNewAbilities = true;

            TargetChangeHandler handler = TargetChanged;

            if (handler != null)
            {
                handler(this, e);
            }
        }
Ejemplo n.º 7
0
        private async Task DestroyTargetAsync(TargetTargetDestroyedChromiumEvent e)
        {
            if (!TargetsMap.ContainsKey(e.TargetId))
            {
                throw new PlaywrightSharpException("Target should exists before DestroyTarget");
            }

            var target = TargetsMap[e.TargetId];

            TargetsMap.TryRemove(e.TargetId, out _);
            target.DidClose();

            target.CloseTaskWrapper.TrySetResult(true);

            if (await target.InitializedTask.ConfigureAwait(false))
            {
                var args = new TargetChangedArgs {
                    Target = target
                };
                TargetDestroyed?.Invoke(this, args);
            }
        }
Ejemplo n.º 8
0
        ///<summary>
        ///Update our current object data ("Current Target")
        ///</summary>
        private bool RefreshTargetBehaviors()
        {
            bool conditionTest = false;
            lastBehavioralType = TargetBehavioralTypes.None;
            foreach (var TLA in TargetBehaviors)
            {
                //Check each behavior "pre-condition"
                if (!TLA.BehavioralCondition) continue;

                //Now test the behavior
                conditionTest = TLA.Test.Invoke(ref CurrentTarget);
                if (conditionTest)
                {
                    if (!LastCachedTarget.RAGUID.Equals(CurrentTarget.RAGUID))
                    {
                        TargetChangedArgs TargetChangedInfo = new TargetChangedArgs(CurrentTarget, lastBehavioralType);
                        OnTargetChanged(TargetChangedInfo);
                    }

                    lastBehavioralType = TLA.TargetBehavioralTypeType;
                    break;
                }
            }

            return conditionTest;
        }
Ejemplo n.º 9
0
        internal void OnTargetChanged(TargetChangedArgs e)
        {
            Logger.Write(LogLevel.Target, "Changed Object: {0}", MakeStringSingleLine(e.newObject.DebugString));

            LastChangeOfTarget = DateTime.Now;
            if (Bot.Settings.EnableWaitAfterContainers && CurrentTarget.targetType == TargetType.Container)
            {
                //Herbfunks delay for container loot.
                lastHadContainerAsTarget = DateTime.Now;

                if (CurrentTarget.IsResplendantChest)
                    lastHadRareChestAsTarget = DateTime.Now;
            }

            // We're sticking to the same target, so update the target's health cache to check for stucks
            if (CurrentTarget.targetType == TargetType.Unit)
            {
                CurrentUnitTarget = (CacheUnit)CurrentTarget;
                //Used to pause after no targets found.
                lastHadUnitInSights = DateTime.Now;

                // And record when we last saw any form of elite
                if (CurrentUnitTarget.IsBoss || CurrentUnitTarget.IsEliteRareUnique || CurrentUnitTarget.IsTreasureGoblin)
                    lastHadEliteUnitInSights = DateTime.Now;
            }

            bWholeNewTarget = true;
            bPickNewAbilities = true;

            TargetChangeHandler handler = TargetChanged;
            if (handler != null)
            {
                handler(this, e);
            }
        }
Ejemplo n.º 10
0
        internal void OnTargetChanged(TargetChangedArgs e)
        {
            Logger.Write(LogLevel.Target, "Changed Object: {0}", MakeStringSingleLine(e.newObject.DebugString));

            LastChangeOfTarget = DateTime.Now;

            FleeingLastTarget               = false;
            AvoidanceLastTarget             = false;
            CurrentUnitTarget               = null;
            FunkyGame.Hero.Class.PowerPrime = FunkyGame.Hero.Class.DefaultAttack;

            if (CurrentTarget.targetType == TargetType.Container && FunkyBaseExtension.Settings.General.EnableWaitAfterContainers)
            {
                //Herbfunks delay for container loot.
                lastHadContainerAsTarget = DateTime.Now;

                if (CurrentTarget.IsResplendantChest)
                {
                    lastHadRareChestAsTarget = DateTime.Now;
                }
            }
            else if (CurrentTarget.targetType == TargetType.Unit)
            {
                CurrentUnitTarget = (CacheUnit)CurrentTarget;
                //Used to pause after no targets found.
                lastHadUnitInSights = DateTime.Now;

                // And record when we last saw any form of elite
                if (CurrentUnitTarget.IsBoss || CurrentUnitTarget.IsEliteRareUnique || CurrentUnitTarget.IsTreasureGoblin)
                {
                    lastHadEliteUnitInSights = DateTime.Now;
                }
            }
            else if (CurrentTarget.targetType == TargetType.Avoidance)
            {
                LastAvoidanceMovement = DateTime.Now;
                AvoidanceLastTarget   = true;
            }
            else if (CurrentTarget.targetType.Value == TargetType.Fleeing)
            {
                LastFleeAction    = DateTime.Now;
                FleeingLastTarget = true;
            }
            else if (CurrentTarget.targetType.Value == TargetType.Item)
            {
                //Reset Item Vars
                FunkyGame.Targeting.Cache.recheckCount            = 0;
                FunkyGame.Targeting.Cache.reCheckedFinished       = false;
                FunkyGame.Targeting.Cache.CheckItemLootStackCount = 0;
                FunkyGame.Targeting.Cache.ShouldCheckItemLooted   = false;
            }

            bWholeNewTarget   = true;
            bPickNewAbilities = true;

            TargetChangeHandler handler = TargetChanged;

            if (handler != null)
            {
                handler(this, e);
            }
        }