Exemple #1
0
        public bool PushAI(IGameAI ai)
        {
            if (AIs.Count == 0)
            {
                AIs.Push(ai);
                if (ai.Activate(this))
                    return true;
                else
                {
                    AIs.Pop();
                    return false;
                }
            }

            var currentAI = AIs.Peek();
            if (currentAI.AllowPause())
            {
                if (ai.GetType() == currentAI.GetType())
                    return false;
                else
                {
                    currentAI.Pause();
                    AIs.Push(ai);
                    if (ai.Activate(this))
                        return true;
                    else
                    {
                        AIs.Pop();
                        currentAI.Resume();
                        return false;
                    }
                }
            }
            else
                return false;
        }