Beispiel #1
0
 public SkuckCardGameMainGameClass(IGamePackageResolver mainContainer,
                                   IEventAggregator aggregator,
                                   BasicData basicData,
                                   TestOptions test,
                                   SkuckCardGameVMData currentMod,
                                   IMultiplayerSaveState state,
                                   IAsyncDelayer delay,
                                   ICardInfo <SkuckCardGameCardInformation> cardInfo,
                                   CommandContainer command,
                                   SkuckCardGameGameContainer gameContainer,
                                   ITrickData trickData,
                                   ITrickPlay trickPlay,
                                   IAdvancedTrickProcesses aTrick,
                                   IBidProcesses bidProcesses,
                                   IPlayChoiceProcesses choiceProcesses,
                                   ITrumpProcesses trumpProcesses
                                   )
     : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer, trickData, trickPlay)
 {
     _model           = currentMod;
     _command         = command;
     _gameContainer   = gameContainer;
     _aTrick          = aTrick;
     _bidProcesses    = bidProcesses;
     _choiceProcesses = choiceProcesses;
     _trumpProcesses  = trumpProcesses;
     _gameContainer.ComputerTurnAsync     = ComputerTurnAsync;
     _gameContainer.StartNewTrickAsync    = StartNewTrickAsync;
     _gameContainer.ShowHumanCanPlayAsync = ShowHumanCanPlayAsync;
 }
Beispiel #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="InstanceManager"/> class.
        /// </summary>
        /// <param name="instanceFactory">The value of <see cref="instanceFactory"/>.</param>
        /// <param name="ioManager">The value of <paramref name="ioManager"/>.</param>
        /// <param name="databaseContextFactory">The value of <paramref name="databaseContextFactory"/>.</param>
        /// <param name="assemblyInformationProvider">The value of <see cref="assemblyInformationProvider"/>.</param>
        /// <param name="jobManager">The value of <see cref="jobManager"/>.</param>
        /// <param name="serverControl">The value of <see cref="serverControl"/>.</param>
        /// <param name="systemIdentityFactory">The value of <see cref="systemIdentityFactory"/>.</param>
        /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/>.</param>
        /// <param name="serverPortProvider">The value of <see cref="serverPortProvider"/>.</param>
        /// <param name="swarmService">The value of <see cref="swarmService"/>.</param>
        /// <param name="generalConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="generalConfiguration"/>.</param>
        /// <param name="swarmConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="swarmConfiguration"/>.</param>
        /// <param name="logger">The value of <see cref="logger"/>.</param>
        public InstanceManager(
            IInstanceFactory instanceFactory,
            IIOManager ioManager,
            IDatabaseContextFactory databaseContextFactory,
            IAssemblyInformationProvider assemblyInformationProvider,
            IJobManager jobManager,
            IServerControl serverControl,
            ISystemIdentityFactory systemIdentityFactory,
            IAsyncDelayer asyncDelayer,
            IServerPortProvider serverPortProvider,
            ISwarmService swarmService,
            IOptions <GeneralConfiguration> generalConfigurationOptions,
            IOptions <SwarmConfiguration> swarmConfigurationOptions,
            ILogger <InstanceManager> logger)
        {
            this.instanceFactory             = instanceFactory ?? throw new ArgumentNullException(nameof(instanceFactory));
            this.ioManager                   = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
            this.databaseContextFactory      = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
            this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
            this.jobManager                  = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
            this.serverControl               = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
            this.systemIdentityFactory       = systemIdentityFactory ?? throw new ArgumentNullException(nameof(systemIdentityFactory));
            this.asyncDelayer                = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
            this.serverPortProvider          = serverPortProvider ?? throw new ArgumentNullException(nameof(serverPortProvider));
            this.swarmService                = swarmService ?? throw new ArgumentNullException(nameof(swarmService));
            generalConfiguration             = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
            swarmConfiguration               = swarmConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(swarmConfigurationOptions));
            this.logger = logger ?? throw new ArgumentNullException(nameof(logger));

            instances      = new Dictionary <long, InstanceContainer>();
            bridgeHandlers = new Dictionary <string, IBridgeHandler>();
            readyTcs       = new TaskCompletionSource <object>();
            instanceStateChangeSemaphore = new SemaphoreSlim(1);
        }
