Esempio n. 1
0
    //Load Data
    public static DefaultUserTalent GetDefaultUserTalentMap()
    {
        DefaultUserTalent fileDataMap = new DefaultUserTalent();

        ResourceManager.DecodePersonalDataTemplate(GetDefaultUserTalentDataPath(), ref fileDataMap);
        return(fileDataMap);
    }
Esempio n. 2
0
    public DefaultUserTalent GetDefaultUserTalent()
    {
        DefaultUserTalent config = TryGetConfig <DefaultUserTalent>(ConfigPath_DefaultUserTalentConfig);

        if (config == null || config.MapTalent == null)
        {
            Debug.LogWarning("can't find DefaultUserTalent");
        }
        return(config);
    }
Esempio n. 3
0
 private void LoadFile()
 {
     //ADE data
     m_DefaultUserTalentData = ADE_Helper.GetDefaultUserTalentMap();
     if (m_DefaultUserTalentData == null || m_DefaultUserTalentData.MapTalent == null)
     {
         return;
     }
     Refresh();
 }
 private void Refresh()
 {
     m_lstDifficultyInfo = null;
     // Check File
     if (m_DifficultyControlDataMap == null || m_DifficultyControlDataMap.MapFileData == null)
     {
         return;
     }
     if (m_DifficultyControlDataMap.MapFileData.Count <= 0)
     {
         return;
     }
     // Game Difficulty
     if (!m_DifficultyControlDataMap.MapFileData.ContainsKey(m_GameID))
     {
         m_DifficultyCount     = 0;
         m_DifficultyLastCount = 0;
         return;
     }
     m_DifficultyControlData = m_DifficultyControlDataMap.MapFileData[m_GameID];
     // Difficulty Count
     m_DifficultyCount     = m_DifficultyControlData.DifficultyConfig.Count;
     m_DifficultyLastCount = m_DifficultyCount;
     // Editor Data
     m_lstDifficultyInfo = new List <DifficultyInfo>();
     foreach (string diffName in m_DifficultyControlData.DifficultyConfig.Keys)
     {
         DifficultyInfo temp = new DifficultyInfo();
         temp.Name   = diffName;
         temp.Offset = AdaptiveDifficultyManager.ConvertFloat(m_DifficultyControlData.DifficultyConfig[diffName].DifficultyOffset);
         temp.Range  = AdaptiveDifficultyManager.ConvertFloat(m_DifficultyControlData.DifficultyConfig[diffName].DifficultyRange);
         Dictionary <string, float> effect            = new Dictionary <string, float>();
         DefaultUserTalent          defaultUserTalent = ConfigManager.Instance.GetDefaultUserTalent();
         foreach (string talentName in defaultUserTalent.MapTalent.Keys)
         {
             if (m_DifficultyControlData.DifficultyConfig[diffName].TalentEffect.ContainsKey(talentName))
             {
                 float effectValue = AdaptiveDifficultyManager.ConvertFloat(m_DifficultyControlData.DifficultyConfig[diffName].TalentEffect[talentName]);
                 effect.Add(talentName, effectValue);
             }
             else
             {
                 effect.Add(talentName, 0f);
             }
         }
         temp.TalentEffects = effect;
         // add to list
         m_lstDifficultyInfo.Add(temp);
     }
 }
Esempio n. 5
0
 public void Initialize()
 {
     //ResetUserTalent();
     m_DefaultUserTalentData    = ConfigManager.Instance.GetDefaultUserTalent();
     m_DifficultyControlDataMap = ConfigManager.Instance.GetDifficultyControlDataMap();
     m_EventControlDataMap      = ConfigManager.Instance.GetEventControlDataMap();
     // Init User Talent
     m_InitUserTalentData           = new DefaultUserTalent();
     m_InitUserTalentData.MapTalent = new Dictionary <string, int>();
     foreach (KeyValuePair <string, int> value in m_DefaultUserTalentData.MapTalent)
     {
         m_InitUserTalentData.MapTalent.Add(value.Key, value.Value);
     }
 }
Esempio n. 6
0
 private void SaveFile()
 {
     //Convert Data
     m_DefaultUserTalentData           = new DefaultUserTalent();
     m_DefaultUserTalentData.MapTalent = new Dictionary <string, int>();
     for (int i = 0; i < m_UserTalentCount; i++)
     {
         string name  = m_lstUserTalents[i].TalentName;
         int    value = AdaptiveDifficultyManager.ConvertInt(m_lstUserTalents[i].TalentValue);
         m_DefaultUserTalentData.MapTalent.Add(name, value);
     }
     //Save File
     EditorUtility.DisplayDialog("保存成功", "保存成功", "确定");
     ADE_Helper.SaveDefaultUserTalentMap(m_DefaultUserTalentData);
 }
