protected override void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs) { Survivor survivor = _gameRepository.GetOrCreate(eventArgs.ChatUser); var inventoryItems = survivor.InventoryItems.Select(HeldItemDto.FromInventoryItem); _notification.StartGame(survivor.DisplayName, survivor.UserId, inventoryItems); }
protected override void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs) { Survivor survivor = _survivorRepo.GetOrCreate(eventArgs.ChatUser); var items = survivor.InventoryItems; string itemText = items.Any() ? string.Join(", ", items .Select((item, index) => $"({(char)('A' + index)}){item.Name}-Uses:{item.Uses}")) : "none"; string message = $"You have these items: {itemText}."; chatClient.SendDirectMessage(eventArgs.ChatUser.DisplayName, message); }
protected override void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs) { string firstArg = eventArgs.Arguments.FirstOrDefault(); var survivor = _survivorRepo.GetOrCreate(eventArgs.ChatUser); var operation = _operations.SingleOrDefault(op => op.ShouldExecute(firstArg)); if (operation != null) { string messageToSend = operation.TryToExecute(eventArgs, survivor); chatClient.SendMessage(messageToSend); } else { chatClient.SendMessage(survivor.Team?.Name ?? "No Team"); } }
protected override void HandleCommand(IChatClient chatClient, CommandReceivedEventArgs eventArgs) { var survivor = _survivorRepo.GetOrCreate(eventArgs.ChatUser); string operand = eventArgs.Arguments.FirstOrDefault(); var operation = _operations.SingleOrDefault(op => op.ShouldExecute(operand)); if (operation != null) { string message = operation.TryToExecute(eventArgs, survivor); chatClient.SendMessage(message); } else { var items = _gameRepository.List(ShopItemPolicy.All()); string itemDisplay = string.Join(", ", items.Select(x => $"{x.Id}:{x.Name}-{x.Price}")); chatClient.SendMessage($"Buy somethin' will ya! For sale: {itemDisplay}"); } }
public void GameEnd(int points, string playerName, string userId, EndTypes endType, int levelNumber, List <HeldItemDto> items, int money, string escapeType) { string itemDisplayText = items.Any() ? string.Join(", ", items.Select(x => x.Name)) : "nothing"; string message = $"{playerName} has {endType} on level {levelNumber} with {points} points while holding {itemDisplayText} and {money} coins."; _chatClients.ForEach(c => c.SendMessage(message)); Survivor survivor = _survivorRepo.GetOrCreate(playerName, userId); Location location = _repo.Single(LocationSpecification.ByEscapeType(escapeType)); survivor.Money += money; // You get to keep money even if dead. var inventoryItems = items.Select(x => x.ToInventoryItem()).ToList(); survivor.ApplyEndGame(levelNumber, points, endType, inventoryItems, location); _survivorRepo.Save(survivor); }