Beispiel #3
0
 public DiceGameClass(
     IGamePackageResolver mainContainer,
     IEventAggregator aggregator,
     BasicData basicData,
     TestOptions test,
     IBasicDiceGamesData <D> currentMod,
     IMultiplayerSaveState state,
     IAsyncDelayer delay,
     CommandContainer command,
     BasicGameContainer <P, S> gameContainer,
     StandardRollProcesses <D, P> roller
     ) : base(
         mainContainer,
         aggregator,
         basicData,
         test,
         currentMod,
         state,
         delay,
         command,
         gameContainer)
 {
     _model = currentMod;
     Roller = roller;
     Roller.CurrentPlayer                = (() => SingleInfo !);
     Roller.AfterRollingAsync            = AfterRollingAsync;
     Roller.AfterSelectUnselectDiceAsync = AfterSelectUnselectDiceAsync;
     //not sure about the before roll and whether it can roll (iffy).
 }
        public BasicGameClass(IGamePackageResolver mainContainer,
                              IEventAggregator aggregator,
                              BasicData basicData,
                              TestOptions test,
                              IViewModelData currentMod,
                              IMultiplayerSaveState state,
                              IAsyncDelayer delay,
                              CommandContainer command,
                              BasicGameContainer <P, S> gameContainer
                              )
        {
            MainContainer                   = mainContainer;
            Aggregator                      = aggregator;
            BasicData                       = basicData;
            Test                            = test;
            _currentMod                     = currentMod;
            State                           = state;
            Delay                           = delay;
            _command                        = command;
            _gameContainer                  = gameContainer;
            SaveRoot                        = mainContainer.Resolve <S>(); //i think this would be fine (?)
            PlayerList                      = SaveRoot.PlayerList;
            gameContainer.EndTurnAsync      = EndTurnAsync;
            gameContainer.ContinueTurnAsync = ContinueTurnAsync;
            gameContainer.ShowWinAsync      = ShowWinAsync;
            gameContainer.StartNewTurnAsync = StartNewTurnAsync;
            gameContainer.SaveStateAsync    = SaveStateAsync;

            //if i need anything else, rethink.
            Network = gameContainer.Network;
            Check   = gameContainer.Check;
        }
Beispiel #5
0
 public RageCardGameMainGameClass(IGamePackageResolver mainContainer,
                                  IEventAggregator aggregator,
                                  BasicData basicData,
                                  TestOptions test,
                                  RageCardGameVMData currentMod,
                                  IMultiplayerSaveState state,
                                  IAsyncDelayer delay,
                                  ICardInfo <RageCardGameCardInformation> cardInfo,
                                  CommandContainer command,
                                  RageCardGameGameContainer gameContainer,
                                  ITrickData trickData,
                                  ITrickPlay trickPlay,
                                  IAdvancedTrickProcesses aTrick,
                                  IColorProcesses colorProcesses,
                                  IBidProcesses bidProcesses,
                                  RageDelgates delgates
                                  )
     : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer, trickData, trickPlay)
 {
     _model                  = currentMod;
     _command                = command;
     _gameContainer          = gameContainer;
     _aTrick                 = aTrick;
     _colorProcesses         = colorProcesses;
     _bidProcesses           = bidProcesses;
     _delgates               = delgates;
     delgates.CardsToPassOut = (() => SaveRoot.CardsToPassOut);
 }
