public static List <Achievement> GetCategoryAchievements(AchievementCategory category)
        {
            List <Achievement> achievementsList = new List <Achievement>();

            #region Achievement Lists

            switch (category)
            {
            case AchievementCategory.Seafaring:
                achievementsList.Add(Achievement.SinkOrSwim);
                achievementsList.Add(Achievement.WalkThePlank);
                achievementsList.Add(Achievement.HighTide);
                achievementsList.Add(Achievement.AFewGoodMen);
                achievementsList.Add(Achievement.Circumnavigate);
                achievementsList.Add(Achievement.Stormchaser);
                achievementsList.Add(Achievement.BoardToDeath);
                achievementsList.Add(Achievement.ForSail);
                achievementsList.Add(Achievement.ToTheDepths);
                achievementsList.Add(Achievement.GunsAndRum);
                achievementsList.Add(Achievement.BackFromTheBrink);
                achievementsList.Add(Achievement.GhostPirate);

                achievementsList.Add(Achievement.TEST1);
                achievementsList.Add(Achievement.TEST2);
                achievementsList.Add(Achievement.TEST3);
                break;
            }

            #endregion

            return(achievementsList);
        }
        private void LoadGrid()
        {
            AchievementCategory selectedFilter = (AchievementCategory)comboBoxAchievementsCategory.SelectedValue;

            achievementsDataTable.Rows.Clear();

            foreach (HTEntities.Achievements.Achievement currentAchievement in achievements.achievementListField)
            {
                if ((currentAchievement.categoryIdField == selectedFilter) || (selectedFilter == AchievementCategory.Unavailable))
                {
                    DataRow newDataRow = achievementsDataTable.NewRow();

                    newDataRow[Columns.Text]           = GenericFunctions.RemoveTagsFromString(currentAchievement.achievementTextField);
                    newDataRow[Columns.TypeID]         = currentAchievement.achievementTypeIdField;
                    newDataRow[Columns.CategoryID]     = GetAchievementCategoryText(currentAchievement.categoryIdField);
                    newDataRow[Columns.EventDate]      = currentAchievement.eventDateField;
                    newDataRow[Columns.Points]         = currentAchievement.pointsField;
                    newDataRow[Columns.MultiLevel]     = currentAchievement.multilevelField;
                    newDataRow[Columns.NumberOfEvents] = currentAchievement.numberOfEventsField;

                    achievementsDataTable.Rows.Add(newDataRow);
                }
            }

            dataGridViewAchievements.DataSource = achievementsDataTable;
        }
Example #3
0
        public static void Serialize()
        {
            Achievements = new Dictionary <int, Achievement>();

            using (var Client = new DatabaseClient("SELECT * FROM achievements ORDER BY parent_id ASC"))
            {
                foreach (DataRow Row in Client.GetTable().Rows)
                {
                    var Item = new Achievement(Row);

                    Achievements.Add(Item.Id, Item);
                }
            }

            AchievementCategorys = new Dictionary <int, AchievementCategory>();

            using (var Client = new DatabaseClient("SELECT * FROM achievements_categorys"))
            {
                foreach (DataRow Row in Client.GetTable().Rows)
                {
                    var Item = new AchievementCategory(Row);

                    AchievementCategorys.Add(Item.Id, Item);
                }
            }
        }
        public static int GetCompletedCategoryAchievements(PlayerMobile player, AchievementCategory category)
        {
            AchievementsPersistance.CheckAndCreateAchievementAccountEntry(player);

            int completionCount = 0;

            List <Achievement> categoryAchievements = GetCategoryAchievements(category);

            foreach (Achievement achievement in categoryAchievements)
            {
                foreach (AchievementEntry entry in player.m_AchievementAccountEntry.m_Achievements)
                {
                    if (entry == null)
                    {
                        continue;
                    }
                    if (entry.m_Achievement == achievement && entry.m_Completed)
                    {
                        completionCount++;
                        break;
                    }
                }
            }

            return(completionCount);
        }
Example #5
0
        public List <Achievement> GetWithCategory(AchievementCategory category)
        {
            _ = category ?? throw new ArgumentNullException(nameof(category));

            var cmd = connection.CreateCommand();

            cmd.CommandText = @"SELECT
                                    A.ID, A.FactionID, A.CovenantID, A.Obtainable, A.HasWowheadLink, ACA.Location, AGT.Name
                                FROM
                                    Achievement A
                                    LEFT JOIN AchievementCategoryAchievement ACA
                                        ON A.ID = ACA.AchievementID
                                    LEFT JOIN Achievement_AGT AGT
                                        ON A.ID = AGT.ID
                                WHERE
                                    ACA.CategoryID = @Category
                                ORDER BY
                                    ACA.Location ASC;";
            cmd.Parameters.AddWithValue("@Category", category.ID);

            var achievements = new List <Achievement>();

            using (var reader = cmd.ExecuteReader())
                while (reader.Read())
                {
                    achievements.Add(new Achievement(reader.GetInt32(0), (Faction)reader.GetInt32(1), (Covenant)reader.GetInt32(2), reader.GetBoolean(3), reader.GetBoolean(4), reader.GetInt32(5), reader.IsDBNull(6) ? null : reader.GetString(6)));
                }

            return(achievements);
        }
Example #6
0
        public static void Load()
        {
            if (Main.netMode != NetmodeID.Server)
            {
                Achievement achievement = new Achievement("TEST", "Test Name", "Test Description");
                achievement.AddCondition(CustomFlagCondition.Create("Test"));
                CookieClicker.Achievements.Register(achievement);

                int num = 0;
                CookieClicker.Achievements.RegisterIconIndex("TEST", num++);

                AchievementCategory category = AchievementCategory.CookiesBaked;
                CookieClicker.Achievements.RegisterAchievementCategory("TEST", category);

                category = AchievementCategory.GoldenCookies;

                category = AchievementCategory.Misc;

                category = AchievementCategory.PerSecond;

                category = AchievementCategory.SugarLumps;

                CookieClicker.Achievements.Load();
                CookieClicker.Achievements.OnAchievementCompleted += OnAchievementCompleted;
                AchievementsHelper.Initialize();
            }
        }
Example #7
0
        public void Swap(Achievement achievement1, Achievement achievement2, AchievementCategory category)
        {
            _ = achievement1 ?? throw new ArgumentNullException(nameof(achievement1));
            _ = achievement2 ?? throw new ArgumentNullException(nameof(achievement2));
            _ = category ?? throw new ArgumentNullException(nameof(category));

            var cmd = connection.CreateCommand();

            cmd.CommandText = @"UPDATE
                                    AchievementCategoryAchievement
                                SET
                                    Location = @Location1
                                WHERE
                                    CategoryID = @CategoryID AND
                                    AchievementID = @AchievementID1;
                                UPDATE
                                    AchievementCategoryAchievement
                                SET
                                    Location = @Location2
                                WHERE
                                    CategoryID = @CategoryID AND
                                    AchievementID = @AchievementID2;";

            cmd.Parameters.AddWithValue("@Location1", achievement2.Location);
            cmd.Parameters.AddWithValue("@CategoryID", category.ID);
            cmd.Parameters.AddWithValue("@AchievementID1", achievement1.ID);
            cmd.Parameters.AddWithValue("@Location2", achievement1.Location);
            cmd.Parameters.AddWithValue("@AchievementID2", achievement2.ID);

            cmd.ExecuteNonQuery();
        }
Example #8
0
        public void Add(Achievement achievement, AchievementCategory category)
        {
            _ = achievement ?? throw new ArgumentNullException(nameof(achievement));
            _ = category ?? throw new ArgumentNullException(nameof(category));

            var sb = new StringBuilder();

            sb.AppendLine(@"INSERT OR REPLACE INTO Achievement (ID, FactionID, CovenantID, Obtainable, HasWowheadLink)
                            VALUES (@ID, @FactionID, @CovenantID, @Obtainable, @HasWowheadLink);");
            sb.AppendLine(@"INSERT OR REPLACE INTO AchievementCategoryAchievement (Location, CategoryID, AchievementID)
                            VALUES (@Location, @CategoryID, @ID);");

            var cmd = connection.CreateCommand();

            cmd.CommandText = sb.ToString();
            cmd.Parameters.AddWithValue("@ID", achievement.ID);
            cmd.Parameters.AddWithValue("@FactionID", (int)achievement.Faction);
            cmd.Parameters.AddWithValue("@CovenantID", (int)achievement.Covenant);
            cmd.Parameters.AddWithValue("@Obtainable", achievement.Obtainable ? 1 : 0);
            cmd.Parameters.AddWithValue("@HasWowheadLink", achievement.HasWowheadLink ? 1 : 0);
            cmd.Parameters.AddWithValue("@Location", achievement.Location);
            cmd.Parameters.AddWithValue("@CategoryID", category.ID);

            cmd.ExecuteNonQuery();
        }
        private string GetAchievementCategoryText(AchievementCategory category)
        {
            string resourceId = string.Empty;

            switch (category)
            {
            case AchievementCategory.Unavailable:
                resourceId = Localization.ht_achievementcategory_Undefined;
                break;

            case AchievementCategory.Ranking:
                resourceId = Localization.ht_achievementcategory_Ranking;
                break;

            case AchievementCategory.Team:
                resourceId = Localization.ht_achievementcategory_Team;
                break;

            case AchievementCategory.Matches:
                resourceId = Localization.ht_achievementcategory_Matches;
                break;

            case AchievementCategory.Manager:
                resourceId = Localization.ht_achievementcategory_Manager;
                break;

            case AchievementCategory.SpecialAward:
                resourceId = Localization.ht_achievementcategory_SpecialAward;
                break;
            }

            return(resourceManager.GetString(resourceId));
        }
        public AchievementCategory GetSelectedAchievementCategory()
        {
            AchievementCategory selectedCategory = null;

            if (tvwAchievementCategories.SelectedNode != null)
            {
                selectedCategory = ((AchievementCategoryTreeNode)tvwAchievementCategories.SelectedNode).AchievementCategory;
            }

            return(selectedCategory);
        }
Example #11
0
 protected override void DrawSelf(SpriteBatch spriteBatch)
 {
   base.DrawSelf(spriteBatch);
   this._locked = !this._achievement.IsCompleted;
   this.UpdateIconFrame();
   CalculatedStyle innerDimensions = this.GetInnerDimensions();
   CalculatedStyle dimensions = this._achievementIconBorders.GetDimensions();
   Vector2 vector2 = new Vector2(dimensions.X + dimensions.Width + 7f, innerDimensions.Y);
   Tuple<Decimal, Decimal> trackerValues = this.GetTrackerValues();
   bool flag = false;
   if ((!(trackerValues.Item1 == new Decimal(0)) || !(trackerValues.Item2 == new Decimal(0))) && this._locked)
     flag = true;
   float num = (float) ((double) innerDimensions.Width - (double) dimensions.Width + 1.0);
   Vector2 baseScale1 = new Vector2(0.85f);
   Vector2 baseScale2 = new Vector2(0.92f);
   Vector2 stringSize1 = ChatManager.GetStringSize(Main.fontItemStack, this._achievement.Description.Value, baseScale2, num);
   if ((double) stringSize1.Y > 38.0)
     baseScale2.Y *= 38f / stringSize1.Y;
   Color baseColor1 = Color.Lerp(this._locked ? Color.Silver : Color.Gold, Color.White, this.IsMouseHovering ? 0.5f : 0.0f);
   Color baseColor2 = Color.Lerp(this._locked ? Color.DarkGray : Color.Silver, Color.White, this.IsMouseHovering ? 1f : 0.0f);
   Color color1 = this.IsMouseHovering ? Color.White : Color.Gray;
   Vector2 position1 = vector2 - Vector2.UnitY * 2f;
   this.DrawPanelTop(spriteBatch, position1, num, color1);
   AchievementCategory category = this._achievement.Category;
   position1.Y += 2f;
   position1.X += 4f;
   spriteBatch.Draw(this._categoryTexture, position1, new Rectangle?(this._categoryTexture.Frame(4, 2, (int) category, 0)), this.IsMouseHovering ? Color.White : Color.Silver, 0.0f, Vector2.Zero, 0.5f, SpriteEffects.None, 0.0f);
   position1.X += 4f;
   position1.X += 17f;
   ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, this._achievement.FriendlyName.Value, position1, baseColor1, 0.0f, Vector2.Zero, baseScale1, num, 2f);
   position1.X -= 17f;
   Vector2 position2 = vector2 + Vector2.UnitY * 27f;
   this.DrawPanelBottom(spriteBatch, position2, num, color1);
   position2.X += 8f;
   position2.Y += 4f;
   ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, this._achievement.Description.Value, position2, baseColor2, 0.0f, Vector2.Zero, baseScale2, num - 10f, 2f);
   if (!flag)
     return;
   Vector2 position3 = position1 + Vector2.UnitX * num + Vector2.UnitY;
   string text =  trackerValues.Item1.ToString() + "/" +  trackerValues.Item2.ToString();
   Vector2 baseScale3 = new Vector2(0.75f);
   Vector2 stringSize2 = ChatManager.GetStringSize(Main.fontItemStack, text, baseScale3, -1f);
   float progress = (float) (trackerValues.Item1 / trackerValues.Item2);
   float Width = 80f;
   Color color2 = new Color(100, (int) byte.MaxValue, 100);
   if (!this.IsMouseHovering)
     color2 = Color.Lerp(color2, Color.Black, 0.25f);
   Color BackColor = new Color((int) byte.MaxValue, (int) byte.MaxValue, (int) byte.MaxValue);
   if (!this.IsMouseHovering)
     BackColor = Color.Lerp(BackColor, Color.Black, 0.25f);
   this.DrawProgressBar(spriteBatch, progress, position3 - Vector2.UnitX * Width * 0.7f, Width, BackColor, color2, color2.MultiplyRGBA(new Color(new Vector4(1f, 1f, 1f, 0.5f))));
   position3.X -= Width * 1.4f + stringSize2.X;
   ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, text, position3, baseColor1, 0.0f, new Vector2(0.0f, 0.0f), baseScale3, 90f, 2f);
 }
