Beispiel #1
0
        private void CheckSet(TokenStaticData p_newToken)
        {
            Boolean      flag = true;
            List <Int32> list = new List <Int32>();

            foreach (TokenStaticData tokenStaticData in StaticDataHandler.GetIterator <TokenStaticData>(EDataType.TOKEN))
            {
                if (tokenStaticData.SetID == p_newToken.SetID)
                {
                    if (GetTokens(tokenStaticData.StaticID) == 0)
                    {
                        flag = false;
                    }
                    else
                    {
                        list.Add(tokenStaticData.StaticID);
                    }
                }
            }
            if (flag)
            {
                foreach (Int32 p_id in list)
                {
                    RemoveToken(p_id);
                }
                AddToken(p_newToken.Replacement);
            }
        }
Beispiel #2
0
        protected override void DoExecute()
        {
            ShrineStaticData staticData = StaticDataHandler.GetStaticData <ShrineStaticData>(EDataType.SHRINES, m_shrineID);

            if (staticData != null)
            {
                TokenStaticData staticData2 = StaticDataHandler.GetStaticData <TokenStaticData>(EDataType.TOKEN, staticData.TokenID);
                if (LegacyLogic.Instance.WorldManager.Party.TokenHandler.GetTokens(staticData.TokenID) > 0 || (staticData2.Replacement > 0 && LegacyLogic.Instance.WorldManager.Party.TokenHandler.GetTokens(staticData2.Replacement) > 0))
                {
                    CustomPopupEventArgs p_eventArgs = new CustomPopupEventArgs(Localization.Instance.GetText(staticData.Caption), Localization.Instance.GetText("GAMEMESSAGE_NOTHING_HAPPENS"));
                    LegacyLogic.Instance.EventManager.InvokeEvent(null, EEventType.CUSTOM_POPUP, p_eventArgs);
                    FinishExecution();
                }
                else if (LegacyLogic.Instance.GameTime.Time.Days % 7 == (Int32)staticData.WeekDay)
                {
                    m_parent.State = EInteractiveObjectState.ON;
                    LegacyLogic.Instance.EventManager.InvokeEvent(m_parent, EEventType.OBJECT_STATE_CHANGED, EventArgs.Empty);
                    LegacyLogic.Instance.WorldManager.Party.TokenHandler.AddToken(staticData.TokenID);
                    CustomPopupEventArgs p_eventArgs = new CustomPopupEventArgs(Localization.Instance.GetText(staticData.Caption), Localization.Instance.GetText(staticData.RightText));
                    LegacyLogic.Instance.EventManager.InvokeEvent(null, EEventType.CUSTOM_POPUP, p_eventArgs);
                    FinishExecution();
                }
                else
                {
                    m_stateMachine.ChangeState(3);
                }
            }
            else
            {
                LegacyLogger.Log("Shrine with ID " + m_shrineID + " doesn't exist");
                FinishExecution();
            }
        }
Beispiel #3
0
        public String GetTokenDescription(Int32 p_id)
        {
            TokenStaticData staticData = StaticDataHandler.GetStaticData <TokenStaticData>(EDataType.TOKEN, p_id);

            if (p_id <= 6)
            {
                return(Localization.Instance.GetText(staticData.Description, ConfigManager.Instance.Game.ResistancePerBlessing));
            }
            return(Localization.Instance.GetText(staticData.Description));
        }
Beispiel #4
0
 public void Init(TokenStaticData p_staticData, Boolean p_isTokenUsable)
 {
     m_staticData    = p_staticData;
     m_isTokenUsable = p_isTokenUsable;
     base.Init(LocaManager.GetText(m_staticData.Name), m_staticData.Icon, 0, m_textColor);
     if (m_isTokenUsable)
     {
         LegacyLogic.Instance.EventManager.RegisterEvent(EEventType.TOKEN_REMOVED, new EventHandler(OnTokenRemoved));
     }
 }
 private void OnTokenAdded(Object p_sender, EventArgs p_args)
 {
     if (p_args is TokenEventArgs)
     {
         TokenEventArgs tokenEventArgs = (TokenEventArgs)p_args;
         if (IsRelevantToken(tokenEventArgs.TokenID))
         {
             TokenStaticData tokenData = TokenHandler.GetTokenData(tokenEventArgs.TokenID);
             if (tokenData.TokenVisible)
             {
                 m_tokenQueue.Enqueue(tokenData);
             }
         }
     }
 }
