Exemple #1
0
 public FluxxMainGameClass(IGamePackageResolver mainContainer,
                           IEventAggregator aggregator,
                           BasicData basicData,
                           TestOptions test,
                           FluxxVMData currentMod,
                           IMultiplayerSaveState state,
                           IAsyncDelayer delay,
                           ICardInfo <FluxxCardInformation> cardInfo,
                           CommandContainer command,
                           FluxxGameContainer gameContainer,
                           IGiveTaxationProcesses giveTaxationProcesses,
                           IEmptyTrashProcesses emptyTrashProcesses,
                           IPlayProcesses playProcesses,
                           ActionContainer actionContainer,
                           KeeperContainer keeperContainer,
                           FluxxDelegates delegates,
                           IShowActionProcesses showActionProcesses,
                           IDiscardProcesses discardProcesses,
                           IRotateTradeHandProcesses rotateTradeHandProcesses,
                           IFinalKeeperProcesses finalKeeperProcesses,
                           IFinalRuleProcesses finalRuleProcesses,
                           IEverybodyOneProcesses everybodyOneProcesses,
                           IDrawUseProcesses drawUseProcesses,
                           IAnalyzeProcesses analyzeProcesses,
                           ILoadActionProcesses loadActionProcesses
                           )
     : base(mainContainer, aggregator, basicData, test, currentMod, state, delay, cardInfo, command, gameContainer)
 {
     _model                        = currentMod;
     _command                      = command;
     _gameContainer                = gameContainer;
     _giveTaxationProcesses        = giveTaxationProcesses;
     _emptyTrashProcesses          = emptyTrashProcesses;
     _playProcesses                = playProcesses;
     _actionContainer              = actionContainer;
     _keeperContainer              = keeperContainer;
     _delegates                    = delegates;
     _showActionProcesses          = showActionProcesses;
     _discardProcesses             = discardProcesses;
     _rotateTradeHandProcesses     = rotateTradeHandProcesses;
     _finalKeeperProcesses         = finalKeeperProcesses;
     _finalRuleProcesses           = finalRuleProcesses;
     _everybodyOneProcesses        = everybodyOneProcesses;
     _drawUseProcesses             = drawUseProcesses;
     _analyzeProcesses             = analyzeProcesses;
     _loadActionProcesses          = loadActionProcesses;
     _model.PlayerHand1.AutoSelect = HandObservable <FluxxCardInformation> .EnumAutoType.SelectAsMany;
 }
        public static async Task PrepActionScreenAsync(this ActionContainer actionContainer, FluxxGameContainer gameContainer, FluxxDelegates delegates, ILoadActionProcesses loadAction)
        {
            actionContainer.Loads++;
            actionContainer.ActionFrameText           = "Action Card Information";
            actionContainer.ButtonChoosePlayerVisible = false;
            actionContainer.OtherHand.Visible         = false; //has to be proven true here too.
            actionContainer.ButtonChooseCardVisible   = false;
            if (delegates.LoadProperActionScreenAsync == null)
            {
                throw new BasicBlankException("Nobody is loading action screen.  Rethink");
            }
            actionContainer.CurrentDetail !.ResetCard();
            if (gameContainer.IsFirstPlayRandom() || gameContainer.CurrentAction == null)
            {
                actionContainer.ActionCategory = EnumActionCategory.FirstRandom; //take a risk.  if hidden bug, then rethink.
                loadAction.LoadFirstRandom();
                await delegates.LoadProperActionScreenAsync(actionContainer);

                return;
            }

            switch (gameContainer.CurrentAction !.Deck)
            {