示例#1
0
 public GiveModule(ICurrentOwner currentOwner, IItemRepository itemRepository, IOverviewService overviewService, ITelemetryService telemetryService)
 {
     _currentOwner     = currentOwner;
     _itemRepository   = itemRepository;
     _overviewService  = overviewService;
     _telemetryService = telemetryService;
 }
示例#2
0
 public CreateModule(ICurrentOwner currentOwner, ICatRepository repository, IOwnerRepository ownerRepository, ITelemetryService telemetryService)
 {
     _currentOwner     = currentOwner;
     _repository       = repository;
     _ownerRepository  = ownerRepository;
     _telemetryService = telemetryService;
 }
        public void TrackCreateCommand(ICurrentOwner owner, Cat cat)
        {
            var properties = new Dictionary <string, string>()
            {
                { "ownerId", owner.Owner.Id.ToString() },
                { "ownerName", owner.Owner.Name },
                { "catId", cat.Id.ToString() },
                { "catName", cat.Name }
            };

            Client.TrackEvent("create", properties);
            Client.Flush();
        }
        public void TrackGoCommand(ICurrentOwner owner, Cat cat, Adventure adventure)
        {
            var properties = new Dictionary <string, string>()
            {
                { "ownerId", owner.Owner.Id.ToString() },
                { "ownerName", owner.Owner.Name },
                { "catId", cat.Id.ToString() },
                { "catName", cat.Name },
                { "adventureRef", adventure.AdventureRef.ToString() }
            };

            Client.TrackEvent("go", properties);
            Client.Flush();
        }
示例#5
0
        public async Task <ResultMessage> GetOverviewAsync(ICurrentOwner currentOwner, Cat cat)
        {
            Embed embed;

            var adventureEntry = await _adventureEntryRepository.FindByCatIdAsync(cat.Id);

            if (adventureEntry != null)
            {
                var adventure = _adventureRepository.FindByAdventureRef(adventureEntry.AdventureRef);

                embed = CatSheet.GetSheet(currentOwner, cat, string.Empty, adventure, adventureEntry.End);
            }
            else
            {
                embed = CatSheet.GetSheet(currentOwner, cat);
            }

            return(new ResultMessage(string.Empty, embed));
        }
        public void TrackGiveCommand(ICurrentOwner owner, Cat cat, Item item, int amount)
        {
            var properties = new Dictionary <string, string>()
            {
                { "ownerId", owner.Owner.Id.ToString() },
                { "ownerName", owner.Owner.Name },
                { "catId", cat.Id.ToString() },
                { "catName", cat.Name },
                { "itemRef", item.ItemRef.ToString() },
                { "itemType", item.ItemType.ToString() }
            };

            var metrics = new Dictionary <string, double>()
            {
                { "amount", amount }
            };

            Client.TrackEvent("give", properties, metrics);
            Client.Flush();
        }
示例#7
0
        public static Embed GetSheet(ICurrentOwner currentOwner, Cat cat, string message = null, Adventure adventure = null, DateTimeOffset?adventureEnd = null)
        {
            var embedBuilder = new EmbedBuilder
            {
                Color  = new Color(50, 184, 31),
                Author = new EmbedAuthorBuilder
                {
                    Name    = $"{currentOwner.Owner.Name}'s {cat.Name}",
                    IconUrl = currentOwner.Owner.AvatarUrl
                },
                Description = message
            };

            var ageField = new EmbedFieldBuilder
            {
                IsInline = adventure != null,
                Name     = "Age",
                Value    = (int)((DateTimeOffset.UtcNow - cat.DateOfBirth).TotalDays / 7) + " weeks"
            };

            embedBuilder.AddField(ageField);

            if (adventure != null && adventureEnd.HasValue)
            {
                var remaining     = "completed";
                var remainingTime = adventureEnd.Value - DateTimeOffset.UtcNow;
                if (remainingTime.TotalMilliseconds > 0)
                {
                    remaining = remainingTime.ToString(@"hh\:mm\:ss");
                }

                var adventureField = new EmbedFieldBuilder
                {
                    IsInline = false,
                    Name     = "Current adventure",
                    Value    = $"{adventure.Name} - {remaining} remaining"
                };
                embedBuilder.AddField(adventureField);
            }

            var hungerField = new EmbedFieldBuilder
            {
                IsInline = true,
                Name     = "Hunger",
                Value    = cat.GetHungerLevel()
            };

            embedBuilder.AddField(hungerField);

            var thirstField = new EmbedFieldBuilder
            {
                IsInline = true,
                Name     = "Thirst",
                Value    = cat.GetThirstLevel()
            };

            embedBuilder.AddField(thirstField);

            var kindField = new EmbedFieldBuilder
            {
                IsInline = true,
                Name     = "Kindness",
                Value    = cat.Stats.Kind
            };

            embedBuilder.AddField(kindField);

            var lazyField = new EmbedFieldBuilder
            {
                IsInline = true,
                Name     = "Laziness",
                Value    = cat.Stats.Lazy
            };

            embedBuilder.AddField(lazyField);

            var resourcefulField = new EmbedFieldBuilder
            {
                IsInline = true,
                Name     = "Resourcefulness",
                Value    = cat.Stats.Resourceful
            };

            embedBuilder.AddField(resourcefulField);

            var outgoingField = new EmbedFieldBuilder
            {
                IsInline = true,
                Name     = "Outgoing",
                Value    = cat.Stats.Outgoing
            };

            embedBuilder.AddField(outgoingField);

            return(embedBuilder.Build());
        }
示例#8
0
 public GoModule(ICurrentOwner currentOwner, IAdventureEntryRepository adventureEntryRepository, ITelemetryService telemetryService)
 {
     _currentOwner             = currentOwner;
     _adventureEntryRepository = adventureEntryRepository;
     _telemetryService         = telemetryService;
 }