Esempio n. 1
0
        private void OnLevelChange(xc.ClientEventBaseArgs args)
        {
            //************************************
            // 场景切换清掉面板從新打開必要面板
            //************************************
            List <string> removeList = new List <string>();

            foreach (var kv in mWindows)
            {
                if (kv.Value.WindowType != UIType.Loading)
                {
                    if (!kv.Value.IsGlobal)
                    {
                        if (kv.Value.mUIObject != null)
                        {
                            kv.Value.Destroy();
                            DestroyWindowGameObject((GameObject)kv.Value.mUIObject);
                            removeList.Add(kv.Key);
                        }
                    }
                    else
                    {
                        kv.Value.Show();
                    }
                }
            }

            for (int i = 0; i < removeList.Count; i++)
            {
                if (mWindows.ContainsKey(removeList[i]))
                {
                    mWindows.Remove(removeList[i]);
                }
            }
        }
Esempio n. 2
0
        void OnActorHpChange(xc.ClientEventBaseArgs msg)
        {
            if (mUIObject == null)
            {
                return;
            }

            if (mTargetMono == null || mTargetMono.BindActor == null)
            {
                return;
            }

            var actor = (Actor)msg.GetArg();

            if (actor == null)
            {
                GameDebug.LogError("actor == null");
                return;
            }

            var targetActor = (Actor)mTargetMono.BindActor;

            if (targetActor.UID == actor.UID)
            {
                SetHpBarPanel();
            }
        }
Esempio n. 3
0
    void OnActorHpChange(xc.ClientEventBaseArgs args)
    {
        if (mActor == null || !mActor.IsAlive)
        {
            return;
        }
        var myActor = (Actor)mActor.Target;

        var actor = (Actor)args.GetArg();

        if (actor == null)
        {
            GameDebug.LogError("actor == null");
            return;
        }

        if (myActor.UID == actor.UID)
        {
            if (myActor.FullLife > 0)
            {
                mForegroundBar.value = (float)((double)myActor.CurLife / (double)myActor.FullLife);
            }
            else
            {
                mForegroundBar.value = 0;
            }
            mSliderHPValue      = mLastHPValue;
            mLastHPValue        = myActor.CurLife;
            mProgressSliderTime = 0;
        }
    }
Esempio n. 4
0
        public void PostEvent(EventType eventID, ClientEventBaseArgs arg)
        {
            Message msg = new Message();

            msg.e   = eventID;
            msg.arg = arg;

            mMsgLst.AddLast(msg);
        }
Esempio n. 5
0
        public void FireEvent(EventType eventID, ClientEventBaseArgs arg)
        {
            List <ClientEventFunc> funcs;

            if (mEventHandlers.TryGetValue(eventID, out funcs))
            {
                foreach (ClientEventFunc func in funcs)
                {
                    if (func != null)
                    {
                        func(arg);
                    }
                }
            }
        }
Esempio n. 6
0
    /// <summary>
    /// 技能装配信息发生改变
    /// </summary>
    void OnSkillUpdate(xc.ClientEventBaseArgs data)
    {
        if (mCacheTrans == null)
        {
            return;
        }

        uint skillId = SkillManager.GetInstance().GetFitSkillId(mFuryHole);

        if (mSkillIdx != skillId)
        {
            // 装配的技能ID更换的时候,触发特效
            if (mSkillIdx != 0)
            {
                if (mChangeEffect != null)
                {
                    mChangeEffect.SetActive(false);
                    mChangeEffect.SetActive(true);
                }
            }

            mSkillIdx = skillId;
        }

        mBasicSkillInfo = DBManager.Instance.GetDB <DBDataAllSkill>().GetOneAllSkillInfo_byActiveSkillId(skillId);
        mSkillInfo      = DBSkillSev.Instance.GetSkillInfo(skillId);

        // 设置技能图标
        if (mBasicSkillInfo != null && mSpriteList != null)
        {
            var sprite = mSpriteList.LoadSprite(mBasicSkillInfo.Icon);
            if (sprite != null)
            {
                mSkillImage.color  = Color.white;
                mSkillImage.sprite = sprite;
                return;
            }
        }

        // 技能未装配,不显示技能对应图片
        mSkillImage.color = Color.clear;
    }
