Example #1
0
        private void Construct(IGameStatusObserver gameStatusObserver, IGameMaster gameMaster)
        {
            GameStatusObserver = gameStatusObserver.CheckNull();
            GameMaster         = gameMaster.CheckNull();

            GameMaster.OnCompleteGame += OnCompleteGameHandler;
        }
        public override IMessage Process(IGameMaster gameMaster)
        {
            if (PlayerGuid == default(Guid))
            {
                //Console.WriteLine("Unsigned request");
                return(null);
            }

            var optionalSenderId = gameMaster.Authorize(PlayerGuid);

            if (!optionalSenderId.HasValue)
            {
                //Console.WriteLine("Unrecognized player");
                return(null);
            }

            var senderId = optionalSenderId.Value;

            //Console.WriteLine($"Player {senderId} request to {WithPlayerId}");

            if (!gameMaster.PlayerIdExists(WithPlayerId))
            {
                return(new RejectKnowledgeExchangeMessage(senderId, WithPlayerId, null, true));
            }
            gameMaster.EvaluateAction(GetActionInfo());
            return(null);
        }
Example #3
0
        public string[] Process(IGameMaster gameMaster)
        {
            if (gameMaster.GameEndDate > ReceiveDate || gameMaster.GameStartDate > ReceiveDate || gameMaster.IsGameFinished)
            {
                return(null);
            }
            var messages = new  string[] { gameMaster.HandlePlacePieceRequest(this)?.Serialize() };

            gameMaster.LockObject();
            try
            {
                if (gameMaster.IsGameFinished && gameMaster.State == GameMasterState.GameResolved)
                {
                    var newGameMessages = gameMaster.RestartGame();
                    messages = messages.Union(newGameMessages).ToArray();
                }
            }
            catch (Exception e)
            { }
            finally
            {
                gameMaster.UnlockOject();
            }
            return(messages);
        }
Example #4
0
 public string[] Process(IGameMaster gameMaster)
 {
     if (gameMaster.GameEndDate > ReceiveDate || gameMaster.GameStartDate > ReceiveDate || gameMaster.IsGameFinished)
     {
         return(null);
     }
     return(gameMaster.HandleData(this));
 }
Example #5
0
 public string[] Process(IGameMaster gameMaster)
 {
     if (gameMaster.GameEndDate > ReceiveDate || gameMaster.GameStartDate > ReceiveDate || gameMaster.IsGameFinished)
     {
         return(null);
     }
     return(new string[] { gameMaster.HandleAuthorizeKnowledgeExchange(this)?.Serialize() });
 }
Example #6
0
 public string[] Process(IGameMaster gameMaster)
 {
     if (gameMaster.GameEndDate > ReceiveDate || gameMaster.GameStartDate > ReceiveDate || gameMaster.IsGameFinished)
     {
         return(null);
     }
     return(new string[] { gameMaster.HandleSuggestActionResponse(this)?.Serialize() });
 }
Example #7
0
 public string[] Process(IGameMaster gameMaster)
 {
     if (gameMaster.GameEndDate > ReceiveDate || gameMaster.GameStartDate > ReceiveDate || gameMaster.IsGameFinished)
     {
         return(null);
     }
     return(new string[] { gameMaster.HandleDiscoverRequest(this)?.Serialize() });
 }
        public GameMasterController(IGameMaster gm)
        {
            var GM = gm as GameArea.GameMaster;

            logger         = new Logger.Logger(GM);
            clientSocket   = new TcpClient();
            GameMaster     = gm;
            messageManager = new MessageManager(this);
        }
Example #9
0
 public GamePresenter(IBoardView boardView,
                      IGameMaster gameMaster,
                      IBoardModel boardModel,
                      IBoardViewModel boardViewModel)
 {
     BoardView      = boardView.CheckNull();
     GameMaster     = gameMaster.CheckNull();
     BoardModel     = boardModel.CheckNull();
     BoardViewModel = boardViewModel.CheckNull();
 }
Example #10
0
 public AiRandomGameControl(IBoardModel boardModel,
                            IFigureModel figureModel,
                            IGameMaster gameMaster,
                            IGameSwitcherTurn gameSwitcherTurn)
 {
     BoardModel       = boardModel.CheckNull();
     FigureModel      = figureModel.CheckNull();
     GameMaster       = gameMaster.CheckNull();
     GameSwitcherTurn = gameSwitcherTurn.CheckNull();
 }
Example #11
0
        public CompanionManager(IGameMaster gameMaster, DialogueDriver dialogueDriver, HintDriver hintDriver, CompanionDisplay hud, Config config, IMonitor monitor)
        {
            this.GameMaster         = gameMaster ?? throw new ArgumentNullException(nameof(gameMaster));
            this.dialogueDriver     = dialogueDriver ?? throw new ArgumentNullException(nameof(dialogueDriver));
            this.hintDriver         = hintDriver ?? throw new ArgumentNullException(nameof(hintDriver));
            this.Hud                = hud ?? throw new ArgumentNullException(nameof(hud));
            this.monitor            = monitor ?? throw new ArgumentNullException(nameof(monitor));
            this.PossibleCompanions = new Dictionary <string, CompanionStateMachine>();
            this.Config             = config ?? throw new ArgumentNullException(nameof(config));

            this.dialogueDriver.DialogueChanged += this.DialogueDriver_DialogueChanged;
            this.hintDriver.CheckHint           += this.HintDriver_CheckHint;
        }