Beispiel #6
0
        /// <summary>
        /// Construct an <see cref="InstanceManager"/>
        /// </summary>
        /// <param name="instanceFactory">The value of <see cref="instanceFactory"/></param>
        /// <param name="ioManager">The value of <paramref name="ioManager"/></param>
        /// <param name="databaseContextFactory">The value of <paramref name="databaseContextFactory"/></param>
        /// <param name="assemblyInformationProvider">The value of <see cref="assemblyInformationProvider"/></param>
        /// <param name="jobManager">The value of <see cref="jobManager"/></param>
        /// <param name="serverControl">The value of <see cref="serverControl"/></param>
        /// <param name="systemIdentityFactory">The value of <see cref="systemIdentityFactory"/>.</param>
        /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/>.</param>
        /// <param name="generalConfigurationOptions">The <see cref="IOptions{TOptions}"/> containing the value of <see cref="generalConfiguration"/>.</param>
        /// <param name="logger">The value of <see cref="logger"/></param>
        public InstanceManager(
            IInstanceFactory instanceFactory,
            IIOManager ioManager,
            IDatabaseContextFactory databaseContextFactory,
            IAssemblyInformationProvider assemblyInformationProvider,
            IJobManager jobManager,
            IServerControl serverControl,
            ISystemIdentityFactory systemIdentityFactory,
            IAsyncDelayer asyncDelayer,
            IOptions <GeneralConfiguration> generalConfigurationOptions,
            ILogger <InstanceManager> logger)
        {
            this.instanceFactory             = instanceFactory ?? throw new ArgumentNullException(nameof(instanceFactory));
            this.ioManager                   = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
            this.databaseContextFactory      = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
            this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
            this.jobManager                  = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
            this.serverControl               = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
            this.systemIdentityFactory       = systemIdentityFactory ?? throw new ArgumentNullException(nameof(systemIdentityFactory));
            this.asyncDelayer                = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
            generalConfiguration             = generalConfigurationOptions?.Value ?? throw new ArgumentNullException(nameof(generalConfigurationOptions));
            this.logger = logger ?? throw new ArgumentNullException(nameof(logger));

            serverControl.RegisterForRestart(this);

            instances      = new Dictionary <long, IInstance>();
            bridgeHandlers = new Dictionary <string, IBridgeHandler>();
            readyTcs       = new TaskCompletionSource <object>();
        }
 public ChessGameContainer(
     BasicData basicData,
     TestOptions test,
     IGameInfo gameInfo,
     IAsyncDelayer delay,
     IEventAggregator aggregator,
     CommandContainer command,
     IGamePackageResolver resolver,
     RandomGenerator random) : base(basicData,
                                    test,
                                    gameInfo,
                                    delay,
                                    aggregator,
                                    command,
                                    resolver,
                                    random)
 {
     Animates = new AnimateSkiaSharpGameBoard();
     if (BasicData.IsXamarinForms == false)
     {
         Animates.LongestTravelTime = 200;
     }
     else
     {
         Animates.LongestTravelTime = 75;
     }
     CurrentCrowned = false;
     CurrentPiece   = EnumPieceType.None;
 }
Beispiel #8
0
 public MancalaMainGameClass(IGamePackageResolver resolver,
                             IEventAggregator aggregator,
                             BasicData basic,
                             TestOptions test,
                             MancalaVMData model,
                             IMultiplayerSaveState state,
                             IAsyncDelayer delay,
                             CommandContainer command,
                             GameBoardProcesses gameBoard,
                             BasicGameContainer <MancalaPlayerItem, MancalaSaveInfo> gameContainer
                             ) : base(resolver, aggregator, basic, test, model, state, delay, command, gameContainer)
 {
     _model                       = model;
     _command                     = command;
     _gameBoard                   = gameBoard;
     _gameBoard.PlayerList        = GetPlayerList;
     _gameBoard.SingleInfo        = GetCurrentPlayer;
     _gameBoard.SetCurrentPlayer  = ((x) => SingleInfo = x);
     _gameBoard.EndTurnAsync      = EndTurnAsync;
     _gameBoard.WhoTurn           = GetWhoTurn;
     _gameBoard.ContinueTurnAsync = ContinueTurnAsync;
     _gameBoard.ShowWinAsync      = ShowWinAsync;
     _gameBoard.ShowTieAsync      = ShowTieAsync;
     _gameBoard.SaveRoot          = GetSaveInfo;
     GameBoardGraphicsCP.CreateSpaceList(_model);
 }
 public RookMainGameClass(IGamePackageResolver mainContainer,
                          IEventAggregator aggregator,
                          BasicData basicData,
                          TestOptions test,
                          RookVMData currentMod,
                          IMultiplayerSaveState state,
                          IAsyncDelayer delay,
                          ICardInfo <RookCardInformation> cardInfo,
                          CommandContainer command,
                          RookGameContainer gameContainer,
                          ITrickData trickData,
                          ITrickPlay trickPlay,
                          IAdvancedTrickProcesses aTrick,
                          IBidProcesses bidProcesses,
                          ITrumpProcesses trumpProcesses,
                          INestProcesses nestProcesses
                          )
     : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer, trickData, trickPlay)
 {
     _model          = currentMod;
     _command        = command;
     _gameContainer  = gameContainer;
     _aTrick         = aTrick;
     _bidProcesses   = bidProcesses;
     _trumpProcesses = trumpProcesses;
     _nestProcesses  = nestProcesses;
     _gameContainer.StartNewTrickAsync = StartNewTrickAsync;
     _gameContainer.StartingStatus     = (() => this.StartingStatus());
 }
