예제 #1
0
        /// <summary>
        /// See all the achievements that are unlocked by this task. if they arent already conferred, confer them
        /// Recalculate rewards unlocked by the achievement, if they arent already conferred, confer them
        /// Recalculate Pilot levels unlocked by the achievement if they arent already conferred, confer them
        /// </summary>
        /// <param name="dc"></param>
        /// <param name="taskID"></param>
        /// <param name="email"></param>
        private void ProcessTaskDependents(DBClassesDataContext dc, Guid taskID, string email)
        {
            // recalculate achievements for this pilot
            List <Guid> Achievements = RecalculateAchievements(dc, email);

            // save these achievements
            if (Achievements.Count > 0)
            {
                PilotAchievement.saveAchievements(dc, email, Achievements);
            }
            dc.SubmitChanges();

            // Now calculate all rewards which are unlocked by this achievement
            List <Guid> Rewards = RecalculateRewards(dc, email, Achievements);

            if (Rewards.Count > 0)
            {
                PilotReward.saveRewards(dc, email, Rewards);
            }

            dc.SubmitChanges();

            // Now calculate all rewards which are unlocked by this achievement
            List <Guid> Levels = RecalculateLevels(dc, email, Achievements);

            if (Rewards.Count > 0)
            {
                PilotClass.saveClasses(dc, email, Levels);
            }
            dc.SubmitChanges();
        }
예제 #2
0
 protected void Page_Load(object sender, EventArgs e)
 {
     mUser = (AppUser)Session[Constants.SESS_KEY_USER];
     if (mUser == null)
     {
         getUserFromCookie();
         if (mUser == null)
         {
             Response.Redirect("login.aspx");
             Response.Close();
             return;
         }
     }
     PilotClasses = PilotClass.getPilotClassesForPilot(mUser.UserEmail);
     Achievements = PilotAchievement.getAchievementsForPilot(mUser.UserEmail);
     Rewards      = PilotReward.getRewardsForPilot(mUser.UserEmail);
 }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            mUser = (AppUser)Session[Constants.SESS_KEY_USER];

            if (mUser == null)
            {
                getUserFromCookie();
                if (mUser == null)
                {
                    Response.Redirect("login.aspx");
                    Response.Close();
                    return;
                }
            }
            AchievementID = Request.Params["AchievementID"];
            achievedWhen  = PilotAchievement.WhenAchieved(Guid.Parse(AchievementID), mUser.UserEmail);
            rd            = AchievementDefinition.getAchievementDefinition(Guid.Parse(AchievementID));
            IEnumerable <AchievementPrereq> prereqs = AchievementPrereq.getPrereqsForAchievement(Guid.Parse(AchievementID));

            requirements     = new List <AchievementDefinition>();
            taskrequirements = new List <TaskDefinition>();
            if (prereqs != null && prereqs.Count <AchievementPrereq>() >= 0)
            {
                foreach (AchievementPrereq pcp in prereqs)
                {
                    if (pcp.RequiredAchievementID != null)
                    {
                        AchievementDefinition ad = AchievementDefinition.getAchievementDefinition((Guid)pcp.RequiredAchievementID);
                        if (ad != null)
                        {
                            requirements.Add(ad);
                        }
                    }
                    else if (pcp.TaskID != null)
                    {
                        TaskDefinition ad = TaskDefinition.getTaskDefinition((Guid)pcp.TaskID);
                        if (ad != null)
                        {
                            taskrequirements.Add(ad);
                        }
                    }
                }
            }
        }