示例#1
0
        public override void Awake()
        {
            base.Awake();

            var t = mDMono.transform;

            HelpOtherBtn              = t.GetComponent <UIButton>("Escort/HelpOtherBtn");
            TransferDartingFlag       = t.FindEx("Escort/EscortingFlag").gameObject;
            TranferDartCountdownLabel = t.GetComponent <UILabel>("Escort/EscortingFlag/Countdown");
            QueueSize = 50;

            t.GetComponent <UIButton>("Escort/HelpOtherBtn").onClick.Add(new EventDelegate(OnHandleOtherHelpReqBtnClick));
            t.GetComponent <UIEventTrigger>("Escort/EscortingFlag").onClick.Add(new EventDelegate(OnRequestHelpBtnClick));

            m_Instance     = this;
            m_MessageQueue = new EB.Collections.Queue <InvitesMessage>(QueueSize);

            var im = LTHotfixManager.GetManager <InvitesManager>();

            im.OnAcceptListener       += OnAcceptListener;
            im.OnRejectListener       += OnRejectListener;
            im.OnInviteListener       += OnInviteListener;
            im.OnRequestListener      += OnRequestListener;
            im.OnRemoveTargetListener += OnRemoveTargetListener;
            im.OnRemoveInviteListener += OnRemoveInviteListener;
        }
示例#2
0
        public override void OnLateUpdate()
        {
            base.OnLateUpdate();
            if (SceneLogic.SceneState != SceneLogic.eSceneState.SceneLoop)
            {
                return;
            }

            if (System.DateTime.Now < _nextHeartbeat)
            {
                return;
            }

            _nextHeartbeat = _nextHeartbeat.AddSeconds(kMovementUpdateInterval);

            PlayerController local_player_controller = PlayerManager.LocalPlayerController();

            if (local_player_controller == null)
            {
                return;
            }

            GameObject player = PlayerManager.LocalPlayerGameObject();
            Vector3    newPos = player.transform.position;
            float      newDir = player.transform.rotation.eulerAngles.y;
            float      dist   = Vector3.Distance(_PlayerPos, newPos);

            if (dist > 1.0f)
            {
                LTHotfixManager.GetManager <SceneManager>().UpdatePlayerMovement(MainLandLogic.GetInstance().SceneId, newPos, newDir, null);
                _PlayerPos = newPos;
            }

            LTHotfixManager.GetManager <SceneManager>().OnLateUpdate();
        }
示例#3
0
 private void ProcessResult(EB.Sparx.Response response, System.Action <Hashtable> dataHandler)
 {
     if (!string.IsNullOrEmpty(response.error))
     {
         if (response.error.Equals("timeout"))
         {
             MessageTemplateManager.ShowMessage(eMessageUIType.FloatingText, EB.Localizer.GetString("ID_codefont_in_LTDrawCardAPI_3009"));
             dataHandler(null);
         }
         else
         {
             UIStack.Instance.ShowLoadingScreen(delegate
             {
                 LoadingSpinner.Hide();
                 LTHotfixManager.GetManager <SceneManager>().RequestPlayState();
             }, false, true);
         }
         return;
     }
     dataHandler = dataHandler ?? new System.Action <Hashtable>(DefaultDataHandler);
     if (ProcessResponse(response))
     {
         dataHandler(response.hashtable);
     }
     else
     {
         dataHandler(null);
     }
 }
示例#4
0
 public override void OnFetchData(EB.Sparx.Response res, int id)
 {
     LoadingSpinner.Hide();
     if (res.sucessful)
     {
         List <Hotfix_LT.Data.TimeLimitActivityStageTemplate> stageTmps = Hotfix_LT.Data.EventTemplateManager.Instance.GetTimeLimitActivityStages(ActivityId);
         if (LTHotfixManager.GetManager <TaskManager>().CurrentIndex < stageTmps.Count - 1)
         {
             LTHotfixManager.GetManager <TaskManager>().CurrentIndex++;
         }
         string cachePath;
         cachePath = "user_prize_data.taskacm_reward." + m_Chest.StageData.Id;
         DataLookupsCache.Instance.CacheData(cachePath, true);
         //上传友盟获得钻石,任务
         int hcCount = 0;
         List <LTShowItemData> mlist = m_Chest.StageData.Awards;
         for (int i = 0; i < mlist.Count; i++)
         {
             if (mlist[i].id == "hc")
             {
                 hcCount += mlist[i].count;
             }
         }
         FusionTelemetry.PostBonus(hcCount, Umeng.GA.BonusSource.Source2);
         GlobalMenuManager.Instance.Open("LTShowRewardView", m_Chest.StageData.Awards);
         UpdateChest();
     }
     else
     {
         res.CheckAndShowModal();
         //SparxHub.Instance.FatalError(res.localizedError);
     }
 }
