Example #1
0
        public IEventResponse HandleGameEvent(IGameMessage @event, IActionScope scope)
        {
            var aiContext = Mapper.Map <IGameMessage, AiContext>(@event);
            var votes     = _root.Evaluate(aiContext);

            votes = votes.VoteFor(@event.GetDefaultResponse(), 1);
            return(votes.Winner);
        }
        public IEventResponse HandleGameEvent(IGameMessage @event, IActionScope scope)
        {
            if ([email protected]().Any())
            {
                return(@event.GetDefaultResponse());
            }

            return(_ai.HandleGameEvent(@event, scope));
        }
Example #3
0
        public IEventResponse HandleGameEvent(IGameMessage @event, IEnumerable <IEventResponse> availableResponses, IActionScope playerActionScope)
        {
            availableResponses = availableResponses.ToList();
            if (!availableResponses.Any())
            {
                return(@event.GetDefaultResponse());
            }

            DisplayHand(playerActionScope.Hand);

            System.Console.WriteLine(@event.Description);
            var responses = new ConsoleEventResponses(availableResponses);

            foreach (var response in responses)
            {
                System.Console.WriteLine("{0} - {1}", response.Index, response.Description);
            }
            System.Console.WriteLine("[Enter = {0}]", @event.GetDefaultResponse().Description);
            System.Console.WriteLine("{0}", @event.TurnScope);
            ConsoleEventResponse consoleEventResponse = null;

            do
            {
                var input = System.Console.ReadLine();
                if (input == String.Empty)
                {
                    consoleEventResponse = new ConsoleEventResponse(0, @event.GetDefaultResponse());
                }
                else
                {
                    int index;
                    var parsed = Int32.TryParse(input, out index);
                    if (!parsed)
                    {
                        index = 1;
                    }
                    consoleEventResponse = responses.FirstOrDefault(r => r.Index == index);
                }
            } while (consoleEventResponse == null);


            return(consoleEventResponse.Response);
        }
Example #4
0
        public IEventResponse HandleGameEvent(IGameMessage @event, IActionScope scope)
        {
            if (@event.GetAvailableResponses().Count() == 1)
            {
                return(@event.GetDefaultResponse());
            }

            //DisplayTurnInfo(scope);
            return(HandleGameEvent(@event, @event.GetAvailableResponses(), scope));
        }
Example #5
0
        public void Handle(IGameMessage @event, IReactionScope scope)
        {
            if (@event is DeckDepletedEvent)
            {
                Handle(@event as DeckDepletedEvent);
                return;
            }

            if (@event is IAttackEffect)
            {
                HandleAttack(@event as IAttackEffect, scope);
            }

            Hand.Handle(@event, scope);

            if (@event.GetAvailableResponses().Count() == 1)
            {
                @event.GetDefaultResponse().Execute();
            }
            else
            {
                _controller.HandleGameEvent(@event, scope).Execute();
            }
        }
 public IEventResponse HandleGameEvent(IGameMessage @event)
 {
     return(@event.GetDefaultResponse());
 }
 public IEventResponse HandleGameEvent(IGameMessage @event, IReactionScope scope)
 {
     return(@event.GetDefaultResponse());
 }