Beispiel #10
0
        /// <summary>
        /// Construct an <see cref="IdentityCache"/>
        /// </summary>
        /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/></param>
        /// <param name="logger">The value of <see cref="logger"/></param>
        public IdentityCache(IAsyncDelayer asyncDelayer, ILogger <IdentityCache> logger)
        {
            this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
            this.logger       = logger ?? throw new ArgumentNullException(nameof(logger));

            cachedIdentities = new Dictionary <long, IdentityCacheObject>();
        }
 public XactikaMainGameClass(IGamePackageResolver mainContainer,
                             IEventAggregator aggregator,
                             BasicData basicData,
                             TestOptions test,
                             XactikaVMData currentMod,
                             IMultiplayerSaveState state,
                             IAsyncDelayer delay,
                             ICardInfo <XactikaCardInformation> cardInfo,
                             CommandContainer command,
                             XactikaGameContainer gameContainer,
                             ITrickData trickData,
                             ITrickPlay trickPlay,
                             IAdvancedTrickProcesses aTrick,
                             IBidProcesses bidProcesses,
                             IShapeProcesses shapeProcesses,
                             IModeProcesses modeProcesses
                             )
     : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer, trickData, trickPlay)
 {
     _model          = currentMod;
     _command        = command;
     _gameContainer  = gameContainer;
     _aTrick         = aTrick;
     _bidProcesses   = bidProcesses;
     _shapeProcesses = shapeProcesses;
     _modeProcesses  = modeProcesses;
     _gameContainer.StartNewTrickAsync    = StartNewTrickAsync;
     _gameContainer.ShowHumanCanPlayAsync = ShowHumanCanPlayAsync;
     _gameContainer.ShowTurn = (() => this.ShowTurn());
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="BasicWatchdog"/> <see langword="class"/>.
 /// </summary>
 /// <param name="chat">The <see cref="IChatManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="sessionControllerFactory">The <see cref="ISessionControllerFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="dmbFactory">The <see cref="IDmbFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="reattachInfoHandler">The <see cref="IReattachInfoHandler"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="databaseContextFactory">The <see cref="IDatabaseContextFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="jobManager">The <see cref="IJobManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="serverControl">The <see cref="IServerControl"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="asyncDelayer">The <see cref="IAsyncDelayer"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="logger">The <see cref="ILogger"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="initialLaunchParameters">The <see cref="DreamDaemonLaunchParameters"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="instance">The <see cref="Api.Models.Instance"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="autoStart">The autostart value for the <see cref="WatchdogBase"/>.</param>
 public BasicWatchdog(
     IChatManager chat,
     ISessionControllerFactory sessionControllerFactory,
     IDmbFactory dmbFactory,
     IReattachInfoHandler reattachInfoHandler,
     IDatabaseContextFactory databaseContextFactory,
     IJobManager jobManager,
     IServerControl serverControl,
     IAsyncDelayer asyncDelayer,
     ILogger <BasicWatchdog> logger,
     DreamDaemonLaunchParameters initialLaunchParameters,
     Api.Models.Instance instance,
     bool autoStart)
     : base(
         chat,
         sessionControllerFactory,
         dmbFactory,
         reattachInfoHandler,
         databaseContextFactory,
         jobManager,
         serverControl,
         asyncDelayer,
         logger,
         initialLaunchParameters,
         instance,
         autoStart)
 {
 }
        /// <summary>
        /// Construct a <see cref="TokenFactory"/>
        /// </summary>
        /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/></param>
        /// <param name="cryptographySuite">The <see cref="ICryptographySuite"/> used for generating the <see cref="ValidationParameters"/></param>
        /// <param name="assemblyInformationProvider">The <see cref="IAssemblyInformationProvider"/> used to generate the issuer name.</param>
        public TokenFactory(
            IAsyncDelayer asyncDelayer,
            ICryptographySuite cryptographySuite,
            IAssemblyInformationProvider assemblyInformationProvider)
        {
            ValidationParameters = new TokenValidationParameters
            {
                ValidateIssuerSigningKey = true,
                IssuerSigningKey         = new SymmetricSecurityKey(cryptographySuite.GetSecureBytes(TokenSigningKeyByteAmount)),

                ValidateIssuer = true,
                ValidIssuer    = assemblyInformationProvider.Name.Name,

                ValidateLifetime = true,
                ValidateAudience = true,
                ValidAudience    = typeof(Token).Assembly.GetName().Name,

                ClockSkew = TimeSpan.FromMinutes(TokenClockSkewMinutes),

                RequireSignedTokens = true,

                RequireExpirationTime = true
            };

            this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
        }
 public ThinkTwiceMainGameClass(IGamePackageResolver mainContainer,
                                IEventAggregator aggregator,
                                BasicData basicData,
                                TestOptions test,
                                ThinkTwiceVMData currentMod,
                                IMultiplayerSaveState state,
                                IAsyncDelayer delay,
                                CommandContainer command,
                                ThinkTwiceGameContainer gameContainer,
                                StandardRollProcesses <SimpleDice, ThinkTwicePlayerItem> roller,
                                ScoreLogic scoreLogic,
                                CategoriesDice categoriesDice,
                                Multiplier multiplier
                                ) :
     base(mainContainer, aggregator, basicData, test, currentMod, state, delay, command, gameContainer, roller)
 {
     _model                        = currentMod; //if not needed, take this out and the _model variable.
     _scoreLogic                   = scoreLogic;
     _categoriesDice               = categoriesDice;
     _multiplier                   = multiplier;
     roller.BeforeRollingAsync     = BeforeRollingAsync;
     roller.CanRollAsync           = CanRollAsync;
     gameContainer.ScoreClickAsync = ScoreClickedAsync;
     gameContainer.CategoryClicked = CategoryClickedAsync;
 }
Beispiel #15
0
        /// <summary>
        /// Construct a <see cref="ChatManager"/>
        /// </summary>
        /// <param name="providerFactory">The value of <see cref="providerFactory"/></param>
        /// <param name="ioManager">The value of <see cref="ioManager"/></param>
        /// <param name="commandFactory">The value of <see cref="commandFactory"/></param>
        /// <param name="serverControl">The <see cref="IServerControl"/> to populate <see cref="restartRegistration"/> with</param>
        /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/></param>
        /// <param name="loggerFactory">The value of <see cref="loggerFactory"/></param>
        /// <param name="logger">The value of <see cref="logger"/></param>
        /// <param name="initialChatBots">The <see cref="IEnumerable{T}"/> used to populate <see cref="activeChatBots"/></param>
        public ChatManager(IProviderFactory providerFactory, IIOManager ioManager, ICommandFactory commandFactory, IServerControl serverControl, IAsyncDelayer asyncDelayer, ILoggerFactory loggerFactory, ILogger <ChatManager> logger, IEnumerable <Models.ChatBot> initialChatBots)
        {
            this.providerFactory = providerFactory ?? throw new ArgumentNullException(nameof(providerFactory));
            this.ioManager       = ioManager ?? throw new ArgumentNullException(nameof(ioManager));
            this.commandFactory  = commandFactory ?? throw new ArgumentNullException(nameof(commandFactory));
            if (serverControl == null)
            {
                throw new ArgumentNullException(nameof(serverControl));
            }
            this.asyncDelayer  = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
            this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
            this.logger        = logger ?? throw new ArgumentNullException(nameof(logger));
            activeChatBots     = initialChatBots?.ToList() ?? throw new ArgumentNullException(nameof(initialChatBots));

            restartRegistration = serverControl.RegisterForRestart(this);

            synchronizationLock = new object();

            builtinCommands    = new Dictionary <string, ICommand>();
            providers          = new Dictionary <long, IProvider>();
            mappedChannels     = new Dictionary <ulong, ChannelMapping>();
            trackingContexts   = new List <IChatTrackingContext>();
            handlerCts         = new CancellationTokenSource();
            connectionsUpdated = new TaskCompletionSource <object>();
            channelIdCounter   = 1;
        }
 public BladesOfSteelMainGameClass(IGamePackageResolver mainContainer,
                                   IEventAggregator aggregator,
                                   BasicData basicData,
                                   TestOptions test,
                                   BladesOfSteelVMData currentMod,
                                   IMultiplayerSaveState state,
                                   IAsyncDelayer delay,
                                   ICardInfo <RegularSimpleCard> cardInfo,
                                   CommandContainer command,
                                   BladesOfSteelGameContainer gameContainer,
                                   IFaceoffProcesses processes,
                                   ComputerAI ai,
                                   BladesOfSteelScreenDelegates delegates
                                   )
     : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer)
 {
     _model         = currentMod;
     _command       = command;
     _gameContainer = gameContainer;
     _processes     = processes;
     _ai            = ai;
     _delegates     = delegates;
     _gameContainer.GetAttackStage  = GetAttackStage;
     _gameContainer.GetDefenseStage = GetDefenseStage;
 }
 public ThreeLetterFunMainGameClass(IGamePackageResolver resolver,
                                    IEventAggregator aggregator,
                                    BasicData basic,
                                    TestOptions test,
                                    ThreeLetterFunVMData model,
                                    IMultiplayerSaveState state,
                                    IAsyncDelayer delay,
                                    CommandContainer command,
                                    GameBoard gameboard,
                                    GlobalHelpers global,
                                    IListShuffler <ThreeLetterFunCardData> deck,
                                    BasicGameContainer <ThreeLetterFunPlayerItem, ThreeLetterFunSaveInfo> gameContainer
                                    ) : base(resolver, aggregator, basic, test, model, state, delay, command, gameContainer)
 {
     _test              = test;
     _model             = model;
     _command           = command;
     _gameboard         = gameboard;
     _global            = global;
     _deck              = deck;
     _gameboard.SetSelf = (() =>
     {
         SingleInfo = PlayerList.GetSelf();
     });
     _gameboard.SingleInfo = (() => SingleInfo !);
     _gameboard.SaveRoot   = (() => SaveRoot);
 }
 public BoardDiceGameClass(
     IGamePackageResolver mainContainer,
     IEventAggregator aggregator,
     BasicData basicData,
     TestOptions test,
     IDiceBoardGamesData currentMod,
     IMultiplayerSaveState state,
     IAsyncDelayer delay,
     CommandContainer command,
     BasicGameContainer <P, S> gameContainer,
     StandardRollProcesses <SimpleDice, P> roller
     ) : base(
         mainContainer,
         aggregator,
         basicData,
         test,
         currentMod,
         state,
         delay,
         command,
         gameContainer)
 {
     _model = currentMod;
     Roller = roller;
     Roller.AfterRollingAsync            = AfterRollingAsync;
     Roller.AfterSelectUnselectDiceAsync = AfterSelectUnselectDiceAsync;
     Roller.CurrentPlayer = (() => SingleInfo !);
 }
