public void SetAlternative(Priority priority, Behaviour.ISlashAlternative alternate)
        {
            if (!mAlternatives.Contains(priority))
            {
                mAlternatives.Add(priority, alternate);
                return;
            }

            mAlternatives[priority] = alternate;
        }
        public Behaviour.ISlashAlternative GetAlternate()
        {
            if (!HasAlternate())
            {
                throw new InvalidOperationException("Doesn't have alternates.");
            }

            Behaviour.ISlashAlternative[] alternates = new Behaviour.ISlashAlternative[mAlternatives.Count];
            mAlternatives.Values.CopyTo(alternates, 0);
            return(alternates[0]);
        }