예제 #1
0
        private void AddGenericTransmission(TransmissionVO vo, int order)
        {
            string    uid  = vo.Uid;
            UXElement item = this.table.CloneTemplateItem(uid);

            this.table.GetSubElement <UXTexture>(uid, "TransmissionsLogThumbTexture").LoadTexture(vo.Image);
            this.table.GetSubElement <UXLabel>(uid, "TransmissionsLogItemLabelTitle").Text = this.lang.Get(vo.TitleText, new object[0]);
            string body = this.lang.Get(vo.BodyText, new object[0]);

            this.SetupTransmissionBody(this.table, vo, body);
            this.table.AddItem(item, order);
        }
        private bool DuplicateTransmission(TransmissionVO vo)
        {
            int count = this.Transmissions.Count;

            for (int i = 0; i < count; i++)
            {
                if (this.Transmissions[i].Uid == vo.Uid)
                {
                    return(true);
                }
            }
            return(false);
        }
예제 #3
0
 public TransmissionsHolonetPopupView(HolonetScreen screen)
 {
     this.conflictEndVO       = null;
     this.lang                = Service.Get <Lang>();
     this.eventManager        = Service.Get <EventManager>();
     this.holonetScreen       = screen;
     this.holoPositioner      = null;
     this.currentCharacter    = null;
     this.currentTransmission = null;
     this.currentIndex        = 1;
     this.maxIndex            = 0;
     this.InitView();
 }
예제 #4
0
		public override ISerializable FromObject(object obj)
		{
			this.MessageVOs = new List<TransmissionVO>();
			List<object> list = obj as List<object>;
			if (list != null)
			{
				int count = list.Count;
				for (int i = 0; i < count; i++)
				{
					this.MessageVOs.Add(TransmissionVO.CreateFromServerObject(list[i]));
				}
			}
			return this;
		}
예제 #5
0
        private void AddCustomTransmission(TransmissionVO vo, string title, string body, int order)
        {
            string uid = vo.Uid;

            if (!string.IsNullOrEmpty(uid))
            {
                CurrentPlayer currentPlayer = Service.CurrentPlayer;
                string        serverTransmissionMessageImage = GameUtils.GetServerTransmissionMessageImage(currentPlayer.Faction, currentPlayer.Planet.Uid);
                UXElement     item = this.table.CloneTemplateItem(uid);
                this.table.GetSubElement <UXTexture>(uid, "TransmissionsLogThumbTexture").LoadTexture(serverTransmissionMessageImage);
                this.table.GetSubElement <UXLabel>(uid, "TransmissionsLogItemLabelTitle").Text = title;
                this.SetupTransmissionBody(this.table, vo, body);
                this.table.AddItem(item, order);
            }
        }
예제 #6
0
        public static string GetHolonetTransmissionCharacterName(TransmissionVO vo)
        {
            Lang            lang           = Service.Get <Lang>();
            string          characterID    = vo.CharacterID;
            IDataController dataController = Service.Get <IDataController>();

            foreach (TransmissionCharacterVO current in dataController.GetAll <TransmissionCharacterVO>())
            {
                if (current.CharacterId == characterID)
                {
                    return(lang.Get("hn_character_name_title", new object[]
                    {
                        lang.Get(current.CharacterName, new object[0])
                    }));
                }
            }
            return("");
        }
예제 #7
0
        private void SetupSquadLevelUpTransmission(TransmissionVO transmission)
        {
            this.genericTransmissionButtonTable.Clear();
            this.battleLogTransmission.Visible = false;
            this.ShowGenericTransmissionGroup(true);
            this.conflictContainer.Visible            = false;
            this.squadWarEndedContainer.Visible       = false;
            this.genericTransmissionTextGroup.Visible = true;
            string btnID         = transmission.Uid + "_CTA";
            string cTAButtonText = this.GetCTAButtonText(transmission);

            this.CreateGenericTableButton(btnID, cTAButtonText, "BtnGold", new UXButtonClickedDelegate(this.OnGenericCTA), 0);
            this.genericTransmissionTitle.Visible = false;
            this.genericTransmissionBody.Text     = this.lang.Get("hn_perks_squad_level_up_body", new object[]
            {
                transmission.SquadLevel
            });
            this.genericBtnMsg.Text = this.lang.Get("hn_perks_squad_level_up_cta_desc", new object[0]);
        }
