/// <summary>
    /// 系统随机生成数据
    /// </summary>
    /// <param name="number">生成的随机数位数</param>
    /// <returns></returns>
    private Dictionary <int, int> GetRandomNumber(int gameStage)
    {
        int randNum;

        StageConfigManager.StageConfig stageConfig = StageConfigManager.GetStageConfig(gameStage);
        Dictionary <int, int>          dic         = stageConfig.NumPoolDic;

        randomDic = GetRandomNum(stageConfig.Level, dic);
        return(randomDic);
    }
    /// <summary>
    /// 游戏初始化
    /// </summary>
    public void Apply(int gameStage)
    {
        StopAllCoroutines();
        GameData.Instance.win = false;
        ShowStage(gameStage);
        GameData.Instance.GameStage = gameStage;
        //获取可选择数据池
        StageConfigManager.StageConfig stageConfig = StageConfigManager.GetStageConfig(gameStage);
        if (stageConfig != null)
        {
            Dictionary <int, string> numIconPoolDic = new Dictionary <int, string>(stageConfig.numIconPoolDic);
            GameData.Instance.gameLv       = stageConfig.Level;
            GameData.Instance.showColumn   = stageConfig.Column;
            GameData.Instance.resultColumn = stageConfig.ResultColumn;
            GameData.Instance.lockNum      = stageConfig.Lock;

            dragInputItemWidget.transform.localScale = new Vector3(stageConfig.InputItemScale, stageConfig.InputItemScale, 1);
            selectPoolWidget.transform.localScale    = new Vector3(stageConfig.SelectItemScale, stageConfig.SelectItemScale, 1);
            theShowResultPart.transform.localScale   = new Vector3(stageConfig.LightItemScale, stageConfig.LightItemScale, 1);

            Lock.SetActive(true);
            LockNumLabel.gameObject.SetActive(true);
            LockNumLabel.text   = stageConfig.Lock.ToString();
            StageNameLabel.text = stageConfig.Name;
            //刷新界面
            RefreshPanel(numIconPoolDic);
            //获取系统生成的随机数据
            randomDic = GetRandomNumber(gameStage);
            selectPoolWidget.gameObject.SetActive(false);
            selectPoolWidget.gameObject.SetActive(true);
            //显示输入框(老版)
            ShowInputNumRoot(stageConfig.Level);

            //显示倒计时
            StartCoroutine(TimeSliping(stageConfig.TimeLong));
            //加载模型
            LoadingManager.Instance.LoadModelCameraPrefab();
            LoadingManager.Instance.LoadModelPrefab("DarkHunter_B");
        }
        else
        {
            return;
        }
        dragInputItemWidget.transform.GetComponent <UIGrid>().Reposition();
        dragInputItemWidget.transform.GetComponent <UIGrid>().repositionNow = true;
    }
Esempio n. 3
0
    /// <summary>
    /// 显示当前选择结果
    /// </summary>
    public void ShowCurResultItem()
    {
        StageConfigManager.StageConfig stageConfig    = StageConfigManager.GetStageConfig(GameData.Instance.GameStage);
        Dictionary <int, string>       numIconPoolDic = stageConfig.numIconPoolDic;

        for (int i = 1; i <= GameData.Instance.curResultItemDic.Count; i++)
        {
            foreach (var item in numIconPoolDic)
            {
                string[] str = item.Value.Split(':');
                if (GameData.Instance.curResultItemDic[i] == int.Parse(str[0]))
                {
                    GameObject go = Instantiate(DragInputItemTemplate);
                    go.SetActive(true);
                    go.transform.parent     = resultItemWidget.transform;
                    go.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f);

                    go.transform.Find("Label").gameObject.SetActive(true);
                    go.transform.Find("icon").gameObject.SetActive(true);
                    go.transform.Find("plusIcon").gameObject.SetActive(false);

                    InputDragItem sc = go.GetComponent <InputDragItem>();
                    sc.interactable = false;
                    sc.Apply(item.Value);

                    //改变过的item标记出来
                    if (GameData.Instance.curResultItemDic[i] == GameData.Instance.changedItemOne ||
                        GameData.Instance.curResultItemDic[i] == GameData.Instance.changedItemTwo)
                    {
                        go.transform.Find("bg").GetComponent <UISprite>().spriteName = "ItemBack_Red";
                        go.transform.Find("effect").gameObject.SetActive(true);
                    }
                    else
                    {
                        go.transform.Find("effect").gameObject.SetActive(false);
                    }
                }
            }
            resultItemWidget.GetComponent <UIGrid>().maxPerLine = GameData.Instance.resultColumn;
        }
        GameData.Instance.changedItemOne = 0;
        GameData.Instance.changedItemTwo = 0;
    }
