Exemplo n.º 1
0
        public void NotifyManagerRemove(PowerupManager manager)
        {
            if (Animator != null && AddedBoolHash != 0)
            {
                var logWarnings = Animator.logWarnings;
                Animator.logWarnings = false;
                Animator.SetBool(AddedBoolHash, false);
                Animator.logWarnings = logWarnings;
            }

            if (Dependents.Count > 0)
            {
                foreach (var dependent in Dependents)
                {
                    if (dependent.Manager == Manager)
                    {
                        dependent.Remove();
                    }
                }
            }

            OnManagerRemove();

            Manager     = null;
            MoveManager = null;
            Controller  = null;

            OnRemove.Invoke();
            Destroy(this);
        }
Exemplo n.º 2
0
        public void NotifyManagerAdd(PowerupManager manager)
        {
            Manager     = manager;
            MoveManager = manager.MoveManager;
            Controller  = manager.Controller;
            if (Controller != null && Animator == null)
            {
                Animator = Controller.Animator;
            }
            if (Duration > 0f)
            {
                TimeRemaining = Duration;
            }

            if (Animator != null && AddedBoolHash != 0)
            {
                var logWarnings = Animator.logWarnings;
                Animator.logWarnings = false;
                Animator.SetBool(AddedBoolHash, true);
                Animator.logWarnings = logWarnings;
            }

            OnManagerAdd();
            OnAdd.Invoke();
        }
Exemplo n.º 3
0
        public void NotifyManagerAdd(MoveManager manager)
        {
            enabled = true;

            Manager        = manager;
            PowerupManager = manager.GetComponent <PowerupManager>();
            Controller     = manager.Controller;
            if (!Animator && Controller)
            {
                Animator = Controller.Animator;
            }

            // Pretend the move is available to see if it wants to be performed on init
            CurrentState = State.Available;

            OnManagerAdd();
            OnAdd.Invoke();

            // If it performed itself we can exit here
            if (Active)
            {
                return;
            }

            if (!Available)
            {
                CurrentState = State.Unavailable;
            }
        }
Exemplo n.º 4
0
 public void Add(PowerupManager manager)
 {
     manager.Add(this);
 }