示例#5
0
 public void CallBack(int value)
 {
     if (value == 0)
     {
         if (IsExpire())
         {
             return;
         }
         string[] invites = new string[] { mInviteId };
         LTHotfixManager.GetManager <InvitesManager>().Accept(invites, OnAccept);
     }
     else
     {
         if (IsExpire())
         {
             return;
         }
         string[] invites = new string[] { mInviteId };
         LTHotfixManager.GetManager <InvitesManager>().Reject(invites, OnReject);
     }
     if (m_callback != null)
     {
         m_callback();
     }
 }
示例#6
0
 public void OnSelectBtnClick()
 {
     if (LTBountyTaskSelectController.Target == tplId)
     {
         return;
     }
     LTHotfixManager.GetManager <TaskManager>().RequestSetBountyHero(tplId, OnTaskResult);
 }
示例#7
0
 public static GuideNodeManager GetInstance()
 {
     if (_instance == null)
     {
         _instance = LTHotfixManager.GetManager <GuideNodeManager>();
     }
     return(_instance);
 }
示例#8
0
 public static LTNewHeroBattleManager GetInstance()
 {
     if (_instance == null)
     {
         _instance = LTHotfixManager.GetManager <LTNewHeroBattleManager>();
     }
     return(_instance);
 }
示例#9
0
        void OnDeleteMessage(object payload)
        {
            string t_id = string.Empty;

            t_id = EB.Dot.String("t_id", payload, t_id);

            if (string.IsNullOrEmpty(t_id))
            {
                LTHotfixManager.GetManager <AutoRefreshingManager>().RemoveDeltaActionExcute(t_id);
            }
        }
示例#10
0
        public bool UpdateChest()
        {
            int currAchievement = 0;

            DataLookupsCache.Instance.SearchIntByID("user_prize_data.taskacm.curr", out currAchievement);

            List <Hotfix_LT.Data.TimeLimitActivityStageTemplate> stages = Hotfix_LT.Data.EventTemplateManager.Instance.GetTimeLimitActivityStages(ActivityId);
            int stageCount = stages.Count;

            LTHotfixManager.GetManager <TaskManager>().CurrentIndex = GetCurrentStageIndex();
            if (LTHotfixManager.GetManager <TaskManager>().CurrentIndex <= -1 || LTHotfixManager.GetManager <TaskManager>().CurrentIndex >= stageCount)
            {
                EB.Debug.LogError("CurrentIndex <= -1 || CurrentIndex >= stageCount");
                return(false);
            }
            var currentStageData = stages[LTHotfixManager.GetManager <TaskManager>().CurrentIndex];
            int maxAchievement   = currentStageData.stage;

            List <LTShowItemData> itemDatas = new List <LTShowItemData>();

            for (int j = 0; j < currentStageData.reward_items.Count; ++j)
            {
                var            reward   = currentStageData.reward_items[j];
                string         id       = reward.id.ToString();
                int            count    = reward.quantity;
                string         type     = reward.type;
                LTShowItemData itemData = new LTShowItemData(id, count, type, false);
                itemDatas.Add(itemData);
            }

            bool received;

            DataLookupsCache.Instance.SearchDataByID <bool>("user_prize_data.taskacm_reward." + currentStageData.id, out received);
            eReceiveState state = eReceiveState.cannot;

            if (currAchievement >= currentStageData.stage)
            {
                if (received)
                {
                    state = eReceiveState.have;
                }
                else
                {
                    state = eReceiveState.can;
                }
            }
            m_Chest.SetUI(new RewardStageData(currentStageData.id, currentStageData.stage, itemDatas, state));

            LTUIUtil.SetText(m_ProgressLabel, string.Format("{0}/{1}", currAchievement, maxAchievement));
            m_AchievementProgressBar.value = currAchievement / (float)maxAchievement;
            m_ChestRoot.SetActive(true);

            return(true);
        }