Esempio n. 7
0
        /// <summary>
        /// 面板资源完成的回调
        /// </summary>
        /// <param name="args"></param>
        private void OnResourceLoadDone(xc.ClientEventBaseArgs args)
        {
            if (args.Arg == null)
            {
                return;
            }
            UIBaseWindow baseWin = (UIBaseWindow)args.Arg;

            //移除加载窗口
            loadingWindows.Remove(baseWin.mWndName);

            //如果资源加载发现字典没有改面板表面是野窗口
            if (mWindows.ContainsValue(baseWin) == false)
            {
                // 如果在字典中找不到,则说明之前进行了销毁操作,不需要再次调用Destroy @fix by raorui
                //baseWin.Destroy();
                DestroyWindowGameObject((GameObject)baseWin.mUIObject);

                return;
            }
            //断线重连中直接销毁窗口
            if (NetReconnect.Instance.IsReconnect && baseWin.mWndName != "UIAutoConnectWindow")
            {
                DestroyWindowGameObject((GameObject)baseWin.mUIObject);
                if (needCloseWindowsAfterResLoad.Contains(baseWin.mWndName))
                {
                    needCloseWindowsAfterResLoad.Remove(baseWin.mWndName);
                }
                if (mWindows.ContainsKey(baseWin.mWndName))
                {
                    mWindows.Remove(baseWin.mWndName);
                }
                return;
            }
            //************************************
            // 资源加载完开始初始化数据调用InitData 跟show同时调整Zorder
            //************************************
            //AddZOrder(baseWin);

            //var go = baseWin.mUIObject;
            //go.SetActive(true);
            baseWin.InitData();
            if (ModalWindow != null && ModalWindow.mWndName != baseWin.mWndName)
            {
                return;
            }
            if (baseWin.IsModal)//模態窗口衹能唯一如果未銷毀不會打開新的模態
            {
                ModalWindow = baseWin;
            }
            baseWin.Show();

            for (int i = 0; i < needCloseWindowsAfterResLoad.Count; i++)
            {
                if (baseWin.mWndName == needCloseWindowsAfterResLoad[i])
                {
                    needCloseWindowsAfterResLoad.RemoveAt(i);
                    CloseWindow(baseWin.mWndName);
                    return;
                }
            }
        }
Esempio n. 8
0
    /// <summary>
    /// 技能装配信息发生改变
    /// </summary>
    void OnSkillUpdate(xc.ClientEventBaseArgs data)
    {
        if (mCacheTrans == null)
        {
            return;
        }

        uint skillId = SkillManager.GetInstance().GetFitSkillId(mFitPos);

        mSkillIdx       = skillId;
        mBasicSkillInfo = DBManager.Instance.GetDB <DBDataAllSkill>().GetOneAllSkillInfo_byActiveSkillId(skillId);
        mSkillInfo      = DBSkillSev.Instance.GetSkillInfo(skillId);
        DBSkillSev skill_db = DBManager.GetInstance().GetDB <DBSkillSev>();

        mHasCastingReadyStage = skill_db.HasCastingReadyStage(skillId);

        // 设置技能图标
        if (SkillHoleManager.Instance.IsHoleOpen(mFitPos) == false || SkillHoleManager.Instance.IsHoleWillOpen(mFitPos))
        {
            mSkillImage.color = Color.clear;
        }
        else
        {
            if (skillId != 0)// 设置技能图标
            {
                if (mBasicSkillInfo != null)
                {
                    if (mSpriteList != null)
                    {
                        string icon_str = mBasicSkillInfo.Icon;
                        if (mFitPos == (uint)DBCommandList.OPFlag.OP_A) //普攻
                        {
                            var localPlayer = Game.Instance.GetLocalPlayer();
                            if (localPlayer != null && localPlayer.IsShapeShift)// 变身状态下的图标需要特殊处理
                            {
                                icon_str = mBasicSkillInfo.Icon;

                                if (string.IsNullOrEmpty(icon_str))
                                {
                                    VocationInfo info = DBVocationInfo.Instance.GetVocationInfo(Game.Instance.LocalPlayerVocation);
                                    if (info != null && string.IsNullOrEmpty(info.common_skill_icon_main) == false)
                                    {
                                        icon_str = info.common_skill_icon_main;
                                    }
                                }
                            }
                            else
                            {
                                VocationInfo info = DBVocationInfo.Instance.GetVocationInfo(Game.Instance.LocalPlayerVocation);
                                if (info != null && string.IsNullOrEmpty(info.common_skill_icon_main) == false)
                                {
                                    icon_str = info.common_skill_icon_main;
                                }
                            }
                        }

                        Sprite sprite = mSpriteList.LoadSprite(icon_str);
                        if (sprite != null)
                        {
                            mSkillImage.color  = Color.white;
                            mSkillImage.sprite = sprite;
                        }
                        else
                        {
                            mSkillImage.color = Color.clear;
                        }
                    }
                    else
                    {
                        mSkillImage.color = Color.clear;
                    }
                }
                else
                {
                    mSkillImage.color = Color.clear;
                }
            }
            else// 技能未装配,不显示技能对应图片
            {
                mSkillImage.color = Color.clear;
            }
        }
    }