예제 #8
0
        private void SetupSquadWarEndedTransmission(TransmissionVO transmission)
        {
            this.genericTransmissionButtonTable.Clear();
            this.battleLogTransmission.Visible = false;
            this.ShowGenericTransmissionGroup(false);
            this.conflictContainer.Visible            = false;
            this.squadWarEndedContainer.Visible       = true;
            this.genericTransmissionTextGroup.Visible = false;
            int    empireScore = transmission.EmpireScore;
            int    rebelScore  = transmission.RebelScore;
            string text        = this.lang.Get("WAR_END_RESULTS_DRAW", new object[0]);

            if (empireScore > rebelScore)
            {
                text = this.lang.Get("WAR_END_RESULTS_EMPIRE_WIN", new object[]
                {
                    transmission.EmpireSquadName
                });
            }
            else if (rebelScore > empireScore)
            {
                text = this.lang.Get("WAR_END_RESULTS_REBELS_WIN", new object[]
                {
                    transmission.RebelSquadName
                });
            }
            UXLabel element = this.holonetScreen.GetElement <UXLabel>("EndSquadWarLabelMessage");

            element.Text = text;
            UXLabel element2 = this.holonetScreen.GetElement <UXLabel>("EndSquadWarLabelTitle");

            element2.Text = this.lang.Get("WAR_END_TRANSMISSION_TITLE", new object[0]);
            UXLabel element3 = this.holonetScreen.GetElement <UXLabel>("EndSquadWarLabelButtonMessage");

            element3.Text = this.lang.Get("WAR_END_TRANSMISSION_CTA_DESC", new object[0]);
            string btnID         = transmission.Uid + "_CTA";
            string cTAButtonText = this.GetCTAButtonText(transmission);

            this.CreateGenericTableButton(btnID, cTAButtonText, "BtnGold", new UXButtonClickedDelegate(this.OnGenericCTA), 0);
            this.genericTransmissionButtonTable.RepositionItems();
        }
예제 #9
0
        private void SetupDailyCrateRewardTransmission(TransmissionVO transmission)
        {
            this.genericTransmissionButtonTable.Clear();
            this.battleLogTransmission.Visible = false;
            this.ShowGenericTransmissionGroup(true);
            this.conflictContainer.Visible            = false;
            this.squadWarEndedContainer.Visible       = false;
            this.genericTransmissionTextGroup.Visible = true;
            string btnID         = "DailyCrateReward_CTA";
            string cTAButtonText = this.GetCTAButtonText(transmission);

            this.CreateGenericTableButton(btnID, cTAButtonText, "BtnGold", new UXButtonClickedDelegate(this.OnGenericCTA), 0);
            this.genericTransmissionTitle.Text = this.lang.Get("hn_daily_crate_reward_title", new object[0]);
            CrateVO crateVO = Service.Get <IDataController>().Get <CrateVO>(transmission.CrateId);

            this.genericTransmissionBody.Text = this.lang.Get("hn_daily_crate_reward_body", new object[]
            {
                LangUtils.GetCrateDisplayName(crateVO)
            });
            this.genericBtnMsg.Visible = false;
        }
예제 #10
0
        private void SetupTransmissionBody(UXTable table, TransmissionVO vo, string body)
        {
            UXLabel subElement  = table.GetSubElement <UXLabel>(vo.Uid, "TransmissionsLogItemLabelBody");
            UXLabel subElement2 = table.GetSubElement <UXLabel>(vo.Uid, "TransmissionsLogItemLabelBodyNoBtn");

            if (string.IsNullOrEmpty(vo.Btn1))
            {
                subElement2.Text    = body;
                subElement2.Visible = true;
                subElement.Text     = string.Empty;
                subElement.Visible  = false;
            }
            else
            {
                subElement2.Text    = string.Empty;
                subElement2.Visible = false;
                subElement.Text     = body;
                subElement.Visible  = true;
            }
            UXButton subElement3 = table.GetSubElement <UXButton>(vo.Uid, "TransmissionsItemBtnAction");
            UXLabel  subElement4 = table.GetSubElement <UXLabel>(vo.Uid, "TransmissionsItemBtnActionLabel");

            base.PrepareButton(vo, 1, subElement3, subElement4);
        }
