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); } }
///<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}"); } }
private async void OnBrowserTargetCreated(object sender, TargetChangedArgs e) { var page = await e.Target.PageAsync(); if (page == null) { return; } await OnPageCreatedAsync(page); }
private async void Browser_TargetCreated(object sender, TargetChangedArgs e) { try { var page = await e.Target.PageAsync(); if (page != null) { RunScriptOnPage(page); } } catch { } }
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); } }
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); } }
///<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; }
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); } }
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); } }