public List <CampaignMissionVO> GetAllMissionsInProgress() { IDataController dataController = Service.Get <IDataController>(); List <CampaignMissionVO> list = new List <CampaignMissionVO>(); foreach (Mission current in this.missions.Values) { CampaignMissionVO optional = dataController.GetOptional <CampaignMissionVO>(current.Uid); if (optional != null && this.IsMissionInProgress(optional) && !optional.IsCombatMission()) { list.Add(optional); } } return(list); }
public bool IsMissionInProgress(CampaignMissionVO missionType) { if (missionType.IsCombatMission()) { return(false); } if (this.missions.ContainsKey(missionType.Uid)) { Mission mission = this.missions[missionType.Uid]; if (!mission.Completed && !mission.Collected) { return(mission.Activated); } } return(false); }
private void UpdateMissionItem(string itemUid, CampaignMissionVO missionType, bool selected) { UXSprite uXSprite = (!this.selectedCampaign.IsMiniCampaign()) ? this.missionGrid.GetSubElement <UXSprite>(itemUid, "SpriteObjectiveImage") : null; if (uXSprite != null) { if (missionType.Grind) { uXSprite.SpriteName = "icoRecBattle"; } else if (missionType.IsChallengeMission()) { uXSprite.SpriteName = "IcoMissions"; } else if (missionType.IsCombatMission()) { uXSprite.SpriteName = ((missionType.MissionType != MissionType.Attack) ? "icoDefend" : "IcoAttack"); } else if (missionType.HasPvpCondition() || missionType.MissionType == MissionType.Pvp) { uXSprite.SpriteName = "IcoWar"; } else { uXSprite.SpriteName = "IcoBuild"; } } UXCheckbox uXCheckbox = (!this.selectedCampaign.IsMiniCampaign()) ? this.missionGrid.GetSubElement <UXCheckbox>(itemUid, "ButtonObjectiveCard") : this.missionGrid.GetSubElement <UXCheckbox>(itemUid, "ButtonObjectiveCardDifficulty"); uXCheckbox.Tag = missionType; uXCheckbox.OnSelected = new UXCheckboxSelectedDelegate(this.OnMissionItemSelected); uXCheckbox.Selected = selected; uXCheckbox.RadioGroup = 0; if (this.selectedCampaign.IsMiniCampaign()) { UXLabel subElement = this.missionGrid.GetSubElement <UXLabel>(itemUid, "LabelDifficulty"); subElement.Text = LangUtils.GetMissionDifficultyLabel(itemUid); uXCheckbox.Visible = !base.Player.CampaignProgress.IsMissionLocked(missionType); return; } UXLabel subElement2 = this.missionGrid.GetSubElement <UXLabel>(itemUid, "LabelObjectiveNumber"); subElement2.Text = missionType.UnlockOrder.ToString(); UXSprite subElement3 = this.missionGrid.GetSubElement <UXSprite>(itemUid, "SpriteMissionCheck"); UXSprite subElement4 = this.missionGrid.GetSubElement <UXSprite>(itemUid, "SpriteIcoMissionLocked"); UXElement subElement5 = this.missionGrid.GetSubElement <UXElement>(itemUid, "ObjectiveStars"); UXSlider subElement6 = this.missionGrid.GetSubElement <UXSlider>(itemUid, "MissionSelectPbar"); if (base.Player.CampaignProgress.IsMissionInProgress(missionType) && missionType.MissionType != MissionType.Pvp) { int num; int num2; base.Player.CampaignProgress.GetMissionProgress(missionType, out num, out num2); subElement6.Value = (float)num / (float)num2; } else { subElement6.Visible = false; } if (base.Player.CampaignProgress.IsMissionLocked(missionType)) { uXCheckbox.Enabled = false; uXSprite.Visible = false; subElement3.Visible = false; subElement5.Visible = false; subElement6.Visible = false; subElement4.Visible = true; return; } subElement4.Visible = false; subElement5.Visible = true; int missionEarnedStars = base.Player.CampaignProgress.GetMissionEarnedStars(missionType); for (int i = 1; i <= missionEarnedStars; i++) { UXSprite subElement7 = this.missionGrid.GetSubElement <UXSprite>(itemUid, "SpriteStar" + i); subElement7.SpriteName = "CampaignStarOn"; } if (missionType.Grind && base.Player.CampaignProgress.IsGrindComplete(missionType)) { subElement3.Visible = true; uXSprite.Visible = false; } else if (base.Player.CampaignProgress.IsMissionCompleted(missionType)) { if (base.Player.CampaignProgress.IsMissionCollected(missionType)) { subElement3.Visible = true; uXSprite.Visible = false; } else { uXSprite.Visible = true; subElement3.Visible = false; } } else { subElement3.Visible = false; } }