private int RefreshCards(CustomSelfDrawPanel.CSDImage content, List<CustomSelfDrawPanel.UICard> list, int width) { int[] numArray = null; if (GameEngine.Instance.World.lastUserCardSearchCriteria != null) { switch (GameEngine.Instance.World.lastUserCardSearchCriteria.newCardCategoryFilter) { case 0x1001: numArray = CardTypes.newCategories_ApplesOrder; break; case 0x1002: numArray = CardTypes.newCategories_CheeseOrder; break; case 0x1003: numArray = CardTypes.newCategories_MeatOrder; break; case 0x1004: numArray = CardTypes.newCategories_BreadOrder; break; case 0x1005: numArray = CardTypes.newCategories_VegOrder; break; case 0x1006: numArray = CardTypes.newCategories_FishOrder; break; case 0x1007: numArray = CardTypes.newCategories_AleOrder; break; case 0x2001: numArray = CardTypes.newCategories_WoodOrder; break; case 0x2002: numArray = CardTypes.newCategories_StoneOrder; break; case 0x2003: numArray = CardTypes.newCategories_IronOrder; break; case 0x2004: numArray = CardTypes.newCategories_PitchOrder; break; case 0x4001: numArray = CardTypes.newCategories_VenisonOrder; break; case 0x4002: numArray = CardTypes.newCategories_FurnitureOrder; break; case 0x4003: numArray = CardTypes.newCategories_MetalwareOrder; break; case 0x4004: numArray = CardTypes.newCategories_ClothesOrder; break; case 0x4005: numArray = CardTypes.newCategories_WineOrder; break; case 0x4006: numArray = CardTypes.newCategories_SaltOrder; break; case 0x4007: numArray = CardTypes.newCategories_SpicesOrder; break; case 0x4008: numArray = CardTypes.newCategories_SilkOrder; break; case 0x8001: numArray = CardTypes.newCategories_BowsOrder; break; case 0x8002: numArray = CardTypes.newCategories_PikesOrder; break; case 0x8003: numArray = CardTypes.newCategories_ArmourOrder; break; case 0x8004: numArray = CardTypes.newCategories_SwordsOrder; break; case 0x8005: numArray = CardTypes.newCategories_CatapultsOrder; break; case 0x10001: numArray = CardTypes.newCategories_CastleConOrder; break; case 0x10002: numArray = CardTypes.newCategories_DefencesOrder; break; case 0x10003: numArray = CardTypes.newCategories_WallsOrder; break; case 0x10004: numArray = CardTypes.newCategories_KnightsOrder; break; case 0x20001: numArray = CardTypes.newCategories_ScoutingOrder; break; case 0x20002: numArray = CardTypes.newCategories_SpeedOrder; break; case 0x20003: numArray = CardTypes.newCategories_RecruitmentOrder; break; case 0x20004: numArray = CardTypes.newCategories_TroopsOrder; break; case 0x20005: numArray = CardTypes.newCategories_DiplomacyOrder; break; case 0x40001: numArray = CardTypes.newCategories_TradeOrder; break; case 0x40002: numArray = CardTypes.newCategories_ReligionOrder; break; case 0x40003: numArray = CardTypes.newCategories_HonourOrder; break; case 0x40004: numArray = CardTypes.newCategories_GoldOrder; break; case 0x40005: numArray = CardTypes.newCategories_PopOrder; break; case 0x40006: numArray = CardTypes.newCategories_ResearchOrder; break; case 0x40007: numArray = CardTypes.newCategories_CapacityOrder; break; case 0x40008: numArray = CardTypes.newCategories_ConstructionOrder; break; } } if (GameEngine.Instance.World.getTutorialStage() == 8) { list.Sort(CustomSelfDrawPanel.UICard.TUT2cardsNameComparer); } else if (GameEngine.Instance.World.getTutorialStage() == 12) { list.Sort(CustomSelfDrawPanel.UICard.TUTcardsNameComparer); } else if (this.sortByMode == 0) { list.Sort(CustomSelfDrawPanel.UICard.cardsNameComparer); } else if (this.sortByMode == 1) { list.Sort(CustomSelfDrawPanel.UICard.cardsIDComparer); } else if (this.sortByMode == 2) { list.Sort(CustomSelfDrawPanel.UICard.cardsNameComparerReverse); } else if (this.sortByMode == 3) { list.Sort(CustomSelfDrawPanel.UICard.cardsIDComparerReverse); } else if (this.sortByMode == 7) { list.Sort(CustomSelfDrawPanel.UICard.cardsQuantityComparer); } else if (this.sortByMode == 8) { list.Sort(CustomSelfDrawPanel.UICard.cardsQuantityComparerReverse); } int num = GameEngine.Instance.World.getRank() + 1; content.clearDirectControlsOnly(); foreach (CustomSelfDrawPanel.UICard card in this.dummyCards) { card.clearControls(); } this.dummyCards.Clear(); int num2 = 0; int x = 0x10; int y = 0; if (this.currentCardSection == 0) { x = 0; } if (numArray != null) { this.sortBack.Visible = false; this.AvailablePanelContent.ClipRect = new Rectangle(this.AvailablePanelContent.ClipRect.X, this.AvailablePanelContent.ClipRect.Y, this.AvailablePanelContent.ClipRect.Width, this.AvailablePanel.Height - (BorderPadding * 2)); int num5 = 0; int num6 = -1; for (int i = 0; i < numArray.Length; i += 3) { if (numArray[i + 2] != num6) { int cardType = numArray[i]; int num9 = numArray[i + 1] * 0xb2; int num10 = (numArray[i + 2] - num5) * 0xed; bool flag = false; CustomSelfDrawPanel.UICard control = null; foreach (CustomSelfDrawPanel.UICard card3 in list) { if (CardTypes.getCardType(card3.Definition.id) == cardType) { flag = true; control = card3; } } CardTypes.CardDefinition def = CardTypes.getCardDefinition(cardType); if ((!flag && (((def.cardRank <= 0) || (def.cardRarity <= 0)) || (def.available != 1))) && (num9 == 0)) { bool flag2 = false; int num11 = CardTypes.getCardType(cardType); if ((num11 >= 0xbd7) && (num11 <= 0xbf5)) { for (int j = 0; j < numArray.Length; j += 3) { if (((numArray[j + 2] == numArray[i + 2]) && (cardType != numArray[j])) && (CardTypes.getCardDefinition(numArray[j]).available == 1)) { numArray[j + 1]--; flag2 = true; } } } if (!flag2) { num5++; num6 = numArray[i + 2]; continue; } } if ((num10 + 0xed) > num2) { num2 = num10 + 0xed; } if (flag) { control.Position = new Point(num9, num10); content.addControl(control); if ((num < control.Definition.cardRank) || (control.UserIDList.Count == 0)) { control.rankLabel.Color = ARGBColors.Red; control.Hilight(ARGBColors.Gray); } else { control.rankLabel.Color = ARGBColors.White; control.Hilight(ARGBColors.White); } if (control.cardCount > 1) { control.countLabel.Text = control.cardCount.ToString(); if (control.cardCount >= 100) { control.countLabel.Font = FontManager.GetFont("Arial", 16f, FontStyle.Bold); } else { control.countLabel.Font = FontManager.GetFont("Arial", 18f, FontStyle.Bold); } } } else if (((def.cardRank > 0) && (def.cardRarity > 0)) && (def.available == 1)) { CustomSelfDrawPanel.UICard card4 = BuyCardsPanel.makeUICard(def, RemoteServices.Instance.UserID, 0x2710); card4.Position = new Point(num9, num10); content.addControl(card4); CustomSelfDrawPanel.CSDFill fill = new CustomSelfDrawPanel.CSDFill { FillColor = Color.FromArgb(170, 0, 0, 0), Alpha = 0.2f, Position = new Point(2, 1), Size = new Size((card4.Size.Width - 2) - 4, (card4.Size.Height - 1) - 5) }; card4.addControl(fill); this.dummyCards.Add(card4); card4.CustomTooltipID = 0x2775; card4.CustomTooltipData = cardType; CustomSelfDrawPanel.CSDLabel label = new CustomSelfDrawPanel.CSDLabel(); if (def.cardPoints > 0) { label.Text = SK.Text("CARDS_GetCard", "Get Card"); label.Data = def.id; label.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.linkToBuy)); } else { label.Text = SK.Text("CARDS_No_Cards", "No Cards"); } label.Position = new Point(num9 + 3, num10 + 5); label.Size = new Size(0x9d, 0xd9); label.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_CENTER; label.Font = FontManager.GetFont("Arial", 12f, FontStyle.Bold); label.Color = ARGBColors.White; label.CustomTooltipID = 0x2775; label.CustomTooltipData = cardType; content.addControl(label); } } } } else { if (!this.usingRecentFilter) { this.sortBack.Visible = true; } this.AvailablePanelContent.ClipRect = new Rectangle(this.AvailablePanelContent.ClipRect.X, this.AvailablePanelContent.ClipRect.Y, this.AvailablePanelContent.ClipRect.Width, (this.AvailablePanel.Height - (BorderPadding * 2)) - 0x18); int num13 = 0; int num14 = 0; foreach (CustomSelfDrawPanel.UICard card5 in list) { card5.Position = new Point(x, y); content.addControl(card5); num14 = y; if (x > width) { x = 0x10; if (this.currentCardSection == 0) { x = 0; } if (!this.compressedCards) { y += card5.Height + 8; } else { y += 0x3a; } } else { x += card5.Width + 12; } if (this.compressedCards && (num13 < (list.Count - 4))) { card5.ClipRect = new Rectangle(0, 0, card5.Width, 60); card5.bigEffect.Visible = false; card5.rankLabel.Visible = false; } else { card5.ClipRect = Rectangle.Empty; card5.bigEffect.Visible = true; card5.rankLabel.Visible = true; } if (this.compressedCards) { CustomSelfDrawPanel.CSDLine line = new CustomSelfDrawPanel.CSDLine { Position = new Point(card5.Position.X + 3, card5.Position.Y + 1), Size = new Size(card5.Width - 7, 0), LineColor = Color.FromArgb(0x80, ARGBColors.Black) }; content.addControl(line); } num13++; if ((num < card5.Definition.cardRank) || (card5.UserIDList.Count == 0)) { card5.rankLabel.Color = ARGBColors.Red; card5.Hilight(ARGBColors.Gray); } else { card5.rankLabel.Color = ARGBColors.White; card5.Hilight(ARGBColors.White); } if (card5.cardCount > 1) { card5.countLabel.Text = card5.cardCount.ToString(); if (card5.cardCount >= 100) { card5.countLabel.Font = FontManager.GetFont("Arial", 16f, FontStyle.Bold); } else { card5.countLabel.Font = FontManager.GetFont("Arial", 18f, FontStyle.Bold); } } } if (list.Count > 0) { num2 = (num14 + list[0].Height) + 8; } } disableCardsInPlay(this.UICardList); content.invalidate(); return num2; }