public void updateEmptyVillageText(int selectedVillage)
        {
            bool flag = false;
            bool flag2 = false;
            if (GameEngine.Instance.World.isSpecial(selectedVillage) && GameEngine.Instance.World.isAttackableSpecial(selectedVillage))
            {
                bool flag3 = this.isTallTreasureChestPanel(selectedVillage);
                if (flag3 != this.wasTall)
                {
                    this.init(selectedVillage);
                    flag = true;
                }
                flag2 = flag3;
            }
            if (!flag && GameEngine.Instance.LocalWorldData.AIWorld)
            {
                bool flag4 = false;
                switch (GameEngine.Instance.World.getSpecial(selectedVillage))
                {
                    case 7:
                    case 9:
                    case 11:
                    case 13:
                        flag4 = true;
                        break;

                    default:
                        flag4 = false;
                        break;
                }
                if (flag4 != this.wasAiShort)
                {
                    this.init(selectedVillage);
                }
            }
            NumberFormatInfo nFI = GameEngine.NFI;
            this.m_selectedVillage = selectedVillage;
            this.buyVillageButton.Enabled = true;
            this.attackButton_AI.Enabled = true;
            this.scoutButton_AI.Enabled = true;
            this.scoutButton_Resources.Enabled = true;
            this.treasureCastleTimeoutLabel.Visible = false;
            this.backGround_AI.Visible = false;
            this.backGround_Enemy.Visible = false;
            this.backGround_Resources.Visible = false;
            this.backGround_Charter.Visible = false;
            this.special = false;
            this.invasionLabel.Visible = false;
            this.backGround_AI.removeWikiLink(this.wikiLink);
            this.wikiLink = null;
            int type = GameEngine.Instance.World.getSpecial(selectedVillage);
            if (SpecialVillageTypes.IS_TREASURE_CASTLE(type))
            {
                this.wikiLink = this.backGround_AI.addWikiLink(0x31);
            }
            else if ((type == 15) || (type == 0x11))
            {
                this.wikiLink = this.backGround_AI.addWikiLink(50);
            }
            if (!GameEngine.Instance.World.isSpecial(selectedVillage))
            {
                this.backGround_Charter.Visible = true;
                this.backGround_Charter.updateHeading(SK.Text("EmptyVillagePanel_Available_Village", "New Village Charter"));
                this.backGround_Charter.updatePanelTypeFromVillageID(selectedVillage);
                this.backGround_Charter.stretchBackground();
                base.Parent.Invalidate();
                double villageGoldCost = GameEngine.Instance.LocalWorldData.villageGoldCost;
                double num4 = GameEngine.Instance.World.calcVillageDistance(InterfaceMgr.Instance.getSelectedMenuVillage(), selectedVillage) * GameEngine.Instance.LocalWorldData.villageCostDistanceMultiplier;
                villageGoldCost *= num4 + 1.0;
                int numOwnedVillages = GameEngine.Instance.World.numVillagesOwned();
                int num6 = (int) villageGoldCost;
                num6 *= numOwnedVillages;
                villageGoldCost = num6;
                this.goldLabel.Text = ((int) villageGoldCost).ToString("N", nFI);
                WorldData localWorldData = GameEngine.Instance.LocalWorldData;
                Point point = GameEngine.Instance.World.getVillageLocation(InterfaceMgr.Instance.OwnSelectedVillage);
                Point point2 = GameEngine.Instance.World.getVillageLocation(selectedVillage);
                double d = ((point.X - point2.X) * (point.X - point2.X)) + ((point.Y - point2.Y) * (point.Y - point2.Y));
                d = Math.Sqrt(d) * ((localWorldData.CaptainsMoveSpeed * localWorldData.gamePlaySpeed) * ResearchData.CaptainTimes[GameEngine.Instance.World.UserResearchData.Research_Courtiers]);
                d *= CardTypes.getArmySpeed(GameEngine.Instance.World.UserCardData);
                string str = VillageMap.createBuildTimeString((int) d);
                this.travelTimeLabel.Text = str;
                this.travelTimeLabel.CustomTooltipID = 0x4e20;
                this.travelTimeLabel.CustomTooltipData = (int) d;
                int num8 = 0;
                if (GameEngine.Instance.LocalWorldData.Alternate_Ruleset != 1)
                {
                    num8 = ResearchData.getVillageBuyHonourCost(numOwnedVillages);
                    if (((num8 > 0) && GameEngine.Instance.World.FourthAgeWorld) && (numOwnedVillages < GameEngine.Instance.World.MostAge4Villages))
                    {
                        num8 = 0;
                    }
                }
                if (num8 > 0)
                {
                    this.honourImage.Visible = true;
                    this.honourLabel.Visible = true;
                    this.honourLabel.Text = num8.ToString("N", nFI);
                }
                else
                {
                    this.honourImage.Visible = false;
                    this.honourLabel.Visible = false;
                }
            }
            else
            {
                this.special = true;
                if (GameEngine.Instance.World.isAttackableSpecial(selectedVillage))
                {
                    this.backGround_AI.Visible = true;
                    this.backGround_AI.updateHeading(GameEngine.Instance.World.getVillageNameOrType(selectedVillage));
                    this.backGround_AI.updatePanelTypeFromVillageID(selectedVillage);
                    if (SpecialVillageTypes.IS_TREASURE_CASTLE(type))
                    {
                        if (GameEngine.Instance.World.isCapital(InterfaceMgr.Instance.OwnSelectedVillage))
                        {
                            this.attackButton_AI.Enabled = false;
                        }
                        if (flag2)
                        {
                            this.updateTreasureCastleTimeout();
                            this.treasureCastleTimeoutLabel.Visible = true;
                            this.attackButton_AI.Enabled = false;
                        }
                    }
                }
                else if ((type >= 100) && (type <= 0xc7))
                {
                    this.backGround_Resources.Visible = true;
                    this.backGround_Resources.updateHeading(GameEngine.Instance.World.getVillageNameOrType(selectedVillage));
                    this.backGround_Resources.updatePanelTypeFromVillageID(selectedVillage);
                    this.scoutButton_Resources.Enabled = false;
                }
                else
                {
                    this.backGround_Enemy.Visible = true;
                    if (type == 30)
                    {
                        switch (GameEngine.Instance.World.getAIInvasionMarkerState(selectedVillage))
                        {
                            case 0:
                                this.backGround_Enemy.updateHeading(SK.Text("Invasion_None", "No Invasion Sighted"));
                                break;

                            case 1:
                            {
                                this.backGround_Enemy.updateHeading(SK.Text("Invasion_Planned", "Invasion Sighted"));
                                DateTime time = GameEngine.Instance.World.getNextAIInvasionDate(selectedVillage);
                                if (time != DateTime.MinValue)
                                {
                                    TimeSpan span = (TimeSpan) (time - VillageMap.getCurrentServerTime());
                                    this.invasionLabel.Visible = true;
                                    this.invasionLabel.Text = VillageMap.createBuildTimeString((int) span.TotalSeconds);
                                }
                                break;
                            }
                            case 2:
                                this.backGround_Enemy.updateHeading(SK.Text("Invasion_Inprogress", "Invasion In Progress"));
                                break;
                        }
                    }
                    else
                    {
                        this.backGround_Enemy.updateHeading(GameEngine.Instance.World.getVillageNameOrType(selectedVillage));
                    }
                    this.backGround_Enemy.updatePanelTypeFromVillageID(selectedVillage);
                }
                if (!GameEngine.Instance.World.isScoutableSpecial(selectedVillage) || GameEngine.Instance.World.isCapital(InterfaceMgr.Instance.OwnSelectedVillage))
                {
                    this.scoutButton_AI.Enabled = false;
                    this.scoutButton_Resources.Enabled = false;
                }
                else
                {
                    this.scoutButton_AI.Enabled = true;
                    this.scoutButton_Resources.Enabled = true;
                }
            }
        }
        public void updateEmptyVillageText(int selectedVillage)
        {
            bool flag  = false;
            bool flag2 = false;

            if (GameEngine.Instance.World.isSpecial(selectedVillage) && GameEngine.Instance.World.isAttackableSpecial(selectedVillage))
            {
                bool flag3 = this.isTallTreasureChestPanel(selectedVillage);
                if (flag3 != this.wasTall)
                {
                    this.init(selectedVillage);
                    flag = true;
                }
                flag2 = flag3;
            }
            if (!flag && GameEngine.Instance.LocalWorldData.AIWorld)
            {
                bool flag4 = false;
                switch (GameEngine.Instance.World.getSpecial(selectedVillage))
                {
                case 7:
                case 9:
                case 11:
                case 13:
                    flag4 = true;
                    break;

                default:
                    flag4 = false;
                    break;
                }
                if (flag4 != this.wasAiShort)
                {
                    this.init(selectedVillage);
                }
            }
            NumberFormatInfo nFI = GameEngine.NFI;

            this.m_selectedVillage                  = selectedVillage;
            this.buyVillageButton.Enabled           = true;
            this.attackButton_AI.Enabled            = true;
            this.scoutButton_AI.Enabled             = true;
            this.scoutButton_Resources.Enabled      = true;
            this.treasureCastleTimeoutLabel.Visible = false;
            this.backGround_AI.Visible              = false;
            this.backGround_Enemy.Visible           = false;
            this.backGround_Resources.Visible       = false;
            this.backGround_Charter.Visible         = false;
            this.special = false;
            this.invasionLabel.Visible = false;
            this.backGround_AI.removeWikiLink(this.wikiLink);
            this.wikiLink = null;
            int type = GameEngine.Instance.World.getSpecial(selectedVillage);

            if (SpecialVillageTypes.IS_TREASURE_CASTLE(type))
            {
                this.wikiLink = this.backGround_AI.addWikiLink(0x31);
            }
            else if ((type == 15) || (type == 0x11))
            {
                this.wikiLink = this.backGround_AI.addWikiLink(50);
            }
            if (!GameEngine.Instance.World.isSpecial(selectedVillage))
            {
                this.backGround_Charter.Visible = true;
                this.backGround_Charter.updateHeading(SK.Text("EmptyVillagePanel_Available_Village", "New Village Charter"));
                this.backGround_Charter.updatePanelTypeFromVillageID(selectedVillage);
                this.backGround_Charter.stretchBackground();
                base.Parent.Invalidate();
                double villageGoldCost = GameEngine.Instance.LocalWorldData.villageGoldCost;
                double num4            = GameEngine.Instance.World.calcVillageDistance(InterfaceMgr.Instance.getSelectedMenuVillage(), selectedVillage) * GameEngine.Instance.LocalWorldData.villageCostDistanceMultiplier;
                villageGoldCost *= num4 + 1.0;
                int numOwnedVillages = GameEngine.Instance.World.numVillagesOwned();
                int num6             = (int)villageGoldCost;
                num6               *= numOwnedVillages;
                villageGoldCost     = num6;
                this.goldLabel.Text = ((int)villageGoldCost).ToString("N", nFI);
                WorldData localWorldData = GameEngine.Instance.LocalWorldData;
                Point     point          = GameEngine.Instance.World.getVillageLocation(InterfaceMgr.Instance.OwnSelectedVillage);
                Point     point2         = GameEngine.Instance.World.getVillageLocation(selectedVillage);
                double    d = ((point.X - point2.X) * (point.X - point2.X)) + ((point.Y - point2.Y) * (point.Y - point2.Y));
                d  = Math.Sqrt(d) * ((localWorldData.CaptainsMoveSpeed * localWorldData.gamePlaySpeed) * ResearchData.CaptainTimes[GameEngine.Instance.World.UserResearchData.Research_Courtiers]);
                d *= CardTypes.getArmySpeed(GameEngine.Instance.World.UserCardData);
                string str = VillageMap.createBuildTimeString((int)d);
                this.travelTimeLabel.Text              = str;
                this.travelTimeLabel.CustomTooltipID   = 0x4e20;
                this.travelTimeLabel.CustomTooltipData = (int)d;
                int num8 = 0;
                if (GameEngine.Instance.LocalWorldData.Alternate_Ruleset != 1)
                {
                    num8 = ResearchData.getVillageBuyHonourCost(numOwnedVillages);
                    if (((num8 > 0) && GameEngine.Instance.World.FourthAgeWorld) && (numOwnedVillages < GameEngine.Instance.World.MostAge4Villages))
                    {
                        num8 = 0;
                    }
                }
                if (num8 > 0)
                {
                    this.honourImage.Visible = true;
                    this.honourLabel.Visible = true;
                    this.honourLabel.Text    = num8.ToString("N", nFI);
                }
                else
                {
                    this.honourImage.Visible = false;
                    this.honourLabel.Visible = false;
                }
            }
            else
            {
                this.special = true;
                if (GameEngine.Instance.World.isAttackableSpecial(selectedVillage))
                {
                    this.backGround_AI.Visible = true;
                    this.backGround_AI.updateHeading(GameEngine.Instance.World.getVillageNameOrType(selectedVillage));
                    this.backGround_AI.updatePanelTypeFromVillageID(selectedVillage);
                    if (SpecialVillageTypes.IS_TREASURE_CASTLE(type))
                    {
                        if (GameEngine.Instance.World.isCapital(InterfaceMgr.Instance.OwnSelectedVillage))
                        {
                            this.attackButton_AI.Enabled = false;
                        }
                        if (flag2)
                        {
                            this.updateTreasureCastleTimeout();
                            this.treasureCastleTimeoutLabel.Visible = true;
                            this.attackButton_AI.Enabled            = false;
                        }
                    }
                }
                else if ((type >= 100) && (type <= 0xc7))
                {
                    this.backGround_Resources.Visible = true;
                    this.backGround_Resources.updateHeading(GameEngine.Instance.World.getVillageNameOrType(selectedVillage));
                    this.backGround_Resources.updatePanelTypeFromVillageID(selectedVillage);
                    this.scoutButton_Resources.Enabled = false;
                }
                else
                {
                    this.backGround_Enemy.Visible = true;
                    if (type == 30)
                    {
                        switch (GameEngine.Instance.World.getAIInvasionMarkerState(selectedVillage))
                        {
                        case 0:
                            this.backGround_Enemy.updateHeading(SK.Text("Invasion_None", "No Invasion Sighted"));
                            break;

                        case 1:
                        {
                            this.backGround_Enemy.updateHeading(SK.Text("Invasion_Planned", "Invasion Sighted"));
                            DateTime time = GameEngine.Instance.World.getNextAIInvasionDate(selectedVillage);
                            if (time != DateTime.MinValue)
                            {
                                TimeSpan span = (TimeSpan)(time - VillageMap.getCurrentServerTime());
                                this.invasionLabel.Visible = true;
                                this.invasionLabel.Text    = VillageMap.createBuildTimeString((int)span.TotalSeconds);
                            }
                            break;
                        }

                        case 2:
                            this.backGround_Enemy.updateHeading(SK.Text("Invasion_Inprogress", "Invasion In Progress"));
                            break;
                        }
                    }
                    else
                    {
                        this.backGround_Enemy.updateHeading(GameEngine.Instance.World.getVillageNameOrType(selectedVillage));
                    }
                    this.backGround_Enemy.updatePanelTypeFromVillageID(selectedVillage);
                }
                if (!GameEngine.Instance.World.isScoutableSpecial(selectedVillage) || GameEngine.Instance.World.isCapital(InterfaceMgr.Instance.OwnSelectedVillage))
                {
                    this.scoutButton_AI.Enabled        = false;
                    this.scoutButton_Resources.Enabled = false;
                }
                else
                {
                    this.scoutButton_AI.Enabled        = true;
                    this.scoutButton_Resources.Enabled = true;
                }
            }
        }