Example #12
0
 public static void LoadAchievementsEditor()
 {
     try
     {
         DbcStores.InitFiles();
         Achievement.LoadData();
         AchievementCategory.LoadData();
         AchievementCriteria.LoadData();
         Map.LoadData();
         SpellIcon.LoadData();
     }
     catch (System.Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
Example #13
0
        public void Remove(Achievement achievement, AchievementCategory category)
        {
            _ = achievement ?? throw new ArgumentNullException(nameof(achievement));

            var sb = new StringBuilder();

            sb.AppendLine(@"DELETE FROM AchievementCategoryAchievement WHERE AchievementID = @ID AND CategoryID = @CategoryID;");
            sb.AppendLine(@"DELETE FROM Achievement WHERE ID = @ID;");

            var cmd = connection.CreateCommand();

            cmd.CommandText = sb.ToString();
            cmd.Parameters.AddWithValue("@ID", achievement.ID);
            cmd.Parameters.AddWithValue("@CategoryID", category.ID);
            cmd.ExecuteNonQuery();
        }
Example #14
0
        private void ExportNextPatchAchievements(StringBuilder sb, AchievementCategory category)
        {
            foreach (var subCategory in category.Children)
            {
                ExportNextPatchAchievements(sb, subCategory);

                var achievements = achDatMan.GetWithCategory(subCategory);
                foreach (var achievement in achievements)
                {
                    var achievementAGT = achDatMan.GetWithAGTID(achievement);
                    var name           = Regex.Replace(achievementAGT.Name, "^\"", "");
                    name = Regex.Replace(name, "\"$", "");
                    var description = Regex.Replace(achievementAGT.Description, "^\"", "");
                    description = Regex.Replace(description, "\"$", "");
                    description = Regex.Replace(description, "(\"){2,}", "\\\"");
                    var rewardText = Regex.Replace(achievementAGT.RewardText, "^\"", "");
                    rewardText = Regex.Replace(rewardText, "\"$", "");
                    var line = $"achievements[{achievementAGT.ID}] = {{{achievementAGT.ID}, \"{name}\", {achievementAGT.Points}, \"{description}\", {achievementAGT.Flags}, {achievementAGT.IconFileID}, \"{rewardText}\"}};";
                    sb.AppendLineTabbed(1, line);
                }
            }
        }
        public static AchievementCategoryDetail GetCategoryDetail(AchievementCategory achievementCategory)
        {
            AchievementCategoryDetail detail = new AchievementCategoryDetail();

            detail.m_AchievementCategory = achievementCategory;

            #region Categories

            switch (achievementCategory)
            {
            case AchievementCategory.Adventuring:
                detail.GumpCollectionGroupId = "AdventuringAchievementCategory";
                detail.m_TextHue             = 148;
                detail.m_IconHue             = 149;
                detail.m_CategoryName        = "Adventuring";
                break;

            case AchievementCategory.AnimalHandling:
                detail.GumpCollectionGroupId = "AnimalHandlingAchievementCategory";
                detail.m_TextHue             = 2599;
                detail.m_IconHue             = 2208;
                detail.m_CategoryName        = "Animal Handling";
                break;

            case AchievementCategory.Battle:
                detail.GumpCollectionGroupId = "BattleAchievementCategory";
                detail.m_TextHue             = 1256;
                detail.m_IconHue             = 1256;
                detail.m_CategoryName        = "Battle";
                break;

            case AchievementCategory.Competition:
                detail.GumpCollectionGroupId = "CompetitionAchievementCategory";
                detail.m_TextHue             = 2963;
                detail.m_IconHue             = 2963;
                detail.m_CategoryName        = "Competition";
                break;

            case AchievementCategory.Crafting:
                detail.GumpCollectionGroupId = "CraftingAchievementCategory";
                detail.m_TextHue             = 2499;
                detail.m_IconHue             = 2401;
                detail.m_CategoryName        = "Crafting";
                break;

            case AchievementCategory.Harvesting:
                detail.GumpCollectionGroupId = "HarvestingAchievementCategory";
                detail.m_TextHue             = 2417;
                detail.m_IconHue             = 2417;
                detail.m_CategoryName        = "Harvesting";
                break;

            case AchievementCategory.Luxury:
                detail.GumpCollectionGroupId = "LuxuryAchievementCategory";
                detail.m_TextHue             = 2618;
                detail.m_IconHue             = 2618;
                detail.m_CategoryName        = "Luxury";
                break;

            case AchievementCategory.Seafaring:
                detail.GumpCollectionGroupId = "SeafaringAchievementCategory";
                detail.m_TextHue             = 2603;
                detail.m_IconHue             = 2602;
                detail.m_CategoryName        = "Seafaring";
                break;

            case AchievementCategory.SkillMastery:
                detail.GumpCollectionGroupId = "SkillMasteryAchievementCategory";
                detail.m_TextHue             = 2550;
                detail.m_IconHue             = 2652;
                detail.m_CategoryName        = "Skill Mastery";
                break;

            case AchievementCategory.Slaying:
                detail.GumpCollectionGroupId = "SlayingAchievementCategory";
                detail.m_TextHue             = 2116;
                detail.m_IconHue             = 2116;
                detail.m_CategoryName        = "Slaying";
                break;

            case AchievementCategory.Vice:
                detail.GumpCollectionGroupId = "ViceAchievementCategory";
                detail.m_TextHue             = 1106;
                detail.m_IconHue             = 1106;
                detail.m_CategoryName        = "Vice";
                break;

            case AchievementCategory.Virtue:
                detail.GumpCollectionGroupId = "VirtueAchievementCategory";
                detail.m_TextHue             = 2590;
                detail.m_IconHue             = 2589;
                detail.m_CategoryName        = "Virtue";
                break;
            }

            #endregion

            return(detail);
        }
Example #16
0
 public void SetCategory(AchievementCategory category) => Category = category;
        public void Add(bool asParent, string achievementCategoryName, string functionValue, bool isLegacy)
        {
            var function = functionHandler.GetSelectedFunction();

            if (function == null)
            {
                MessageBox.Show("Invalid function selected!" + Environment.NewLine + Environment.NewLine + "Category is not added.", "Invalid function", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            var selectedCategory = GetSelectedAchievementCategory();

            if (selectedCategory == null)
            {
                MessageBox.Show("No category selected!" + Environment.NewLine + Environment.NewLine + "Category is not added.", "No category", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            int location = asParent ? 1 : selectedCategory.Location + 1;
            AchievementCategory parent = asParent ? selectedCategory : selectedCategory.Parent;

            achievementCategoryName = string.IsNullOrEmpty(achievementCategoryName) ? function.Description : achievementCategoryName;
            var category = new AchievementCategory()
            {
                Location      = location,
                Name          = achievementCategoryName,
                Parent        = parent,
                Function      = function,
                FunctionValue = functionValue,
                Legacy        = isLegacy
            };

            dataManager.Add(category);

            if (!asParent)
            {
                var node = FindAchievementCategoryNode(tvwAchievementCategories.Nodes, parent);
                TreeNodeCollection nodes = null;
                if (node != null && node.Nodes != null)
                {
                    nodes = node.Nodes;
                }
                else
                {
                    nodes = tvwAchievementCategories.Nodes;
                }

                nodes.Insert(tvwAchievementCategories.SelectedNode.Index + 1, new AchievementCategoryTreeNode(category)); // Need to add this to ensure correct location numbers

                var categories = nodes.Cast <AchievementCategoryTreeNode>().Select(x => x.AchievementCategory).ToList();

                dataManager.UpdateLocations(dataManager.GetLast(), categories);
            }

            RefreshTreeView();

            // Make sure the last added achievement category is selected
            category = dataManager.GetLast();
            var selectNode = FindAchievementCategoryNode(tvwAchievementCategories.Nodes, category);

            tvwAchievementCategories.SelectedNode = selectNode;
        }
 public static AchievementCategory CreateAchievementCategory(int ID, byte[] rowVersion, string description)
 {
     AchievementCategory achievementCategory = new AchievementCategory();
     achievementCategory.Id = ID;
     achievementCategory.RowVersion = rowVersion;
     achievementCategory.Description = description;
     return achievementCategory;
 }
 public static void Load()
 {
     if (Main.netMode != 2)
     {
         Achievement achievement = new Achievement("TIMBER");
         achievement.AddCondition(ItemPickupCondition.Create(9, 619, 2504, 620, 2503, 2260, 621, 911, 1729));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BENCHED");
         achievement.AddCondition(ItemCraftCondition.Create(ItemID.Sets.Workbenches));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("NO_HOBO");
         achievement.AddCondition(ProgressionEventCondition.Create(8));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("OBTAIN_HAMMER");
         achievement.AddCondition(ItemPickupCondition.Create(2775, 2746, 3505, 654, 3517, 7, 3493, 2780, 1513, 2516, 660, 3481, 657, 922, 3511, 2785, 3499, 3487, 196, 367, 104, 797, 2320, 787, 1234, 1262, 3465, 204, 217, 1507, 3524, 3522, 3525, 3523, 4317, 1305));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("OOO_SHINY");
         achievement.AddCondition(TileDestroyedCondition.Create(7, 6, 9, 8, 166, 167, 168, 169, 22, 204, 58, 107, 108, 111, 221, 222, 223, 211));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("HEART_BREAKER");
         achievement.AddCondition(TileDestroyedCondition.Create(12));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("HEAVY_METAL");
         achievement.AddCondition(ItemPickupCondition.Create(35, 716));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("I_AM_LOOT");
         achievement.AddCondition(CustomFlagCondition.Create("Peek"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STAR_POWER");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("HOLD_ON_TIGHT");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("EYE_ON_YOU");
         achievement.AddCondition(NPCKilledCondition.Create(4));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SMASHING_POPPET");
         achievement.AddCondition(ProgressionEventCondition.Create(7));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("WORM_FODDER");
         achievement.AddCondition(NPCKilledCondition.Create(13, 14, 15));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MASTERMIND");
         achievement.AddCondition(NPCKilledCondition.Create(266));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("WHERES_MY_HONEY");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STING_OPERATION");
         achievement.AddCondition(NPCKilledCondition.Create(222));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BONED");
         achievement.AddCondition(NPCKilledCondition.Create(35));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DUNGEON_HEIST");
         achievement.AddCondition(ItemPickupCondition.Create(327));
         achievement.AddCondition(ProgressionEventCondition.Create(19));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ITS_GETTING_HOT_IN_HERE");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MINER_FOR_FIRE");
         achievement.AddCondition(ItemCraftCondition.Create(122));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STILL_HUNGRY");
         achievement.AddCondition(NPCKilledCondition.Create(113, 114));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ITS_HARD");
         achievement.AddCondition(ProgressionEventCondition.Create(9));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BEGONE_EVIL");
         achievement.AddCondition(ProgressionEventCondition.Create(6));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("EXTRA_SHINY");
         achievement.AddCondition(TileDestroyedCondition.Create(107, 108, 111, 221, 222, 223));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("HEAD_IN_THE_CLOUDS");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("LIKE_A_BOSS");
         achievement.AddCondition(ItemPickupCondition.Create(1133, 1331, 1307, 267, 1293, 557, 544, 556, 560, 43, 70));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BUCKETS_OF_BOLTS");
         achievement.AddCondition(NPCKilledCondition.Create(125, 126));
         achievement.AddConditions(NPCKilledCondition.CreateMany(127, 134));
         achievement.UseConditionsCompletedTracker();
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DRAX_ATTAX");
         achievement.AddCondition(ItemCraftCondition.Create(579, 990));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("PHOTOSYNTHESIS");
         achievement.AddCondition(TileDestroyedCondition.Create(211));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GET_A_LIFE");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("THE_GREAT_SOUTHERN_PLANTKILL");
         achievement.AddCondition(NPCKilledCondition.Create(262));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TEMPLE_RAIDER");
         achievement.AddCondition(ProgressionEventCondition.Create(22));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("LIHZAHRDIAN_IDOL");
         achievement.AddCondition(NPCKilledCondition.Create(245));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ROBBING_THE_GRAVE");
         achievement.AddCondition(ItemPickupCondition.Create(1513, 938, 963, 977, 1300, 1254, 1514, 679, 759, 1446, 1445, 1444, 1183, 1266, 671, 3291, 4679));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BIG_BOOTY");
         achievement.AddCondition(ProgressionEventCondition.Create(20));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FISH_OUT_OF_WATER");
         achievement.AddCondition(NPCKilledCondition.Create(370));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("OBSESSIVE_DEVOTION");
         achievement.AddCondition(NPCKilledCondition.Create(439));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STAR_DESTROYER");
         achievement.AddConditions(NPCKilledCondition.CreateMany(517, 422, 507, 493));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("CHAMPION_OF_TERRARIA");
         achievement.AddCondition(NPCKilledCondition.Create(398));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BLOODBATH");
         achievement.AddCondition(ProgressionEventCondition.Create(5));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SLIPPERY_SHINOBI");
         achievement.AddCondition(NPCKilledCondition.Create(50));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GOBLIN_PUNTER");
         achievement.AddCondition(ProgressionEventCondition.Create(10));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("WALK_THE_PLANK");
         achievement.AddCondition(ProgressionEventCondition.Create(11));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("KILL_THE_SUN");
         achievement.AddCondition(ProgressionEventCondition.Create(3));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DO_YOU_WANT_TO_SLAY_A_SNOWMAN");
         achievement.AddCondition(ProgressionEventCondition.Create(12));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TIN_FOIL_HATTER");
         achievement.AddCondition(ProgressionEventCondition.Create(13));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BALEFUL_HARVEST");
         achievement.AddCondition(ProgressionEventCondition.Create(15));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ICE_SCREAM");
         achievement.AddCondition(ProgressionEventCondition.Create(14));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("STICKY_SITUATION");
         achievement.AddCondition(ProgressionEventCondition.Create(16));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("REAL_ESTATE_AGENT");
         achievement.AddCondition(ProgressionEventCondition.Create(17));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("NOT_THE_BEES");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("JEEPERS_CREEPERS");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FUNKYTOWN");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("INTO_ORBIT");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ROCK_BOTTOM");
         achievement.AddCondition(CustomFlagCondition.Create("Reach"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MECHA_MAYHEM");
         achievement.AddCondition(ProgressionEventCondition.Create(21));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GELATIN_WORLD_TOUR");
         achievement.AddConditions(NPCKilledCondition.CreateMany(-5, -6, 1, 81, 71, -3, 147, 138, -10, 50, 59, 16, -7, 244, -8, -1, -2, 184, 204, 225, -9, 141, 183, -4));
         achievement.UseConditionsCompletedTracker();
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FASHION_STATEMENT");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("VEHICULAR_MANSLAUGHTER");
         achievement.AddCondition(CustomFlagCondition.Create("Hit"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("BULLDOZER");
         achievement.AddCondition(CustomIntCondition.Create("Pick", 10000));
         achievement.UseTrackerFromCondition("Pick");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("THERE_ARE_SOME_WHO_CALL_HIM");
         achievement.AddCondition(NPCKilledCondition.Create(45));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DECEIVER_OF_FOOLS");
         achievement.AddCondition(NPCKilledCondition.Create(196));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SWORD_OF_THE_HERO");
         achievement.AddCondition(ItemPickupCondition.Create(757));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("LUCKY_BREAK");
         achievement.AddCondition(CustomFlagCondition.Create("Hit"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("THROWING_LINES");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("DYE_HARD");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SICK_THROW");
         achievement.AddCondition(ItemPickupCondition.Create(3389));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FREQUENT_FLYER");
         achievement.AddCondition(CustomFloatCondition.Create("Pay", 10000f));
         achievement.UseTrackerFromCondition("Pay");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("THE_CAVALRY");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("COMPLETELY_AWESOME");
         achievement.AddCondition(ItemPickupCondition.Create(98));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TIL_DEATH");
         achievement.AddCondition(NPCKilledCondition.Create(53));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("ARCHAEOLOGIST");
         achievement.AddCondition(NPCKilledCondition.Create(52));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("PRETTY_IN_PINK");
         achievement.AddCondition(NPCKilledCondition.Create(-4));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("RAINBOWS_AND_UNICORNS");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("YOU_AND_WHAT_ARMY");
         achievement.AddCondition(CustomFlagCondition.Create("Spawn"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("PRISMANCER");
         achievement.AddCondition(ItemPickupCondition.Create(495));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("IT_CAN_TALK");
         achievement.AddCondition(ProgressionEventCondition.Create(18));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("WATCH_YOUR_STEP");
         achievement.AddCondition(CustomFlagCondition.Create("Hit"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MARATHON_MEDALIST");
         achievement.AddCondition(CustomFloatCondition.Create("Move", 1106688f));
         achievement.UseTrackerFromCondition("Move");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GLORIOUS_GOLDEN_POLE");
         achievement.AddCondition(ItemPickupCondition.Create(2294));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SERVANT_IN_TRAINING");
         achievement.AddCondition(CustomFlagCondition.Create("Finish"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("GOOD_LITTLE_SLAVE");
         achievement.AddCondition(CustomIntCondition.Create("Finish", 10));
         achievement.UseTrackerFromCondition("Finish");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TROUT_MONKEY");
         achievement.AddCondition(CustomIntCondition.Create("Finish", 25));
         achievement.UseTrackerFromCondition("Finish");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("FAST_AND_FISHIOUS");
         achievement.AddCondition(CustomIntCondition.Create("Finish", 50));
         achievement.UseTrackerFromCondition("Finish");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SUPREME_HELPER_MINION");
         achievement.AddCondition(CustomIntCondition.Create("Finish", 200));
         achievement.UseTrackerFromCondition("Finish");
         Main.Achievements.Register(achievement);
         achievement = new Achievement("TOPPED_OFF");
         achievement.AddCondition(CustomFlagCondition.Create("Use"));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("SLAYER_OF_WORLDS");
         achievement.AddCondition(NPCKilledCondition.Create(13, 14, 15));
         achievement.AddCondition(NPCKilledCondition.Create(113, 114));
         achievement.AddCondition(NPCKilledCondition.Create(125, 126));
         achievement.AddConditions(NPCKilledCondition.CreateMany(4, 266, 35, 50, 222, 134, 127, 262, 245, 439, 398, 370));
         achievement.UseConditionsCompletedTracker();
         Main.Achievements.Register(achievement);
         achievement = new Achievement("YOU_CAN_DO_IT");
         achievement.AddCondition(ProgressionEventCondition.Create(1));
         Main.Achievements.Register(achievement);
         achievement = new Achievement("MATCHING_ATTIRE");
         achievement.AddCondition(CustomFlagCondition.Create("Equip"));
         Main.Achievements.Register(achievement);
         int num = 0;
         Main.Achievements.RegisterIconIndex("TIMBER", num++);
         Main.Achievements.RegisterIconIndex("NO_HOBO", num++);
         Main.Achievements.RegisterIconIndex("OBTAIN_HAMMER", num++);
         Main.Achievements.RegisterIconIndex("HEART_BREAKER", num++);
         Main.Achievements.RegisterIconIndex("OOO_SHINY", num++);
         Main.Achievements.RegisterIconIndex("HEAVY_METAL", num++);
         Main.Achievements.RegisterIconIndex("I_AM_LOOT", num++);
         Main.Achievements.RegisterIconIndex("STAR_POWER", num++);
         Main.Achievements.RegisterIconIndex("HOLD_ON_TIGHT", num++);
         Main.Achievements.RegisterIconIndex("EYE_ON_YOU", num++);
         Main.Achievements.RegisterIconIndex("SMASHING_POPPET", num++);
         Main.Achievements.RegisterIconIndex("WORM_FODDER", num++);
         Main.Achievements.RegisterIconIndex("MASTERMIND", num++);
         Main.Achievements.RegisterIconIndex("WHERES_MY_HONEY", num++);
         Main.Achievements.RegisterIconIndex("STING_OPERATION", num++);
         Main.Achievements.RegisterIconIndex("BONED", num++);
         Main.Achievements.RegisterIconIndex("DUNGEON_HEIST", num++);
         Main.Achievements.RegisterIconIndex("ITS_GETTING_HOT_IN_HERE", num++);
         Main.Achievements.RegisterIconIndex("MINER_FOR_FIRE", num++);
         Main.Achievements.RegisterIconIndex("STILL_HUNGRY", num++);
         Main.Achievements.RegisterIconIndex("ITS_HARD", num++);
         Main.Achievements.RegisterIconIndex("BEGONE_EVIL", num++);
         Main.Achievements.RegisterIconIndex("EXTRA_SHINY", num++);
         Main.Achievements.RegisterIconIndex("HEAD_IN_THE_CLOUDS", num++);
         Main.Achievements.RegisterIconIndex("LIKE_A_BOSS", num++);
         Main.Achievements.RegisterIconIndex("BUCKETS_OF_BOLTS", num++);
         Main.Achievements.RegisterIconIndex("DRAX_ATTAX", num++);
         Main.Achievements.RegisterIconIndex("PHOTOSYNTHESIS", num++);
         Main.Achievements.RegisterIconIndex("GET_A_LIFE", num++);
         Main.Achievements.RegisterIconIndex("THE_GREAT_SOUTHERN_PLANTKILL", num++);
         Main.Achievements.RegisterIconIndex("TEMPLE_RAIDER", num++);
         Main.Achievements.RegisterIconIndex("LIHZAHRDIAN_IDOL", num++);
         Main.Achievements.RegisterIconIndex("ROBBING_THE_GRAVE", num++);
         Main.Achievements.RegisterIconIndex("BIG_BOOTY", num++);
         Main.Achievements.RegisterIconIndex("FISH_OUT_OF_WATER", num++);
         Main.Achievements.RegisterIconIndex("OBSESSIVE_DEVOTION", num++);
         Main.Achievements.RegisterIconIndex("STAR_DESTROYER", num++);
         Main.Achievements.RegisterIconIndex("CHAMPION_OF_TERRARIA", num++);
         Main.Achievements.RegisterIconIndex("BLOODBATH", num++);
         Main.Achievements.RegisterIconIndex("GOBLIN_PUNTER", num++);
         Main.Achievements.RegisterIconIndex("KILL_THE_SUN", num++);
         Main.Achievements.RegisterIconIndex("WALK_THE_PLANK", num++);
         Main.Achievements.RegisterIconIndex("DO_YOU_WANT_TO_SLAY_A_SNOWMAN", num++);
         Main.Achievements.RegisterIconIndex("TIN_FOIL_HATTER", num++);
         Main.Achievements.RegisterIconIndex("BALEFUL_HARVEST", num++);
         Main.Achievements.RegisterIconIndex("ICE_SCREAM", num++);
         Main.Achievements.RegisterIconIndex("SLIPPERY_SHINOBI", num++);
         Main.Achievements.RegisterIconIndex("STICKY_SITUATION", num++);
         Main.Achievements.RegisterIconIndex("REAL_ESTATE_AGENT", num++);
         Main.Achievements.RegisterIconIndex("NOT_THE_BEES", num++);
         Main.Achievements.RegisterIconIndex("JEEPERS_CREEPERS", num++);
         Main.Achievements.RegisterIconIndex("FUNKYTOWN", num++);
         Main.Achievements.RegisterIconIndex("INTO_ORBIT", num++);
         Main.Achievements.RegisterIconIndex("ROCK_BOTTOM", num++);
         Main.Achievements.RegisterIconIndex("MECHA_MAYHEM", num++);
         Main.Achievements.RegisterIconIndex("GELATIN_WORLD_TOUR", num++);
         Main.Achievements.RegisterIconIndex("FASHION_STATEMENT", num++);
         Main.Achievements.RegisterIconIndex("VEHICULAR_MANSLAUGHTER", num++);
         Main.Achievements.RegisterIconIndex("BULLDOZER", num++);
         Main.Achievements.RegisterIconIndex("THERE_ARE_SOME_WHO_CALL_HIM", num++);
         Main.Achievements.RegisterIconIndex("DECEIVER_OF_FOOLS", num++);
         Main.Achievements.RegisterIconIndex("SWORD_OF_THE_HERO", num++);
         Main.Achievements.RegisterIconIndex("LUCKY_BREAK", num++);
         Main.Achievements.RegisterIconIndex("THROWING_LINES", num++);
         Main.Achievements.RegisterIconIndex("DYE_HARD", num++);
         Main.Achievements.RegisterIconIndex("FREQUENT_FLYER", num++);
         Main.Achievements.RegisterIconIndex("THE_CAVALRY", num++);
         Main.Achievements.RegisterIconIndex("COMPLETELY_AWESOME", num++);
         Main.Achievements.RegisterIconIndex("TIL_DEATH", num++);
         Main.Achievements.RegisterIconIndex("ARCHAEOLOGIST", num++);
         Main.Achievements.RegisterIconIndex("PRETTY_IN_PINK", num++);
         Main.Achievements.RegisterIconIndex("RAINBOWS_AND_UNICORNS", num++);
         Main.Achievements.RegisterIconIndex("YOU_AND_WHAT_ARMY", num++);
         Main.Achievements.RegisterIconIndex("PRISMANCER", num++);
         Main.Achievements.RegisterIconIndex("IT_CAN_TALK", num++);
         Main.Achievements.RegisterIconIndex("WATCH_YOUR_STEP", num++);
         Main.Achievements.RegisterIconIndex("MARATHON_MEDALIST", num++);
         Main.Achievements.RegisterIconIndex("GLORIOUS_GOLDEN_POLE", num++);
         Main.Achievements.RegisterIconIndex("SERVANT_IN_TRAINING", num++);
         Main.Achievements.RegisterIconIndex("GOOD_LITTLE_SLAVE", num++);
         Main.Achievements.RegisterIconIndex("TROUT_MONKEY", num++);
         Main.Achievements.RegisterIconIndex("FAST_AND_FISHIOUS", num++);
         Main.Achievements.RegisterIconIndex("SUPREME_HELPER_MINION", num++);
         Main.Achievements.RegisterIconIndex("TOPPED_OFF", num++);
         Main.Achievements.RegisterIconIndex("SLAYER_OF_WORLDS", num++);
         Main.Achievements.RegisterIconIndex("YOU_CAN_DO_IT", num++);
         Main.Achievements.RegisterIconIndex("SICK_THROW", num++);
         Main.Achievements.RegisterIconIndex("MATCHING_ATTIRE", num++);
         Main.Achievements.RegisterIconIndex("BENCHED", num++);
         AchievementCategory category = AchievementCategory.Slayer;
         Main.Achievements.RegisterAchievementCategory("EYE_ON_YOU", category);
         Main.Achievements.RegisterAchievementCategory("SLIPPERY_SHINOBI", category);
         Main.Achievements.RegisterAchievementCategory("WORM_FODDER", category);
         Main.Achievements.RegisterAchievementCategory("MASTERMIND", category);
         Main.Achievements.RegisterAchievementCategory("STING_OPERATION", category);
         Main.Achievements.RegisterAchievementCategory("BONED", category);
         Main.Achievements.RegisterAchievementCategory("STILL_HUNGRY", category);
         Main.Achievements.RegisterAchievementCategory("BUCKETS_OF_BOLTS", category);
         Main.Achievements.RegisterAchievementCategory("THE_GREAT_SOUTHERN_PLANTKILL", category);
         Main.Achievements.RegisterAchievementCategory("LIHZAHRDIAN_IDOL", category);
         Main.Achievements.RegisterAchievementCategory("FISH_OUT_OF_WATER", category);
         Main.Achievements.RegisterAchievementCategory("OBSESSIVE_DEVOTION", category);
         Main.Achievements.RegisterAchievementCategory("STAR_DESTROYER", category);
         Main.Achievements.RegisterAchievementCategory("CHAMPION_OF_TERRARIA", category);
         Main.Achievements.RegisterAchievementCategory("GOBLIN_PUNTER", category);
         Main.Achievements.RegisterAchievementCategory("DO_YOU_WANT_TO_SLAY_A_SNOWMAN", category);
         Main.Achievements.RegisterAchievementCategory("WALK_THE_PLANK", category);
         Main.Achievements.RegisterAchievementCategory("BALEFUL_HARVEST", category);
         Main.Achievements.RegisterAchievementCategory("ICE_SCREAM", category);
         Main.Achievements.RegisterAchievementCategory("TIN_FOIL_HATTER", category);
         Main.Achievements.RegisterAchievementCategory("TIL_DEATH", category);
         Main.Achievements.RegisterAchievementCategory("THERE_ARE_SOME_WHO_CALL_HIM", category);
         Main.Achievements.RegisterAchievementCategory("ARCHAEOLOGIST", category);
         Main.Achievements.RegisterAchievementCategory("PRETTY_IN_PINK", category);
         Main.Achievements.RegisterAchievementCategory("DECEIVER_OF_FOOLS", category);
         Main.Achievements.RegisterAchievementCategory("VEHICULAR_MANSLAUGHTER", category);
         category = AchievementCategory.Explorer;
         Main.Achievements.RegisterAchievementCategory("SMASHING_POPPET", category);
         Main.Achievements.RegisterAchievementCategory("BEGONE_EVIL", category);
         Main.Achievements.RegisterAchievementCategory("ITS_HARD", category);
         Main.Achievements.RegisterAchievementCategory("FUNKYTOWN", category);
         Main.Achievements.RegisterAchievementCategory("WATCH_YOUR_STEP", category);
         Main.Achievements.RegisterAchievementCategory("YOU_CAN_DO_IT", category);
         Main.Achievements.RegisterAchievementCategory("BLOODBATH", category);
         Main.Achievements.RegisterAchievementCategory("KILL_THE_SUN", category);
         Main.Achievements.RegisterAchievementCategory("STICKY_SITUATION", category);
         Main.Achievements.RegisterAchievementCategory("NO_HOBO", category);
         Main.Achievements.RegisterAchievementCategory("IT_CAN_TALK", category);
         Main.Achievements.RegisterAchievementCategory("HEART_BREAKER", category);
         Main.Achievements.RegisterAchievementCategory("I_AM_LOOT", category);
         Main.Achievements.RegisterAchievementCategory("ROBBING_THE_GRAVE", category);
         Main.Achievements.RegisterAchievementCategory("GET_A_LIFE", category);
         Main.Achievements.RegisterAchievementCategory("JEEPERS_CREEPERS", category);
         Main.Achievements.RegisterAchievementCategory("WHERES_MY_HONEY", category);
         Main.Achievements.RegisterAchievementCategory("DUNGEON_HEIST", category);
         Main.Achievements.RegisterAchievementCategory("BIG_BOOTY", category);
         Main.Achievements.RegisterAchievementCategory("ITS_GETTING_HOT_IN_HERE", category);
         Main.Achievements.RegisterAchievementCategory("INTO_ORBIT", category);
         Main.Achievements.RegisterAchievementCategory("ROCK_BOTTOM", category);
         Main.Achievements.RegisterAchievementCategory("OOO_SHINY", category);
         Main.Achievements.RegisterAchievementCategory("EXTRA_SHINY", category);
         Main.Achievements.RegisterAchievementCategory("PHOTOSYNTHESIS", category);
         category = AchievementCategory.Challenger;
         Main.Achievements.RegisterAchievementCategory("GELATIN_WORLD_TOUR", category);
         Main.Achievements.RegisterAchievementCategory("SLAYER_OF_WORLDS", category);
         Main.Achievements.RegisterAchievementCategory("REAL_ESTATE_AGENT", category);
         Main.Achievements.RegisterAchievementCategory("YOU_AND_WHAT_ARMY", category);
         Main.Achievements.RegisterAchievementCategory("TOPPED_OFF", category);
         Main.Achievements.RegisterAchievementCategory("MECHA_MAYHEM", category);
         Main.Achievements.RegisterAchievementCategory("BULLDOZER", category);
         Main.Achievements.RegisterAchievementCategory("NOT_THE_BEES", category);
         Main.Achievements.RegisterAchievementCategory("RAINBOWS_AND_UNICORNS", category);
         Main.Achievements.RegisterAchievementCategory("THROWING_LINES", category);
         Main.Achievements.RegisterAchievementCategory("FREQUENT_FLYER", category);
         Main.Achievements.RegisterAchievementCategory("LUCKY_BREAK", category);
         Main.Achievements.RegisterAchievementCategory("MARATHON_MEDALIST", category);
         Main.Achievements.RegisterAchievementCategory("SERVANT_IN_TRAINING", category);
         Main.Achievements.RegisterAchievementCategory("GOOD_LITTLE_SLAVE", category);
         Main.Achievements.RegisterAchievementCategory("TROUT_MONKEY", category);
         Main.Achievements.RegisterAchievementCategory("FAST_AND_FISHIOUS", category);
         Main.Achievements.RegisterAchievementCategory("SUPREME_HELPER_MINION", category);
         category = AchievementCategory.Collector;
         Main.Achievements.RegisterAchievementCategory("OBTAIN_HAMMER", category);
         Main.Achievements.RegisterAchievementCategory("BENCHED", category);
         Main.Achievements.RegisterAchievementCategory("HEAVY_METAL", category);
         Main.Achievements.RegisterAchievementCategory("STAR_POWER", category);
         Main.Achievements.RegisterAchievementCategory("MINER_FOR_FIRE", category);
         Main.Achievements.RegisterAchievementCategory("HEAD_IN_THE_CLOUDS", category);
         Main.Achievements.RegisterAchievementCategory("DRAX_ATTAX", category);
         Main.Achievements.RegisterAchievementCategory("PRISMANCER", category);
         Main.Achievements.RegisterAchievementCategory("SWORD_OF_THE_HERO", category);
         Main.Achievements.RegisterAchievementCategory("HOLD_ON_TIGHT", category);
         Main.Achievements.RegisterAchievementCategory("THE_CAVALRY", category);
         Main.Achievements.RegisterAchievementCategory("DYE_HARD", category);
         Main.Achievements.RegisterAchievementCategory("MATCHING_ATTIRE", category);
         Main.Achievements.RegisterAchievementCategory("FASHION_STATEMENT", category);
         Main.Achievements.RegisterAchievementCategory("COMPLETELY_AWESOME", category);
         Main.Achievements.RegisterAchievementCategory("TIMBER", category);
         Main.Achievements.RegisterAchievementCategory("SICK_THROW", category);
         Main.Achievements.RegisterAchievementCategory("GLORIOUS_GOLDEN_POLE", category);
         Main.Achievements.RegisterAchievementCategory("TEMPLE_RAIDER", category);
         Main.Achievements.RegisterAchievementCategory("LIKE_A_BOSS", category);
         Main.Achievements.Load();
         Main.Achievements.OnAchievementCompleted += OnAchievementCompleted;
         AchievementsHelper.Initialize();
     }
 }
Example #20
0
 public static void Order_is_not_negative(AchievementCategory actual) => Assert.InRange(actual.Order, 0, int.MaxValue);
partial         void AchievementCategories_Updated(AchievementCategory entity)
        {
            StatusLog.UpdateStatus(string.Format("{0} updated category '{1}'", Application.User.FullName, entity.Description));
        }
Example #22
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);
            _locked = !_achievement.IsCompleted;
            UpdateIconFrame();
            CalculatedStyle          innerDimensions = GetInnerDimensions();
            CalculatedStyle          dimensions      = _achievementIconBorders.GetDimensions();
            float                    num             = dimensions.X + dimensions.Width;
            Vector2                  value           = new Vector2(num + 7f, innerDimensions.Y);
            Tuple <decimal, decimal> trackerValues   = GetTrackerValues();
            bool flag = false;

            if ((!(trackerValues.Item1 == 0m) || !(trackerValues.Item2 == 0m)) && _locked)
            {
                flag = true;
            }
            float   num2       = innerDimensions.Width - dimensions.Width + 1f;
            Vector2 baseScale  = new Vector2(0.85f);
            Vector2 baseScale2 = new Vector2(0.92f);
            Vector2 stringSize = ChatManager.GetStringSize(Main.fontItemStack, _achievement.Description.Value, baseScale2, num2);

            if (stringSize.Y > 38f)
            {
                baseScale2.Y *= 38f / stringSize.Y;
            }
            Color value2 = _locked ? Color.Silver : Color.Gold;

            value2 = Color.Lerp(value2, Color.White, base.IsMouseHovering ? 0.5f : 0f);
            Color value3 = _locked ? Color.DarkGray : Color.Silver;

            value3 = Color.Lerp(value3, Color.White, base.IsMouseHovering ? 1f : 0f);
            Color   color  = base.IsMouseHovering ? Color.White : Color.Gray;
            Vector2 vector = value - Vector2.UnitY * 2f;

            DrawPanelTop(spriteBatch, vector, num2, color);
            AchievementCategory category = _achievement.Category;

            vector.Y += 2f;
            vector.X += 4f;
            spriteBatch.Draw(_categoryTexture, vector, _categoryTexture.Frame(4, 2, (int)category), base.IsMouseHovering ? Color.White : Color.Silver, 0f, Vector2.Zero, 0.5f, SpriteEffects.None, 0f);
            vector.X += 4f;
            vector.X += 17f;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, _achievement.FriendlyName.Value, vector, value2, 0f, Vector2.Zero, baseScale, num2);
            vector.X -= 17f;
            Vector2 position = value + Vector2.UnitY * 27f;

            DrawPanelBottom(spriteBatch, position, num2, color);
            position.X += 8f;
            position.Y += 4f;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, _achievement.Description.Value, position, value3, 0f, Vector2.Zero, baseScale2, num2 - 10f);
            if (flag)
            {
                Vector2 vector2     = vector + Vector2.UnitX * num2 + Vector2.UnitY;
                string  text        = ((int)trackerValues.Item1).ToString() + "/" + ((int)trackerValues.Item2).ToString();
                Vector2 baseScale3  = new Vector2(0.75f);
                Vector2 stringSize2 = ChatManager.GetStringSize(Main.fontItemStack, text, baseScale3);
                float   progress    = (float)(trackerValues.Item1 / trackerValues.Item2);
                float   num3        = 80f;
                Color   color2      = new Color(100, 255, 100);
                if (!base.IsMouseHovering)
                {
                    color2 = Color.Lerp(color2, Color.Black, 0.25f);
                }
                Color color3 = new Color(255, 255, 255);
                if (!base.IsMouseHovering)
                {
                    color3 = Color.Lerp(color3, Color.Black, 0.25f);
                }
                DrawProgressBar(spriteBatch, progress, vector2 - Vector2.UnitX * num3 * 0.7f, num3, color3, color2, color2.MultiplyRGBA(new Color(new Vector4(1f, 1f, 1f, 0.5f))));
                vector2.X -= num3 * 1.4f + stringSize2.X;
                ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, text, vector2, value2, 0f, new Vector2(0f, 0f), baseScale3, 90f);
            }
        }
 public void Delete(AchievementCategory achievementCategory)
 {
     _entityDeletionService.Delete(achievementCategory);
 }
Example #24
0
 public AchievementCategoryTreeNode(AchievementCategory achievementCategory)
 {
     AchievementCategory = achievementCategory;
     Text = $"{achievementCategory.Location} - {achievementCategory}";
     Name = achievementCategory.ID.ToString();
 }
        private string GetAchievementCategoryText(AchievementCategory category)
        {
            string resourceId = string.Empty;

            switch (category) {
                case AchievementCategory.Unavailable:
                    resourceId = Localization.ht_achievementcategory_Undefined;
                    break;
                case AchievementCategory.Ranking:
                    resourceId = Localization.ht_achievementcategory_Ranking;
                    break;
                case AchievementCategory.Team:
                    resourceId = Localization.ht_achievementcategory_Team;
                    break;
                case AchievementCategory.Matches:
                    resourceId = Localization.ht_achievementcategory_Matches;
                    break;
                case AchievementCategory.Manager:
                    resourceId = Localization.ht_achievementcategory_Manager;
                    break;
                case AchievementCategory.SpecialAward:
                    resourceId = Localization.ht_achievementcategory_SpecialAward;
                    break;
            }

            return resourceManager.GetString(resourceId);
        }
Example #26
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);
            int     num   = _large.ToInt() * 6;
            Vector2 value = new Vector2(num, 0f);

            _locked = !_achievement.IsCompleted;
            UpdateIconFrame();
            CalculatedStyle          innerDimensions = GetInnerDimensions();
            CalculatedStyle          dimensions      = _achievementIconBorders.GetDimensions();
            float                    num2            = dimensions.X + dimensions.Width;
            Vector2                  value2          = new Vector2(num2 + 7f, innerDimensions.Y);
            Tuple <decimal, decimal> trackerValues   = GetTrackerValues();
            bool flag = false;

            if ((!(trackerValues.Item1 == 0m) || !(trackerValues.Item2 == 0m)) && _locked)
            {
                flag = true;
            }
            float   num3       = innerDimensions.Width - dimensions.Width + 1f - (float)(num * 2);
            Vector2 baseScale  = new Vector2(0.85f);
            Vector2 baseScale2 = new Vector2(0.92f);
            string  text       = FontAssets.ItemStack.get_Value().CreateWrappedText(_achievement.Description.Value, (num3 - 20f) * (1f / baseScale2.X), Language.ActiveCulture.CultureInfo);
            Vector2 stringSize = ChatManager.GetStringSize(FontAssets.ItemStack.get_Value(), text, baseScale2, num3);

            if (!_large)
            {
                stringSize = ChatManager.GetStringSize(FontAssets.ItemStack.get_Value(), _achievement.Description.Value, baseScale2, num3);
            }
            float num4 = 38f + (float)(_large ? 20 : 0);

            if (stringSize.Y > num4)
            {
                baseScale2.Y *= num4 / stringSize.Y;
            }
            Color value3 = _locked ? Color.Silver : Color.Gold;

            value3 = Color.Lerp(value3, Color.White, base.IsMouseHovering ? 0.5f : 0f);
            Color value4 = _locked ? Color.DarkGray : Color.Silver;

            value4 = Color.Lerp(value4, Color.White, base.IsMouseHovering ? 1f : 0f);
            Color   color  = base.IsMouseHovering ? Color.White : Color.Gray;
            Vector2 vector = value2 - Vector2.UnitY * 2f + value;

            DrawPanelTop(spriteBatch, vector, num3, color);
            AchievementCategory category = _achievement.Category;

            vector.Y += 2f;
            vector.X += 4f;
            spriteBatch.Draw(_categoryTexture.get_Value(), vector, _categoryTexture.Frame(4, 2, (int)category), base.IsMouseHovering ? Color.White : Color.Silver, 0f, Vector2.Zero, 0.5f, SpriteEffects.None, 0f);
            vector.X += 4f;
            vector.X += 17f;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, FontAssets.ItemStack.get_Value(), _achievement.FriendlyName.Value, vector, value3, 0f, Vector2.Zero, baseScale, num3);
            vector.X -= 17f;
            Vector2 position = value2 + Vector2.UnitY * 27f + value;

            DrawPanelBottom(spriteBatch, position, num3, color);
            position.X += 8f;
            position.Y += 4f;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, FontAssets.ItemStack.get_Value(), text, position, value4, 0f, Vector2.Zero, baseScale2);
            if (flag)
            {
                Vector2 vector2     = vector + Vector2.UnitX * num3 + Vector2.UnitY;
                string  text2       = (int)trackerValues.Item1 + "/" + (int)trackerValues.Item2;
                Vector2 baseScale3  = new Vector2(0.75f);
                Vector2 stringSize2 = ChatManager.GetStringSize(FontAssets.ItemStack.get_Value(), text2, baseScale3);
                float   progress    = (float)(trackerValues.Item1 / trackerValues.Item2);
                float   num5        = 80f;
                Color   color2      = new Color(100, 255, 100);
                if (!base.IsMouseHovering)
                {
                    color2 = Color.Lerp(color2, Color.Black, 0.25f);
                }
                Color color3 = new Color(255, 255, 255);
                if (!base.IsMouseHovering)
                {
                    color3 = Color.Lerp(color3, Color.Black, 0.25f);
                }
                DrawProgressBar(spriteBatch, progress, vector2 - Vector2.UnitX * num5 * 0.7f, num5, color3, color2, color2.MultiplyRGBA(new Color(new Vector4(1f, 1f, 1f, 0.5f))));
                vector2.X -= num5 * 1.4f + stringSize2.X;
                ChatManager.DrawColorCodedStringWithShadow(spriteBatch, FontAssets.ItemStack.get_Value(), text2, vector2, value3, 0f, new Vector2(0f, 0f), baseScale3, 90f);
            }
        }
Example #27
0
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);
            int     num1 = this._large.ToInt() * 6;
            Vector2 vector2_1;

            // ISSUE: explicit reference operation
            ((Vector2)@vector2_1).\u002Ector((float)num1, 0.0f);
            this._locked = !this._achievement.IsCompleted;
            this.UpdateIconFrame();
            CalculatedStyle innerDimensions = this.GetInnerDimensions();
            CalculatedStyle dimensions      = this._achievementIconBorders.GetDimensions();
            float           num2            = dimensions.X + dimensions.Width;
            Vector2         vector2_2;

            // ISSUE: explicit reference operation
            ((Vector2)@vector2_2).\u002Ector(num2 + 7f, innerDimensions.Y);
            Tuple <Decimal, Decimal> trackerValues = this.GetTrackerValues();
            bool flag = false;

            if ((!(trackerValues.get_Item1() == new Decimal(0)) || !(trackerValues.get_Item2() == new Decimal(0))) && this._locked)
            {
                flag = true;
            }
            float   num3 = (float)((double)innerDimensions.Width - (double)dimensions.Width + 1.0) - (float)(num1 * 2);
            Vector2 baseScale1;

            // ISSUE: explicit reference operation
            ((Vector2)@baseScale1).\u002Ector(0.85f);
            Vector2 baseScale2;

            // ISSUE: explicit reference operation
            ((Vector2)@baseScale2).\u002Ector(0.92f);
            string  wrappedText = Main.fontItemStack.CreateWrappedText(this._achievement.Description.Value, (float)(((double)num3 - 20.0) * (1.0 / baseScale2.X)), Language.ActiveCulture.CultureInfo);
            Vector2 stringSize1 = ChatManager.GetStringSize(Main.fontItemStack, wrappedText, baseScale2, num3);

            if (!this._large)
            {
                stringSize1 = ChatManager.GetStringSize(Main.fontItemStack, this._achievement.Description.Value, baseScale2, num3);
            }
            float num4 = (float)(38.0 + (this._large ? 20.0 : 0.0));

            if (stringSize1.Y > (double)num4)
            {
                // ISSUE: explicit reference operation
                // ISSUE: variable of a reference type
                Vector2& local = @baseScale2;
                // ISSUE: explicit reference operation
                double num5 = (^ local).Y * ((double)num4 / stringSize1.Y);
                // ISSUE: explicit reference operation
                (^ local).Y = (__Null)num5;
            }
            Color   baseColor1 = Color.Lerp(this._locked ? Color.get_Silver() : Color.get_Gold(), Color.get_White(), this.IsMouseHovering ? 0.5f : 0.0f);
            Color   baseColor2 = Color.Lerp(this._locked ? Color.get_DarkGray() : Color.get_Silver(), Color.get_White(), this.IsMouseHovering ? 1f : 0.0f);
            Color   color1     = this.IsMouseHovering ? Color.get_White() : Color.get_Gray();
            Vector2 position1  = Vector2.op_Addition(Vector2.op_Subtraction(vector2_2, Vector2.op_Multiply(Vector2.get_UnitY(), 2f)), vector2_1);

            this.DrawPanelTop(spriteBatch, position1, num3, color1);
            AchievementCategory category = this._achievement.Category;
            // ISSUE: explicit reference operation
            // ISSUE: variable of a reference type
            Vector2& local1 = @position1;
            // ISSUE: explicit reference operation
            double num6 = (^ local1).Y + 2.0;

            // ISSUE: explicit reference operation
            (^ local1).Y = (__Null)num6;
            // ISSUE: explicit reference operation
            // ISSUE: variable of a reference type
            Vector2& local2 = @position1;
            // ISSUE: explicit reference operation
            double num7 = (^ local2).X + 4.0;

            // ISSUE: explicit reference operation
            (^ local2).X = (__Null)num7;
            spriteBatch.Draw(this._categoryTexture, position1, new Rectangle?(this._categoryTexture.Frame(4, 2, (int)category, 0)), this.IsMouseHovering ? Color.get_White() : Color.get_Silver(), 0.0f, Vector2.get_Zero(), 0.5f, (SpriteEffects)0, 0.0f);
            // ISSUE: explicit reference operation
            // ISSUE: variable of a reference type
            Vector2& local3 = @position1;
            // ISSUE: explicit reference operation
            double num8 = (^ local3).X + 4.0;

            // ISSUE: explicit reference operation
            (^ local3).X = (__Null)num8;
            // ISSUE: explicit reference operation
            // ISSUE: variable of a reference type
            Vector2& local4 = @position1;
            // ISSUE: explicit reference operation
            double num9 = (^ local4).X + 17.0;

            // ISSUE: explicit reference operation
            (^ local4).X = (__Null)num9;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, this._achievement.FriendlyName.Value, position1, baseColor1, 0.0f, Vector2.get_Zero(), baseScale1, num3, 2f);
            // ISSUE: explicit reference operation
            // ISSUE: variable of a reference type
            Vector2& local5 = @position1;
            // ISSUE: explicit reference operation
            double num10 = (^ local5).X - 17.0;

            // ISSUE: explicit reference operation
            (^ local5).X = (__Null)num10;
            Vector2 position2 = Vector2.op_Addition(Vector2.op_Addition(vector2_2, Vector2.op_Multiply(Vector2.get_UnitY(), 27f)), vector2_1);

            this.DrawPanelBottom(spriteBatch, position2, num3, color1);
            // ISSUE: explicit reference operation
            // ISSUE: variable of a reference type
            Vector2& local6 = @position2;
            // ISSUE: explicit reference operation
            double num11 = (^ local6).X + 8.0;

            // ISSUE: explicit reference operation
            (^ local6).X = (__Null)num11;
            // ISSUE: explicit reference operation
            // ISSUE: variable of a reference type
            Vector2& local7 = @position2;
            // ISSUE: explicit reference operation
            double num12 = (^ local7).Y + 4.0;

            // ISSUE: explicit reference operation
            (^ local7).Y = (__Null)num12;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, wrappedText, position2, baseColor2, 0.0f, Vector2.get_Zero(), baseScale2, -1f, 2f);
            if (!flag)
            {
                return;
            }
            Vector2 position3 = Vector2.op_Addition(Vector2.op_Addition(position1, Vector2.op_Multiply(Vector2.get_UnitX(), num3)), Vector2.get_UnitY());
            string  text      = (int)trackerValues.get_Item1().ToString() + "/" + (int)trackerValues.get_Item2().ToString();
            Vector2 baseScale3;

            // ISSUE: explicit reference operation
            ((Vector2)@baseScale3).\u002Ector(0.75f);
            Vector2 stringSize2 = ChatManager.GetStringSize(Main.fontItemStack, text, baseScale3, -1f);
            float   progress    = (float)(trackerValues.get_Item1() / trackerValues.get_Item2());
            float   Width       = 80f;
            Color   color2;

            // ISSUE: explicit reference operation
            ((Color)@color2).\u002Ector(100, (int)byte.MaxValue, 100);
            if (!this.IsMouseHovering)
            {
                color2 = Color.Lerp(color2, Color.get_Black(), 0.25f);
            }
            Color BackColor;

            // ISSUE: explicit reference operation
            ((Color)@BackColor).\u002Ector((int)byte.MaxValue, (int)byte.MaxValue, (int)byte.MaxValue);
            if (!this.IsMouseHovering)
            {
                BackColor = Color.Lerp(BackColor, Color.get_Black(), 0.25f);
            }
            this.DrawProgressBar(spriteBatch, progress, Vector2.op_Subtraction(position3, Vector2.op_Multiply(Vector2.op_Multiply(Vector2.get_UnitX(), Width), 0.7f)), Width, BackColor, color2, color2.MultiplyRGBA(new Color(new Vector4(1f, 1f, 1f, 0.5f))));
            // ISSUE: explicit reference operation
            // ISSUE: variable of a reference type
            Vector2& local8 = @position3;
            // ISSUE: explicit reference operation
            double num13 = (^ local8).X - ((double)Width * 1.39999997615814 + stringSize2.X);

            // ISSUE: explicit reference operation
            (^ local8).X = (__Null)num13;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, text, position3, baseColor1, 0.0f, new Vector2(0.0f, 0.0f), baseScale3, 90f, 2f);
        }
Example #28
0
 public void SetCategory(AchievementCategory category)
 {
     this._category = category;
 }
Example #29
0
        public static void Load()
        {
            if (Main.netMode == 2)
            {
                return;
            }
            Achievement achievement = new Achievement("TIMBER", "Timber!!", "Chop down your first tree.");

            short[] numArray = new short[] { 9, 619, 2504, 620, 2503, 2260, 621, 911, 1729 };
            achievement.AddCondition(ItemPickupCondition.Create(numArray));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("NO_HOBO", "No Hobo", "Build a house suitable enough for your first town NPC, such as the guide, to move into.");
            achievement.AddCondition(ProgressionEventCondition.Create(8));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("OBTAIN_HAMMER", "Stop! Hammer Time!", "Obtain your first hammer via crafting or otherwise.");
            short[] numArray1 = new short[] { 2775, 2746, 3505, 654, 3517, 7, 3493, 2780, 1513, 2516, 660, 3481, 657, 922, 3511, 2785, 3499, 3487, 196, 367, 104, 797, 2320, 787, 1234, 1262, 3465, 204, 217, 1507, 3524, 3522, 3525, 3523, 1305 };
            achievement.AddCondition(ItemPickupCondition.Create(numArray1));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("OOO_SHINY", "Ooo! Shiny!", "Mine your first nugget of ore with a pickaxe.");
            ushort[] numArray2 = new ushort[] { 7, 6, 9, 8, 166, 167, 168, 169, 22, 204, 58, 107, 108, 111, 221, 222, 223, 211 };
            achievement.AddCondition(TileDestroyedCondition.Create(numArray2));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("HEART_BREAKER", "Heart Breaker", "Discover and smash your first heart crystal underground.");
            ushort[] numArray3 = new ushort[] { 12 };
            achievement.AddCondition(TileDestroyedCondition.Create(numArray3));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("HEAVY_METAL", "Heavy Metal", "Obtain an anvil made from iron or lead.");
            short[] numArray4 = new short[] { 35, 716 };
            achievement.AddCondition(ItemPickupCondition.Create(numArray4));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("I_AM_LOOT", "I Am Loot!", "Discover a golden chest underground and take a peek at its contents.");
            achievement.AddCondition(CustomFlagCondition.Create("Peek"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("STAR_POWER", "Star Power", "Craft a mana crystal out of fallen stars, and consume it.");
            achievement.AddCondition(CustomFlagCondition.Create("Use"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("HOLD_ON_TIGHT", "Hold on Tight!", "Equip your first grappling hook.");
            achievement.AddCondition(CustomFlagCondition.Create("Equip"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("EYE_ON_YOU", "Eye on You", "Defeat the Eye of Cthulhu, an ocular menace who only appears at night.");
            achievement.AddCondition(NPCKilledCondition.Create(4));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("SMASHING_POPPET", "Smashing, Poppet!", "Using explosives or your trusty hammer, smash a Shadow Orb or Crimson Heart in the evil parts of your world.");
            achievement.AddCondition(ProgressionEventCondition.Create(7));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("WORM_FODDER", "Worm Fodder", "Defeat the Eater of Worlds, a massive worm whom dwells in the corruption.");
            short[] numArray5 = new short[] { 13, 14, 15 };
            achievement.AddCondition(NPCKilledCondition.Create(numArray5));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("MASTERMIND", "Mastermind", "Defeat the Brain of Cthulhu, an enourmous demon brain which haunts the creeping crimson.");
            achievement.AddCondition(NPCKilledCondition.Create(266));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("WHERES_MY_HONEY", "Where's My Honey?", "Discover a large bee's hive deep in the jungle.");
            achievement.AddCondition(CustomFlagCondition.Create("Reach"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("STING_OPERATION", "Sting Operation", "Defeat the Queen Bee, the matriarch of the jungle hives.");
            achievement.AddCondition(NPCKilledCondition.Create(222));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("BONED", "Boned", "Defeat Skeletron, the cursed guardian of the dungeon.");
            achievement.AddCondition(NPCKilledCondition.Create(35));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("DUNGEON_HEIST", "Dungeon Heist", "Steal a key from dungeon's undead denizens, and unlock one of their precious golden chests.");
            achievement.AddCondition(ItemPickupCondition.Create(327));
            achievement.AddCondition(ProgressionEventCondition.Create(19));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("ITS_GETTING_HOT_IN_HERE", "It's Getting Hot in Here", "Spelunk deep enough to reach the molten underworld.");
            achievement.AddCondition(CustomFlagCondition.Create("Reach"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("MINER_FOR_FIRE", "Miner for Fire", "Craft a molten pickaxe using the hottest of materials.");
            achievement.AddCondition(ItemCraftCondition.Create(122));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("STILL_HUNGRY", "Still Hungry", "Defeat the Wall of Flesh, the master and core of the world who arises after a great, burning sacrifice.");
            short[] numArray6 = new short[] { 113, 114 };
            achievement.AddCondition(NPCKilledCondition.Create(numArray6));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("ITS_HARD", "It's Hard!", "Unleash the ancient spirits of light and darkness across your world, enabling much stronger foes and showering the world with dazzling treasures (and rainbows!).");
            achievement.AddCondition(ProgressionEventCondition.Create(9));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("BEGONE_EVIL", "Begone, Evil!", "Smash a demon or crimson altar with a powerful, holy hammer.");
            achievement.AddCondition(ProgressionEventCondition.Create(6));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("EXTRA_SHINY", "Extra Shiny!", "Mine a powerful ore that has been newly blessed upon your world.");
            ushort[] numArray7 = new ushort[] { 107, 108, 111, 221, 222, 223 };
            achievement.AddCondition(TileDestroyedCondition.Create(numArray7));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("HEAD_IN_THE_CLOUDS", "Head in the Clouds", "Equip a pair of wings.");
            achievement.AddCondition(CustomFlagCondition.Create("Equip"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("LIKE_A_BOSS", "Like a Boss", "Obtain a boss-summoning item.");
            short[] numArray8 = new short[] { 1133, 1331, 1307, 267, 1293, 557, 544, 556, 560, 43, 70 };
            achievement.AddCondition(ItemPickupCondition.Create(numArray8));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("BUCKETS_OF_BOLTS", "Buckets of Bolts", "Defeat the three nocturnal mechanical menaces: the Twins, the Destroyer, and Skeletron Prime.");
            short[] numArray9 = new short[] { 125, 126 };
            achievement.AddCondition(NPCKilledCondition.Create(numArray9));
            short[] numArray10 = new short[] { 127, 134 };
            achievement.AddConditions(NPCKilledCondition.CreateMany(numArray10));
            achievement.UseConditionsCompletedTracker();
            Main.Achievements.Register(achievement);
            achievement = new Achievement("DRAX_ATTAX", "Drax Attax", "Craft a drax or pickaxe axe using hallowed bars, and the souls of the three mechanical bosses.");
            short[] numArray11 = new short[] { 579, 990 };
            achievement.AddCondition(ItemCraftCondition.Create(numArray11));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("PHOTOSYNTHESIS", "Photosynthesis", "Mine chlorophyte, an organic ore found deep among the thickest of flora.");
            ushort[] numArray12 = new ushort[] { 211 };
            achievement.AddCondition(TileDestroyedCondition.Create(numArray12));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("GET_A_LIFE", "Get a Life", "Consume a life fruit, which grows in the thick of subterranean jungle grass.");
            achievement.AddCondition(CustomFlagCondition.Create("Use"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("THE_GREAT_SOUTHERN_PLANTKILL", "The Great Southern Plantkill", "Defeat Plantera, the overgrown monstrosity of the jungle's depths.");
            achievement.AddCondition(NPCKilledCondition.Create(262));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("TEMPLE_RAIDER", "Temple Raider", "Breach the impenetrable walls of the jungle temple.");
            ushort[] numArray13 = new ushort[] { 226 };
            achievement.AddCondition(TileDestroyedCondition.Create(numArray13));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("LIHZAHRDIAN_IDOL", "Lihzahrdian Idol", "Defeat Golem, the stone-faced ritualistic idol of the lihzahrd tribe.");
            achievement.AddCondition(NPCKilledCondition.Create(245));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("ROBBING_THE_GRAVE", "Robbing the Grave", "Obtain a rare treasure from a difficult monster in the dungeon.");
            short[] numArray14 = new short[] { 1513, 938, 963, 977, 1300, 1254, 1514, 679, 759, 1446, 1445, 1444, 1183, 1266, 671 };
            achievement.AddCondition(ItemPickupCondition.Create(numArray14));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("BIG_BOOTY", "Big Booty", "Unlock one of the dungeon's large, mysterious chests with a special key.");
            achievement.AddCondition(ProgressionEventCondition.Create(20));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("FISH_OUT_OF_WATER", "Fish Out of Water", "Defeat Duke Fishron, mutant terror of the sea.");
            achievement.AddCondition(NPCKilledCondition.Create(370));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("OBSESSIVE_DEVOTION", "Obsessive Devotion", "Defeat the Ancient Cultist, fanatical leader of the dungeon coven.");
            achievement.AddCondition(NPCKilledCondition.Create(439));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("STAR_DESTROYER", "Star Destroyer", "Defeat the four celestial towers of the moon.");
            short[] numArray15 = new short[] { 517, 422, 507, 493 };
            achievement.AddConditions(NPCKilledCondition.CreateMany(numArray15));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("CHAMPION_OF_TERRARIA", "Champion of Terraria", "Defeat the Moon Lord.");
            achievement.AddCondition(NPCKilledCondition.Create(398));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("BLOODBATH", "Bloodbath", "Survive a blood moon, a nocturnal event where the rivers run red and monsters swarm aplenty.");
            achievement.AddCondition(ProgressionEventCondition.Create(5));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("SLIPPERY_SHINOBI", "Slippery Shinobi", "Defeat King Slime, the lord of all things slimy.");
            achievement.AddCondition(NPCKilledCondition.Create(50));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("GOBLIN_PUNTER", "Goblin Punter", "Triumph over a goblin invasion, a ragtag regiment of crude, barbaric, pointy-eared warriors and their shadowflame sorcerers.");
            achievement.AddCondition(ProgressionEventCondition.Create(10));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("WALK_THE_PLANK", "Walk the Plank", "Triumph over a pirate invasion, a group of pillagers from the sea out for your booty... and your life!");
            achievement.AddCondition(ProgressionEventCondition.Create(11));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("KILL_THE_SUN", "Kill the Sun", "Survive a solar eclipse, a day darker than night filled with creatures of horror.");
            achievement.AddCondition(ProgressionEventCondition.Create(3));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("DO_YOU_WANT_TO_SLAY_A_SNOWMAN", "Do You Want to Slay a Snowman?", "Triumph over the frost legion, a festive family of maniacal snowman mobsters.");
            achievement.AddCondition(ProgressionEventCondition.Create(12));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("TIN_FOIL_HATTER", "Tin-Foil Hatter", "Triumph over a martian invasion, when beings from out of this world come to scramble your brains and probe you in uncomfortable places.");
            achievement.AddCondition(ProgressionEventCondition.Create(13));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("BALEFUL_HARVEST", "Baleful Harvest", "Reach the 15th wave of a pumpkin moon, where evil lurks among the autumn harvest.");
            achievement.AddCondition(ProgressionEventCondition.Create(15));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("ICE_SCREAM", "Ice Scream", "Reach the 15th wave of a frost moon, where the festive season quickly degrades into madness.");
            achievement.AddCondition(ProgressionEventCondition.Create(14));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("STICKY_SITUATION", "Sticky Situation", "Survive the slime rain, where gelatinous organisms fall from the sky in droves.");
            achievement.AddCondition(ProgressionEventCondition.Create(16));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("REAL_ESTATE_AGENT", "Real Estate Agent", "Have all possible town NPCs living in your world.");
            achievement.AddCondition(ProgressionEventCondition.Create(17));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("NOT_THE_BEES", "Not the Bees!", "Fire a Bee Gun while wearing a full set of Bee Armor.");
            achievement.AddCondition(CustomFlagCondition.Create("Use"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("JEEPERS_CREEPERS", "Jeepers Creepers", "Stumble into a spider cavern in the underground.");
            achievement.AddCondition(CustomFlagCondition.Create("Reach"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("FUNKYTOWN", "Funkytown", "Build or encounter a glowing mushroom field above the surface.");
            achievement.AddCondition(CustomFlagCondition.Create("Reach"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("INTO_ORBIT", "Into Orbit", "You can only go down from here!");
            achievement.AddCondition(CustomFlagCondition.Create("Reach"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("ROCK_BOTTOM", "Rock Bottom", "The only way is up!");
            achievement.AddCondition(CustomFlagCondition.Create("Reach"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("MECHA_MAYHEM", "Mecha Mayhem", "Do battle against the Twins, the Destroyer, and Skeletron Prime simultaneously and emerge victorious.");
            achievement.AddCondition(ProgressionEventCondition.Create(21));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("GELATIN_WORLD_TOUR", "Gelatin World Tour", "Defeat every type of slime there is!");
            short[] numArray16 = new short[] { -5, -6, 1, 81, 71, -3, 147, 138, -10, 50, 59, 16, -7, 244, -8, -1, -2, 184, 204, 225, -9, 141, 183, -4 };
            achievement.AddConditions(NPCKilledCondition.CreateMany(numArray16));
            achievement.UseConditionsCompletedTracker();
            Main.Achievements.Register(achievement);
            achievement = new Achievement("FASHION_STATEMENT", "Fashion Statement", "Equip armor or vanity clothing in all three social slots.");
            achievement.AddCondition(CustomFlagCondition.Create("Equip"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("VEHICULAR_MANSLAUGHTER", "Vehicular Manslaughter", "Defeat an enemy by running it over with a minecart.");
            achievement.AddCondition(CustomFlagCondition.Create("Hit"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("BULLDOZER", "Bulldozer", "Destroy a total of 10,000 tiles.");
            achievement.AddCondition(CustomIntCondition.Create("Pick", 10000));
            achievement.UseTrackerFromCondition("Pick");
            Main.Achievements.Register(achievement);
            achievement = new Achievement("THERE_ARE_SOME_WHO_CALL_HIM", "There are Some Who Call Him...", "Kill Tim.");
            achievement.AddCondition(NPCKilledCondition.Create(45));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("DECEIVER_OF_FOOLS", "Deceiver of Fools", "Kill a nymph.");
            achievement.AddCondition(NPCKilledCondition.Create(196));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("SWORD_OF_THE_HERO", "Sword of the Hero", "Obtain a Terra Blade, forged from the finest blades of light and darkness.");
            achievement.AddCondition(ItemPickupCondition.Create(757));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("LUCKY_BREAK", "Lucky Break", "Survive a long fall with just a sliver of health remaining.");
            achievement.AddCondition(CustomFlagCondition.Create("Hit"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("THROWING_LINES", "Throwing Lines", "Throw a yoyo.");
            achievement.AddCondition(CustomFlagCondition.Create("Use"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("DYE_HARD", "Dye Hard", "Equip a dye in every possible dye slot.");
            achievement.AddCondition(CustomFlagCondition.Create("Equip"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("SICK_THROW", "Sick Throw", "Obtain the Terrarian.");
            achievement.AddCondition(ItemPickupCondition.Create(3389));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("FREQUENT_FLYER", "The Frequent Flyer", "Spend over 1 gold being treated by the nurse.");
            achievement.AddCondition(CustomFloatCondition.Create("Pay", 10000f));
            achievement.UseTrackerFromCondition("Pay");
            Main.Achievements.Register(achievement);
            achievement = new Achievement("THE_CAVALRY", "The Cavalry", "Equip a mount.");
            achievement.AddCondition(CustomFlagCondition.Create("Equip"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("COMPLETELY_AWESOME", "Completely Awesome", "Obtain a minishark.");
            achievement.AddCondition(ItemPickupCondition.Create(98));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("TIL_DEATH", "Til Death...", "Kill the groom.");
            achievement.AddCondition(NPCKilledCondition.Create(53));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("ARCHAEOLOGIST", "Archaeologist", "Kill Doctor Bones.");
            achievement.AddCondition(NPCKilledCondition.Create(52));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("PRETTY_IN_PINK", "Pretty in Pink", "Kill pinky.");
            achievement.AddCondition(NPCKilledCondition.Create(-4));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("RAINBOWS_AND_UNICORNS", "Rainbows and Unicorns", "Fire a rainbow gun while riding on a unicorn.");
            achievement.AddCondition(CustomFlagCondition.Create("Use"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("YOU_AND_WHAT_ARMY", "You and What Army?", "Command nine summoned minions simultaneously.");
            achievement.AddCondition(CustomFlagCondition.Create("Spawn"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("PRISMANCER", "Prismancer", "Obtain a rainbow rod.");
            achievement.AddCondition(ItemPickupCondition.Create(495));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("IT_CAN_TALK", "It Can Talk?!", "Build a house in a mushroom biome and have Truffle move in.");
            achievement.AddCondition(ProgressionEventCondition.Create(18));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("WATCH_YOUR_STEP", "Watch Your Step!", "Become a victim to a nasty underground trap.");
            achievement.AddCondition(CustomFlagCondition.Create("Hit"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("MARATHON_MEDALIST", "Marathon Medalist", "Travel a total of 26.2 miles on foot.");
            achievement.AddCondition(CustomFloatCondition.Create("Move", 1106688f));
            achievement.UseTrackerFromCondition("Move");
            Main.Achievements.Register(achievement);
            achievement = new Achievement("GLORIOUS_GOLDEN_POLE", "Glorious Golden Pole", "Obtain a golden fishing rod.");
            achievement.AddCondition(ItemPickupCondition.Create(2294));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("SERVANT_IN_TRAINING", "Servant-in-Training", "Complete your 1st quest for the angler.");
            achievement.AddCondition(CustomFlagCondition.Create("Finish"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("GOOD_LITTLE_SLAVE", "Good Little Slave", "Complete your 10th quest for the angler.");
            achievement.AddCondition(CustomFloatCondition.Create("Finish", 10f));
            achievement.UseTrackerFromCondition("Finish");
            Main.Achievements.Register(achievement);
            achievement = new Achievement("TROUT_MONKEY", "Trout Monkey", "Complete your 25th quest for the angler.");
            achievement.AddCondition(CustomFloatCondition.Create("Finish", 25f));
            achievement.UseTrackerFromCondition("Finish");
            Main.Achievements.Register(achievement);
            achievement = new Achievement("FAST_AND_FISHIOUS", "Fast and Fishious", "Complete your 50th quest for the angler.");
            achievement.AddCondition(CustomFloatCondition.Create("Finish", 50f));
            achievement.UseTrackerFromCondition("Finish");
            Main.Achievements.Register(achievement);
            achievement = new Achievement("SUPREME_HELPER_MINION", "Supreme Helper Minion!", "Complete a grand total of 200 quests for the angler.");
            achievement.AddCondition(CustomFloatCondition.Create("Finish", 200f));
            achievement.UseTrackerFromCondition("Finish");
            Main.Achievements.Register(achievement);
            achievement = new Achievement("TOPPED_OFF", "Topped Off", "Attain maximum health and mana possible without accessories or buffs.");
            achievement.AddCondition(CustomFlagCondition.Create("Use"));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("SLAYER_OF_WORLDS", "Slayer of Worlds", "Defeat every boss in Terraria.");
            short[] numArray17 = new short[] { 13, 14, 15 };
            achievement.AddCondition(NPCKilledCondition.Create(numArray17));
            short[] numArray18 = new short[] { 113, 114 };
            achievement.AddCondition(NPCKilledCondition.Create(numArray18));
            short[] numArray19 = new short[] { 125, 126 };
            achievement.AddCondition(NPCKilledCondition.Create(numArray19));
            short[] numArray20 = new short[] { 4, 35, 50, 222, 113, 134, 127, 262, 245, 439, 398, 370 };
            achievement.AddConditions(NPCKilledCondition.CreateMany(numArray20));
            achievement.UseConditionsCompletedTracker();
            Main.Achievements.Register(achievement);
            achievement = new Achievement("YOU_CAN_DO_IT", "You Can Do It!", "Survive your character's first full night.");
            achievement.AddCondition(ProgressionEventCondition.Create(1));
            Main.Achievements.Register(achievement);
            achievement = new Achievement("MATCHING_ATTIRE", "Matching Attire", "Equip armor in all three armor slots: head, chest, and feet.");
            achievement.AddCondition(CustomFlagCondition.Create("Equip"));
            Main.Achievements.Register(achievement);
            int num  = 0;
            int num1 = num + 1;

            Main.Achievements.RegisterIconIndex("TIMBER", num);
            int num2 = num1;

            num1 = num2 + 1;
            Main.Achievements.RegisterIconIndex("NO_HOBO", num2);
            int num3 = num1;

            num1 = num3 + 1;
            Main.Achievements.RegisterIconIndex("OBTAIN_HAMMER", num3);
            int num4 = num1;

            num1 = num4 + 1;
            Main.Achievements.RegisterIconIndex("HEART_BREAKER", num4);
            int num5 = num1;

            num1 = num5 + 1;
            Main.Achievements.RegisterIconIndex("OOO_SHINY", num5);
            int num6 = num1;

            num1 = num6 + 1;
            Main.Achievements.RegisterIconIndex("HEAVY_METAL", num6);
            int num7 = num1;

            num1 = num7 + 1;
            Main.Achievements.RegisterIconIndex("I_AM_LOOT", num7);
            int num8 = num1;

            num1 = num8 + 1;
            Main.Achievements.RegisterIconIndex("STAR_POWER", num8);
            int num9 = num1;

            num1 = num9 + 1;
            Main.Achievements.RegisterIconIndex("HOLD_ON_TIGHT", num9);
            int num10 = num1;

            num1 = num10 + 1;
            Main.Achievements.RegisterIconIndex("EYE_ON_YOU", num10);
            int num11 = num1;

            num1 = num11 + 1;
            Main.Achievements.RegisterIconIndex("SMASHING_POPPET", num11);
            int num12 = num1;

            num1 = num12 + 1;
            Main.Achievements.RegisterIconIndex("WORM_FODDER", num12);
            int num13 = num1;

            num1 = num13 + 1;
            Main.Achievements.RegisterIconIndex("MASTERMIND", num13);
            int num14 = num1;

            num1 = num14 + 1;
            Main.Achievements.RegisterIconIndex("WHERES_MY_HONEY", num14);
            int num15 = num1;

            num1 = num15 + 1;
            Main.Achievements.RegisterIconIndex("STING_OPERATION", num15);
            int num16 = num1;

            num1 = num16 + 1;
            Main.Achievements.RegisterIconIndex("BONED", num16);
            int num17 = num1;

            num1 = num17 + 1;
            Main.Achievements.RegisterIconIndex("DUNGEON_HEIST", num17);
            int num18 = num1;

            num1 = num18 + 1;
            Main.Achievements.RegisterIconIndex("ITS_GETTING_HOT_IN_HERE", num18);
            int num19 = num1;

            num1 = num19 + 1;
            Main.Achievements.RegisterIconIndex("MINER_FOR_FIRE", num19);
            int num20 = num1;

            num1 = num20 + 1;
            Main.Achievements.RegisterIconIndex("STILL_HUNGRY", num20);
            int num21 = num1;

            num1 = num21 + 1;
            Main.Achievements.RegisterIconIndex("ITS_HARD", num21);
            int num22 = num1;

            num1 = num22 + 1;
            Main.Achievements.RegisterIconIndex("BEGONE_EVIL", num22);
            int num23 = num1;

            num1 = num23 + 1;
            Main.Achievements.RegisterIconIndex("EXTRA_SHINY", num23);
            int num24 = num1;

            num1 = num24 + 1;
            Main.Achievements.RegisterIconIndex("HEAD_IN_THE_CLOUDS", num24);
            int num25 = num1;

            num1 = num25 + 1;
            Main.Achievements.RegisterIconIndex("LIKE_A_BOSS", num25);
            int num26 = num1;

            num1 = num26 + 1;
            Main.Achievements.RegisterIconIndex("BUCKETS_OF_BOLTS", num26);
            int num27 = num1;

            num1 = num27 + 1;
            Main.Achievements.RegisterIconIndex("DRAX_ATTAX", num27);
            int num28 = num1;

            num1 = num28 + 1;
            Main.Achievements.RegisterIconIndex("PHOTOSYNTHESIS", num28);
            int num29 = num1;

            num1 = num29 + 1;
            Main.Achievements.RegisterIconIndex("GET_A_LIFE", num29);
            int num30 = num1;

            num1 = num30 + 1;
            Main.Achievements.RegisterIconIndex("THE_GREAT_SOUTHERN_PLANTKILL", num30);
            int num31 = num1;

            num1 = num31 + 1;
            Main.Achievements.RegisterIconIndex("TEMPLE_RAIDER", num31);
            int num32 = num1;

            num1 = num32 + 1;
            Main.Achievements.RegisterIconIndex("LIHZAHRDIAN_IDOL", num32);
            int num33 = num1;

            num1 = num33 + 1;
            Main.Achievements.RegisterIconIndex("ROBBING_THE_GRAVE", num33);
            int num34 = num1;

            num1 = num34 + 1;
            Main.Achievements.RegisterIconIndex("BIG_BOOTY", num34);
            int num35 = num1;

            num1 = num35 + 1;
            Main.Achievements.RegisterIconIndex("FISH_OUT_OF_WATER", num35);
            int num36 = num1;

            num1 = num36 + 1;
            Main.Achievements.RegisterIconIndex("OBSESSIVE_DEVOTION", num36);
            int num37 = num1;

            num1 = num37 + 1;
            Main.Achievements.RegisterIconIndex("STAR_DESTROYER", num37);
            int num38 = num1;

            num1 = num38 + 1;
            Main.Achievements.RegisterIconIndex("CHAMPION_OF_TERRARIA", num38);
            int num39 = num1;

            num1 = num39 + 1;
            Main.Achievements.RegisterIconIndex("BLOODBATH", num39);
            int num40 = num1;

            num1 = num40 + 1;
            Main.Achievements.RegisterIconIndex("GOBLIN_PUNTER", num40);
            int num41 = num1;

            num1 = num41 + 1;
            Main.Achievements.RegisterIconIndex("KILL_THE_SUN", num41);
            int num42 = num1;

            num1 = num42 + 1;
            Main.Achievements.RegisterIconIndex("WALK_THE_PLANK", num42);
            int num43 = num1;

            num1 = num43 + 1;
            Main.Achievements.RegisterIconIndex("DO_YOU_WANT_TO_SLAY_A_SNOWMAN", num43);
            int num44 = num1;

            num1 = num44 + 1;
            Main.Achievements.RegisterIconIndex("TIN_FOIL_HATTER", num44);
            int num45 = num1;

            num1 = num45 + 1;
            Main.Achievements.RegisterIconIndex("BALEFUL_HARVEST", num45);
            int num46 = num1;

            num1 = num46 + 1;
            Main.Achievements.RegisterIconIndex("ICE_SCREAM", num46);
            int num47 = num1;

            num1 = num47 + 1;
            Main.Achievements.RegisterIconIndex("SLIPPERY_SHINOBI", num47);
            int num48 = num1;

            num1 = num48 + 1;
            Main.Achievements.RegisterIconIndex("STICKY_SITUATION", num48);
            int num49 = num1;

            num1 = num49 + 1;
            Main.Achievements.RegisterIconIndex("REAL_ESTATE_AGENT", num49);
            int num50 = num1;

            num1 = num50 + 1;
            Main.Achievements.RegisterIconIndex("NOT_THE_BEES", num50);
            int num51 = num1;

            num1 = num51 + 1;
            Main.Achievements.RegisterIconIndex("JEEPERS_CREEPERS", num51);
            int num52 = num1;

            num1 = num52 + 1;
            Main.Achievements.RegisterIconIndex("FUNKYTOWN", num52);
            int num53 = num1;

            num1 = num53 + 1;
            Main.Achievements.RegisterIconIndex("INTO_ORBIT", num53);
            int num54 = num1;

            num1 = num54 + 1;
            Main.Achievements.RegisterIconIndex("ROCK_BOTTOM", num54);
            int num55 = num1;

            num1 = num55 + 1;
            Main.Achievements.RegisterIconIndex("MECHA_MAYHEM", num55);
            int num56 = num1;

            num1 = num56 + 1;
            Main.Achievements.RegisterIconIndex("GELATIN_WORLD_TOUR", num56);
            int num57 = num1;

            num1 = num57 + 1;
            Main.Achievements.RegisterIconIndex("FASHION_STATEMENT", num57);
            int num58 = num1;

            num1 = num58 + 1;
            Main.Achievements.RegisterIconIndex("VEHICULAR_MANSLAUGHTER", num58);
            int num59 = num1;

            num1 = num59 + 1;
            Main.Achievements.RegisterIconIndex("BULLDOZER", num59);
            int num60 = num1;

            num1 = num60 + 1;
            Main.Achievements.RegisterIconIndex("THERE_ARE_SOME_WHO_CALL_HIM", num60);
            int num61 = num1;

            num1 = num61 + 1;
            Main.Achievements.RegisterIconIndex("DECEIVER_OF_FOOLS", num61);
            int num62 = num1;

            num1 = num62 + 1;
            Main.Achievements.RegisterIconIndex("SWORD_OF_THE_HERO", num62);
            int num63 = num1;

            num1 = num63 + 1;
            Main.Achievements.RegisterIconIndex("LUCKY_BREAK", num63);
            int num64 = num1;

            num1 = num64 + 1;
            Main.Achievements.RegisterIconIndex("THROWING_LINES", num64);
            int num65 = num1;

            num1 = num65 + 1;
            Main.Achievements.RegisterIconIndex("DYE_HARD", num65);
            int num66 = num1;

            num1 = num66 + 1;
            Main.Achievements.RegisterIconIndex("FREQUENT_FLYER", num66);
            int num67 = num1;

            num1 = num67 + 1;
            Main.Achievements.RegisterIconIndex("THE_CAVALRY", num67);
            int num68 = num1;

            num1 = num68 + 1;
            Main.Achievements.RegisterIconIndex("COMPLETELY_AWESOME", num68);
            int num69 = num1;

            num1 = num69 + 1;
            Main.Achievements.RegisterIconIndex("TIL_DEATH", num69);
            int num70 = num1;

            num1 = num70 + 1;
            Main.Achievements.RegisterIconIndex("ARCHAEOLOGIST", num70);
            int num71 = num1;

            num1 = num71 + 1;
            Main.Achievements.RegisterIconIndex("PRETTY_IN_PINK", num71);
            int num72 = num1;

            num1 = num72 + 1;
            Main.Achievements.RegisterIconIndex("RAINBOWS_AND_UNICORNS", num72);
            int num73 = num1;

            num1 = num73 + 1;
            Main.Achievements.RegisterIconIndex("YOU_AND_WHAT_ARMY", num73);
            int num74 = num1;

            num1 = num74 + 1;
            Main.Achievements.RegisterIconIndex("PRISMANCER", num74);
            int num75 = num1;

            num1 = num75 + 1;
            Main.Achievements.RegisterIconIndex("IT_CAN_TALK", num75);
            int num76 = num1;

            num1 = num76 + 1;
            Main.Achievements.RegisterIconIndex("WATCH_YOUR_STEP", num76);
            int num77 = num1;

            num1 = num77 + 1;
            Main.Achievements.RegisterIconIndex("MARATHON_MEDALIST", num77);
            int num78 = num1;

            num1 = num78 + 1;
            Main.Achievements.RegisterIconIndex("GLORIOUS_GOLDEN_POLE", num78);
            int num79 = num1;

            num1 = num79 + 1;
            Main.Achievements.RegisterIconIndex("SERVANT_IN_TRAINING", num79);
            int num80 = num1;

            num1 = num80 + 1;
            Main.Achievements.RegisterIconIndex("GOOD_LITTLE_SLAVE", num80);
            int num81 = num1;

            num1 = num81 + 1;
            Main.Achievements.RegisterIconIndex("TROUT_MONKEY", num81);
            int num82 = num1;

            num1 = num82 + 1;
            Main.Achievements.RegisterIconIndex("FAST_AND_FISHIOUS", num82);
            int num83 = num1;

            num1 = num83 + 1;
            Main.Achievements.RegisterIconIndex("SUPREME_HELPER_MINION", num83);
            int num84 = num1;

            num1 = num84 + 1;
            Main.Achievements.RegisterIconIndex("TOPPED_OFF", num84);
            int num85 = num1;

            num1 = num85 + 1;
            Main.Achievements.RegisterIconIndex("SLAYER_OF_WORLDS", num85);
            int num86 = num1;

            num1 = num86 + 1;
            Main.Achievements.RegisterIconIndex("YOU_CAN_DO_IT", num86);
            int num87 = num1;

            num1 = num87 + 1;
            Main.Achievements.RegisterIconIndex("SICK_THROW", num87);
            int num88 = num1;

            num1 = num88 + 1;
            Main.Achievements.RegisterIconIndex("MATCHING_ATTIRE", num88);
            AchievementCategory achievementCategory = AchievementCategory.Slayer;

            Main.Achievements.RegisterAchievementCategory("EYE_ON_YOU", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("SLIPPERY_SHINOBI", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("WORM_FODDER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("MASTERMIND", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("STING_OPERATION", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("BONED", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("STILL_HUNGRY", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("BUCKETS_OF_BOLTS", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("THE_GREAT_SOUTHERN_PLANTKILL", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("LIHZAHRDIAN_IDOL", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("FISH_OUT_OF_WATER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("OBSESSIVE_DEVOTION", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("STAR_DESTROYER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("CHAMPION_OF_TERRARIA", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("GOBLIN_PUNTER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("DO_YOU_WANT_TO_SLAY_A_SNOWMAN", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("WALK_THE_PLANK", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("BALEFUL_HARVEST", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("ICE_SCREAM", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("TIN_FOIL_HATTER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("TIL_DEATH", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("THERE_ARE_SOME_WHO_CALL_HIM", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("ARCHAEOLOGIST", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("PRETTY_IN_PINK", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("DECEIVER_OF_FOOLS", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("VEHICULAR_MANSLAUGHTER", achievementCategory);
            achievementCategory = AchievementCategory.Explorer;
            Main.Achievements.RegisterAchievementCategory("SMASHING_POPPET", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("BEGONE_EVIL", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("ITS_HARD", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("FUNKYTOWN", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("WATCH_YOUR_STEP", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("YOU_CAN_DO_IT", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("BLOODBATH", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("KILL_THE_SUN", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("STICKY_SITUATION", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("NO_HOBO", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("IT_CAN_TALK", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("HEART_BREAKER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("I_AM_LOOT", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("ROBBING_THE_GRAVE", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("GET_A_LIFE", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("JEEPERS_CREEPERS", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("WHERES_MY_HONEY", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("DUNGEON_HEIST", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("BIG_BOOTY", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("ITS_GETTING_HOT_IN_HERE", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("INTO_ORBIT", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("ROCK_BOTTOM", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("OOO_SHINY", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("EXTRA_SHINY", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("PHOTOSYNTHESIS", achievementCategory);
            achievementCategory = AchievementCategory.Challenger;
            Main.Achievements.RegisterAchievementCategory("GELATIN_WORLD_TOUR", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("SLAYER_OF_WORLDS", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("REAL_ESTATE_AGENT", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("YOU_AND_WHAT_ARMY", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("TOPPED_OFF", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("MECHA_MAYHEM", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("BULLDOZER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("NOT_THE_BEES", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("RAINBOWS_AND_UNICORNS", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("THROWING_LINES", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("FREQUENT_FLYER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("LUCKY_BREAK", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("MARATHON_MEDALIST", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("SERVANT_IN_TRAINING", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("GOOD_LITTLE_SLAVE", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("TROUT_MONKEY", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("FAST_AND_FISHIOUS", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("SUPREME_HELPER_MINION", achievementCategory);
            achievementCategory = AchievementCategory.Collector;
            Main.Achievements.RegisterAchievementCategory("OBTAIN_HAMMER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("HEAVY_METAL", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("STAR_POWER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("MINER_FOR_FIRE", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("HEAD_IN_THE_CLOUDS", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("DRAX_ATTAX", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("PRISMANCER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("SWORD_OF_THE_HERO", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("HOLD_ON_TIGHT", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("THE_CAVALRY", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("DYE_HARD", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("MATCHING_ATTIRE", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("FASHION_STATEMENT", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("COMPLETELY_AWESOME", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("TIMBER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("SICK_THROW", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("GLORIOUS_GOLDEN_POLE", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("TEMPLE_RAIDER", achievementCategory);
            Main.Achievements.RegisterAchievementCategory("LIKE_A_BOSS", achievementCategory);
            Main.Achievements.Load();
            Main.Achievements.OnAchievementCompleted += new Achievement.AchievementCompleted(AchievementInitializer.OnAchievementCompleted);
            AchievementsHelper.Initialize();
        }
Example #30
0
    void DisplayDefinitions()
    {
        EditorStyles.textField.wordWrap = true;
        // split window in 2
        GUILayout.BeginHorizontal();
        GUILayout.BeginVertical(GUILayout.MaxWidth(leftPanelWidth));
        GUILayout.Space(5);
        // show all items in a listbox
        definitionScroll = EditorGUILayout.BeginScrollView(definitionScroll, (GUIStyle)"box");

        foreach (Category category in categories.Values)
        {
            EditorGUILayout.BeginHorizontal();
            Rect foldoutRect = GUILayoutUtility.GetRect(new GUIContent(category.category.name), EditorStyles.foldout);
            Rect buttonRect  = new Rect(foldoutRect.xMin + 15, foldoutRect.yMin, foldoutRect.width - 15, foldoutRect.height);
            foldoutRect.width = 15;
            category.foldout  = EditorGUI.Foldout(foldoutRect, category.foldout, category.category.name);
            GUI.depth--;
            if (GUI.Button(buttonRect, "", (GUIStyle)"label"))
            {
                selectedCategory   = category;
                selectedDefinition = null;
                GUI.FocusControl("");
            }
            GUI.depth++;

            EditorGUILayout.EndHorizontal();
            if (category.foldout)
            {
                foreach (AchievementDefinitionInfo definitionInfo in category.achievements)
                {
                    // show selectable name
                    if (definitionInfo != selectedDefinition)
                    {
                        if (GUILayout.Button(definitionInfo.definition.name, (GUIStyle)"label"))
                        {
                            selectedDefinition = definitionInfo;
                            EditorGUIUtility.keyboardControl = 0;
                        }
                    }
                    else
                    {
                        GUILayout.Label(definitionInfo.definition.name, (GUIStyle)"boldLabel");
                    }
                }
            }
        }


        EditorGUILayout.EndScrollView();
        // add - remove buttons
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("+"))
        {
            // add new definition
            AchievementDefinition newDef = new AchievementDefinition();
            newDef.name = "NewAchievement";
            achievementDefinitions.definitions.Add(newDef);
            AchievementDefinitionInfo info = new AchievementDefinitionInfo(newDef);
            definitions.Add(info);
            categories[0].achievements.Add(info);
            EditorUtility.SetDirty(achievementDefinitions);

            selectedDefinition = info;
        }
        if (GUILayout.Button("-"))
        {
            // remove selected definition
            achievementDefinitions.definitions.Remove(selectedDefinition.definition);
            EditorUtility.SetDirty(achievementDefinitions);

            definitions.Remove(selectedDefinition);
            selectedDefinition = null;
        }
        EditorGUILayout.EndHorizontal();
        if (GUILayout.Button("Add Category"))
        {
            // add category
            AchievementCategory cat = new AchievementCategory();
            cat.name = "NewCategory";
            cat.id   = achievementDefinitions.maxCatId++;
            achievementDefinitions.categories.Add(cat);
            EditorUtility.SetDirty(achievementDefinitions);
            Category category = new Category();
            category.category = cat;
            categories.Add(category.category.id, category);
            BuildCategoryPopup();

            selectedCategory   = category;
            selectedDefinition = null;
        }
        GUILayout.Space(5);
        GUILayout.EndVertical();
        // add splitter
        leftPanelWidth = Splitter(leftPanelWidth);


        GUILayout.BeginVertical();

        if (selectedDefinition != null)
        {
            // show definition info
            selectedDefinition.definition.name  = EditorGUILayout.TextField("Name", selectedDefinition.definition.name);
            selectedDefinition.definition.title = EditorGUILayout.TextField("Title", selectedDefinition.definition.title);

            EditorGUI.BeginChangeCheck();
            Category oldCat = categories[selectedDefinition.definition.categoryId];
            selectedDefinition.definition.categoryId = EditorGUILayout.Popup(getPopupIndexFromCategory(categories[selectedDefinition.definition.categoryId]), categoryPopup.ToArray());
            if (EditorGUI.EndChangeCheck())
            {
                // show in correct category
                oldCat.achievements.Remove(selectedDefinition);
                categories[selectedDefinition.definition.categoryId].achievements.Add(selectedDefinition);
            }

            EditorGUILayout.LabelField("Description");
            selectedDefinition.definition.description = EditorGUILayout.TextArea(selectedDefinition.definition.description, GUILayout.Height(EditorStyles.textField.lineHeight * 3));

            EditorGUILayout.LabelField("Incomplete Description");
            selectedDefinition.definition.incompleteDescription = EditorGUILayout.TextArea(selectedDefinition.definition.incompleteDescription, GUILayout.Height(EditorStyles.textField.lineHeight * 3));

            selectedDefinition.definition.hidden = EditorGUILayout.Toggle("Hidden", selectedDefinition.definition.hidden);

            selectedDefinition.definition.type = (AchievementDefinition.Type)EditorGUILayout.EnumPopup("Type", selectedDefinition.definition.type);

            {
                // show conditions depending on type
                switch (selectedDefinition.definition.type)
                {
                case AchievementDefinition.Type.Bool:
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField(new GUIContent("ConditionValue", "If checked, the variable needs to be true for the achievement to complete"));
                    // true false checkbox
                    selectedDefinition.definition.conditionBoolValue = EditorGUILayout.Toggle(selectedDefinition.definition.conditionBoolValue);
                    EditorGUILayout.EndHorizontal();
                    break;

                case AchievementDefinition.Type.Float:
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField(new GUIContent("ConditionValue", "The variable needs to be higher then the value given for the achievement to complete"));
                    selectedDefinition.definition.conditionFloatValue = EditorGUILayout.FloatField(selectedDefinition.definition.conditionFloatValue);
                    EditorGUILayout.EndHorizontal();
                    selectedDefinition.definition.progressChangeSize = EditorGUILayout.FloatField(new GUIContent("Progress Change", "Will report progress when variable is divisable by the given value"), selectedDefinition.definition.progressChangeSize);
                    break;

                case AchievementDefinition.Type.Int:
                    EditorGUILayout.BeginHorizontal();
                    EditorGUILayout.LabelField(new GUIContent("ConditionValue", "The variable needs to be higher then the value given for the achievement to complete"));
                    selectedDefinition.definition.conditionIntValue = EditorGUILayout.IntField(selectedDefinition.definition.conditionIntValue);
                    EditorGUILayout.EndHorizontal();
                    selectedDefinition.definition.progressChangeSize = EditorGUILayout.FloatField(new GUIContent("Progress Change", "Will report progress when variable is divisable by the given value"), selectedDefinition.definition.progressChangeSize);
                    break;
                }
            }
        }
        else if (selectedCategory != null)
        {
            EditorGUI.BeginChangeCheck();
            selectedCategory.category.name = EditorGUILayout.TextField("Category Name", selectedCategory.category.name);
            if (EditorGUI.EndChangeCheck())
            {
                BuildCategoryPopup();
            }
            if (selectedCategory.category.id == 0)
            {
                GUI.enabled = false;
            }
            if (GUILayout.Button("Remove"))
            {
                // remove category
                foreach (var achievement in selectedCategory.achievements)
                {
                    achievement.definition.categoryId = 0;
                    categories[0].achievements.Add(achievement);
                }
                categories.Remove(selectedCategory.category.id);

                selectedCategory = null;
                EditorUtility.SetDirty(achievementDefinitions);
            }
            if (selectedCategory == null || selectedCategory.category.id == 0)
            {
                GUI.enabled = true;
            }
        }

        GUILayout.EndVertical();
        GUILayout.EndHorizontal();

        if (GUI.changed)
        {
            EditorUtility.SetDirty(achievementDefinitions);
        }

        // HACK to unfocus controls
        GUI.SetNextControlName("");
    }
Example #31
0
 public void RegisterAchievementCategory(string achievementName, AchievementCategory category)
 {
     this._achievements[achievementName].SetCategory(category);
 }
 public void SetCategory(AchievementCategory category)
 {
     this._category = category;
 }
Example #33
0
 public static ObservableCollection<AchievementCategory> LoadAchievementCategory()
 {
     ObservableCollection<AchievementCategory> list = new ObservableCollection<AchievementCategory>();
     using (FileStream stream = File.Open(DATA_PATH + "DBC/Achievement_Category.dbc", FileMode.Open))
     {
         BinaryReader r = new BinaryReader(stream);
         DBCHeader header = DBC.ReadDBCHeader(r);
         int dataSize = 20 + header.RowSize * header.Records;
         for (int i = 0; i != header.Records; ++i)
         {
             AchievementCategory category = new AchievementCategory();
             category.ID = r.ReadInt32();
             category.ParentID = r.ReadInt32();
             stream.Position += 16;
             category.Name = DBC.ReadString(r, dataSize);
             stream.Position += 44;
             category.NameFlag = r.ReadInt32();
             category.UIOrder = r.ReadInt32();
             list.Add(category);
         }
         r.Close();
     }
     return list;
 }
        protected override void DrawSelf(SpriteBatch spriteBatch)
        {
            base.DrawSelf(spriteBatch);
            int     num1      = this._large.ToInt() * 6;
            Vector2 vector2_1 = new Vector2((float)num1, 0.0f);

            this._locked = !this._achievement.IsCompleted;
            this.UpdateIconFrame();
            CalculatedStyle          innerDimensions = this.GetInnerDimensions();
            CalculatedStyle          dimensions      = this._achievementIconBorders.GetDimensions();
            Vector2                  vector2_2       = new Vector2(dimensions.X + dimensions.Width + 7f, innerDimensions.Y);
            Tuple <Decimal, Decimal> trackerValues   = this.GetTrackerValues();
            bool flag = false;

            if ((!(trackerValues.Item1 == Decimal.Zero) || !(trackerValues.Item2 == Decimal.Zero)) && this._locked)
            {
                flag = true;
            }
            float   num2        = (float)((double)innerDimensions.Width - (double)dimensions.Width + 1.0) - (float)(num1 * 2);
            Vector2 baseScale1  = new Vector2(0.85f);
            Vector2 baseScale2  = new Vector2(0.92f);
            string  wrappedText = Main.fontItemStack.CreateWrappedText(this._achievement.Description.Value, (float)(((double)num2 - 20.0) * (1.0 / (double)baseScale2.X)), Language.ActiveCulture.CultureInfo);
            Vector2 stringSize1 = ChatManager.GetStringSize(Main.fontItemStack, wrappedText, baseScale2, num2);

            if (!this._large)
            {
                stringSize1 = ChatManager.GetStringSize(Main.fontItemStack, this._achievement.Description.Value, baseScale2, num2);
            }
            float num3 = (float)(38.0 + (this._large ? 20.0 : 0.0));

            if ((double)stringSize1.Y > (double)num3)
            {
                baseScale2.Y *= num3 / stringSize1.Y;
            }
            Color   baseColor1 = Color.Lerp(this._locked ? Color.Silver : Color.Gold, Color.White, this.IsMouseHovering ? 0.5f : 0.0f);
            Color   baseColor2 = Color.Lerp(this._locked ? Color.DarkGray : Color.Silver, Color.White, this.IsMouseHovering ? 1f : 0.0f);
            Color   color1     = this.IsMouseHovering ? Color.White : Color.Gray;
            Vector2 vector2_3  = Vector2.UnitY * 2f;
            Vector2 position1  = vector2_2 - vector2_3 + vector2_1;

            this.DrawPanelTop(spriteBatch, position1, num2, color1);
            AchievementCategory category = this._achievement.Category;

            position1.Y += 2f;
            position1.X += 4f;
            spriteBatch.Draw(this._categoryTexture, position1, new Rectangle?(this._categoryTexture.Frame(4, 2, (int)category, 0)), this.IsMouseHovering ? Color.White : Color.Silver, 0.0f, Vector2.Zero, 0.5f, SpriteEffects.None, 0.0f);
            position1.X += 4f;
            position1.X += 17f;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, this._achievement.FriendlyName.Value, position1, baseColor1, 0.0f, Vector2.Zero, baseScale1, num2, 2f);
            position1.X -= 17f;
            Vector2 vector2_4 = Vector2.UnitY * 27f;
            Vector2 position2 = vector2_2 + vector2_4 + vector2_1;

            this.DrawPanelBottom(spriteBatch, position2, num2, color1);
            position2.X += 8f;
            position2.Y += 4f;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, wrappedText, position2, baseColor2, 0.0f, Vector2.Zero, baseScale2, -1f, 2f);
            if (!flag)
            {
                return;
            }
            Vector2 position3   = position1 + Vector2.UnitX * num2 + Vector2.UnitY;
            string  text        = (int)trackerValues.Item1.ToString() + "/" + (int)trackerValues.Item2.ToString();
            Vector2 baseScale3  = new Vector2(0.75f);
            Vector2 stringSize2 = ChatManager.GetStringSize(Main.fontItemStack, text, baseScale3, -1f);
            float   progress    = (float)(trackerValues.Item1 / trackerValues.Item2);
            float   Width       = 80f;
            Color   color2      = new Color(100, (int)byte.MaxValue, 100);

            if (!this.IsMouseHovering)
            {
                color2 = Color.Lerp(color2, Color.Black, 0.25f);
            }
            Color BackColor = new Color((int)byte.MaxValue, (int)byte.MaxValue, (int)byte.MaxValue);

            if (!this.IsMouseHovering)
            {
                BackColor = Color.Lerp(BackColor, Color.Black, 0.25f);
            }
            this.DrawProgressBar(spriteBatch, progress, position3 - Vector2.UnitX * Width * 0.7f, Width, BackColor, color2, color2.MultiplyRGBA(new Color(new Vector4(1f, 1f, 1f, 0.5f))));
            position3.X -= Width * 1.4f + stringSize2.X;
            ChatManager.DrawColorCodedStringWithShadow(spriteBatch, Main.fontItemStack, text, position3, baseColor1, 0.0f, new Vector2(0.0f, 0.0f), baseScale3, 90f, 2f);
        }
 public void AddToAchievementCategories(AchievementCategory achievementCategory)
 {
     base.AddObject("AchievementCategories", achievementCategory);
 }
Example #36
0
        private void GenerateAchievement(Mod mod, string name, string description, Texture2D lockedtex, Texture2D unlockedtex, AchievementCategory category)
        {
            ModAchievement ach = new ModAchievement();

            ach.mod             = mod;
            ach.Name            = name;
            ach.Description     = description;
            ach.LockedTexture   = lockedtex;
            ach.UnlockedTexture = unlockedtex;
            ach.Category        = category;
            Achievement cheev = ach.GetAchievement();
            FieldInfo   cat   = typeof(Achievement).GetField("_category", BindingFlags.NonPublic | BindingFlags.Instance);

            cat.SetValue(cheev, ach.Category);

            Achievements.Add(ach);
        }
 public AchievementCategory Update(AchievementCategory achievementCategory)
 {
     return _entityUpdateService.Update(achievementCategory);
 }
        public AchievementCategoryTreeNode FindAchievementCategoryNode(TreeNodeCollection nodes, AchievementCategory category)
        {
            foreach (AchievementCategoryTreeNode node in nodes)
            {
                if (node.AchievementCategory.Equals(category))
                {
                    return(node);
                }

                if (node.Nodes.Count > 0)
                {
                    var found = FindAchievementCategoryNode(node.Nodes, category);
                    if (found != null)
                    {
                        return(found);
                    }
                }
            }

            return(null);
        }