Example #1
0
    public static TurntableDataScript getInstance()
    {
        if (s_instance == null)
        {
            s_instance = new TurntableDataScript();
        }

        return(s_instance);
    }
    // 获取转盘数据
    public void onReceive_GetTurntable(string data)
    {
        // 优先使用热更新的代码
        if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("TurntablePanelScript_hotfix", "onReceive_GetTurntable"))
        {
            ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.TurntablePanelScript_hotfix", "onReceive_GetTurntable", null, data);
            return;
        }

        NetLoading.getInstance().Close();

        TurntableDataScript.getInstance().initJson(data);
        loadReward();
    }
    public void addTurntableBroadcast(string name, int reward_id)
    {
        // 优先使用热更新的代码
        if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("TurntablePanelScript_hotfix", "addTurntableBroadcast"))
        {
            ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.TurntablePanelScript_hotfix", "addTurntableBroadcast", null, name, reward_id);
            return;
        }

        try
        {
            TurntableBroadcastDataScript.getInstance().addData(name, reward_id);

            {
                m_ListViewScript.clear();
                for (int i = 0; i < TurntableBroadcastDataScript.getInstance().getTurntableBroadcastDataList().Count; i++)
                {
                    GameObject prefab = Resources.Load("Prefabs/UI/Item/Item_zhuanpan_guangbo") as GameObject;
                    GameObject obj    = MonoBehaviour.Instantiate(prefab);

                    {
                        TurntableBroadcastData temp = TurntableBroadcastDataScript.getInstance().getTurntableBroadcastDataList()[i];

                        TurntableData data = TurntableDataScript.getInstance().getDataById(temp.m_reward_id);
                        if (data != null)
                        {
                            string reward    = TurntableDataScript.getInstance().getDataById(temp.m_reward_id).m_reward;
                            int    prop_id   = CommonUtil.splitStr_Start(reward, ':');
                            int    prop_num  = CommonUtil.splitStr_End(reward, ':');
                            string prop_name = PropData.getInstance().getPropInfoById(prop_id).m_name;

                            string content = "恭喜" + temp.m_name + "获得" + prop_name + "*" + prop_num;
                            obj.transform.Find("Text").GetComponent <Text>().text = content;
                        }
                    }

                    m_ListViewScript.addItem(obj);
                }

                m_ListViewScript.addItemEnd();
            }
        }
        catch (Exception ex)
        {
            LogUtil.Log("addTurntableBroadcast异常----" + ex.Message);
        }
    }
    public void loadReward()
    {
        // 优先使用热更新的代码
        if (ILRuntimeUtil.getInstance().checkDllClassHasFunc("TurntablePanelScript_hotfix", "loadReward"))
        {
            ILRuntimeUtil.getInstance().getAppDomain().Invoke("HotFix_Project.TurntablePanelScript_hotfix", "loadReward", null, null);
            return;
        }

        m_rewardObj_list.Clear();

        for (int i = 0; i < TurntableDataScript.getInstance().getDataList().Count; i++)
        {
            GameObject obj = gameObject.transform.Find("Image_bg/Left/Reward/Item" + (i + 1).ToString()).gameObject;

            m_rewardObj_list.Add(obj);

            // 具体数据
            {
                TurntableData temp = TurntableDataScript.getInstance().getDataList()[i];

                int id = temp.m_id;
                obj.transform.name = id.ToString();

                string        reward = temp.m_reward;
                List <string> list   = new List <string>();
                CommonUtil.splitStr(reward, list, ':');
                int prop_id  = int.Parse(list[0]);
                int prop_num = int.Parse(list[1]);

                // 图标
                CommonUtil.setImageSprite(obj.transform.Find("Image_icon").GetComponent <Image>(), GameUtil.getPropIconPath(prop_id));

                // 数量
                obj.transform.Find("Text_num").GetComponent <Text>().text = prop_num.ToString();

                // 徽章角标
                if (temp.m_isHuiZhang)
                {
                    obj.transform.Find("Image_huizhangjiaobiao").localScale = new Vector3(1, 1, 1);
                }
            }
        }
    }
    public void onInvokeRunRotateEnd()
    {
        {
            string reward = TurntableDataScript.getInstance().getDataById(int.Parse(m_targetGameObject.transform.name)).m_reward;

            // 加到内存
            GameUtil.changeDataWithStr(reward);

            // 显示奖励
            ShowRewardPanelScript.Show(reward, true);

            // 显示在转盘通知列表
            addTurntableBroadcast(UserData.name, int.Parse(m_targetGameObject.transform.name));

            m_isStartRotate = false;

            // 旋转结束后允许此界面可被关闭
            gameObject.GetComponent <ScaleUtil>().setCanClose(true);
        }
    }