public void OurRemoteAsyncCallBack_PreAttackSetup(IAsyncResult ar) { RemoteAsyncDelegate_PreAttackSetup asyncDelegate = (RemoteAsyncDelegate_PreAttackSetup) ((AsyncResult) ar).AsyncDelegate; try { this.storeRPCresult(ar, asyncDelegate.EndInvoke(ar)); } catch (Exception exception) { PreAttackSetup_ReturnType returnData = new PreAttackSetup_ReturnType(); this.manageRemoteExpection(ar, returnData, exception); } }
public void preAttackSetupCallback(PreAttackSetup_ReturnType returnData) { if (returnData.sameFaction) { MyMessageBox.Show(SK.Text("GameEngine_Target_Faction", "Your target is in your Faction."), SK.Text("GENERIC_Cannot_Attack_Target", "Cannot Attack Target")); InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } else if (returnData.sameHouse) { MyMessageBox.Show(SK.Text("GameEngine_Target_House", "Your target is in your House."), SK.Text("GENERIC_Cannot_Attack_Target", "Cannot Attack Target")); InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } else if (returnData.protectedVillage) { MyMessageBox.Show(SK.Text("GameEngine_Protected_Interdiction", "This village is protected from attack by an Interdiction."), SK.Text("GENERIC_Village_Protected", "Village Protected")); InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } else if (returnData.vacationVillage) { MyMessageBox.Show(SK.Text("GameEngine_Protected_Vacation", "This village is protected from attack by Vacation Mode."), SK.Text("GENERIC_Village_Protected", "Village Protected")); InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } else if (returnData.vassalVacation) { MyMessageBox.Show(SK.Text("GameEngine_Vassal_Vacation", "Your vassal is in Vacation Mode and you cannot attack from here."), SK.Text("GENERIC_Cannot_Attack_Target", "Cannot Attack Target")); InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } else if (returnData.peaceVillage) { if (!this.world.isCapital(returnData.targetVillage)) { MyMessageBox.Show(SK.Text("GameEngine_Protected_Peacetime", "This village is within Peace Time and cannot be attacked."), SK.Text("GENERIC_Village_Protected", "Village Protected")); } else { MyMessageBox.Show(SK.Text("GameEngine_Protected_Peacetime_Capital", "This capital is within peace time and cannot be attacked."), SK.Text("GENERIC_Capital_Protected", "Capital Protected")); } InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } else if (returnData.peaceAttacker) { if (returnData.parentAttackingVillage != returnData.attackingVillage) { MyMessageBox.Show(SK.Text("GameEngine_Cannot_Attack_PeaceTime", "You are within Peace Time and cannot attack from this village."), SK.Text("GENERIC_Village_Protected", "Village Protected")); InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } else { MessageBoxButtons yesNo = MessageBoxButtons.YesNo; if (MyMessageBox.Show(SK.Text("GameEngine_Currently_Peacetime", "You are currently Peace Time protected") + "\n" + SK.Text("GameEngine_CancelProtection", "Do you wish to cancel this protection?"), SK.Text("GENERIC_Village_Protected", "Village Protected"), yesNo) == DialogResult.Yes) { this.sentParentVillageID = returnData.parentAttackingVillage; this.sentAttackingVillageID = returnData.attackingVillage; this.sentTargetVillageID = returnData.targetVillage; RemoteServices.Instance.set_CancelInterdiction_UserCallBack(new RemoteServices.CancelInterdiction_UserCallBack(this.cancelInterdictionCallback)); RemoteServices.Instance.CancelInterdiction(returnData.attackingVillage); } else { InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } } } else if (returnData.protectedAttacker) { if (returnData.parentAttackingVillage != returnData.attackingVillage) { MyMessageBox.Show(SK.Text("GameEngine_Currently_Interdited_Vassal", "Your vassal is protected by Interdiction and you cannot attack from this village."), SK.Text("GameEngine_Currently_Interdited_protected", "Your Vassal is Protected")); InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } else { MessageBoxButtons buts = 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"), buts) == DialogResult.Yes) { this.sentParentVillageID = returnData.parentAttackingVillage; this.sentAttackingVillageID = returnData.attackingVillage; this.sentTargetVillageID = returnData.targetVillage; RemoteServices.Instance.set_CancelInterdiction_UserCallBack(new RemoteServices.CancelInterdiction_UserCallBack(this.cancelInterdictionCallback)); if (this.LocalWorldData.AIWorld) { RemoteServices.Instance.CancelInterdiction(-returnData.attackingVillage); } else { RemoteServices.Instance.CancelInterdiction(returnData.attackingVillage); } } else { InterfaceMgr.Instance.getMainTabBar().changeTab(9); InterfaceMgr.Instance.getMainTabBar().changeTab(0); } } } else if (returnData.Success) { int num = 0; if (returnData.battleHonourData != null) { returnData.battleHonourData.attackType = 11; if (!Instance.World.isCapital(returnData.parentAttackingVillage)) { num = CastlesCommon.calcBattleHonourCost(returnData.battleHonourData, Instance.LocalWorldData.Alternate_Ruleset == 1); } } if ((num > 0) && (this.World.getCurrentHonour() <= 0.0)) { MyMessageBox.Show(SK.Text("GameEngine_Require_Honour_To_Attack", "You require honour to attack this target."), SK.Text("GENERIC_Attack_Error", "Attack Error")); } else { this.InitCastleAttackSetup(returnData.castleMapSnapshot, returnData.castleTroopsSnapshot, returnData.keepLevel, returnData.numPeasants, returnData.numArchers, returnData.numPikemen, returnData.numSwordsmen, returnData.numCatapults, returnData.attackingVillage, returnData.targetVillage, returnData.attackType, returnData.pillagePercent, returnData.captainsCommand, returnData.parentAttackingVillage, returnData.numPeasantsInCastle, returnData.numArchersInCastle, returnData.numPikemenInCastle, returnData.numSwordsmenInCastle, returnData.targetUserID, returnData.targetUserName, returnData.battleHonourData, returnData.numCaptainsInCastle, returnData.numCaptains, returnData.landType, returnData.capitalAttackRate); InterfaceMgr.Instance.setCastleViewTimes(returnData.lastCastleTime, returnData.castleMapSnapshot != null, returnData.lastTroopTime, returnData.castleTroopsSnapshot != null); } } else { switch (returnData.m_errorCode) { case ErrorCodes.ErrorCode.ATTACKING_NOT_ENOUGH_TROOPS: case ErrorCodes.ErrorCode.ATTACKING_INVALID_TARGET: MyMessageBox.Show(ErrorCodes.getErrorString(returnData.m_errorCode, returnData.m_errorID), SK.Text("GENERIC_Attack_Error", "Attack Error")); break; } } }