Beispiel #19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="BasicWatchdog"/> <see langword="class"/>.
 /// </summary>
 /// <param name="chat">The <see cref="IChatManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="sessionControllerFactory">The <see cref="ISessionControllerFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="dmbFactory">The <see cref="IDmbFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="sessionPersistor">The <see cref="ISessionPersistor"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="jobManager">The <see cref="IJobManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="serverControl">The <see cref="IServerControl"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="asyncDelayer">The <see cref="IAsyncDelayer"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="diagnosticsIOManager">The <see cref="IIOManager"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="eventConsumer">The <see cref="IEventConsumer"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="remoteDeploymentManagerFactory">The <see cref="IRemoteDeploymentManagerFactory"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="logger">The <see cref="ILogger"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="initialLaunchParameters">The <see cref="DreamDaemonLaunchParameters"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="instance">The <see cref="Api.Models.Instance"/> for the <see cref="WatchdogBase"/>.</param>
 /// <param name="autoStart">The autostart value for the <see cref="WatchdogBase"/>.</param>
 public BasicWatchdog(
     IChatManager chat,
     ISessionControllerFactory sessionControllerFactory,
     IDmbFactory dmbFactory,
     ISessionPersistor sessionPersistor,
     IJobManager jobManager,
     IServerControl serverControl,
     IAsyncDelayer asyncDelayer,
     IIOManager diagnosticsIOManager,
     IEventConsumer eventConsumer,
     IRemoteDeploymentManagerFactory remoteDeploymentManagerFactory,
     ILogger <BasicWatchdog> logger,
     DreamDaemonLaunchParameters initialLaunchParameters,
     Api.Models.Instance instance,
     bool autoStart)
     : base(
         chat,
         sessionControllerFactory,
         dmbFactory,
         sessionPersistor,
         jobManager,
         serverControl,
         asyncDelayer,
         diagnosticsIOManager,
         eventConsumer,
         remoteDeploymentManagerFactory,
         logger,
         initialLaunchParameters,
         instance,
         autoStart)
 {
 }
 /// <summary>
 /// Construct a <see cref="ChatManagerFactory"/>
 /// </summary>
 /// <param name="providerFactory">The value of <see cref="providerFactory"/></param>
 /// <param name="serverControl">The value of <see cref="serverControl"/></param>
 /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/></param>
 /// <param name="loggerFactory">The value of <see cref="loggerFactory"/></param>
 public ChatManagerFactory(IProviderFactory providerFactory, IServerControl serverControl, IAsyncDelayer asyncDelayer, ILoggerFactory loggerFactory)
 {
     this.providerFactory = providerFactory ?? throw new ArgumentNullException(nameof(providerFactory));
     this.serverControl   = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
     this.asyncDelayer    = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
     this.loggerFactory   = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
 }