Esempio n. 7
0
    //Merge Data
    public static void MergeDefaultUserTalentMap(ref DefaultUserTalent fileDataMap)
    {
        if (fileDataMap == null || fileDataMap.MapTalent == null)
        {
            fileDataMap           = new DefaultUserTalent();
            fileDataMap.MapTalent = new Dictionary <string, int>();
        }
        DefaultUserTalent        remoteDataMap = ConfigManager.Instance.GetDefaultUserTalent();
        Dictionary <string, int> remote        = remoteDataMap.MapTalent;
        Dictionary <string, int> local         = fileDataMap.MapTalent;

        foreach (string name in remote.Keys)
        {
            if (local.ContainsKey(name))
            {
            }
            else
            {
                local.Add(name, remote[name]);
            }
        }
    }
Esempio n. 8
0
    //Sycn Data
    public static void SycnDefaultUserTalentMap(ref DefaultUserTalent fileDataMap)
    {
        if (fileDataMap == null || fileDataMap.MapTalent == null)
        {
            fileDataMap           = new DefaultUserTalent();
            fileDataMap.MapTalent = new Dictionary <string, int>();
        }
        DefaultUserTalent        remoteDataMap = ConfigManager.Instance.GetDefaultUserTalent();
        Dictionary <string, int> remoteData    = remoteDataMap.MapTalent;
        Dictionary <string, int> localData     = fileDataMap.MapTalent;

        foreach (string name in remoteData.Keys)
        {
            if (localData.ContainsKey(name))
            {
                localData[name] = remoteData[name];
            }
            else
            {
                localData.Add(name, remoteData[name]);
            }
        }
        Debug.Log("ssasdasd");
    }
