public void QueueEvent(QueueEffectEventArgs ea, IObsManager obsManager, IDungeonMasterApp iDungeonMasterApp)
        {
            CardEvent cardEvent = CardEvent.Create(ea.CardEventName, ea.CardUserName, ea.Args, iDungeonMasterApp);

            if (cardEvent == null)
            {
                System.Diagnostics.Debugger.Break();
                return;
            }

            QueueCardEvents.Enqueue(cardEvent);
        }
示例#2
0
        public static CardEvent Create(string cardEventName, string cardUserName, object[] args, IDungeonMasterApp iDungeonMasterApp)
        {
            // TODO: Create an instance of the correct CardEvent descendant.
            // TODO: Consider an elegant architecture.
            CardEvent result = null;

            if (cardEventName == "Weather")
            {
                result = new ChangeWeatherCardEvent(args);
            }
            else if (cardEventName == "Stampede")
            {
                result = new StampedeCardEvent(args);
            }

            if (result != null)
            {
                result.UserName         = cardUserName;
                result.DungeonMasterApp = iDungeonMasterApp;
            }
            return(result);
        }