Beispiel #1
0
    public bool JudgeNewbieButton(float[] condition, NewbieGuideItem nConfig, NewbieGuideButton nButton)
    {
        BaseFilter filter;

        if (m_FilterMap.TryGetValue(condition[0], out filter))
        {
            return(filter.JudgeNewbieButton(condition, nConfig, nButton));
        }
        else
        {
            Global.gApp.gMsgDispatcher.Broadcast <int, string>(MsgIds.ShowGameTipsByIDAndParam, 3019, condition[0].ToString());
            return(false);
        }
    }
Beispiel #2
0
 private void BeforeClose(BaseUi baseUi, string panelName)
 {
     if (!m_LastingPanelNames.Contains(panelName) && !panelName.Equals(Wndid.HomeUI))
     {
         //Debug.Log(panelName + DateTimeUtil.GetMills(System.DateTime.Now));
         NewbieGuideButton ngb = baseUi.GetComponentInChildren <NewbieGuideButton>();
         //Debug.Log(panelName + (ngb == null));
         if (ngb == null)
         {
             //Debug.Log("close " + baseUi.name);
             Global.gApp.gMsgDispatcher.Broadcast <bool>(MsgIds.HideGameGuideAD, true);
         }
         //Debug.Log(panelName + DateTimeUtil.GetMills(System.DateTime.Now));
     }
 }
Beispiel #3
0
        //检查是否触发新手引导变化
        public void OnStart(NewbieGuideButton nButton)
        {
            Global.gApp.gGameCtrl.AddGlobalTouchMask();

            foreach (int nId in nButton.NewbieGuideIds)
            {
                NewbieGuideItem nConfig = Global.gApp.gGameData.NewbieGuideData.Get(nId);
                //引导配置是否存在
                if (nConfig == null)
                {
                    Global.gApp.gMsgDispatcher.Broadcast <int, string>(MsgIds.ShowGameTipsByIDAndParam, 3025, nId.ToString());
                    continue;
                }
                NewbieGuideItem rootConfig = Global.gApp.gGameData.NewbieGuideData.Get(nConfig.root_id);
                //同时只有一个引导在进行
                if (m_Data.curId > 0 && Global.gApp.gGameData.NewbieGuideData.Get(m_Data.curId).root_id != nConfig.root_id)
                {
                    continue;
                }

                int nState = m_Data.map[nId.ToString()];
                if (nState == WeaponStateConstVal.EXIST)
                {
                    continue;
                }

                //引导条件是否满足
                if (nConfig.condition != null && nConfig.condition[0] != 0 && nConfig.condition.Length >= 2)
                {
                    if (!FilterFactory.GetInstance().Filter(nConfig.condition))
                    {
                        continue;
                    }
                }

                //引导条件1是否满足
                if (nConfig.condition1 != null && nConfig.condition1[0] != 0 && nConfig.condition1.Length >= 2)
                {
                    if (!FilterFactory.GetInstance().Filter(nConfig.condition1))
                    {
                        continue;
                    }
                }

                //上个引导完成状态
                if ((nConfig.id == nConfig.root_id || (nConfig.pre_id != 0 && m_Data.map[nConfig.pre_id.ToString()] == WeaponStateConstVal.EXIST)) &&
                    FilterFactory.GetInstance().JudgeNewbieButton(rootConfig.condition, nConfig, nButton))
                {
                    bool skip = false;
                    //对于特殊情况(武器解锁引导,非主武器,如果已经有使用过了,将不再引导)
                    if (rootConfig.condition[0] == FilterTypeConstVal.WEAPON_UNLOCK && rootConfig.condition[1] != ItemTypeConstVal.BASE_MAIN_WEAPON)
                    {
                        int unlockNum = 0;

                        foreach (ItemItem cfg in Global.gApp.gGameData.ShowOrderGun[Convert.ToInt32(rootConfig.condition[1])].Values)
                        {
                            Global.gApp.gSystemMgr.GetWeaponMgr().GetWeaponOpenState(cfg);
                            if (Global.gApp.gSystemMgr.GetWeaponMgr().GetWeaponOpenState(cfg.name) == WeaponStateConstVal.EXIST)
                            {
                                unlockNum++;
                                if (unlockNum == rootConfig.condition[2])
                                {
                                    skip = true;
                                    break;
                                }
                            }
                        }
                    }

                    if (skip)
                    {
                        foreach (NewbieGuideItem ni in Global.gApp.gGameData.NewbieGuideData.items)
                        {
                            if (ni.root_id == nConfig.root_id)
                            {
                                m_Data.map[ni.id.ToString()] = WeaponStateConstVal.EXIST;
                            }
                        }
                        SaveData();
                    }
                    else
                    {
                        m_Data.curId = nConfig.id;
                        if (!string.IsNullOrEmpty(nButton.Param))
                        {
                            nButton.gameObject.AddComponent <DelayCallBack>().SetAction(() =>
                            {
                                Global.gApp.gMsgDispatcher.Broadcast(MsgIds.ChangeScrollView4Guide);
                            }, 0.2f);
                        }
                        //Global.gApp.gGameCtrl.GetFrameCtrl().GetScene().GetTimerMgr().AddTimer(nConfig.delay, 1, (dt, end) => { DelayAddGameGuide(nButton, nConfig); });
                        nButton.gameObject.AddComponent <DelayCallBack>().SetAction(() => { DelayAddGameGuide(nButton, nConfig); }, nConfig.delay);
                        //处理链尾

                        SaveData();

                        break;
                    }
                }
            }

            Global.gApp.gGameCtrl.RemoveGlobalTouchMask();
        }