Beispiel #21
0
 public LifeBoardGameGameContainer(
     BasicData basicData,
     TestOptions test,
     IGameInfo gameInfo,
     IAsyncDelayer delay,
     IEventAggregator aggregator,
     CommandContainer command,
     IGamePackageResolver resolver,
     RandomGenerator random,
     LifeBoardGameVMData model
     ) : base(basicData,
              test,
              gameInfo,
              delay,
              aggregator,
              command,
              resolver,
              random)
 {
     _model = model;
     //go ahead and load up the spacelist right away here.
     LoadSpaceProcesses.PopulateSpaces(this);
     command.ExecutingChanged += Command_ExecutingChanged;
     Pos = new PositionPieces(); //hopefully this simple.
 }
Beispiel #22
0
        /// <summary>
        /// Construct a <see cref="WindowsNetworkPromptReaper"/>
        /// </summary>
        /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/></param>
        /// <param name="logger">The value of <see cref="logger"/></param>
        public WindowsNetworkPromptReaper(IAsyncDelayer asyncDelayer, ILogger <WindowsNetworkPromptReaper> logger)
        {
            this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
            this.logger       = logger ?? throw new ArgumentNullException(nameof(logger));

            registeredProcesses     = new List <IProcess>();
            cancellationTokenSource = new CancellationTokenSource();
        }
