private static void completeAbandonNewQuestCallbackStatic(CompleteAbandonNewQuest_ReturnType returnData) { if (returnData.Success) { if (returnData.goldGiven) { GameEngine.Instance.World.setGoldData(returnData.currentGoldLevel, returnData.currentGoldRate); } if (returnData.honourGiven) { GameEngine.Instance.World.setHonourData(returnData.currentHonourLevel, returnData.currentHonourRate); } if (returnData.fpGiven) { GameEngine.Instance.World.setFaithPointsData(returnData.currentFaithPointsLevel, returnData.currentFaithPointsRate); } if (returnData.premiumCardsGiven) { CardTypes.PremiumToken token = new CardTypes.PremiumToken { Reward = 1, UserPremiumTokenID = returnData.premiumCardID, WorldID = RemoteServices.Instance.ProfileWorldID, Type = 0x1011 }; GameEngine.Instance.World.ProfilePremiumTokens.Add(returnData.premiumCardID, token); } if (returnData.cardPacksGiven > 0) { int key = 1; if (GameEngine.Instance.World.ProfileUserCardPacks.ContainsKey(key)) { CardTypes.UserCardPack pack = GameEngine.Instance.World.ProfileUserCardPacks[key]; pack.Count += returnData.cardPacksGiven; } else { CardTypes.UserCardPack pack2 = new CardTypes.UserCardPack { PackID = key, Count = returnData.cardPacksGiven }; GameEngine.Instance.World.ProfileUserCardPacks[key] = pack2; } } if (returnData.gloryGiven) { GameEngine.Instance.World.clearGloryHistory(); } if (returnData.villageUpdated >= 0) { GameEngine.Instance.flushVillage(returnData.villageUpdated); } if (returnData.ticketsGiven > 0) { GameEngine.Instance.World.addTickets(-1, returnData.ticketsGiven); } } else if (returnData.m_errorCode == ErrorCodes.ErrorCode.NEW_QUESTS_FAILED_REWARD) { MyMessageBox.Show(SK.Text("QUESTS_failed_reward_body", "We have been unable to give the correct reward for this quest, please wait a few minutes and try again. If this doesn't work, please contact support."), SK.Text("QUESTS_failed_reward", "Quest Reward Error")); } if (returnData.m_newQuestsData != null) { GameEngine.Instance.World.setNewQuestData(returnData.m_newQuestsData); } }
public void CompleteQuestCallback(CompleteQuest_ReturnType returnData) { if (returnData.Success) { GameEngine.Instance.World.setTutorialInfo(returnData.m_tutorialInfo); this.completedActiveQuests = returnData.m_preCompletedQuests; if (GameEngine.Instance.GameDisplayMode == GameEngine.GameDisplays.DISPLAY_QUESTS) { this.rebuild(); } if (returnData.questCompleted >= 0) { List <Quests.QuestReward> list = Quests.getQuestRewards(returnData.questCompleted, false, null); foreach (Quests.QuestReward reward in list) { List <int> list2; CardTypes.PremiumToken token; switch (reward.type) { case 0x4e20: { list2 = GameEngine.Instance.World.getUserVillageIDList(); if (list2.Count == 1) { break; } GameEngine.Instance.flushVillages(); if (GameEngine.Instance.GameDisplayMode == GameEngine.GameDisplays.DISPLAY_VILLAGE) { GameEngine.Instance.downloadCurrentVillage(); } continue; } case 0x4e21: { GameEngine.Instance.World.addGold((double)reward.amount); continue; } case 0x4e22: { GameEngine.Instance.World.addHonour((double)reward.amount); continue; } case 0x4e23: { GameEngine.Instance.World.addResearchPoints(reward.amount); continue; } case 0x4e24: { if (returnData.cardAdded >= 0) { if (reward.data == 0x1011) { goto Label_01D0; } GameEngine.Instance.World.addProfileCard(returnData.cardAdded, CardTypes.getStringFromCard(reward.data)); } continue; } case 0x4e25: { continue; } case 0x4e26: { WorldMap world = GameEngine.Instance.World; world.FakeCardPoints += reward.amount; continue; } default: { continue; } } if (list2.Count == 1) { VillageMap map = GameEngine.Instance.getVillage(list2[0]); if (map != null) { map.addResources(reward.data, reward.amount); } } continue; Label_01D0: token = new CardTypes.PremiumToken(); token.Reward = 1; token.UserPremiumTokenID = returnData.cardAdded; token.WorldID = RemoteServices.Instance.ProfileWorldID; token.Type = 0x1011; bool flag = false; if (GameEngine.Instance.World.UserCardData.premiumCard <= 0) { XmlRpcCardsProvider provider = XmlRpcCardsProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressCards, URLs.ProfileServerPort, URLs.ProfileCardPath); XmlRpcCardsRequest req = new XmlRpcCardsRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", "")) { WorldID = RemoteServices.Instance.ProfileWorldID.ToString(), UserCardID = returnData.cardAdded.ToString() }; if (token.Type == 0x1010) { req.CardString = "CARDTYPE_PREMIUM"; } if (token.Type == 0x1011) { req.CardString = "CARDTYPE_PREMIUM2"; } if (token.Type == 0x1012) { req.CardString = "CARDTYPE_PREMIUM30"; } XmlRpcCardsResponse response = provider.playPremium(req, 0x1770); if (response.SuccessCode != 1) { flag = true; MyMessageBox.Show(response.Message, "Error playing premium"); } else { GameEngine.Instance.World.CardPlayed(-1, token.Type, -1); } } else { flag = true; } if (flag) { GameEngine.Instance.World.ProfilePremiumTokens.Add(returnData.cardAdded, token); } } bool flag2 = false; foreach (Quests.QuestReward reward2 in list) { if ((reward2.type == 0x4e24) || (reward2.type == 0x4e26)) { flag2 = true; } } if (flag2) { PlayCardsWindow.resetRewardCardTimer(); } } } this.inCompleteQuest = false; }
private void ClickedToken() { if (!this.inSend) { int data = base.ClickedControl.Data; int type = GameEngine.Instance.World.ProfilePremiumTokens[data].Type; DateTime time = VillageMap.getCurrentServerTime(); if (this.premiumInPlay) { this.currentExpirySeconds = GameEngine.Instance.World.UserCardData.premiumCardExpiry.Subtract(VillageMap.getCurrentServerTime()).TotalSeconds; time = time.AddSeconds(this.currentExpirySeconds); if ((GameEngine.Instance.World.ProfilePremiumTokens[data].Type == 0x1011) && (GameEngine.Instance.World.UserCardData.premiumCard == 0x1011)) { MyMessageBox.Show(SK.Text("PremiumCardsPanel_Already_In_Play_2_2", "You cannot extend a 2 day Premium Token using another 2 day Premium Token."), SK.Text("GENERIC_Error", "Error")); return; } if (MyMessageBox.Show(SK.Text("PremiumCardsPanel_ExtendToken", "You currently have a Premium Token in play, do you wish to extend this by playing another Token?"), SK.Text("PremiumCardsPanel_ExtendWarning", "Extend Premium Token"), MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } type = 0x1014; } else { string str = ""; switch (GameEngine.Instance.World.ProfilePremiumTokens[data].Type) { case 0x1010: str = SK.Text("PremiumCardsPanel_7day", "7 Day Premium Token"); break; case 0x1011: str = SK.Text("TOOLTIPS_QUEST_REWARD_PREMIUM_CARD", "2 Day Premium Token"); break; case 0x1012: str = SK.Text("PremiumCardsPanel_30day", "30 Day Premium Token"); break; } if (MyMessageBox.Show(str + Environment.NewLine + Environment.NewLine + SK.Text("PremiumCardsPanel_PlayToken", "You are about to play this Premium Token. This Premium Token will only affect the current game world.") + Environment.NewLine + Environment.NewLine + SK.Text("PremiumCardsPanel_PlayToken2", "Are you sure you wish to play this Token?"), SK.Text("PremiumCardsPanel_PlayToken_Header", "Play Premium Token"), MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } } this.lastToken = GameEngine.Instance.World.ProfilePremiumTokens[data]; XmlRpcCardsProvider provider = XmlRpcCardsProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressCards, URLs.ProfileServerPort, URLs.ProfileCardPath); XmlRpcCardsRequest req = new XmlRpcCardsRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", "")) { WorldID = RemoteServices.Instance.ProfileWorldID.ToString(), UserCardID = data.ToString() }; if (this.lastToken.Type == 0x1010) { req.CardString = "CARDTYPE_PREMIUM"; } if (this.lastToken.Type == 0x1011) { req.CardString = "CARDTYPE_PREMIUM2"; } if (this.lastToken.Type == 0x1012) { req.CardString = "CARDTYPE_PREMIUM30"; } if (InterfaceMgr.Instance.getCardWindow() != null) { CursorManager.SetCursor(CursorManager.CursorType.WaitCursor, InterfaceMgr.Instance.getCardWindow()); } this.inSend = true; provider.playPremium(req, new CardsEndResponseDelegate(this.PlayedToken), this); this.premiumInPlay = true; this.currentExpirySeconds = 604800.0; if (GameEngine.Instance.World.ProfilePremiumTokens[data].Type == 0x1010) { GameEngine.Instance.World.UserCardData.premiumCardExpiry = time.AddDays(7.0); } if (GameEngine.Instance.World.ProfilePremiumTokens[data].Type == 0x1012) { GameEngine.Instance.World.UserCardData.premiumCardExpiry = time.AddDays(30.0); } if (GameEngine.Instance.World.ProfilePremiumTokens[data].Type == 0x1011) { GameEngine.Instance.World.UserCardData.premiumCardExpiry = time.AddDays(2.0); } GameEngine.Instance.World.UserCardData.premiumCard = type; GameEngine.Instance.World.ProfilePremiumTokens.Remove(data); this.UpdatePremiumTokens(); this.UpdateExpiry(); } }
private void ExtendOrPlayPremiumToken() { try { int data = base.ClickedControl.Data; int num2 = 0x1014; DateTime time = VillageMap.getCurrentServerTime(); this.currentExpirySeconds = GameEngine.Instance.World.UserCardData.premiumCardExpiry.Subtract(VillageMap.getCurrentServerTime()).TotalSeconds; time = time.AddSeconds(this.currentExpirySeconds); this.lastToken = GameEngine.Instance.World.ProfilePremiumTokens[data]; XmlRpcCardsProvider provider = XmlRpcCardsProvider.CreateForEndpoint(URLs.ProfileProtocol, URLs.ProfileServerAddressCards, URLs.ProfileServerPort, URLs.ProfileCardPath); XmlRpcCardsRequest req = new XmlRpcCardsRequest(RemoteServices.Instance.UserGuid.ToString().Replace("-", "")) { WorldID = RemoteServices.Instance.ProfileWorldID.ToString(), UserCardID = data.ToString() }; if (this.lastToken.Type == 0x1010) { req.CardString = "CARDTYPE_PREMIUM"; } if (this.lastToken.Type == 0x1011) { req.CardString = "CARDTYPE_PREMIUM2"; } if (this.lastToken.Type == 0x1012) { req.CardString = "CARDTYPE_PREMIUM30"; } if (InterfaceMgr.Instance.getCardWindow() != null) { CursorManager.SetCursor(CursorManager.CursorType.WaitCursor, InterfaceMgr.Instance.getCardWindow()); } this.inSend = true; provider.playPremium(req, new CardsEndResponseDelegate(this.PlayedToken), this); this.premiumInPlay = true; this.currentExpirySeconds = 604800.0; if (GameEngine.Instance.World.ProfilePremiumTokens[data].Type == 0x1010) { GameEngine.Instance.World.UserCardData.premiumCardExpiry = time.AddDays(7.0); } if (GameEngine.Instance.World.ProfilePremiumTokens[data].Type == 0x1012) { GameEngine.Instance.World.UserCardData.premiumCardExpiry = time.AddDays(30.0); } if (GameEngine.Instance.World.ProfilePremiumTokens[data].Type == 0x1011) { GameEngine.Instance.World.UserCardData.premiumCardExpiry = time.AddDays(2.0); } GameEngine.Instance.World.UserCardData.premiumCard = num2; GameEngine.Instance.World.ProfilePremiumTokens.Remove(data); this.UpdatePremiumTokens(); this.UpdateExpiry(); } catch (Exception exception) { UniversalDebugLog.Log(exception.ToString()); } }
private void BoughtOffer(ICardsProvider provider, ICardsResponse response) { if (response.SuccessCode != 1) { MyMessageBox.Show(response.Message, SK.Text("BuyCardsPanel_Error_Report", "ERROR: Please report this error message")); WorldMap world = GameEngine.Instance.World; world.ProfileCrowns += this.crowns; this.labelTitle.Text = SK.Text("PremiumCardsPanel_Buy_and_Open_Packs", "Buy and Play Premium Tokens: Crowns in your treasury") + " : " + GameEngine.Instance.World.ProfileCrowns.ToString(); } else { int result = 0; int.TryParse(response.Strings, out result); CardTypes.PremiumToken token = new CardTypes.PremiumToken { Reward = 0, Type = this.buytype, UserPremiumTokenID = result, WorldID = RemoteServices.Instance.ProfileWorldID }; GameEngine.Instance.World.ProfilePremiumTokens.Add(result, token); this.UpdatePremiumTokens(); } this.buying = false; }