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); }
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); }