Beispiel #23
0
 public Unpeg(IRandomnessHandler randomnessHandler, IChatHelper chatHelper, IBackgroundTaskQueue backgroundTaskQueue, IAsyncDelayer asyncDelayer, ILogger <Unpeg> logger)
 {
     _randomnessHandler   = randomnessHandler;
     _chatHelper          = chatHelper;
     _backgroundTaskQueue = backgroundTaskQueue;
     _asyncDelayer        = asyncDelayer;
     _logger = logger;
 }
 /// <summary>
 /// Construct a <see cref="WatchdogFactory"/>
 /// </summary>
 /// <param name="serverControl">The value of <see cref="serverControl"/></param>
 /// <param name="loggerFactory">The value of <see cref="loggerFactory"/></param>
 /// <param name="databaseContextFactory">The value of <see cref="databaseContextFactory"/></param>
 /// <param name="byondTopicSender">The value of <see cref="byondTopicSender"/></param>
 /// <param name="jobManager">The value of <see cref="jobManager"/></param>
 /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/></param>
 public WatchdogFactory(IServerControl serverControl, ILoggerFactory loggerFactory, IDatabaseContextFactory databaseContextFactory, IByondTopicSender byondTopicSender, IJobManager jobManager, IAsyncDelayer asyncDelayer)
 {
     this.serverControl          = serverControl ?? throw new ArgumentNullException(nameof(serverControl));
     this.loggerFactory          = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     this.databaseContextFactory = databaseContextFactory ?? throw new ArgumentNullException(nameof(databaseContextFactory));
     this.byondTopicSender       = byondTopicSender ?? throw new ArgumentNullException(nameof(byondTopicSender));
     this.jobManager             = jobManager ?? throw new ArgumentNullException(nameof(jobManager));
     this.asyncDelayer           = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
 }
 public BattleshipComputerAI(GameBoardCP gameBoard1,
                             RandomGenerator rs,
                             IAsyncDelayer delay, TestOptions test)
 {
     _gameBoard1 = gameBoard1;
     _rs         = rs; //since we are not unit testing, no problem to just create a new random generator for computer player this time
     _delay      = delay;
     _test       = test;
 }
 /// <summary>
 /// Construct a <see cref="ProviderFactory"/>
 /// </summary>
 /// <param name="assemblyInformationProvider">The value of <see cref="assemblyInformationProvider"/></param>
 /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/></param>
 /// <param name="loggerFactory">The value of <see cref="loggerFactory"/></param>
 public ProviderFactory(
     IAssemblyInformationProvider assemblyInformationProvider,
     IAsyncDelayer asyncDelayer,
     ILoggerFactory loggerFactory)
 {
     this.loggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory));
     this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
     this.assemblyInformationProvider = assemblyInformationProvider ?? throw new ArgumentNullException(nameof(assemblyInformationProvider));
 }
 public PeerMessageListener(
     IAsyncDelayer asyncDelayer,
     IMessageHandler <Message> messageHandler,
     IServerContext serverContext)
 {
     _asyncDelayer   = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
     _messageHandler = messageHandler ?? throw new ArgumentNullException(nameof(messageHandler));
     _serverContext  = serverContext ?? throw new ArgumentNullException(nameof(serverContext));
 }