예제 #11
0
        public TransmissionsHolonetTab(HolonetScreen holoScreen, HolonetControllerType holonetControllerType) : base(holoScreen, holonetControllerType)
        {
            base.InitializeTab("TransmissionsLogTab", "hn_transmissions_tab");
            List <TransmissionVO> transmissions = Service.HolonetController.TransmissionsController.Transmissions;
            int count = transmissions.Count;

            this.table = holoScreen.GetElement <UXTable>("TransmissionsLogTable");
            this.table.SetTemplateItem("TransmissionsLogItem");
            string title = string.Empty;
            string body  = string.Empty;

            for (int i = 0; i < count; i++)
            {
                bool           flag           = false;
                TransmissionVO transmissionVO = transmissions[i];
                switch (transmissionVO.Type)
                {
                case TransmissionType.Research:
                    title = this.lang.Get("hn_transmission_research_title", new object[]
                    {
                        this.GetResearchDisplayName(transmissionVO.TransData)
                    });
                    body = this.lang.Get("hn_transmission_research_body", new object[]
                    {
                        this.GetResearchDisplayName(transmissionVO.TransData),
                        transmissionVO.Btn1Data
                    });
                    flag = true;
                    break;

                case TransmissionType.HqUpgrade:
                    title = this.lang.Get("hn_transmission_hqupgrade_title", new object[0]);
                    body  = this.lang.Get("hn_transmission_hqupgrade_body", new object[]
                    {
                        transmissionVO.Btn1Data
                    });
                    flag = true;
                    break;

                case TransmissionType.NavigationCenterUpgrade:
                    title = this.lang.Get("hn_transmission_pcupgrade_title", new object[0]);
                    body  = this.lang.Get("hn_transmission_pcupgrade_body", new object[]
                    {
                        transmissionVO.Btn1Data
                    });
                    flag = true;
                    break;

                case TransmissionType.Conflict:
                {
                    string text  = string.Empty;
                    string text2 = string.Empty;
                    StaticDataController staticDataController = Service.StaticDataController;
                    TournamentVO         optional             = staticDataController.GetOptional <TournamentVO>(transmissionVO.TransData);
                    TournamentTierVO     optional2            = staticDataController.GetOptional <TournamentTierVO>(transmissionVO.Btn1Data);
                    if (optional != null && optional2 != null)
                    {
                        text  = LangUtils.GetPlanetDisplayName(optional.PlanetId);
                        text2 = this.lang.Get(optional2.RankName, new object[0]) + " " + this.lang.Get(optional2.Division, new object[0]);
                    }
                    title = this.lang.Get("hn_transmission_conflict_title", new object[0]);
                    body  = this.lang.Get("hn_transmission_conflict_body", new object[]
                        {
                            text,
                            text2
                        });
                    flag = true;
                    break;
                }

                case TransmissionType.WarPreparation:
                    title = this.lang.Get(LangUtils.AppendPlayerFactionToKey("transm_war_prep_title"), new object[0]);
                    body  = this.lang.Get(LangUtils.AppendPlayerFactionToKey("transm_war_prep_body"), new object[0]);
                    flag  = true;
                    break;

                case TransmissionType.WarStart:
                    title = this.lang.Get(LangUtils.AppendPlayerFactionToKey("transm_war_start_title"), new object[0]);
                    body  = this.lang.Get(LangUtils.AppendPlayerFactionToKey("transm_war_start_body"), new object[0]);
                    flag  = true;
                    break;

                case TransmissionType.WarEnded:
                    title = this.lang.Get(LangUtils.AppendPlayerFactionToKey("transm_war_end_title"), new object[0]);
                    body  = this.lang.Get(LangUtils.AppendPlayerFactionToKey("transm_war_end_body"), new object[0]);
                    flag  = true;
                    break;

                case TransmissionType.SquadChange:
                {
                    object[] array = (transmissionVO.TransData ?? string.Empty).Split(new char[]
                        {
                            '\\'
                        });
                    if (array.Length > 1)
                    {
                        title = this.lang.Get("hn_squad_application_accepted_title", new object[]
                            {
                                array[1]
                            });
                        body = this.lang.Get("hn_squad_application_accepted_body", array);
                    }
                    flag = true;
                    break;
                }

                case TransmissionType.GuildLevelUp:
                    title = this.lang.Get("hn_perks_squad_level_up_title", new object[0]);
                    body  = this.lang.Get("hn_perks_squad_level_up_body", new object[]
                    {
                        transmissionVO.SquadLevel
                    });
                    flag = true;
                    break;

                case TransmissionType.DailyCrateReward:
                {
                    title = this.lang.Get("hn_daily_crate_reward_title", new object[0]);
                    CrateVO crateVO = Service.StaticDataController.Get <CrateVO>(transmissionVO.CrateId);
                    body = this.lang.Get("hn_daily_crate_reward_body", new object[]
                        {
                            LangUtils.GetCrateDisplayName(crateVO)
                        });
                    flag = true;
                    break;
                }
                }
                if (flag)
                {
                    this.AddCustomTransmission(transmissionVO, title, body, i);
                }
                else
                {
                    this.AddGenericTransmission(transmissionVO, i);
                }
            }
        }
 private bool IsDailyCrateTutorialTransmission(TransmissionVO vo)
 {
     return(vo.Uid == "transm_tut_daily_crate_r" || vo.Uid == "transm_tut_daily_crate_e");
 }
 private bool IsDailyCrateTransmission(TransmissionVO vo)
 {
     return(vo.Type == TransmissionType.DailyCrateReward);
 }
