private void InitializeComponent() { this.customPanel = new AttackTargetsPanel(); base.SuspendLayout(); this.customPanel.Anchor = AnchorStyles.Right | AnchorStyles.Left | AnchorStyles.Bottom | AnchorStyles.Top; this.customPanel.ClickThru = false; this.customPanel.Location = new Point(0, 0x22); this.customPanel.Name = "customPanel"; this.customPanel.PanelActive = true; this.customPanel.Size = base.Size; this.customPanel.StoredGraphics = null; this.customPanel.TabIndex = 0x63; base.AutoScaleMode = AutoScaleMode.None; base.ClientSize = new Size(700, 450); base.Controls.Add(this.customPanel); this.DoubleBuffered = true; base.FormClosing += new FormClosingEventHandler(this.AttackTargetsPoup_FormClosing); base.Name = "AttackTargetsPopup"; base.ShowClose = true; base.ShowIcon = false; base.ShowInTaskbar = false; base.StartPosition = FormStartPosition.CenterScreen; this.Text = "Manage Formations"; base.TransparencyKey = ARGBColors.Fuchsia; base.Controls.SetChildIndex(this.customPanel, 0); base.ResumeLayout(false); base.PerformLayout(); }
private void villageFavouriteClicked() { if (AttackTargetsPanel.isFavourite(this.m_selectedVillage)) { AttackTargetsPanel.removeFavourite(this.m_selectedVillage); this.targetVillageFavourite.ImageNorm = (Image)GFXLibrary.star_market_3; this.targetVillageFavourite.CustomTooltipID = 0x7e2; } else { AttackTargetsPanel.addFavourite(this.m_selectedVillage); this.targetVillageFavourite.ImageNorm = (Image)GFXLibrary.star_market_1; this.targetVillageFavourite.CustomTooltipID = 0x83b; } }
public void init(int villageID, bool reset) { NumberFormatInfo nFI; int scoutResourceCarryLevel; Color white = ARGBColors.White; Color black = ARGBColors.Black; Color color1 = ARGBColors.White; this.m_selectedVillage = villageID; this.m_ownVillage = InterfaceMgr.Instance.OwnSelectedVillage; base.clearControls(); int y = 0x27; this.mainBackgroundImage.Image = (Image)GFXLibrary.body_background_canvas; this.mainBackgroundImage.ClipRect = new Rectangle(new Point(), base.Size); this.mainBackgroundImage.Position = new Point(0, y); this.mainBackgroundImage.Size = new Size(base.Size.Width, base.Size.Height - y); this.mainBackgroundImage.Tile = true; base.addControl(this.mainBackgroundImage); this.backgroundBottomEdge.Image = (Image)GFXLibrary.popup_border_bottom; this.backgroundBottomEdge.Position = new Point(0, base.Height - 2); base.addControl(this.backgroundBottomEdge); this.backgroundRightEdge.Image = (Image)GFXLibrary.popup_border_rhs; this.backgroundRightEdge.Position = new Point(base.Width - 2, y); base.addControl(this.backgroundRightEdge); this.cardbar.Position = new Point(0, 4); this.mainBackgroundImage.addControl(this.cardbar); this.cardbar.init(7); this.gfxImage.Image = (Image)GFXLibrary.scout_screen_illustration_01; this.gfxImage.Position = new Point(20, 0x47); this.mainBackgroundImage.addControl(this.gfxImage); this.sliderImage.Position = new Point(0x2c, 0x11c); this.sliderImage.Margin = new Rectangle(0x20, 0x3f, 0x20, 0x19); this.sliderImage.Value = 0; this.sliderImage.Max = 0; this.sliderImage.setValueChangeDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ValueChangedDelegate(this.tracksMoved)); this.mainBackgroundImage.addControl(this.sliderImage); this.sliderImage.Create((Image)GFXLibrary.scout_screen_slider, (Image)GFXLibrary.scout_screen_slider_bar, (Image)GFXLibrary.scout_screen_slider_bar, (Image)GFXLibrary.scout_screen_slider_bar, (Image)GFXLibrary.scout_screen_slider_bar, (Image)GFXLibrary.scout_screen_slider_bar); this.arrowImage.Image = (Image)GFXLibrary.scout_screen_arrowbox; this.arrowImage.Position = new Point(0xee, 0x11c); this.mainBackgroundImage.addControl(this.arrowImage); this.scoutingLabel.Text = SK.Text("ScoutPopup_Scouting_Target", "Scouting") + " '" + GameEngine.Instance.World.getVillageNameOrType(villageID) + "'"; this.scoutingLabel.Color = white; this.scoutingLabel.DropShadowColor = black; this.scoutingLabel.Position = new Point(0, 0xf3); this.scoutingLabel.Size = new Size(700, 30); this.scoutingLabel.Font = FontManager.GetFont("Arial", 16f, FontStyle.Regular); this.scoutingLabel.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.TOP_CENTER; this.mainBackgroundImage.addControl(this.scoutingLabel); if (AttackTargetsPanel.isFavourite(this.m_selectedVillage)) { this.targetVillageFavourite.ImageNorm = (Image)GFXLibrary.star_market_1; this.targetVillageFavourite.CustomTooltipID = 0x83b; } else { this.targetVillageFavourite.ImageNorm = (Image)GFXLibrary.star_market_3; this.targetVillageFavourite.CustomTooltipID = 0x7e2; } this.targetVillageFavourite.OverBrighten = true; this.targetVillageFavourite.Position = new Point(650, 0xf4); this.targetVillageFavourite.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.villageFavouriteClicked)); this.targetVillageFavourite.Data = 0; this.mainBackgroundImage.addControl(this.targetVillageFavourite); this.numLabel.Text = ""; this.numLabel.Color = white; this.numLabel.DropShadowColor = black; this.numLabel.Position = new Point(0x3f, 0x17); this.numLabel.Size = new Size(0x3b, 0x18); this.numLabel.Font = FontManager.GetFont("Arial", 18f, FontStyle.Regular); this.numLabel.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_CENTER; this.sliderImage.addControl(this.numLabel); this.timeLabel.Text = "00:00:00"; this.timeLabel.Color = white; this.timeLabel.DropShadowColor = black; this.timeLabel.Position = new Point(-28, 0x17); this.timeLabel.Size = new Size(0xbf, 0x18); this.timeLabel.Font = FontManager.GetFont("Arial", 12f, FontStyle.Regular); this.timeLabel.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_CENTER; this.arrowImage.addControl(this.timeLabel); int index = 0; int type = GameEngine.Instance.World.getSpecial(villageID); switch (type) { case 3: case 4: index = 0x18; break; case 5: case 6: index = 0x19; break; case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: index = 0x1c; break; case 15: case 0x10: case 0x11: case 0x12: index = 0x35; break; case 40: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f: case 0x30: case 0x31: case 50: index = 0x36; break; case 0x33: case 0x34: case 0x35: case 0x36: case 0x37: case 0x38: case 0x39: case 0x3a: case 0x3b: case 60: index = 0x37; break; case 0x3d: case 0x3e: case 0x3f: case 0x40: case 0x41: case 0x42: case 0x43: case 0x44: case 0x45: case 70: index = 0x38; break; case 0x47: case 0x48: case 0x49: case 0x4a: case 0x4b: case 0x4c: case 0x4d: case 0x4e: case 0x4f: case 80: index = 0x39; break; case 0x51: case 0x52: case 0x53: case 0x54: case 0x55: case 0x56: case 0x57: case 0x58: case 0x59: case 90: index = 0x3a; break; case 100: if (HolidayPeriods.xmas(VillageMap.getCurrentServerTime())) { index = 0x3b; } else { index = 0x1d; } break; case 0x6a: index = 30; break; case 0x6b: index = 0x1f; break; case 0x6c: index = 0x21; break; case 0x6d: index = 0x20; break; case 0x70: index = 0x22; break; case 0x71: index = 0x23; break; case 0x72: index = 0x24; break; case 0x73: index = 0x29; break; case 0x74: index = 0x25; break; case 0x75: index = 40; break; case 0x76: index = 0x2a; break; case 0x77: index = 0x2d; break; case 0x79: index = 0x2c; break; case 0x7a: index = 0x26; break; case 0x7b: index = 0x2b; break; case 0x7c: index = 0x2e; break; case 0x7d: index = 0x2f; break; case 0x7e: index = 0x30; break; case 0x80: index = 0x3d; break; case 0x81: index = 60; break; case 130: index = 0x3e; break; case 0x83: index = 0x3f; break; case 0x84: index = 0x40; break; case 0x85: index = 0x27; break; default: if (GameEngine.Instance.World.isRegionCapital(villageID)) { index = 0x31; } else if (GameEngine.Instance.World.isCountyCapital(villageID)) { index = 50; } else if (GameEngine.Instance.World.isProvinceCapital(villageID)) { index = 0x33; } else if (GameEngine.Instance.World.isCountryCapital(villageID)) { index = 0x34; } else { index = GameEngine.Instance.World.getVillageSize(villageID); } break; } switch (type) { case 0x6a: case 0x6b: case 0x6c: case 0x6d: case 0x70: case 0x71: case 0x72: case 0x73: case 0x74: case 0x75: case 0x76: case 0x77: case 0x79: case 0x7a: case 0x7b: case 0x7c: case 0x7d: case 0x7e: case 0x80: case 0x81: case 130: case 0x83: case 0x84: case 0x85: { WorldMap.SpecialVillageCache cache = GameEngine.Instance.World.getSpecialVillageData(villageID, false); if (cache == null) { goto Label_0B37; } nFI = GameEngine.NFI; CustomSelfDrawPanel.CSDLabel control = new CustomSelfDrawPanel.CSDLabel { Text = cache.resourceLevel.ToString("N", nFI), Position = new Point(0x9e, 0x55), Size = new Size(150, 20), Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_CENTER, Color = white, DropShadowColor = black, Font = FontManager.GetFont("Arial", 12f, FontStyle.Regular) }; this.arrowImage.addControl(control); scoutResourceCarryLevel = GameEngine.Instance.LocalWorldData.ScoutResourceCarryLevel; int num5 = GameEngine.Instance.World.UserResearchData.Research_Foraging; scoutResourceCarryLevel = (CardTypes.adjustForagingLevel(GameEngine.Instance.World.UserCardData, scoutResourceCarryLevel) * ResearchData.foragingResearch[num5]) / 2; switch (type) { case 0x77: case 0x79: case 0x7a: case 0x7b: case 0x7c: case 0x7d: case 0x7e: case 0x80: case 0x81: case 130: case 0x83: case 0x84: case 0x85: scoutResourceCarryLevel /= 10; goto Label_0A92; } break; } default: goto Label_0B37; } Label_0A92: this.m_carryLevel = scoutResourceCarryLevel; this.scoutCarryingLabel.Text = this.m_carryLevel.ToString("N", nFI); this.scoutCarryingLabel.Position = new Point(0, 90); this.scoutCarryingLabel.Size = new Size(this.sliderImage.Width, 20); this.scoutCarryingLabel.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.CENTER_CENTER; this.scoutCarryingLabel.Color = white; this.scoutCarryingLabel.DropShadowColor = black; this.scoutCarryingLabel.Font = FontManager.GetFont("Arial", 12f, FontStyle.Regular); this.sliderImage.addControl(this.scoutCarryingLabel); Label_0B37: this.targetImage.Image = (Image)GFXLibrary.scout_screen_icons[index]; this.targetImage.Position = new Point(0xb5, 5); this.arrowImage.addControl(this.targetImage); WorldData localWorldData = GameEngine.Instance.LocalWorldData; Point point = GameEngine.Instance.World.getVillageLocation(InterfaceMgr.Instance.OwnSelectedVillage); Point point2 = GameEngine.Instance.World.getVillageLocation(villageID); int x = point.X; int num7 = point.Y; int num8 = point2.X; int num9 = point2.Y; double d = ((x - num8) * (x - num8)) + ((num7 - num9) * (num7 - num9)); d = Math.Sqrt(d) * ((localWorldData.ScoutsMoveSpeed * localWorldData.gamePlaySpeed) * ResearchData.ScoutTimes[GameEngine.Instance.World.UserResearchData.Research_Horsemanship]); this.storedPreCardDistance = d; d *= CardTypes.getScoutSpeed(GameEngine.Instance.World.UserCardData); string str = VillageMap.createBuildTimeString((int)d); this.timeLabel.Text = str; this.timeLabel.CustomTooltipID = 0x4e20; this.timeLabel.CustomTooltipData = (int)d; this.launchButton.ImageNorm = (Image)GFXLibrary.button_with_inset_normal; this.launchButton.ImageOver = (Image)GFXLibrary.button_with_inset_over; this.launchButton.ImageClick = (Image)GFXLibrary.button_with_inset_pushed; this.launchButton.Position = new Point(520, 0x144); this.launchButton.Text.Text = SK.Text("ScoutPopup_Go", "Go"); this.launchButton.Text.Font = FontManager.GetFont("Arial", 16f, FontStyle.Regular); this.launchButton.TextYOffset = 1; this.launchButton.Text.Color = ARGBColors.Black; this.launchButton.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.launch), "ScoutPopupPanel_launch"); this.launchButton.Enabled = false; this.mainBackgroundImage.addControl(this.launchButton); this.scoutHonourLabel.Text = ""; this.scoutHonourLabel.Color = white; this.scoutHonourLabel.DropShadowColor = black; this.scoutHonourLabel.Position = new Point(0, 410); this.scoutHonourLabel.Size = new Size(700, 30); this.scoutHonourLabel.Font = FontManager.GetFont("Arial", 11f, FontStyle.Regular); this.scoutHonourLabel.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.TOP_CENTER; this.scoutHonourLabel.Visible = false; this.mainBackgroundImage.addControl(this.scoutHonourLabel); if ((type >= 100) && (type <= 0xc7)) { this.scoutHonourLabel.Text = SK.Text("ScoutPopup_No_Honour_Stash_Out_Of_Range", "No Honour will be received, the stash is out of range."); } else if (type == 5) { this.scoutHonourLabel.Text = SK.Text("ScoutPopup_No_Honour_Wolf_Lair_Out_Of_Range", "No Honour will be received, the Wolf Lair is out of range."); } else if (type == 3) { this.scoutHonourLabel.Text = SK.Text("ScoutPopup_No_Honour_Bandit_Camp_Out_Of_Range", "No Honour will be received, the Bandit Camp is out of range."); } else if (((type == 7) || (type == 9)) || ((type == 11) || (type == 13))) { this.scoutHonourLabel.Text = SK.Text("ScoutPopup_No_Honour_AI_castle_Out_Of_Range", "No Honour will be received, the AI Castle is out of range."); } else if (((type == 15) || (type == 0x11)) || SpecialVillageTypes.IS_TREASURE_CASTLE(type)) { this.scoutHonourLabel.Text = SK.Text("LaunchAttackPopup_Paladin_No_Honour", "No honour will be received for destroying this type of AI castle"); } else { this.scoutHonourLabel.Text = SK.Text("ScoutPopup_No_Honour_Village_Out_Of_Range", "No Honour will be received, the village is out of range."); } this.scoutHonourLabel.Visible = GameEngine.Instance.World.isScoutHonourOutOfRange(InterfaceMgr.Instance.OwnSelectedVillage, villageID) && ((type <= 100) || (type > 0xc7)); this.titleImage.Image = (Image)GFXLibrary.popup_title_bar; this.titleImage.Position = new Point(0, 0); base.addControl(this.titleImage); this.titleLabel.Text = SK.Text("OwnVillagePanel_Send_Out_Scouts", "Send Out Scouts"); this.titleLabel.Color = Color.FromArgb(0xff, 0xff, 0xff); this.titleLabel.DropShadowColor = black; this.titleLabel.Position = new Point(20, 5); this.titleLabel.Size = new Size(base.Width, 0x20); this.titleLabel.Font = FontManager.GetFont("Arial", 18f, FontStyle.Bold); this.titleLabel.Alignment = CustomSelfDrawPanel.CSD_Text_Alignment.TOP_LEFT; this.titleImage.addControl(this.titleLabel); this.closeButton.ImageNorm = (Image)GFXLibrary.int_button_close_normal; this.closeButton.ImageOver = (Image)GFXLibrary.int_button_close_over; this.closeButton.ImageClick = (Image)GFXLibrary.int_button_close_in; this.closeButton.Position = new Point(0x293, 5); this.closeButton.setClickDelegate(new CustomSelfDrawPanel.CSDControl.CSD_ClickDelegate(this.closeClick), "ScoutPopupPanel_close"); this.titleImage.addControl(this.closeButton); CustomSelfDrawPanel.WikiLinkControl.init(this.titleImage, 0x22, new Point(0x261, 5)); if (GameEngine.Instance.getVillage(this.m_ownVillage) != null) { this.onVillageLoadUpdate(this.m_ownVillage, true); } else { GameEngine.Instance.downloadCurrentVillage(); } }
public void sendScoutsCallback(SendScouts_ReturnType returnData) { CursorManager.SetCursor(CursorManager.CursorType.Default, base.ParentForm); this.inLaunch = false; if (!returnData.Success && (returnData.m_errorCode == ErrorCodes.ErrorCode.ATTACKING_VILLAGE_INTERDICT_PROTECTED)) { MessageBoxButtons yesNo = MessageBoxButtons.YesNo; if (MyMessageBox.Show(SK.Text("GameEngine_Currently_Interdited", "You are currently Interdiction protected") + "\n" + SK.Text("GameEngine_CancelProtection", "Do you wish to cancel this protection?"), SK.Text("GENERIC_Protected", "You Are Protected"), yesNo) == DialogResult.Yes) { RemoteServices.Instance.set_CancelInterdiction_UserCallBack(new RemoteServices.CancelInterdiction_UserCallBack(this.cancelInterdictionCallback)); RemoteServices.Instance.CancelInterdiction(-returnData.sourceVillage); } else { if (returnData.numScoutsNotTaken > 0) { VillageMap map = GameEngine.Instance.getVillage(returnData.sourceVillage); if (map != null) { map.addTroops(0, 0, 0, 0, 0, returnData.numScoutsNotTaken); } } InterfaceMgr.Instance.closeScoutPopupWindow(); InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } } else { this.closeButton.Enabled = true; if (returnData.Success) { ArmyReturnData[] armyReturnData = new ArmyReturnData[] { returnData.armyData }; GameEngine.Instance.World.doGetArmyData(armyReturnData, null, false); GameEngine.Instance.World.addExistingArmy(returnData.armyData.armyID); InterfaceMgr.Instance.displaySelectedVillagePanel(this.m_ownVillage, false, false, false, false); InterfaceMgr.Instance.closeScoutPopupWindow(); if (returnData.cardData != null) { GameEngine.Instance.World.UserCardData = returnData.cardData; } AttackTargetsPanel.addRecent(returnData.targetVillage); } if (returnData.numScoutsNotTaken > 0) { VillageMap map2 = GameEngine.Instance.getVillage(returnData.sourceVillage); if (map2 != null) { map2.addTroops(0, 0, 0, 0, 0, returnData.numScoutsNotTaken); } if (!returnData.Success) { this.launchButton.Enabled = false; } } if (returnData.Success) { InterfaceMgr.Instance.displaySelectedVillagePanel(this.m_selectedVillage, false, true, false, false); InterfaceMgr.Instance.closeScoutPopupWindow(); } } }