Пример #1
0
 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);
     }
 }
Пример #2
0
 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;
         }
     }
 }