示例#1
0
 public static void SaveEventControlDataMap(EventControlDataMap fileDataMap, int gameID, EventControlData fileData)
 {
     //Init Data Map
     if (fileDataMap == null || fileDataMap.MapFileData == null)
     {
         fileDataMap             = new EventControlDataMap();
         fileDataMap.MapFileData = new Dictionary <int, EventControlData>();
     }
     //Init Data
     if (fileData == null || fileData.EventConfig == null)
     {
         fileData             = new EventControlData();
         fileData.EventConfig = new Dictionary <string, EventConfig>();
     }
     //Save Data
     if (fileDataMap.MapFileData.ContainsKey(gameID))
     {
         fileDataMap.MapFileData[gameID] = fileData;
     }
     else
     {
         fileDataMap.MapFileData.Add(gameID, fileData);
     }
     //Save File
     byte[] data = ThriftSerialize.Serialize(fileDataMap);
     FileUtils.WriteByteFile(GetEventControDataPath(), data);
 }
 private void SaveFile()
 {
     //Convert Data
     m_EventControlData             = new EventControlData();
     m_EventControlData.EventConfig = new Dictionary <string, EventConfig>();
     if (m_lstEventEffectInfo == null)
     {
         m_lstEventEffectInfo = new List <EventEffectInfo>();
     }
     for (int i = 0; i < m_lstEventEffectInfo.Count; i++)
     {
         if (m_lstEventEffectInfo[i].EventName == null || m_lstEventEffectInfo[i].EventName == "")
         {
             EditorUtility.DisplayDialog("保存失败", "事件名称不能为空", "确定");
             return;
         }
         EventConfig eventConfig = new EventConfig();
         eventConfig.TalentEffect = new Dictionary <string, int>();
         foreach (string talent in m_lstEventEffectInfo[i].TalentEffects.Keys)
         {
             eventConfig.TalentEffect.Add(talent, AdaptiveDifficultyManager.ConvertInt(m_lstEventEffectInfo[i].TalentEffects[talent]));
         }
         m_EventControlData.EventConfig.Add(m_lstEventEffectInfo[i].EventName, eventConfig);
     }
     //Save File
     EditorUtility.DisplayDialog("保存成功", "保存成功", "确定");
     ADE_Helper.SaveEventControlDataMap(m_EventControlDataMap, m_GameID, m_EventControlData);
 }
示例#3
0
    // Talent Control
    private void CalculateUserTalent(string eventName, EventControlData currentEventControlData)
    {
        if (m_CharTalentMap == null)
        {
            ResetUserTalent();
        }
        //foreach (string talentName in currentEventControlData.EventConfig.Keys)
        //{
        //    if (m_CharTalentMap.ContainsKey(talentName))
        //    {
        //        EventConfig talentConfig = currentEventControlData.EventConfig[talentName];
        //        if (talentConfig.TalentEffect.ContainsKey(eventName))
        //        {
        //            float effect = ConvertFloat(talentConfig.TalentEffect[eventName]);
        //            float score = ConvertFloat(m_CharTalentMap[talentName]);
        //            float result = Mathf.Clamp01(score + effect);
        //            m_CharTalentMap[talentName] = ConvertInt(result);

        //            UpdateUserTalent();
        //        }
        //        else
        //        {
        //            Debuger.LogWarning("Wrong Event Name : " + eventName + ", it does not Exist in Current EventControlData");
        //        }
        //    }
        //    else
        //    {
        //        Debuger.LogWarning("Wrong Talent Name : " + talentName + ", it does not Exist in UserTalent");
        //    }
        //}
        if (currentEventControlData.EventConfig.ContainsKey(eventName))
        {
            EventConfig eventConfig = currentEventControlData.EventConfig[eventName];
            foreach (string talentName in eventConfig.TalentEffect.Keys)
            {
                if (m_CharTalentMap.ContainsKey(talentName))
                {
                    float score  = ConvertFloat(m_CharTalentMap[talentName]);
                    float effect = ConvertFloat(eventConfig.TalentEffect[talentName]);
                    float result = Mathf.Clamp01(score + effect);
                    m_CharTalentMap[talentName] = ConvertInt(result);

                    UpdateUserTalent();
                }
                else
                {
                    Debuger.LogWarning("Wrong Talent Name : " + talentName + ", it does not Exist in UserTalent");
                }
            }
        }
        else
        {
            Debuger.LogWarning("Wrong Event Name : " + eventName + ", it does not Exist in Current EventControlData");
        }
    }
 private void Refresh()
 {
     m_lstEventEffectInfo = null;
     // Check File
     if (m_EventControlDataMap == null || m_EventControlDataMap.MapFileData == null)
     {
         return;
     }
     if (m_EventControlDataMap.MapFileData.Count <= 0)
     {
         return;
     }
     // Game Talent
     if (!m_EventControlDataMap.MapFileData.ContainsKey(m_GameID))
     {
         m_EventCount     = 0;
         m_EventLastCount = 0;
         return;
     }
     m_EventControlData = m_EventControlDataMap.MapFileData[m_GameID];
     // Event Count
     m_EventCount     = m_EventControlData.EventConfig.Count;
     m_EventLastCount = m_EventCount;
     // Editor Data
     m_lstEventEffectInfo = new List <EventEffectInfo>();
     foreach (string eventName in m_EventControlData.EventConfig.Keys)
     {
         EventEffectInfo temp = new EventEffectInfo();
         temp.EventName = eventName;
         Dictionary <string, float> effect            = new Dictionary <string, float>();
         DefaultUserTalent          defaultUserTalent = ConfigManager.Instance.GetDefaultUserTalent();
         foreach (string talentName in defaultUserTalent.MapTalent.Keys)
         {
             if (m_EventControlData.EventConfig[eventName].TalentEffect.ContainsKey(talentName))
             {
                 float effectValue = AdaptiveDifficultyManager.ConvertFloat(m_EventControlData.EventConfig[eventName].TalentEffect[talentName]);
                 effect.Add(talentName, effectValue);
             }
             else
             {
                 effect.Add(talentName, 0f);
             }
         }
         temp.TalentEffects = effect;
         // add to list
         m_lstEventEffectInfo.Add(temp);
     }
 }
示例#5
0
    public void SetUserTalent(string eventName, int gameID)
    {
        Debuger.Log("report event : " + eventName);

        if (m_EventControlDataMap == null || m_EventControlDataMap.MapFileData == null)
        {
            Debuger.LogError("m_EventControlDataMap not Initialized !");
        }
        if (!m_EventControlDataMap.MapFileData.ContainsKey(gameID))
        {
            Debuger.LogError("current game id is not found " + gameID);
            return;
        }

        m_nCurrentGameID = gameID;
        EventControlData currentEventControlData = m_EventControlDataMap.MapFileData[gameID];

        CalculateUserTalent(eventName, currentEventControlData);
    }