少年修仙传客户端代码仓库
Client_PangDeRong
2018-08-16 10448eddb6aab1ae2eff4cac8d20ed54a6354547
【2626】修改驭灵卷签到增加属性的读取
1个文件已修改
98 ■■■■■ 已修改文件
System/KnapSack/Logic/TreasureEffectModel.cs 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/KnapSack/Logic/TreasureEffectModel.cs
@@ -10,9 +10,8 @@
    public class TreasureEffectModel : Model,IBeforePlayerDataInitialize,IAfterPlayerDataInitialize,IPlayerLoginOk
    {
        public List<int> treasureAddAtklist { get; private set; }
        public List<int> treasureSignlist { get; private set;}
        public List<string> treasureIdlist { get; private set; }
        public Dictionary<int, Dictionary<int, int>> treasureSignDict { get; private set; }
        TreasureModel m_Model;
        TreasureModel model
        {
@@ -31,16 +30,17 @@
                treasureAddAtklist.Add(addExpIds[i]);
            }
            List<TreasureUpConfig> treasureUplist = ConfigManager.Instance.GetAllValues<TreasureUpConfig>();
            treasureSignlist = new List<int>();
            for (int i = 0; i < treasureUplist.Count; i++)
            FuncConfigConfig MWSignDayAttr = ConfigManager.Instance.GetTemplate<FuncConfigConfig>("MWSignDayAttr");
            int treasureId = int.Parse(MWSignDayAttr.Numerical2);
            JsonData signAttrData = JsonMapper.ToObject(MWSignDayAttr.Numerical1);
            treasureSignDict = new Dictionary<int, Dictionary<int, int>>();
            Dictionary<int, int> attrDict = new Dictionary<int, int>();
            treasureSignDict.Add(treasureId,attrDict);
            foreach (var id in signAttrData.Keys)
            {
                if(treasureUplist[i].Privilege == (int)TreasurePrivilege.Sign)
                {
                    treasureSignlist.Add(treasureUplist[i].ID);
                }
                attrDict.Add(int.Parse(id),int.Parse(signAttrData[id].ToString()));
            }
            treasureIdlist = ConfigManager.Instance.GetAllKeys<TreasureConfig>();
        }
@@ -51,7 +51,6 @@
            showType = 0;
            killNpcAtk = 0;
            effectDesSB.Length = 0;
            attrDict.Clear();
        }
        public void OnAfterPlayerDataInitialize()
@@ -83,8 +82,7 @@
        public StringBuilder effectDesSB = new StringBuilder();
        public int killNpcAtk { get; private set; }
        public int showType;
        private Dictionary<int, int> attrDict = new Dictionary<int, int>();
        public void SetTreasureID(int id, int vipLv = 0)
        {
            this.treasureId = id;
@@ -105,7 +103,6 @@
            type = 0;
            effectDesSB.Length = 0;
            killNpcAtk = 0;
            attrDict.Clear();
            TreasureConfig treasureConfig = ConfigManager.Instance.GetTemplate<TreasureConfig>(treasureId);
            if (treasureAddAtklist.Contains(treasureId))
            {
@@ -120,52 +117,41 @@
                return;
            }
            for (int i = 0; i < treasureSignlist.Count;i++)
            if(treasureSignDict.ContainsKey(treasureId))
            {
                TreasureUpConfig treasureUpConfig = ConfigManager.Instance.GetTemplate<TreasureUpConfig>(treasureSignlist[i]);
                if (treasureUpConfig.MWID == treasureId && treasureUpConfig.LV == 0)
                Dictionary<int, int> attrDict = treasureSignDict[treasureId];
                Treasure treasure;
                model.TryGetTreasure(treasureId, out treasure);
                bool isHaveTreasure = false;
                if (treasure != null)
                {
                    type = 2;
                    TreasurePrivilegeConfig privilegeConfig = ConfigManager.Instance.GetTemplate<TreasurePrivilegeConfig>(treasureUpConfig.Privilege);
                    JsonData signData = JsonMapper.ToObject(privilegeConfig.attr);
                    foreach (var key in signData.Keys)
                    if (treasure.state == TreasureState.Collected)
                    {
                        attrDict.Add(int.Parse(key),int.Parse(signData[key].ToString()));
                        isHaveTreasure = true;
                    }
                    Treasure treasure;
                    model.TryGetTreasure(treasureId,out treasure);
                    bool isHaveTreasure = false;
                    if (treasure != null)
                    {
                        if (treasure.state == TreasureState.Collected)
                        {
                            isHaveTreasure = true;
                        }
                    }
                    foreach (var id in attrDict.Keys)
                    {
                        PlayerPropertyConfig propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(id);
                        string des = string.Format(treasureConfig.Verse[0], GetProValueTypeStr(propertyConfig, attrDict[id]), propertyConfig.Name);
                        effectDesSB.Append(des);
                        if (signInModel.SumSignNum > 0)
                        {
                            des = string.Format(treasureConfig.Verse[1], signInModel.SumSignNum);
                            effectDesSB.Append(StringUtility.Contact("\n", des));
                            int addAtk = signInModel.SumSignNum * attrDict[id];
                            if (isHaveTreasure)
                            {
                                des = string.Format(treasureConfig.Verse[2], Language.Get("TreasureEffect105", GetProValueTypeStr(propertyConfig, addAtk)));
                            }
                            else
                            {
                                des = string.Format(treasureConfig.Verse[2], Language.Get("TreasureEffect104", GetProValueTypeStr(propertyConfig, addAtk)));
                            }
                            effectDesSB.Append(StringUtility.Contact("\n", des));
                        }
                    }
                    return;
                }
                foreach (var id in attrDict.Keys)
                {
                    PlayerPropertyConfig propertyConfig = ConfigManager.Instance.GetTemplate<PlayerPropertyConfig>(id);
                    string des = string.Format(treasureConfig.Verse[0], GetProValueTypeStr(propertyConfig, attrDict[id]), propertyConfig.Name);
                    effectDesSB.Append(des);
                    if (signInModel.SumSignNum > 0)
                    {
                        des = string.Format(treasureConfig.Verse[1], signInModel.SumSignNum);
                        effectDesSB.Append(StringUtility.Contact("\n", des));
                        int addAtk = signInModel.SumSignNum * attrDict[id];
                        if (isHaveTreasure)
                        {
                            des = string.Format(treasureConfig.Verse[2], Language.Get("TreasureEffect105", GetProValueTypeStr(propertyConfig, addAtk)));
                        }
                        else
                        {
                            des = string.Format(treasureConfig.Verse[2], Language.Get("TreasureEffect104", GetProValueTypeStr(propertyConfig, addAtk)));
                        }
                        effectDesSB.Append(StringUtility.Contact("\n", des));
                    }
                }
                return;
            }
           if(effectDesSB.Length <= 0)
@@ -211,7 +197,7 @@
                    }
                    break;
                case 2:
                    fight += UIHelper.GetFightPower(attrDict);
                    fight += UIHelper.GetFightPower(treasureSignDict[treasureId]);
                    break;
                case 3:
                    break;