Beispiel #6
0
 public void Init(Party p_party, Int32 p_tokenID)
 {
     m_data            = StaticDataHandler.GetStaticData <TokenStaticData>(EDataType.TOKEN, p_tokenID);
     m_acquired        = (p_party.TokenHandler.GetTokens(p_tokenID) > 0);
     m_icon.spriteName = m_data.Icon;
     m_tt_caption      = LocaManager.GetText(m_data.Name);
     if (m_acquired)
     {
         m_tt         = p_party.TokenHandler.GetTokenDescription(p_tokenID);
         m_icon.color = new Color(1f, 1f, 1f, 1f);
     }
     else
     {
         m_tt         = LocaManager.GetText("TOKEN_NOT_ACQUIRED");
         m_icon.color = new Color(0.2f, 0.2f, 0.2f, 1f);
     }
 }
        private void OnLoadingScreenDeactivates(Object p_sender, EventArgs p_args)
        {
            List <Int32> collectedTokens = LegacyLogic.Instance.WorldManager.Party.TokenHandler.CollectedTokens;

            foreach (Int32 num in collectedTokens)
            {
                if (m_neededTokens.Contains(num))
                {
                    TokenStaticData tokenData = TokenHandler.GetTokenData(num);
                    if (tokenData != null && tokenData.TokenVisible)
                    {
                        m_tokenQueue.Enqueue(TokenHandler.GetTokenData(num));
                    }
                }
            }
            NGUITools.SetActive(gameObject, true);
        }
Beispiel #8
0
 public void SetTokenData(TokenStaticData p_data, Boolean p_isUsable)
 {
     NGUITools.SetActive(gameObject, true);
     m_data            = p_data;
     m_icon.spriteName = p_data.Icon;
     m_nameLabel.text  = LocaManager.GetText(p_data.Name);
     m_usable          = p_isUsable;
     if (p_isUsable)
     {
         m_icon.color          = m_iconColor;
         m_nameLabel.color     = m_normalColor;
         m_functionLabel.color = m_normalColor;
     }
     else
     {
         m_icon.color          = m_notUsableHereColor;
         m_nameLabel.color     = m_notUsableHereColorText;
         m_functionLabel.color = m_notUsableHereColorText;
     }
 }
Beispiel #9
0
        public void RemoveToken(Int32 p_id)
        {
            Int32 num;

            m_tokens.TryGetValue(p_id, out num);
            if (num >= 1)
            {
                m_tokens[p_id] = num - 1;
            }
            TokenStaticData tokenData = GetTokenData(p_id);

            if (tokenData != null)
            {
                if (tokenData.TokenVisible && !tokenData.RemoveSilent)
                {
                    TokenRemovedEventArgs p_args = new TokenRemovedEventArgs(tokenData);
                    LegacyLogic.Instance.ActionLog.PushEntry(p_args);
                }
                LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.TOKEN_REMOVED, new TokenEventArgs(p_id));
            }
        }
        public void OnTokenAdded(Object p_sender, EventArgs p_args)
        {
            TokenEventArgs tokenEventArgs = p_args as TokenEventArgs;

            if (tokenEventArgs == null)
            {
                return;
            }
            Int32           tokenID    = tokenEventArgs.TokenID;
            TokenStaticData staticData = StaticDataHandler.GetStaticData <TokenStaticData>(EDataType.TOKEN, tokenID);

            if (!staticData.TokenVisible)
            {
                return;
            }
            String text      = LocaManager.GetText(staticData.Name);
            String p_message = String.Empty;

            if (tokenID >= 1 && tokenID <= 6)
            {
                p_message = LocaManager.GetText("ACTION_LOG_BLESSING_ACQUIRED", text);
            }
            else if (tokenID >= 7 && tokenID <= 10)
            {
                p_message = text;
            }
            else if (tokenID >= 11 && tokenID <= 22)
            {
                p_message = LocaManager.GetText("ACTION_LOG_CLASS_UNLOCKED", text);
            }
            else
            {
                p_message = LocaManager.GetText("ACTION_LOG_TOKEN_ACQUIRED", text);
            }
            GameMessage item = new GameMessage(p_message);

            m_queuedMessages.Enqueue(item);
        }