Esempio n. 9
0
 //Save Data
 public static void SaveDefaultUserTalentMap(DefaultUserTalent fileDataMap)
 {
     byte[] data = ThriftSerialize.Serialize(fileDataMap);
     FileUtils.WriteByteFile(GetDefaultUserTalentDataPath(), data);
 }
    private void OnGUI()
    {
        #region Setting
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            if (GUILayout.Button("重置", GUILayout.Width(60f)))
            {
                LoadFile();
                Repaint();
            }
            if (GUILayout.Button(m_lstDifficultyInfo == null ? "生成" : "保存", GUILayout.Width(60f)))
            {
                SaveFile();
                Repaint();
            }
            if (GUILayout.Button("同步", GUILayout.Width(60f)))
            {
                SysnFile();
                LoadFile();
                Repaint();
            }
            if (GUILayout.Button("合并", GUILayout.Width(60f)))
            {
                MergeFile();
                LoadFile();
                Repaint();
            }
        }
        EditorGUILayout.EndHorizontal();
        #endregion

        #region Game ID
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            EditorGUILayout.LabelField("游戏ID : ", GUILayout.Width(60f));
            m_GameID_InputField = EditorGUILayout.IntField(m_GameID_InputField, GUILayout.Width(60f));
            if (GUILayout.Button("加载", GUILayout.Width(60f)))
            {
                m_GameID = m_GameID_InputField;
                //GUI.SetNextControlName("Input");
                //EditorUtility.DisplayDialog("加载成功", "加载成功", "确定");
                //GUI.FocusControl("Input");
                Refresh();
                this.Focus();
            }

            GUILayout.Space(15f);
            EditorGUILayout.LabelField("显示宽度 : ", GUILayout.Width(60f));
            m_fNodeSpace = EditorGUILayout.Slider(m_fNodeSpace, 100f, 300f, GUILayout.Width(200f));
        }
        EditorGUILayout.EndHorizontal();
        #endregion

        if (m_lstDifficultyInfo == null)
        {
            return;
        }

        #region Difficulty Count
        GUILayout.Space(15f);
        EditorGUILayout.BeginHorizontal();
        {
            GUILayout.Space(5f);
            EditorGUILayout.LabelField("难度维度:", GUILayout.Width(60f));
            m_DifficultyCount = EditorGUILayout.IntField(m_DifficultyCount, GUILayout.Width(60f));
            GUILayout.Space(5f);
            if (GUILayout.Button("+", EditorStyles.miniButtonLeft, GUILayout.Width(30f)))
            {
                m_DifficultyCount++;
            }
            if (GUILayout.Button("-", EditorStyles.miniButtonRight, GUILayout.Width(30f)))
            {
                if (m_DifficultyCount > 0)
                {
                    m_DifficultyCount--;
                }
            }
            //Init Data
            if (m_DifficultyCount < m_DifficultyLastCount && m_DifficultyCount >= 0)
            {
                int removeCount = m_DifficultyLastCount - m_DifficultyCount;
                for (int i = 0; i < removeCount; i++)
                {
                    m_lstDifficultyInfo.RemoveAt(m_lstDifficultyInfo.Count - 1);
                }
            }
            else if (m_DifficultyCount > m_DifficultyLastCount)
            {
                int extraCount = m_DifficultyCount - m_DifficultyLastCount;
                for (int i = 0; i < extraCount; i++)
                {
                    DifficultyInfo tmpData = new DifficultyInfo();
                    tmpData.Name          = "";
                    tmpData.Offset        = 0f;
                    tmpData.Range         = 0f;
                    tmpData.TalentEffects = new Dictionary <string, float>();
                    DefaultUserTalent defaultUserTalent = ConfigManager.Instance.GetDefaultUserTalent();
                    foreach (string talentName in defaultUserTalent.MapTalent.Keys)
                    {
                        tmpData.TalentEffects.Add(talentName, 0f);
                    }
                    m_lstDifficultyInfo.Add(tmpData);
                }
            }
        }
        EditorGUILayout.EndHorizontal();
        #endregion

        #region Difficuly Data
        m_EventScorllPos = EditorGUILayout.BeginScrollView(m_EventScorllPos);
        {
            // Data Name
            GUILayout.Space(15f);
            EditorGUILayout.BeginHorizontal();
            {
                EditorGUILayout.LabelField("难度 \\ 天赋", GUILayout.Width(m_fNodeSpace));
                //GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandHeight(true), GUILayout.Width(1) });
                // Offset & Range
                EditorGUILayout.LabelField("基础值", GUILayout.Width(m_fNodeSpace));
                EditorGUILayout.LabelField("浮动范围", GUILayout.Width(m_fNodeSpace));
                // Talent Effect
                DefaultUserTalent defaultUserTalent = ConfigManager.Instance.GetDefaultUserTalent();
                foreach (string talentName in defaultUserTalent.MapTalent.Keys)
                {
                    EditorGUILayout.LabelField(talentName, GUILayout.Width(m_fNodeSpace));
                }
            }
            EditorGUILayout.EndHorizontal();
            GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) }); //draw hor line
            // Data List
            if (m_lstDifficultyInfo != null && m_lstDifficultyInfo.Count > 0)
            {
                for (int i = 0; i < m_lstDifficultyInfo.Count; i++)
                {
                    GUILayout.Space(5f);
                    EditorGUILayout.BeginHorizontal();
                    {
                        m_lstDifficultyInfo[i].Name = EditorGUILayout.TextField(m_lstDifficultyInfo[i].Name, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        m_lstDifficultyInfo[i].Offset = EditorGUILayout.Slider(m_lstDifficultyInfo[i].Offset, 0f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        m_lstDifficultyInfo[i].Range = EditorGUILayout.Slider(m_lstDifficultyInfo[i].Range, 0f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                        GUILayout.Space(5f);
                        // tmp list
                        List <UserTalentInfo> effectList = new List <UserTalentInfo>();
                        foreach (string talentName in m_lstDifficultyInfo[i].TalentEffects.Keys)
                        {
                            UserTalentInfo effect = new UserTalentInfo();
                            effect.TalentName  = talentName;
                            effect.TalentValue = m_lstDifficultyInfo[i].TalentEffects[talentName];
                            effectList.Add(effect);
                        }
                        // update data
                        for (int num = 0; num < effectList.Count; num++)
                        {
                            effectList[num].TalentValue = EditorGUILayout.Slider(effectList[num].TalentValue, -1f, 1f, GUILayout.Width(m_fNodeSpace - 5f));
                            GUILayout.Space(5f);
                            m_lstDifficultyInfo[i].TalentEffects[effectList[num].TalentName] = effectList[num].TalentValue;
                        }
                    }
                    EditorGUILayout.EndHorizontal();
                    GUILayout.Space(5f);
                    GUILayout.Box("", new GUILayoutOption[] { GUILayout.ExpandWidth(true), GUILayout.Height(1) }); //draw hor line
                }
            }
        }
        EditorGUILayout.EndScrollView();
        #endregion

        m_DifficultyLastCount = m_DifficultyCount;
    }