示例#11
0
        public void SetHp(string heroId, bool isShowTempHp)
        {
            //float fullHp = 0;
            int   level   = 0;
            int   peak    = 0;
            float percent = 0;

            if (int.Parse(heroId) < 0)//是否雇佣
            {
                var hireInfo = LTInstanceHireUtil.GetHireInfoByHeroId(int.Parse(heroId));
                if (hireInfo != null)
                {
                    float fullHp = hireInfo.base_MaxHP;
                    float curHp  = 0;
                    if (isShowTempHp)
                    {
                        curHp = LTHotfixManager.GetManager <SceneManager>().GetChallengeTempHp(heroId);
                    }
                    else
                    {
                        curHp = LTChallengeInstanceHpCtrl.GetCombatHp(heroId);
                    }
                    percent = curHp / fullHp;
                    level   = hireInfo.level;
                }
            }
            else
            {
                if (isShowTempHp)
                {
                    float curHp  = LTHotfixManager.GetManager <SceneManager>().GetChallengeTempHp(heroId);
                    float fullHp = 0;
                    DataLookupsCache.Instance.SearchDataByID <float>(string.Format("userCampaignStatus.challengeChapters.team.{0}.MHP", heroId), out fullHp);
                    percent = curHp / fullHp;
                }
                else
                {
                    percent = LTChallengeInstanceHpCtrl.GetCombatHPPercent(heroId);
                }
                DataLookupsCache.Instance.SearchIntByID(string.Format("heroStats.{0}.stat.level", heroId), out level);

                DataLookupsCache.Instance.SearchIntByID(string.Format("heroStats.{0}.proficiency.1.1", heroId), out peak);
            }

            percent = Mathf.Min(percent, 1);

            PercentLabel.text = percent.ToString("0%");
            HpProgress.value  = percent;

            DeathLabel.gameObject.SetActive(percent <= 0);
            PercentLabel.gameObject.SetActive(percent > 0);

            LTUIUtil.SetLevelText(LevelLabel.transform.parent.GetComponent <UISprite>(), LevelLabel, level + peak);
        }
示例#12
0
        public override void OnDestroy()
        {
            m_Instance = null;

            var im = LTHotfixManager.GetManager <InvitesManager>();

            im.OnAcceptListener       -= OnAcceptListener;
            im.OnRejectListener       -= OnRejectListener;
            im.OnInviteListener       -= OnInviteListener;
            im.OnRequestListener      -= OnRequestListener;
            im.OnRemoveTargetListener -= OnRemoveTargetListener;
            im.OnRemoveInviteListener -= OnRemoveInviteListener;
        }
示例#13
0
 public static void LeaveResultScreen()
 {
     if (GameStateManager.Instance != null)
     {
         GameStateLoadGame loadState = GameStateManager.Instance.GetGameState <GameStateLoadGame>();
         UIStack.Instance.ShowLoadingScreen(() =>
         {
             if (loadState != null)
             {
                 LTHotfixManager.GetManager <SceneManager>().EnterSceneByPlayState();
             }
         }, false, true);
     }
 }
示例#14
0
        static public int GetCurrentStageIndex()
        {
            if (LTHotfixManager.GetManager <TaskManager>().CurrentIndex > 0)
            {
                return(LTHotfixManager.GetManager <TaskManager>().CurrentIndex);
            }

            IDictionary have_receive_stages;

            if (!DataLookupsCache.Instance.SearchDataByID <IDictionary>("user_prize_data.taskacm_reward", out have_receive_stages))
            {
                return(0);
            }

            List <Hotfix_LT.Data.TimeLimitActivityStageTemplate> stageTmps = Hotfix_LT.Data.EventTemplateManager.Instance.GetTimeLimitActivityStages(ActivityId);
            var        iter = have_receive_stages.GetEnumerator();
            List <int> have_receive_stageIds = new List <int>();

            while (iter.MoveNext())
            {
                int    id  = 0;
                string key = iter.Key as string;
                if (!int.TryParse(key, out id))
                {
                    EB.Debug.LogError("parse taskacm_reward.stage.key fail");
                }
                else
                {
                    have_receive_stageIds.Add(id);
                }
            }
            if (have_receive_stageIds.Count <= 0)
            {
                return(0);
            }
            have_receive_stageIds.Sort();
            int maxId = have_receive_stageIds[have_receive_stageIds.Count - 1];
            int index = stageTmps.FindIndex(m => m.id == maxId);

            if (index < stageTmps.Count - 1)
            {
                return(LTHotfixManager.GetManager <TaskManager>().CurrentIndex = index + 1);
            }
            else
            {
                return(LTHotfixManager.GetManager <TaskManager>().CurrentIndex = index);
            }
        }
