private void InternalOnLeaveSquadClicked(object cookie) { Service.EventManager.SendEvent(EventId.SquadEdited, null); SquadController squadController = Service.SquadController; SquadMemberWarData currentMemberWarData = squadController.WarManager.GetCurrentMemberWarData(); uint serverTime = Service.ServerAPI.ServerTime; int unclaimedSquadWarRewardsCount = SquadUtils.GetUnclaimedSquadWarRewardsCount(currentMemberWarData, serverTime); if (!SquadUtils.CanLeaveSquad()) { string message = Service.Lang.Get("IN_WAR_CANT_LEAVE_SQUAD", new object[0]); AlertScreen.ShowModal(false, null, message, null, null, true); this.screen.ShowSquadSlideButton(); } else if (unclaimedSquadWarRewardsCount > 0) { YesNoScreen.ShowModal(this.lang.Get("LEAVING_SQUAD_ALERT_WITH_REWARDS_TITLE", new object[0]), this.lang.Get("LEAVING_SQUAD_ALERT_WITH_REWARDS", new object[] { unclaimedSquadWarRewardsCount }), false, this.lang.Get("LEAVING_SQUAD_CONFIRM", new object[0]), this.lang.Get("ACCOUNT_CONFLICT_CONFIRM_CANCEL", new object[0]), new OnScreenModalResult(this.OnAlertLeaveResult), null); } else { YesNoScreen.ShowModal(this.lang.Get("LEAVING_SQUAD_ALERT_TITLE", new object[0]), this.lang.Get("LEAVING_SQUAD_ALERT", new object[0]), false, this.lang.Get("LEAVING_SQUAD_CONFIRM", new object[0]), this.lang.Get("ACCOUNT_CONFLICT_CONFIRM_CANCEL", new object[0]), new OnScreenModalResult(this.OnAlertLeaveResult), null); } }
public void OnViewFrameTime(float dt) { List <UXElement> elementList = this.gridWarLog.GetElementList(); SquadController squadController = Service.SquadController; uint serverTime = Service.ServerAPI.ServerTime; SquadMemberWarData currentMemberWarData = squadController.WarManager.GetCurrentMemberWarData(); int i = 0; int count = elementList.Count; while (i < count) { string text = elementList[i].Tag as string; UXLabel subElement = this.gridWarLog.GetSubElement <UXLabel>(text, "LabelWarlogExpires"); SquadWarRewardData rewardForWar = SquadUtils.GetRewardForWar(text, currentMemberWarData); if (rewardForWar != null) { int num = (int)(rewardForWar.ExpireDate - serverTime); if (num < 0) { this.HideCollectButton(text); } else { string text2 = LangUtils.FormatTime((long)num); subElement.Visible = true; subElement.Text = text2; } } else { this.HideCollectButton(text); } i++; } }
public override void ShowView() { EventManager eventManager = Service.EventManager; this.viewContainer.Visible = true; eventManager.SendEvent(EventId.SquadSelect, null); eventManager.SendEvent(EventId.UISquadScreenTabShown, "warlog"); SquadController squadController = Service.SquadController; SquadMemberWarData currentMemberWarData = squadController.WarManager.GetCurrentMemberWarData(); uint serverTime = Service.ServerAPI.ServerTime; if (SquadUtils.DoesRewardWithoutWarHistoryExist(squadController, currentMemberWarData, serverTime)) { ProcessingScreen.Show(); EventManager eventManager2 = Service.EventManager; eventManager2.RegisterObserver(this, EventId.SquadUpdateCompleted); squadController.UpdateCurrentSquad(); } else { this.RefreshView(); } this.tabButton.Selected = true; Service.ViewTimeEngine.RegisterFrameTimeObserver(this); }
public static BattleInitializationData CreateFromMemberWarData(SquadMemberWarData memberWarData, Dictionary <string, int> donatedSquadTroops, Dictionary <string, int> champions, FactionType faction, string participantSquadId, List <string> equipment) { BattleInitializationData battleInitializationData = new BattleInitializationData(); battleInitializationData.BattleType = BattleType.PvpAttackSquadWar; CurrentPlayer currentPlayer = Service.CurrentPlayer; battleInitializationData.Attacker = new BattleParticipant(currentPlayer.PlayerId, currentPlayer.PlayerName, currentPlayer.Faction); battleInitializationData.Attacker.GuildId = Service.SquadController.StateManager.GetCurrentSquad().SquadID; battleInitializationData.Defender = new BattleParticipant(memberWarData.SquadMemberId, memberWarData.SquadMemberName, faction); battleInitializationData.Defender.GuildId = participantSquadId; battleInitializationData.AttackerDeployableData = BattleDeploymentData.CreateEmpty(); battleInitializationData.DefenderDeployableData = BattleDeploymentData.CreateEmpty(); battleInitializationData.AllowMultipleHeroDeploys = false; battleInitializationData.OverrideDeployables = false; battleInitializationData.BattleLength = GameConstants.PVP_MATCH_DURATION; battleInitializationData.PlanetId = memberWarData.BaseMap.Planet.Uid; battleInitializationData.MemberWarData = memberWarData; battleInitializationData.VictoryConditions = Service.VictoryConditionController.GetDefaultConditions(); battleInitializationData.DefenderGuildTroopsAvailable = donatedSquadTroops; battleInitializationData.DefenderChampionsAvailable = champions; battleInitializationData.AttackerGuildTroopsAvailable = BattleInitializationData.GetCurrentPlayerGuildTroops(); battleInitializationData.DisabledBuildings = null; battleInitializationData.IsReplay = false; battleInitializationData.IsRevenge = false; battleInitializationData.AllowReplay = true; SquadWarManager warManager = Service.SquadController.WarManager; battleInitializationData.AttackerWarBuffs = warManager.GetBuffBasesOwnedBySquad(battleInitializationData.Attacker.GuildId); battleInitializationData.DefenderWarBuffs = warManager.GetBuffBasesOwnedBySquad(battleInitializationData.Defender.GuildId); battleInitializationData.AttackerEquipment = BattleInitializationData.GetCurrentPlayerEquipment(battleInitializationData.PlanetId); battleInitializationData.DefenderEquipment = equipment; return(battleInitializationData); }
public WarBaseMapDataLoader Initialize(BattleInitializationData battleData) { this.battleData = battleData; this.memberWarData = battleData.MemberWarData; this.squadId = battleData.Defender.GuildId; this.faction = battleData.Defender.PlayerFaction; this.defenderSquadTroops = battleData.DefenderGuildTroopsAvailable; this.defenderChampions = battleData.DefenderChampionsAvailable; return(this); }
public static int GetDonatedWarTroopStorageUsedByCurrentPlayer() { SquadMemberWarData currentMemberWarData = Service.Get <SquadController>().WarManager.GetCurrentMemberWarData(); if (currentMemberWarData != null) { List <SquadDonatedTroop> warTroops = currentMemberWarData.WarTroops; return(SquadUtils.GetDonatedTroopStorageUsed(warTroops)); } return(0); }
public static bool IsPlayerSquadWarTroopsAtMaxCapacity() { SquadMemberWarData currentMemberWarData = Service.Get <SquadController>().WarManager.GetCurrentMemberWarData(); if (currentMemberWarData != null) { int donatedWarTroopStorageUsedByCurrentPlayer = SquadUtils.GetDonatedWarTroopStorageUsedByCurrentPlayer(); int squadStorageCapacity = currentMemberWarData.BaseMap.GetSquadStorageCapacity(); return(donatedWarTroopStorageUsedByCurrentPlayer >= squadStorageCapacity); } return(false); }
public int RefreshBadge() { SquadController squadController = Service.SquadController; SquadMemberWarData currentMemberWarData = squadController.WarManager.GetCurrentMemberWarData(); uint serverTime = Service.ServerAPI.ServerTime; int unclaimedSquadWarRewardsCount = SquadUtils.GetUnclaimedSquadWarRewardsCount(currentMemberWarData, serverTime); if (this.warLogBadge == null) { this.warLogBadge = JewelControl.Create(this.screen, "SocialWarLog"); } this.warLogBadge.Value = unclaimedSquadWarRewardsCount; return(unclaimedSquadWarRewardsCount); }
protected void InitTroopGrid() { this.storageItemGrid = base.GetElement <UXGrid>("GridCurrentTroops"); this.storageItemGrid.SetTemplateItem("CardCurrentTroops"); this.storageItemGrid.Clear(); this.troopList = new List <TroopUpgradeTag>(); int num = 0; GamePlayer worldOwner = GameUtils.GetWorldOwner(); List <SquadDonatedTroop> list; int squadStorageCapacity; if (this.isWarRequest) { SquadMemberWarData currentMemberWarData = Service.SquadController.WarManager.GetCurrentMemberWarData(); list = currentMemberWarData.WarTroops; squadStorageCapacity = currentMemberWarData.BaseMap.GetSquadStorageCapacity(); } else { list = SquadUtils.GetWorldOwnerSquadBuildingTroops(); squadStorageCapacity = worldOwner.Map.GetSquadStorageCapacity(); } int count = list.Count; if (count > 0) { StaticDataController staticDataController = Service.StaticDataController; for (int i = 0; i < count; i++) { SquadDonatedTroop squadDonatedTroop = list[i]; TroopTypeVO troopTypeVO = staticDataController.Get <TroopTypeVO>(squadDonatedTroop.TroopUid); int totalAmount = squadDonatedTroop.GetTotalAmount(); if (totalAmount > 0) { this.AddTroopItem(troopTypeVO, totalAmount); num += totalAmount * troopTypeVO.Size; } } } this.canRequestTroops = (num < squadStorageCapacity); this.UpdateScreenElementVisibility(); this.storageItemGrid.RepositionItems(); }
public static int GetUnclaimedSquadWarRewardsCount(SquadMemberWarData memberWarData, uint serverTime) { int num = 0; if (memberWarData == null) { return(num); } List <SquadWarRewardData> warRewards = memberWarData.WarRewards; int i = 0; int count = warRewards.Count; while (i < count) { if (warRewards[i].ExpireDate > serverTime) { num++; } i++; } return(num); }
public static SquadWarRewardData GetRewardForWar(string warId, SquadMemberWarData memberWarData) { if (memberWarData == null) { return(null); } SquadWarRewardData result = null; List <SquadWarRewardData> warRewards = memberWarData.WarRewards; int i = 0; int count = warRewards.Count; while (i < count) { if (warRewards[i].WarId == warId) { result = warRewards[i]; break; } i++; } return(result); }
public static bool DoesRewardWithoutWarHistoryExist(SquadController squadController, SquadMemberWarData memberWarData, uint serverTime) { if (memberWarData == null) { return(false); } Squad currentSquad = squadController.StateManager.GetCurrentSquad(); List <SquadWarRewardData> warRewards = memberWarData.WarRewards; int i = 0; int count = warRewards.Count; while (i < count) { SquadWarRewardData squadWarRewardData = warRewards[i]; if (squadWarRewardData.ExpireDate > serverTime) { bool flag = false; int j = 0; int count2 = currentSquad.WarHistory.Count; while (j < count2) { SquadWarHistoryEntry squadWarHistoryEntry = currentSquad.WarHistory[j]; if (squadWarHistoryEntry.WarId == squadWarRewardData.WarId) { flag = true; break; } j++; } if (!flag) { return(true); } } i++; } return(false); }
public override void RefreshView() { this.gridWarLog.Clear(); SquadController squadController = Service.SquadController; Squad currentSquad = squadController.StateManager.GetCurrentSquad(); if (currentSquad == null) { return; } uint serverTime = Service.ServerAPI.ServerTime; SquadMemberWarData currentMemberWarData = squadController.WarManager.GetCurrentMemberWarData(); int i = 0; int count = currentSquad.WarHistory.Count; while (i < count) { SquadWarHistoryEntry squadWarHistoryEntry = currentSquad.WarHistory[i]; UXElement uXElement = this.gridWarLog.CloneTemplateItem(squadWarHistoryEntry.WarId); this.gridWarLog.AddItem(uXElement, i); uXElement.Tag = squadWarHistoryEntry.WarId; SquadWarRewardData rewardForWar = SquadUtils.GetRewardForWar(squadWarHistoryEntry.WarId, currentMemberWarData); UXButton subElement = this.gridWarLog.GetSubElement <UXButton>(squadWarHistoryEntry.WarId, "BtnCollectWarReward"); UXLabel subElement2 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelBtnCollectWarReward"); subElement2.Text = this.lang.Get("SQUAD_WAR_LOG_COLLECT_REWARD", new object[0]); UXLabel subElement3 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogTimestamp"); subElement3.Text = this.lang.Get("TIME_AGO", new object[] { ChatTimeConversionUtils.GetFormattedAge(squadWarHistoryEntry.EndDate, this.lang) }); UXLabel subElement4 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogScore"); subElement4.Text = this.lang.Get("SQUAD_WAR_LOG_SCORE", new object[] { squadWarHistoryEntry.Score, squadWarHistoryEntry.OpponentScore }); UXLabel subElement5 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogOpponent"); string text = string.Empty; if (!string.IsNullOrEmpty(squadWarHistoryEntry.OpponentName)) { text = this.lang.Get("SQUAD_WAR_LOG_OPPONENT_VS", new object[] { squadWarHistoryEntry.OpponentName }); } subElement5.Text = text; UXLabel subElement6 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogExpires"); bool flag = rewardForWar != null && rewardForWar.ExpireDate > serverTime; if (flag) { int num = (int)(rewardForWar.ExpireDate - serverTime); string text2 = LangUtils.FormatTime((long)num); subElement6.Visible = true; text2 = this.lang.Get("expires_in", new object[] { text2 }); subElement6.Text = text2; subElement.Visible = true; subElement.OnClicked = new UXButtonClickedDelegate(this.OnCollectButtonClicked); subElement.Tag = rewardForWar.WarId; } else { subElement6.Visible = false; subElement.Visible = false; } UXSprite subElement7 = this.gridWarLog.GetSubElement <UXSprite>(squadWarHistoryEntry.WarId, "SpriteWarlogBgDraw"); subElement7.Visible = false; UXSprite subElement8 = this.gridWarLog.GetSubElement <UXSprite>(squadWarHistoryEntry.WarId, "SpriteWarlogBgLost"); subElement8.Visible = false; UXSprite subElement9 = this.gridWarLog.GetSubElement <UXSprite>(squadWarHistoryEntry.WarId, "SpriteWarlogBgWon"); subElement9.Visible = false; UXLabel subElement10 = this.gridWarLog.GetSubElement <UXLabel>(squadWarHistoryEntry.WarId, "LabelWarlogResult"); if (squadWarHistoryEntry.Score > squadWarHistoryEntry.OpponentScore) { subElement9.Visible = true; subElement10.Text = this.lang.Get("SQUAD_WAR_LOG_WIN", new object[0]); } else if (squadWarHistoryEntry.Score < squadWarHistoryEntry.OpponentScore) { subElement8.Visible = true; subElement10.Text = this.lang.Get("SQUAD_WAR_LOG_LOSS", new object[0]); } else { subElement7.Visible = true; subElement10.Text = this.lang.Get("SQUAD_WAR_LOG_DRAW", new object[0]); } i++; } this.gridWarLog.RepositionItemsFrameDelayed(); if (currentSquad.WarHistory.Count == 0) { this.labelEmptyWarlog.Visible = true; if (SquadUtils.SquadMeetsMatchmakingRequirements(squadController)) { this.labelEmptyWarlog.Text = this.lang.Get("SQUAD_WAR_LOG_EMPTY_HAS_REQUIREMENTS", new object[0]); } else { this.labelEmptyWarlog.Text = this.lang.Get("SQUAD_WAR_LOG_EMPTY_LACKS_REQUIREMENTS", new object[0]); } } else { this.labelEmptyWarlog.Visible = false; } this.RefreshBadge(); }