Exemplo n.º 1
0
    public override IAState update(GameObject obj)
    {
        float dist = Vector3.Distance(target.transform.position, obj.transform.position);


        if (target == null ||
            (targetAttr != null && !targetAttr.isAlive().GetValueOrDefault(false)) ||
            dist > fromAttr.followLimit)
        {
            // Target is dead or lost
            return(null);
        }
        else if (dist < (fromAttr.arriveDist + (fromCtrl.radius) + (targetCtrl == null ? 0 : targetCtrl.radius)))
        {
            return(nextAction == null ? null : (IAState)nextAction.Invoke(target));
        }

//        obj.transform.LookAt(target.transform.position);/

        Vector3 def = target.transform.position - obj.transform.position;

        obj.transform.position += (def.normalized * fromAttr.velocity * Time.deltaTime);

        return(this);
    }
Exemplo n.º 2
0
 public virtual void Handler(TSource source, TEventArgs eventArgs)
 {
     if (Reference != null && Reference.TryGetTarget(out var instance))
     {
         EventAction?.Invoke(instance, source, eventArgs);
     }
     else
     {
         // Instance surely doesn't survive garbage collections, so passing null for it
         // Don't removed unnecessary delegate parameter for backward compatibility
         DetachAction?.Invoke(null, this);
     }
 }
Exemplo n.º 3
0
    public override IAState update(GameObject obj)
    {
        if ((Time.time - lastTime) > timeToEat)
        {
            var objManager = target.GetComponent <BasicObjectManager>();
            if (objManager)
            {
                objManager.destroy();
            }
            return(nextAction == null ? null : nextAction.Invoke(null));
        }

        fromCtrl.velocity.Set(0f, 0f, 0f);

        return(this);
    }
Exemplo n.º 4
0
    public override IAState update(GameObject obj)
    {
        if (!isInfinite)
        {
            timeRemaining -= Time.deltaTime;

            if (timeRemaining < 0)
            {
                return(nextAction == null ? null : nextAction.Invoke(from));
            }
        }
        if (animatorController != null)
        {
            animatorController.setForward(0);
        }
        return(this);
    }
Exemplo n.º 5
0
        //Todo! Логирование ошибок при отправке
        public void StartEventExecution()
        {
            Task.Run(async delegate
            {
                WriteLogMessage($"Init {EventName}");

                var delayTime = NotificationTaskEvent.ResolveDate - NiisAmbientContext.Current.DateTimeProvider.Now;
                if (delayTime > TimeSpan.Zero)
                {
                    await Task.Delay(delayTime, _workflowEventCancellationToken.Token);
                }

                EventAction?.Invoke(NotificationTaskEvent);

                NotificationAutoEvents.RemoveEvent(EventName);

                WriteLogMessage($"test {EventName}");
            }, _workflowEventCancellationToken.Token);

            WriteLogMessage($"new event start {EventName}");
        }
        /// <summary>
        /// Запускает выполняемую задачу. Задача ждет своего времени исполнения и запускает определенный рабочий процесс. После выполнения, задача помечается как "выполненная".
        /// <para></para>
        /// Если задача просрочена, она выполняется сразу же после запуска.
        /// </summary>
        public void StartEventExecution()
        {
            Task.Run(async delegate
            {
                WriteLogMessage($"Init {EventName}");

                var delayTime = WorkflowTaskEvent.ResolveDate - NiisAmbientContext.Current.DateTimeProvider.Now;
                if (delayTime > TimeSpan.Zero)
                {
                    await Task.Delay(delayTime, _workflowEventCancellationToken.Token);
                }

                EventAction?.Invoke(WorkflowTaskEvent);

                WorkflowAutoEvents.RemoveEvent(EventName);

                _executor.GetCommand <UpdateMarkAsExecutedWorkflowTaskEvenstByIdCommand>().Process(r => r.Execute(WorkflowTaskEvent.Id));

                WriteLogMessage($"Test {EventName}");
            }, _workflowEventCancellationToken.Token);

            WriteLogMessage($"New event start {EventName}");
        }
Exemplo n.º 7
0
 public void Press(int data) => EventAction?.Invoke(this, new MyArgs {
     DataAboutEvent = data
 });
Exemplo n.º 8
0
 public void On(string name, EventAction <string, string> callBack)
 {
     base.On(name,
             (data, respond) => { callBack.Invoke(Cast(data), value => { respond.Invoke(Cast(value)); }); });
 }