示例#15
0
        public override void Disconnect(bool isLogout)
        {
            var im = LTHotfixManager.GetManager <InvitesManager>();

            im.OnAcceptListener -= OnAccept;   //同意
            im.OnRejectListener -= OnReject;   //拒绝
                                               //im.OnRemoveListener -= OnRemove;  //移除
            im.OnRequestListener -= OnRequest; //请求
                                               //im.OnInviteListener -= OnInvite;
                                               //im.OnRemoveTargetListener -= OnRemoveTarget;

            State = EB.Sparx.SubSystemState.Disconnected;

            var cm = SparxHub.Instance.ChatManager;

            cm.OnMessages -= OnHandleAsyncMessage;
        }
示例#16
0
        //    public override void OnEnteredBackground()
        // {
        //
        // }
        //
        // public override void OnEnteredForeground()
        // {
        //
        // }

        public override void Connect()
        {
            State = EB.Sparx.SubSystemState.Connected;

            var im = LTHotfixManager.GetManager <InvitesManager>();

            im.OnAcceptListener += OnAccept;
            im.OnRejectListener += OnReject;
            //im.OnRemoveListener += OnRemove;
            im.OnRequestListener += OnRequest;
            //im.OnInviteListener += OnInvite;
            //im.OnRemoveTargetListener += OnRemoveTarget;

            var cm = SparxHub.Instance.ChatManager;

            cm.OnMessages += OnHandleAsyncMessage;
        }
示例#17
0
        public static void RequestBuddyLevelUpFinish()
        {
            bool shouldSend = false;

            IDictionary tasks = null;

            DataLookupsCache.Instance.SearchDataByID <IDictionary>("tasks", out tasks);
            if (tasks == null)
            {
                return;
            }
            string task_state = "";
            int    task_id    = 0;
            var    iter       = tasks.GetEnumerator();

            while (iter.MoveNext())
            {
                IDictionary task = iter.Value as IDictionary;
                eTaskType   type = (eTaskType)System.Enum.Parse(typeof(eTaskType), task["task_type"].ToString());
                if (eTaskType.Normal != type && eTaskType.Week != type && eTaskType.ComeBack != type)
                {
                    continue;
                }

                task_state = EB.Dot.String("state", iter.Value, "");
                if (task_state != "running")
                {
                    continue;
                }

                task_id = int.Parse(iter.Key.ToString());
                var tpl = Hotfix_LT.Data.TaskTemplateManager.Instance.GetTask(task_id);
                if (tpl == null || tpl.target_parameter_1 != "29")
                {
                    continue;
                }

                shouldSend = true;
                break;
            }

            if (shouldSend)
            {
                LTHotfixManager.GetManager <TaskManager>().RequestUplevelTaskFinish(task_id, null);
            }
        }
示例#18
0
        public override void OnEnable()
        {
            Reset();

            m_VicFx.CustomSetActive(IsWon);
            if (IsShowTempHp && LTHotfixManager.GetManager <SceneManager>().GetChallengeHasLive())
            {
                m_DefeatFx2.CustomSetActive(!IsWon);
            }
            else
            {
                m_DefeatFx.CustomSetActive(!IsWon);
            }

            InitRating();
            StartCoroutine(DoShownVictoryAnimation());
        }
示例#19
0
        private void CombatCleanUp()
        {
            int combat_session_id = -1;

            DataLookupsCache.Instance.SearchIntByID("playstate.Combat.combat_id", out combat_session_id);

            Hotfix_LT.Messenger.Raise <int, System.Action <EB.Sparx.Response> >(Hotfix_LT.EventName.CombatCleanUp, combat_session_id, delegate(EB.Sparx.Response result)
            {
                if (result != null && result.hashtable["retry"] != null)
                {
                    Hotfix_LT.Messenger.Raise(Hotfix_LT.EventName.DirectExitCombat);
                    return;
                }

                DataLookupsCache.Instance.CacheData(result.hashtable);

                EventManager.instance.Raise(eSimpleEventID.CombatCleanUpEvent);
                LTHotfixManager.GetManager <SceneManager>().EnterSceneByPlayState();
            });
        }