Beispiel #11
0
        public void AddToken(Int32 p_id)
        {
            TokenStaticData tokenData = GetTokenData(p_id);

            if (tokenData == null)
            {
                return;
            }
            Int32 num;

            m_tokens.TryGetValue(p_id, out num);
            m_tokens[p_id] = num + 1;
            if (tokenData.TokenVisible)
            {
                TokenAcquiredEventArgs p_args = new TokenAcquiredEventArgs(tokenData);
                LegacyLogic.Instance.ActionLog.PushEntry(p_args);
            }
            if (p_id >= 11 && p_id <= 22)
            {
                m_myParty.UnlockAdvancedClass((ETokenID)p_id);
            }
            if (p_id <= 6)
            {
                for (Int32 i = 0; i < 4; i++)
                {
                    Character member = m_myParty.GetMember(i);
                    if (member != null)
                    {
                        member.CalculateCurrentAttributes();
                    }
                }
            }
            LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.TOKEN_ADDED, new TokenEventArgs(p_id));
            if (tokenData.SetID > 0 && tokenData.Replacement > 0)
            {
                CheckSet(tokenData);
            }
        }
 protected override void Update()
 {
     base.Update();
     if (IsFreeSlot)
     {
         if (m_tokenQueue.Count > 0)
         {
             GameObject       gameObject = Helper.Instantiate <GameObject>(m_TokenEntryPrefab);
             HUDSideInfoToken component  = gameObject.GetComponent <HUDSideInfoToken>();
             AddEntry(component);
             TokenStaticData tokenStaticData = m_tokenQueue.Dequeue();
             component.Init(tokenStaticData, m_neededTokens.Contains(tokenStaticData.StaticID));
         }
         else if (m_loreBookQueue.Count > 0)
         {
             GameObject      gameObject2 = Helper.Instantiate <GameObject>(m_BookEntryPrefab);
             HUDSideInfoBook component2  = gameObject2.GetComponent <HUDSideInfoBook>();
             AddEntry(component2);
             component2.Init(m_loreBookQueue.Dequeue());
         }
         else if (m_questQueue.Count > 0 && IsFreeSlot)
         {
             GameObject                  gameObject3 = Helper.Instantiate <GameObject>(m_QuestEntryPrefab);
             HUDSideInfoQuest            component3  = gameObject3.GetComponent <HUDSideInfoQuest>();
             QueuedQuest                 queuedQuest = m_questQueue.Dequeue();
             HUDSideInfoQuest.QuestState pState      = HUDSideInfoQuest.QuestState.UPDATED;
             QuestChangedEventArgs.Type  changeType  = queuedQuest.ChangeType;
             if (changeType != QuestChangedEventArgs.Type.NEW_QUEST)
             {
                 if (changeType == QuestChangedEventArgs.Type.COMPLETED_QUEST)
                 {
                     pState = HUDSideInfoQuest.QuestState.COMPLETED;
                 }
             }
             else
             {
                 pState = HUDSideInfoQuest.QuestState.ADDED;
             }
             if (queuedQuest.Quest.QuestState == EQuestState.SOLVED)
             {
                 pState = HUDSideInfoQuest.QuestState.COMPLETED;
             }
             if (m_questQueue.Count > 0)
             {
                 QueuedQuest queuedQuest2 = m_questQueue.Peek();
                 if (queuedQuest2.Quest.StaticData.FollowupStep == queuedQuest.Quest.StaticData.StaticID)
                 {
                     m_questQueue.Dequeue();
                     pState = HUDSideInfoQuest.QuestState.UPDATED;
                 }
                 else if (queuedQuest.Quest.StaticData.FollowupStep == queuedQuest2.Quest.StaticData.StaticID)
                 {
                     queuedQuest = m_questQueue.Dequeue();
                     pState      = HUDSideInfoQuest.QuestState.UPDATED;
                 }
             }
             AddEntry(component3);
             component3.Init(queuedQuest.Quest, pState);
         }
     }
 }
Beispiel #13
0
        private void UpdateData()
        {
            List <Int32> collectedTokens = LegacyLogic.Instance.WorldManager.Party.TokenHandler.CollectedTokens;
            List <Int32> list            = new List <Int32>();

            for (Int32 i = collectedTokens.Count - 1; i >= 0; i--)
            {
                Int32           num       = collectedTokens[i];
                TokenStaticData tokenData = TokenHandler.GetTokenData(num);
                if (tokenData.TokenVisible && IsRelevantToken(num) && (!m_checkbox.isChecked || m_neededTokens.Contains(num)))
                {
                    list.Add(num);
                }
            }
            m_pageCount = (Int32)Math.Ceiling(list.Count / 12.0);
            NGUITools.SetActive(m_nextButton.gameObject, !AtEnd());
            NGUITools.SetActive(m_prevButton.gameObject, m_currentPage > 0);
            if (m_pageCount > 0)
            {
                m_pagerLabel.text = LocaManager.GetText("SPELLBOOK_PAGE", m_currentPage + 1, m_pageCount);
            }
            else
            {
                m_pagerLabel.text = String.Empty;
            }
            Int32 num2 = (12 <= list.Count) ? 12 : list.Count;
            Int32 num3 = 0;
            Int32 num4 = 0;
            Int32 num5 = m_currentPage * 12;
            Int32 num6 = (m_currentPage + 1) * 12 - 1;

            foreach (Int32 num7 in list)
            {
                if (num4 >= num5 && num4 <= num6)
                {
                    TokenStaticData tokenData2 = TokenHandler.GetTokenData(num7);
                    if (tokenData2.TokenVisible && IsRelevantToken(num7))
                    {
                        if (!m_checkbox.isChecked)
                        {
                            m_tokenViews[num3].SetTokenData(tokenData2, m_neededTokens.Contains(num7));
                            num3++;
                        }
                        else
                        {
                            m_tokenViews[num3].SetTokenData(tokenData2, true);
                            num3++;
                        }
                    }
                }
                num4++;
            }
            if (num3 < 12)
            {
                for (Int32 j = num3; j < 12; j++)
                {
                    m_tokenViews[j].Hide();
                }
            }
            m_grid.Reposition();
        }