Example #12
0
 public Player(TeamColour team, PlayerRole role = PlayerRole.member, PlayerSettingsConfiguration settings = null, IPlayerController gameController = null, string _guid = "TEST_GUID", IGameMaster gm = null, ulong id = 0)
 {
     Settings      = settings;
     gameMaster    = gm;
     Team          = team;
     GUID          = _guid;
     Role          = role;
     Location      = new GameArea.GameObjects.Location(0, 0);
     Controller    = gameController;
     State         = AgentState.SearchingForGame;
     LastMoveTaken = MoveType.up;
     ID            = id;
     MyPlayerKnowledgeExchangeQueue    = new List <KnowledgeExchangeRequestAgent>();
     OtherPlayerKnowledgeExchangeQueue = new List <KnowledgeExchangeRequestAgent>();
 }
Example #13
0
        public virtual void Initialize()
        {
            GameTime = new GameTime();

            GameBoard = new GameBoard(800, 800);
            ComponentService = new ComponentService();
            AiStore = new ConcurrentMemoryStore<string, IArtificialIntelligence>();
            MoveUnitService = new MoveUnitService(ComponentService,AiStore);

            Agent = new Agent(new EventValidationService(GameBoard, ComponentService), ComponentService, MoveUnitService, AiStore, GameTime);

            Agent.Register<ArtificialIntelligenceSpa>();
            Agent.Register<ArtificialIntelligenceNku>();
            Agent.Register<ArtificialIntelligenceNhu>();
            Agent.Register<ArtificialIntelligenceJfi>();

            GameMaster = new GameMaster(Agent, GameBoard);
        }
Example #14
0
        public void LoadQuests(IGameMaster master)
        {
            foreach (var questRaw in this.GetQuestsSource())
            {
                var         definition = questRaw.Value.Split('/');
                CustomQuest quest;

                if (definition[0] == "Recruitment")
                {
                    quest = new RecruitmentQuest(master, this.contentLoader)
                    {
                        CustomTypeId = RecruitmentQuest.TYPE_ID,
                    };
                }
                else
                {
                    quest = new CustomQuest();
                }

                quest.Name = $"adventure{questRaw.Key}";
                this.SetQuestDetails(quest, definition);
                this.questApi.RegisterQuest(quest);
            }
        }
Example #15
0
        public void SetUp()
        {
            var boardModel = Substitute.For <IBoardModel>();

            GameModel = Substitute.For <IGameModel>();
            var figureModel = Substitute.For <IFigureModel>();
            var figurePostTurnLogicManager = Substitute.For <IFigurePostTurnLogicManager>();
            var gameMoveTurnManager        = Substitute.For <IGameMoveTurnManager>();

            var figureController = new FigureController(figureModel);

            GameMaster = new GameMaster(figureController, boardModel, GameModel, figurePostTurnLogicManager,
                                        gameMoveTurnManager);

            _figure = new FigureEntity(Substitute.For <IFigureDef>(), GameTeam.White);
            _cell   = new BoardCell(BoardCellCol.ColA, BoardCellRow.Row1, 0, 0)
            {
                Figure = _figure
            };
            _moveToCell = new BoardCell(BoardCellCol.ColA, BoardCellRow.Row2, 0, 0)
            {
                Status = BoardCellStatus.AvailableForMove
            };
        }
Example #16
0
 public override IMessage Process(IGameMaster gameMaster)
 {
     throw new ApplicationFatalException("Failed to register game");
 }
Example #17
0
 public string[] Process(IGameMaster gameMaster)
 {
     gameMaster.State = GameMasterState.GameOver;
     return(new string[] { });
 }
Example #18
0
 static GameMaster()
 {
     RankServer.Instance.UpdateManager.InitStaticImpl(typeof(GameMaster), typeof(GameMasterDefaultImpl),
                                                      o => { mImpl = (IGameMaster)o; });
 }
 public override IMessage Process(IGameMaster gameMaster)
 {
     gameMaster.HandlePlayerDisconnection(PlayerId);
     return(null);
 }
Example #20
0
 public string[] Process(IGameMaster gameMaster)
 {
     gameMaster.HandlePlayerDisconnectedRequest(this);
     return(new string[] { });
 }
 private void Construct(IGameMaster gameMaster, IGameMoveTurnManager gameMoveTurnManager)
 {
     GameMaster          = gameMaster.CheckNull();
     GameMoveTurnManager = gameMoveTurnManager.CheckNull();
 }
Example #22
0
 public string[] Process(IGameMaster gameMaster)
 {
     return(gameMaster.HandleJoinGameRequest(this));
 }
