public void SwitchAction(ISpecialAction oldAction, ISpecialAction newAction)
        {
            WindowController c = windows.Find(w => w.Controller.Action == oldAction);

            c.Controller = new ActionControllerImpl(mgr, newAction);
            c.Window.AttachNewController(c.Controller);

            actions.Remove(oldAction);
            actions.Add(newAction);
        }
        public void Update(float tpf)
        {
            mgr.GetCurrentPlayer().ShowGold();
            actions.ForEach(action => action.Update(tpf));

            for (int i = 0; i < windows.Count; ++i)
            {
                WindowController windowController = windows[i];
                windowController.Controller.Update(windowController.Window, tpf);
                if (windowController.Controller.Action.IsReady())
                {
                    windowController.Window.Activate();
                }
                else
                {
                    windowController.Window.Deactivate();
                }
            }
        }