Beispiel #4
0
        //点击事件
        public void OnClick(NewbieGuideButton nButton)
        {
            Global.gApp.gGameCtrl.AddGlobalTouchMask();

            foreach (int nId in nButton.NewbieGuideIds)
            {
                NewbieGuideItem nConfig = Global.gApp.gGameData.NewbieGuideData.Get(nId);
                //引导配置是否存在
                if (nConfig == null)
                {
                    Global.gApp.gMsgDispatcher.Broadcast <int, string>(MsgIds.ShowGameTipsByIDAndParam, 3025, nId.ToString());
                    continue;
                }

                NewbieGuideItem rootConfig = Global.gApp.gGameData.NewbieGuideData.Get(nConfig.root_id);
                //同时只有一个引导在进行
                if (m_Data.curId > 0 && Global.gApp.gGameData.NewbieGuideData.Get(m_Data.curId).root_id != nConfig.root_id)
                {
                    continue;
                }

                int nState = m_Data.map[nId.ToString()];
                if (nState == WeaponStateConstVal.EXIST)
                {
                    continue;
                }

                //引导条件是否满足
                if (nConfig.condition != null && nConfig.condition[0] != 0 && nConfig.condition.Length >= 2)
                {
                    if (!FilterFactory.GetInstance().Filter(nConfig.condition))
                    {
                        continue;
                    }
                }

                //引导条件1是否满足
                if (nConfig.condition1 != null && nConfig.condition1[0] != 0 && nConfig.condition1.Length >= 2)
                {
                    if (!FilterFactory.GetInstance().Filter(nConfig.condition1))
                    {
                        continue;
                    }
                }

                //上个引导完成状态
                if ((nConfig.id == nConfig.root_id || (nConfig.pre_id != 0 && m_Data.map[nConfig.pre_id.ToString()] == WeaponStateConstVal.EXIST)) &&
                    FilterFactory.GetInstance().JudgeNewbieButton(rootConfig.condition, nConfig, nButton))
                {
                    Global.gApp.gMsgDispatcher.Broadcast <Transform>(MsgIds.rmGameGuideUi, nButton.NewbieButton.transform);
                    Global.gApp.gMsgDispatcher.Broadcast(MsgIds.RmGuidePlotUi);

                    m_Data.map[nConfig.id.ToString()] = WeaponStateConstVal.EXIST;
                    SaveData();

                    //处理链尾
                    if (nConfig.post_id != 0)
                    {
                        NewbieGuideItem postConfig = Global.gApp.gGameData.NewbieGuideData.Get(nConfig.post_id);
                        int             postState  = m_Data.map[nConfig.post_id.ToString()];

                        //链尾只有文本提示文本
                        if (postConfig.post_id == 0 && postConfig.onlyText == 1)
                        {
                            m_Data.curId = 0;
                            m_Data.map[nConfig.post_id.ToString()] = WeaponStateConstVal.EXIST;
                            //Global.gApp.gGameCtrl.GetFrameCtrl().GetScene().GetTimerMgr().AddTimer(nConfig.delay, 1, (dt, end) =>
                            //{ Global.gApp.gMsgDispatcher.Broadcast<int, float, bool, bool>(MsgIds.AddGuidePlotUi, postConfig.tips, postConfig.tips_y, true, false); });
                            nButton.gameObject.AddComponent <DelayCallBack>().SetAction(() => {
                                Global.gApp.gMsgDispatcher.Broadcast <int, float, bool, bool>(MsgIds.AddGuidePlotUi, postConfig.tips, postConfig.tips_y, true, false);
                            }, postConfig.delay);
                            SaveData();
                        }

                        NewbieGuideButton[] newBieButtons = nButton.transform.parent.GetComponentsInChildren <NewbieGuideButton>();

                        foreach (NewbieGuideButton newBieButton in newBieButtons)
                        {
                            OnStart(newBieButton);
                        }
                    }
                    else
                    {
                        m_Data.curId = 0;
                        SaveData();
                    }

                    break;
                }
            }

            Global.gApp.gGameCtrl.RemoveGlobalTouchMask();
        }
Beispiel #5
0
 private void DelayAddGameGuide(NewbieGuideButton nButton, NewbieGuideItem nConfig)
 {
     Global.gApp.gMsgDispatcher.Broadcast <Transform>(MsgIds.AddGameGuideUi, nButton.NewbieButton.transform);
     Global.gApp.gMsgDispatcher.Broadcast <int, float, bool, bool>(MsgIds.AddGuidePlotUi, nConfig.tips, nConfig.tips_y, false, false);
 }
Beispiel #6
0
 public virtual bool JudgeNewbieButton(float[] condition, NewbieGuideItem nConfig, NewbieGuideButton nButton)
 {
     return(nConfig.param.Equals(nButton.Param));
 }
    public override bool JudgeNewbieButton(float[] condition, NewbieGuideItem nConfig, NewbieGuideButton nButton)
    {
        int      unlockNum = 0;
        ItemItem weaponCfg = null;

        foreach (ItemItem cfg in Global.gApp.gGameData.ShowOrderGun[Convert.ToInt32(condition[1])].Values)
        {
            if (Global.gApp.gSystemMgr.GetWeaponMgr().GetWeaponOpenState(cfg))
            {
                unlockNum++;
                if (unlockNum == condition[2])
                {
                    weaponCfg = cfg;
                    break;
                }
            }
        }
        if (!nConfig.param.Equals("*"))
        {
            return(true);
        }
        if (weaponCfg == null)
        {
            return(false);
        }
        return(weaponCfg.name.Equals(nButton.Param));
    }