Beispiel #28
0
 public RollEmGameContainer(BasicData basicData,
                            TestOptions test,
                            IGameInfo gameInfo,
                            IAsyncDelayer delay,
                            IEventAggregator aggregator,
                            CommandContainer command,
                            IGamePackageResolver resolver,
                            RandomGenerator random) : base(basicData, test, gameInfo, delay, aggregator, command, resolver, random)
 {
 }
Beispiel #29
0
        /// <summary>
        /// Initializes a new instance of the <see cref="IrcProvider"/> class.
        /// </summary>
        /// <param name="jobManager">The <see cref="IJobManager"/> for the provider.</param>
        /// <param name="assemblyInformationProvider">The <see cref="IAssemblyInformationProvider"/> to get the <see cref="IAssemblyInformationProvider.VersionString"/> from.</param>
        /// <param name="asyncDelayer">The value of <see cref="asyncDelayer"/>.</param>
        /// <param name="logger">The <see cref="ILogger"/> for the <see cref="Provider"/>.</param>
        /// <param name="chatBot">The <see cref="Models.ChatBot"/> for the <see cref="Provider"/>.</param>
        public IrcProvider(
            IJobManager jobManager,
            IAssemblyInformationProvider assemblyInformationProvider,
            IAsyncDelayer asyncDelayer,
            ILogger <IrcProvider> logger,
            Models.ChatBot chatBot)
            : base(jobManager, logger, chatBot)
        {
            if (assemblyInformationProvider == null)
            {
                throw new ArgumentNullException(nameof(assemblyInformationProvider));
            }

            this.asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));

            var builder = chatBot.CreateConnectionStringBuilder();

            if (builder == null || !builder.Valid || !(builder is IrcConnectionStringBuilder ircBuilder))
            {
                throw new InvalidOperationException("Invalid ChatConnectionStringBuilder!");
            }

            address  = ircBuilder.Address;
            port     = ircBuilder.Port.Value;
            nickname = ircBuilder.Nickname;

            password     = ircBuilder.Password;
            passwordType = ircBuilder.PasswordType;

            client = new IrcFeatures
            {
                SupportNonRfc        = true,
                CtcpUserInfo         = "You are going to play. And I am going to watch. And everything will be just fine...",
                AutoRejoin           = true,
                AutoRejoinOnKick     = true,
                AutoRelogin          = true,
                AutoRetry            = true,
                AutoRetryLimit       = TimeoutSeconds,
                AutoRetryDelay       = TimeoutSeconds,
                ActiveChannelSyncing = true,
                AutoNickHandling     = true,
                CtcpVersion          = assemblyInformationProvider.VersionString,
                UseSsl = ircBuilder.UseSsl.Value,
            };
            if (ircBuilder.UseSsl.Value)
            {
                client.ValidateServerCertificate = true;                 // dunno if it defaults to that or what
            }
            client.OnChannelMessage += Client_OnChannelMessage;
            client.OnQueryMessage   += Client_OnQueryMessage;

            channelIdMap      = new Dictionary <ulong, string>();
            queryChannelIdMap = new Dictionary <ulong, string>();
            channelIdCounter  = 1;
        }
 public TransactionProcessor(
     ITransactionPool transactionPool,
     IVerifier <Transaction> transactionVerifier,
     IRepository repository,
     IAsyncDelayer asyncDelayer)
 {
     _verifiedTransactionPool = transactionPool ?? throw new ArgumentNullException(nameof(transactionPool));
     _transactionVerifier     = transactionVerifier ?? throw new ArgumentNullException(nameof(transactionVerifier));
     _repository   = repository ?? throw new ArgumentNullException(nameof(repository));
     _asyncDelayer = asyncDelayer ?? throw new ArgumentNullException(nameof(asyncDelayer));
 }