public void ApplyInput(CharacterWork entity, bool assign_mandatory = true)
 {
     TryFill <bool>(IsWorking, x => entity.IsWorking               = x);
     TryFill <byte>(CommittedHours, x => entity.CommittedHours     = x);
     TryFill <DateTime>(WorkFinishesAt, x => entity.WorkFinishesAt = x);
     TryFill <uint>(TotalHours, x => entity.TotalHours             = x);
 }
Exemple #2
0
        public void Init()
        {
            CharacterWorkService.WorkFinished += (o, e) =>
            {
                User          user   = Db.Set <User>().Find(e.Character.UserId);
                CharacterWork worker = e.Entity as CharacterWork;

                UserApi.SendMessage(
                    user.DiscordId,
                    embed: new SharedDiscordEmbed
                {
                    Color  = new Color(25, 78, 143).RawValue,
                    Fields = new List <SharedDiscordEmbedField>
                    {
                        new SharedDiscordEmbedField
                        {
                            Name  = $"Mining Completed",
                            Value =
                                $"```swift\n" +
                                $"You Were Mining For {e.Hours} Hours\n" +
                                $"Gold Obtained: +{e.Reward} ({e.Character.Gold})```"
                        },
                        worker.AsEmbedField()
                    }
                });
            };
        }
        ///<summary>Finish work if it's due to be done.</summary>
        private async Task HandleWorker(WoTDbContext db, CharacterWork worker)
        {
            var args = await worker.UpdateAsync(db);

            if (args != null)
            {
                WorkFinished?.Invoke(worker, args);
                Logger?.LogLine(this, args.ToString(), LogSeverity.Verbose);
            }
        }
        public async Task AddAsync()
        {
            CharacterWork entity = new CharacterWork {
                CharacterId = GetArgUInt32(CharacterId)
            };

            ApplyInput(entity);
            await AddEntityAsync(entity);

            Reply($"CharacterWork for character:`{Args[CharacterId]}` has been successfully added.");
        }
Exemple #5
0
        public async Task HandleWorkCommandAsync()
        {
            CharacterWork worker = await CharacterWorkApi.GetByDiscordIdAsync(Context.User.Id);

            if (worker != null)
            {
                EmbedBuilder eb = new EmbedBuilder();
                eb.Color = new Color(255, 255, 0);
                eb.AddField(x =>
                {
                    x.Name  = "⛏ Mining Stats ⛏";
                    x.Value =
                        $"**Level:** {worker.Level}\n" +
                        $"**Remaining:** {worker.XpCap - worker.Xp}\n" +
                        $"**Total:** {worker.TotalHours}";
                });

                await ReplyAsync(embed : eb.Build());
            }
        }