예제 #14
0
        private void SetupConflictTransmission(TransmissionVO transmission)
        {
            this.battleLogTransmission.Visible = false;
            this.ShowGenericTransmissionGroup(false);
            this.conflictContainer.Visible            = true;
            this.squadWarEndedContainer.Visible       = false;
            this.genericTransmissionTextGroup.Visible = false;
            this.SetupTransmissionButtons(transmission);
            IDataController dataController = Service.Get <IDataController>();
            CurrentPlayer   currentPlayer  = Service.Get <CurrentPlayer>();

            this.conflictEndVO = dataController.GetOptional <TournamentVO>(transmission.TransData);
            TournamentTierVO optional = dataController.GetOptional <TournamentTierVO>(transmission.Btn1Data);

            if (this.conflictEndVO == null || optional == null)
            {
                return;
            }
            Tournament tournament = currentPlayer.TournamentProgress.GetTournament(this.conflictEndVO.Uid);

            if (tournament == null)
            {
                Service.Get <StaRTSLogger>().ErrorFormat("Tournament doesn't exist for player. tournament {0}", new object[]
                {
                    this.conflictEndVO.Uid
                });
                this.conflictMessage.Visible  = false;
                this.conflictTierIcon.Visible = false;
                return;
            }
            TournamentRank finalRank = tournament.FinalRank;
            string         text      = LangUtils.AppendPlayerFactionToKey("hn_conflict_end_message");

            this.conflictMessage.Visible  = true;
            this.conflictTierIcon.Visible = true;
            this.conflictMessage.Text     = this.lang.Get(text.ToString(), new object[]
            {
                LangUtils.GetPlanetDisplayName(this.conflictEndVO.PlanetId)
            });
            this.conflictTierIcon.SpriteName = Service.Get <TournamentController>().GetTierIconName(optional);
            this.conflictTierTitle.Text      = this.lang.Get("s_YourTier", new object[0]);
            this.conflictTierLevel.Text      = this.lang.Get("CONFLICT_LEAGUE_AND_DIVISION", new object[]
            {
                this.lang.Get(optional.RankName, new object[0]),
                this.lang.Get(optional.DivisionSmall, new object[0])
            });
            this.conflictTierPercent.Text = this.lang.Get("CONFLICT_TIER_PERCENTILE", new object[]
            {
                Math.Round(finalRank.Percentile, 2)
            });
            bool flag = TimedEventPrizeUtils.TrySetupConflictEndedRewardView(tournament.RedeemedRewards, this.holonetScreen.GetElement <UXLabel>("LabelReward"), this.holonetScreen.GetElement <UXSprite>("SpriteReward"));

            if (flag)
            {
                this.holonetScreen.GetElement <UXLabel>("LabelRewardTitle").Text = this.lang.Get("CONFLICT_END_PRIZE", new object[0]);
            }
            else
            {
                Service.Get <StaRTSLogger>().ErrorFormat("There is no reward given to player for tournament {0}", new object[]
                {
                    this.conflictEndVO.Uid
                });
            }
            Service.Get <ViewTimerManager>().CreateViewTimer(0.5f, false, new TimerDelegate(this.ShowReward), null);
        }
        private void FinishPreparingTransmissions(List <TransmissionVO> msgVOs)
        {
            int num = 0;

            this.Transmissions.Clear();
            this.incomingTransmissions.Clear();
            this.transmissionIndex = 0;
            SquadWarManager   warManager        = Service.Get <SquadController>().WarManager;
            SharedPlayerPrefs sharedPlayerPrefs = Service.Get <SharedPlayerPrefs>();
            int             pref           = sharedPlayerPrefs.GetPref <int>("DailyCrateTransTutorialViewed");
            int             serverTime     = (int)Service.Get <ServerAPI>().ServerTime;
            IDataController dataController = Service.Get <IDataController>();
            CurrentPlayer   currentPlayer  = Service.Get <CurrentPlayer>();

            foreach (TransmissionVO current in dataController.GetAll <TransmissionVO>())
            {
                if (current.Faction == currentPlayer.Faction && current.StartTime > 0 && current.StartTime <= serverTime && serverTime < current.EndTime && (!this.IsDailyCrateTutorialTransmission(current) || pref != 1))
                {
                    this.Transmissions.Add(current);
                    if (current.StartTime > this.lastTransmissionTimeViewed)
                    {
                        num++;
                    }
                }
            }
            HolonetController holonetController = Service.Get <HolonetController>();

            msgVOs.Sort(new Comparison <TransmissionVO>(holonetController.CompareTimestamps));
            int hOLONET_EVENT_MESSAGE_MAX_COUNT = GameConstants.HOLONET_EVENT_MESSAGE_MAX_COUNT;
            int count = msgVOs.Count;
            int num2  = 0;

            while (num2 < hOLONET_EVENT_MESSAGE_MAX_COUNT && num2 < count)
            {
                TransmissionVO transmissionVO = msgVOs[num2];
                if (!this.DuplicateTransmission(transmissionVO))
                {
                    this.Transmissions.Add(transmissionVO);
                    if (transmissionVO.StartTime > this.lastTransmissionTimeViewed)
                    {
                        num++;
                        if (this.IsWarTransmission(transmissionVO) && !warManager.IsTimeWithinCurrentSquadWarPhase(transmissionVO.StartTime))
                        {
                            num--;
                        }
                    }
                }
                else
                {
                    Service.Get <StaRTSLogger>().Error("Duplicate entry in transmission event messages repsonse: " + transmissionVO.Uid);
                }
                num2++;
            }
            this.Transmissions.Sort(new Comparison <TransmissionVO>(holonetController.CompareTimestamps));
            int            pref2 = sharedPlayerPrefs.GetPref <int>("HighestViewedSquadLvlUP");
            int            hOLONET_MAX_INCOMING_TRANSMISSIONS = GameConstants.HOLONET_MAX_INCOMING_TRANSMISSIONS;
            int            count2          = this.Transmissions.Count;
            int            num3            = 0;
            TransmissionVO transmissionVO2 = null;
            int            num4            = 0;

            while (num3 < hOLONET_MAX_INCOMING_TRANSMISSIONS && num4 < count2)
            {
                TransmissionVO transmissionVO3 = this.Transmissions[num4];
                if (this.IsIncomingTransmission(transmissionVO3) && (!this.IsWarTransmission(transmissionVO3) || warManager.IsTimeWithinCurrentSquadWarPhase(transmissionVO3.StartTime)))
                {
                    if (this.IsSquadLevelUpTransmission(transmissionVO3))
                    {
                        if (!Service.Get <PerkManager>().HasPlayerSeenPerkTutorial())
                        {
                            goto IL_2A7;
                        }
                        bool flag = transmissionVO2 == null || transmissionVO3.SquadLevel > transmissionVO2.SquadLevel;
                        if (!flag || pref2 >= transmissionVO3.SquadLevel)
                        {
                            goto IL_2A7;
                        }
                        if (transmissionVO2 != null)
                        {
                            num3--;
                            this.incomingTransmissions.Remove(transmissionVO2);
                        }
                        transmissionVO2 = transmissionVO3;
                    }
                    if (pref == 0)
                    {
                        if (this.IsDailyCrateTransmission(transmissionVO3))
                        {
                            goto IL_2A7;
                        }
                        if (this.IsDailyCrateTutorialTransmission(transmissionVO3))
                        {
                            sharedPlayerPrefs.SetPref("DailyCrateTransTutorialViewed", "1");
                        }
                    }
                    num3++;
                    this.incomingTransmissions.Add(transmissionVO3);
                }
IL_2A7:
                num4++;
            }
            this.incomingTransmissions.Sort(new Comparison <TransmissionVO>(this.CompareIncommingPriorites));
            holonetController.ContentPrepared(this, num);
        }
 private bool IsIncomingTransmission(TransmissionVO vo)
 {
     return(this.IsDailyCrateTutorialTransmission(vo) || (vo.StartTime > this.lastTransmissionTimeViewed && (vo.Type == TransmissionType.Conflict || vo.Type == TransmissionType.WarPreparation || vo.Type == TransmissionType.WarStart || vo.Type == TransmissionType.WarEnded || vo.Type == TransmissionType.Generic || vo.Type == TransmissionType.GuildLevelUp || vo.Type == TransmissionType.DailyCrateReward)));
 }
 private int CompareIncommingPriorites(TransmissionVO a, TransmissionVO b)
 {
     return(b.Priority - a.Priority);
 }
 private bool IsSquadLevelUpTransmission(TransmissionVO vo)
 {
     return(vo.Type == TransmissionType.GuildLevelUp);
 }
 private bool IsWarTransmission(TransmissionVO vo)
 {
     return(vo.Type == TransmissionType.WarPreparation || vo.Type == TransmissionType.WarStart || vo.Type == TransmissionType.WarEnded);
 }