Exemple #1
0
            public async Task GetRewards(bool setActive = true, Player includeIntoRewards = null)
            {
                if (includeIntoRewards != null)
                {
                    if (!ReactedPlayers.Contains(includeIntoRewards))
                    {
                        ReactedPlayers.Add(includeIntoRewards);
                    }
                }

                if (setActive)
                {
                    active = true;
                    timer  = timerActive - 1;
                }

                await Update();

                if (setActive)
                {
                    timer = timerIdle - 1;
                }
            }
Exemple #2
0
            public async Task Update(bool modifyField = true)
            {
                timer++;

                if (active)
                {
                    if (timer == timerActive)
                    {
                        Random random = new Random();

                        timer       = 0;
                        active      = false;
                        timerActive = getNewTimer(TimerType.active);
                        if (modifyField)
                        {
                            SetupField();
                        }

                        foreach (Player p in ReactedPlayers)
                        {
                            await Professions.guild.GetUserAsync(p.User.UserID).Result.RemoveRoleAsync(Professions.guild.GetRole(ROLE_ID));

                            if (Type == SkillField.Mining)
                            {
                                if (p.Character.Skills.Mining.Level >= (Tier - 1) * 10)
                                {
                                    p.Character.Skills.Mining.TOTAL_XP += Tier * 50;
                                }
                            }
                            else if (Type == SkillField.WoodCutting)
                            {
                                if (p.Character.Skills.WoodCutting.Level >= (Tier - 1) * 10)
                                {
                                    p.Character.Skills.WoodCutting.TOTAL_XP += Tier * 50;
                                }
                            }
                            else if (Type == SkillField.Fishing)
                            {
                                if (p.Character.Skills.Fishing.Level >= (Tier - 1) * 10)
                                {
                                    p.Character.Skills.Fishing.TOTAL_XP += Tier * 50;
                                }
                            }

                            if (Rewards != null)
                            {
                                p.Character.Inventory.AddItem(Rewards.PullRandomReward());
                            }
                        }

                        ReactedPlayers.Clear();
                    }
                }
                else
                {
                    if (timer == timerIdle)
                    {
                        Random random = new Random();

                        timer     = 0;
                        active    = true;
                        timerIdle = getNewTimer(TimerType.idle);

                        if (modifyField)
                        {
                            SetupField();
                        }
                    }
                }
            }