Esempio n. 4
0
    /// <summary>
    /// 显示输入框
    /// </summary>
    /// <param name="gameLv"></param>
    private void ShowInputNumRoot(int gameLv)
    {
        StageConfigManager.StageConfig stageConfig    = StageConfigManager.GetStageConfig(GameData.Instance.GameStage);
        Dictionary <int, string>       numIconPoolDic = stageConfig.numIconPoolDic;

        for (int i = 1; i <= gameLv; i++)
        {
            GameObject go = Instantiate(DragInputItemTemplate);
            go.name = "DragInputItem_" + i;
            go.SetActive(true);
            go.transform.parent        = dragInputItemWidget.transform;
            go.transform.localScale    = Vector3.one;
            go.transform.localPosition = Vector3.zero;

            inputList.Add(go);
        }
        dragInputItemWidget.transform.GetComponent <UIGrid>().maxPerLine = GameData.Instance.resultColumn;
        dragInputItemWidget.transform.GetComponent <UIGrid>().Reposition();
        dragInputItemWidget.transform.GetComponent <UIGrid>().repositionNow = true;
    }
Esempio n. 5
0
    public void Apply(int stageNum)
    {
        Clear();
        //       ScrollViewRect.transform.localPosition = new Vector3(0, 0, 0);
        //       ScrollViewRect.GetComponent<UIPanel>().clipOffset = new Vector3(0, 0, 0);
        for (int i = 1; i <= stageNum; i++)
        {
            StageConfigManager.StageConfig cfg = StageConfigManager.GetStageConfig(i);
            if (cfg != null)
            {
                /*  GameObject go = Instantiate(StageInfoTemplate);
                 * go.SetActive(true);
                 * go.transform.parent = ItemListWidget.transform;
                 * go.transform.localScale = Vector3.one;
                 * go.transform.localPosition = Vector3.zero;
                 *
                 * StageInfoTemplate st = go.GetComponent<StageInfoTemplate>();
                 * st.Apply(cfg.ID,cfg.Icon);
                 *
                 * ItemListWidget.GetComponent<UIGrid>().repositionNow = true;
                 * itemList.Add(go);*/
            }
            else
            {
                return;
            }
        }
        int low = stageNum / 4;    //每行显示4列

        if (low >= 8)
        {
            int offsetLow = low - 7;   //满屏显示8行
            offsetLow += 1;
            Debug.LogError("offset" + offsetLow);
            //itemListMove = offsetLow * 200;
            //ItemListWidget.transform.localPosition += new Vector3(0, itemListMove, 0);
            isItemListMove = true;
            ScrollViewRect.transform.localPosition             = new Vector3(0, itemListMove, 0);
            ScrollViewRect.GetComponent <UIPanel>().clipOffset = new Vector3(0, -itemListMove, 0);
        }
    }
    /// <summary>
    /// 判断玩家输入的数据是否合法
    /// </summary>
    /// <param name="inputDic"></param>
    /// <returns></returns>
    public bool CheckInputNumLegal(Dictionary <int, int> inputDic)
    {
        StageConfigManager.StageConfig cf = StageConfigManager.GetStageConfig(GameData.Instance.GameStage);
        //需要使用值拷贝而不是引用拷贝(坑!!要注意)
        Dictionary <int, int> checkDic = new Dictionary <int, int>(cf.NumPoolDic);

        foreach (var item in inputDic)
        {
            if (checkDic.ContainsValue(item.Value))
            {
                checkDic.Remove(item.Value);
            }
            else
            {
                NGUITools.PlaySound(erroMusic, 0.1f);
                TipsManager.Instance.ShowTips("有重复数字哦!");
                return(false);
            }
        }
        return(true);
    }