Пример #1
0
 void InvokeOnTargetDestroyed(IRangeTarget target)
 {
     try
     {
         TargetDestroyed?.Invoke(this, target);
     }
     catch (Exception e)
     {
         Urho.IO.Log.Write(LogLevel.Debug,
                           $"There was an unexpected exception during the invocation of {nameof(TargetDestroyed)}: {e.Message}");
     }
 }
Пример #2
0
        private void OnTargetDestroyed(TargetTargetDestroyedFirefoxEvent payload)
        {
            string targetId = payload.TargetId;

            if (TargetsMap.TryRemove(targetId, out var target))
            {
                target.DidClose();
                TargetDestroyed?.Invoke(this, new TargetChangedArgs {
                    Target = target
                });
            }
        }
Пример #3
0
        private void DestroyTarget(MessageEventArgs args)
        {
            if (!_targets.ContainsKey(args.MessageData.targetId.ToString()))
            {
                throw new InvalidTargetException("Target should exists before DestroyTarget");
            }

            var target = _targets[args.MessageData.targetId.ToString()];

            if (!target.InitilizedTaskWrapper.Task.IsCompleted)
            {
                target.InitilizedTaskWrapper.SetResult(false);
            }
            _targets.Remove(args.MessageData.targetId.ToString());

            TargetDestroyed?.Invoke(this, new TargetChangedArgs()
            {
                Target = target
            });
        }
Пример #4
0
        private void DestroyTarget(TargetDestroyedResponse e)
        {
            if (!_targets.ContainsKey(e.TargetId))
            {
                throw new InvalidTargetException("Target should exists before DestroyTarget");
            }

            var target = _targets[e.TargetId];

            if (!target.InitilizedTaskWrapper.Task.IsCompleted)
            {
                target.InitilizedTaskWrapper.SetResult(false);
            }
            _targets.Remove(e.TargetId);

            TargetDestroyed?.Invoke(this, new TargetChangedArgs()
            {
                Target = target
            });
        }
Пример #5
0
        private async Task DestroyTargetAsync(TargetDestroyedResponse e)
        {
            if (!TargetsMap.ContainsKey(e.TargetId))
            {
                throw new InvalidTargetException("Target should exists before DestroyTarget");
            }

            var target = TargetsMap[e.TargetId];

            TargetsMap.Remove(e.TargetId);

            target.CloseTaskWrapper.TrySetResult(true);

            if (await target.InitializedTask.ConfigureAwait(false))
            {
                TargetDestroyed?.Invoke(this, new TargetChangedArgs
                {
                    Target = target
                });
            }
        }
Пример #6
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);
            }
        }
Пример #7
0
        private async Task DestroyTargetAsync(TargetDestroyedResponse e)
        {
            if (!_targets.ContainsKey(e.TargetId))
            {
                throw new InvalidTargetException("Target should exists before DestroyTarget");
            }

            var target = _targets[e.TargetId];

            _targets.Remove(e.TargetId);

            if (!target.CloseTaskWrapper.Task.IsCompleted)
            {
                target.CloseTaskWrapper.SetResult(true);
            }
            if (await target.InitializedTask)
            {
                TargetDestroyed?.Invoke(this, new TargetChangedArgs
                {
                    Target = target
                });
            }
        }
Пример #8
0
        public void HandleHit(HitEvent hitEvent)
        {
            HitCount++;


            if (HitCount < BlockSize)
            {
                return;
            }
            else
            {
                foreach (Cell cell in shipCells)
                {
                    if (cell.HitCount == 0)
                    {
                        return;
                    }
                }
                // all cells have been hit, sink the ship
                State = TargetState.Destroyed;
                //raise the event
                TargetDestroyed?.Invoke(this);
            }
        }
Пример #9
0
 internal void OnTargetDestroyed(Browser browser, TargetChangedArgs args) => TargetDestroyed?.Invoke(browser, args);