Example #23
0
 public abstract IMessage Process(IGameMaster gameMaster);
Example #24
0
 public string[] Process(IGameMaster gameMaster)
 {
     gameMaster.HandlerErrorMessage(this);
     return(new string[] { });
 }
 public RecruitmentQuest(IGameMaster gameMaster, IContentLoader contentLoader) : base()
 {
     this.GameMaster    = gameMaster;
     this.ContentLoader = contentLoader;
 }
        public IPlayer InitializeGameForPlayer(IPlayer player, IGameMaster gameMaster)
        {
            //places adv
            var place1 = gameMaster.CreateChallenge(player);

            place1.Title = Adventures.IntroduceYourselfChallengeTitle + Environment.NewLine + Adventures.IntroduceYourselfChallengeDescription;
            place1.Order = 0;

            var place2 = gameMaster.CreateChallenge(player);

            place2.Title = Adventures.LunchChallengeTitle + Environment.NewLine + Adventures.LunchChallengeDescription;
            place2.Order = 1;

            var place3 = gameMaster.CreateChallenge(player);

            place3.Title = Adventures.SelfieChallangeTitle + Environment.NewLine + Adventures.SelfieChallangeDescription;
            place3.Order = 2;

            var placesChallenges = new List <IChallenge>()
            {
                place1, place2, place3
            };
            var placesAdventure = gameMaster.CreateAdventure(player, placesChallenges);

            placesAdventure.Title            = Adventures.PlacesAdventureTitle;
            placesAdventure.FinishedText     = Adventures.PlacesAdventureFinished;
            placesAdventure.FinishedImageUrl = Images.PlacesBadge;
            placesAdventure.Order            = 0;

            //food adv
            var foodCh1 = gameMaster.CreateChallenge(player);

            foodCh1.Title = Adventures.CoffieWithChallengeTitle + Environment.NewLine + Adventures.CoffieWithChallengeDescription;
            foodCh1.Order = 0;

            var foodCh2 = gameMaster.CreateChallenge(player);

            foodCh2.Title = Adventures.ShopChallengeTitle + Environment.NewLine + Adventures.ShopChallengeDescription;
            foodCh2.Order = 1;

            var foodCh3 = gameMaster.CreateChallenge(player);

            foodCh3.Title = Adventures.BeerChallengeTitle + Environment.NewLine + Adventures.BeerChallengeDescription;
            foodCh3.Order = 2;

            var adv1l = new List <IChallenge>()
            {
                foodCh1, foodCh2, foodCh3
            };
            var foodAdventure = gameMaster.CreateAdventure(player, adv1l);

            foodAdventure.Title            = Adventures.FoodAdventureTitle;
            foodAdventure.FinishedText     = Adventures.FoodAdventureFinished;
            foodAdventure.FinishedImageUrl = Images.FoodBadge;

            foodAdventure.Order = 1;

            //people adv
            var people1 = gameMaster.CreateChallenge(player);

            people1.Title = Adventures.IntroduceYourselfChallengeTitle + Environment.NewLine + Adventures.IntroduceYourselfChallengeDescription;
            people1.Order = 0;

            var people2 = gameMaster.CreateChallenge(player);

            people2.Title = Adventures.LunchChallengeTitle + Environment.NewLine + Adventures.LunchChallengeDescription;
            people2.Order = 1;

            var people3 = gameMaster.CreateChallenge(player);

            people3.Title = Adventures.SelfieChallangeTitle + Environment.NewLine + Adventures.SelfieChallangeDescription;
            people3.Order = 2;

            var peopleChallenges = new List <IChallenge>()
            {
                people1, people2, people3
            };
            var peopleAdventure = gameMaster.CreateAdventure(player, peopleChallenges);

            peopleAdventure.Title            = Adventures.PeopleAdventureTitle;
            peopleAdventure.FinishedText     = Adventures.PeopleAdventureFinished;
            peopleAdventure.FinishedImageUrl = Images.PeopleBadge;

            peopleAdventure.Order = 2;

            player.GamesHistory = new List <IAdventure>()
            {
                peopleAdventure, placesAdventure, foodAdventure
            };
            ((Player)player).GameMaster = (GameMaster)gameMaster;
            return(player);
        }
 public override IMessage Process(IGameMaster gameMaster)
 {
     gameMaster.SetGameId(GameId);
     return(null);
 }
Example #28
0
        public override IMessage Process(IGameMaster gameMaster)
        {
            var result = gameMaster.EvaluateAction(GetActionInfo());

            return(DataMessage.FromBoardDataOverridingTimestamps(result.data, result.isGameFinished));
        }
Example #29
0
 public string[] Process(IGameMaster gameMaster)
 {
     gameMaster.HandleConfirmGameRegistration(this);
     return(new string[] { });
 }
 public override IMessage Process(IGameMaster gameMaster)
 {
     throw new NotImplementedException();
 }
 public string[] Process(IGameMaster gameMaster)
 {
     throw new NotImplementedException();
 }