示例#20
0
        public static void RequestChatTaskFinish(ChatRule.CHAT_CHANNEL _eChannel)
        {
            if (_eChannel == ChatRule.CHAT_CHANNEL.CHAT_CHANNEL_WORLD)
            {
                IDictionary tasks = null;
                DataLookupsCache.Instance.SearchDataByID <IDictionary>("tasks", out tasks);
                if (tasks == null)
                {
                    return;
                }
                string task_state = "";
                int    task_id    = 0;
                var    iter       = tasks.GetEnumerator();
                while (iter.MoveNext())
                {
                    IDictionary task = iter.Value as IDictionary;
                    eTaskType   type = (eTaskType)System.Enum.Parse(typeof(eTaskType), task["task_type"].ToString());
                    if (eTaskType.Normal != type && eTaskType.Week != type)
                    {
                        continue;
                    }

                    task_state = EB.Dot.String("state", iter.Value, "");
                    if (task_state != "running")
                    {
                        continue;
                    }

                    task_id = int.Parse(iter.Key.ToString());
                    var tpl = Hotfix_LT.Data.TaskTemplateManager.Instance.GetTask(task_id);
                    if (tpl == null || tpl.target_parameter_1 != "4")
                    {
                        continue;
                    }

                    LTHotfixManager.GetManager <TaskManager>().RequestChatTaskFinish(task_id, null);
                    break;
                }
            }
        }
示例#21
0
        public static void DirectExitCombat()
        {
            string state = "";

            DataLookupsCache.Instance.SearchDataByID <string>("playstate.state", out state);
            if (string.IsNullOrEmpty(state) || state.CompareTo("Combat") == 0)
            {
                MainLandLogic.GetInstance().RequestCombatResumeToScene();
            }
            else
            {
                CombatLogic.Instance.ExitCombat();

                if (Camera.main != null)
                {
                    CombatCamera combat_camera = Camera.main.GetComponent <CombatCamera>();

                    if (combat_camera != null)
                    {
                        combat_camera.DisableBlurEffect();
                        combat_camera.HoldingCamera = false;
                    }
                }

                if (GameStateManager.Instance != null)
                {
                    GameStateLoadGame loadState = GameStateManager.Instance.GetGameState <GameStateLoadGame>();
                    UIStack.Instance.ShowLoadingScreen(() =>
                    {
                        if (loadState != null)
                        {
                            LTHotfixManager.GetManager <SceneManager>().EnterSceneByPlayState();
                        }
                    }, false, true);
                }
            }
        }
示例#22
0
        private void SetColor(string heroId, bool isShowTempHp)
        {
            float hp = 0;

            if (isShowTempHp)
            {
                hp = LTHotfixManager.GetManager <SceneManager>().GetChallengeTempHp(heroId);
            }
            else
            {
                hp = LTChallengeInstanceHpCtrl.GetCombatHp(heroId);
            }
            if (hp <= 0)
            {
                Icon.color = GreyColor;
                QuantityLevelSprite.color = GreyColor;
                QuantityBGSprite.color    = Color.gray;
                AttrSprite.color          = GreyColor;
                HpSet.LevelLabel.transform.parent.GetComponent <UISprite>().color = GreyColor;
                for (int i = 0; i < StarList.Length; i++)
                {
                    StarList[i].GetComponent <UISprite>().color = GreyColor;
                }
            }
            else
            {
                Icon.color = WhiteColor;
                QuantityLevelSprite.color = WhiteColor;
                //QuantityBGSprite.color = WhiteColor;
                AttrSprite.color = WhiteColor;
                HpSet.LevelLabel.transform.parent.GetComponent <UISprite>().color = WhiteColor;
                for (int i = 0; i < StarList.Length; i++)
                {
                    StarList[i].GetComponent <UISprite>().color = WhiteColor;
                }
            }
        }
示例#23
0
 public void Register()
 {
     LTHotfixManager.GetManager <AutoRefreshingManager>().AddDeltaActionExcute(this);
 }
示例#24
0
        //private void SetTaskBtnState(string state)
        //{
        //    if (state != null)
        //    {
        //        buttonTip.text = buttonTipShadow.text = state.Equals(TaskSystem.RUNNING)||state.Equals(TaskSystem.FINISHED) ?
        //            EB.Localizer.GetString("ID_BUTTON_LABEL_PULL"):EB.Localizer.GetString("ID_BUTTON_LABEL_HAD_PULL");
        //        LTUIUtil.SetGreyButtonEnable(GetBtn, state.Equals(TaskSystem.FINISHED));
        //    }
        //}

        private void CompleteTask()
        {
            InputBlockerManager.Instance.Block(InputBlockReason.FUSION_BLOCK_UI_INTERACTION, 10f);
            LTHotfixManager.GetManager <TaskManager>().RequestComplete(taskId.ToString(), OnCompleteTask);
        }