コード例 #1
0
    //计算属性
    public virtual void ResetAllProperty(bool isinit = false)
    {
        SetBaseProperty();
        SetEquipProperty();
        SetMainPropertyAddition();

        for (int i = 1; i < propertys.propertyValues.Length; i++)
        {
            if (!ConfigManager.propertyConfManager.dataMap.ContainsKey(i))
            {
                continue;
            }
            PropertyConf pconf = ConfigManager.propertyConfManager.dataMap[i];
            if (pconf.formula == 1)
            {
                propertys.propertyValues[i] = (1 - propertys.propertyValues[i]) * 100;
            }
            else if (pconf.formula == 2)
            {
                propertys.propertyValues[i] = conf.propertyValues[i] + conf.propertyValues[i] * (1f - 100f / (100f + propertys.propertyValues[i]));
            }
        }

        propertys.PropertyAddition(enCharacterProperty.life, enCharacterProperty.lifeAddition);
        propertys.PropertyAddition(enCharacterProperty.armor, enCharacterProperty.armorAddition);
        propertys.PropertyAddition(enCharacterProperty.atkForce, enCharacterProperty.atkForceAddition);

        if (isinit)
        {
            InitProperty();
        }
    }
コード例 #2
0
ファイル: PlayerInfoLayer.cs プロジェクト: LiuFeng1011/Diablo
    public void CreateProperty(GameObject prefab, PropertyConf conf, InGameBaseCharacter role)
    {
        GameObject       obj  = NGUITools.AddChild(grid.gameObject, prefab);
        PropertyListItem item = obj.GetComponent <PropertyListItem>();

        if (conf != null)
        {
            item.Init(conf /*, role.propertys.propertyValues[conf.id]*/);
        }

        itemList.Add(item);
    }
コード例 #3
0
    public virtual void SetBaseProperty()
    {
        //从配置表中获得人物基础属性
        for (int i = 1; i < propertys.propertyValues.Length; i++)
        {
            if (!ConfigManager.propertyConfManager.dataMap.ContainsKey(i))
            {
                continue;
            }
            PropertyConf pconf = ConfigManager.propertyConfManager.dataMap[i];

            AHFloat val = conf.propertyValues[i];
            if (this.isElite)
            {
                val *= 2f;
            }
            if (pconf.formula != 2)
            {
                if (pconf.formula == 1)
                {
                    propertys.propertyValues[i] = (1f - val / 100f);
                }
                else
                {
                    propertys.propertyValues[i] = val;
                }
            }
            else
            {
                propertys.propertyValues[i] = 0;
            }
        }

        float baselife = propertys.propertyValues[(int)enCharacterProperty.life];

        propertys.propertyValues[(int)enCharacterProperty.life] = this.level * this.level * baselife / 2 + baselife;

        float baseforce = propertys.propertyValues[(int)enCharacterProperty.atkForce];

        propertys.propertyValues[(int)enCharacterProperty.atkForce] = this.level * this.level * baseforce / 10 + baseforce;

        //附加属性
        if (data == null)
        {
            return;
        }
        foreach (KeyValuePair <int, float> kv in data.additionPropertyList)
        {
            AddPropertyVal(kv.Key, kv.Value, 1);
        }
    }
コード例 #4
0
    public void Log()
    {
        List <PropertyConf> confs = ConfigManager.propertyConfManager.datas;
        string propertyString     = "";

        for (int i = 0; i < confs.Count; i++)
        {
            PropertyConf conf = confs[i];

            propertyString += string.Format(conf.des, propertyValues[conf.id]);
            propertyString += "\n";
        }
        Debug.Log(propertyString);
    }
コード例 #5
0
    //主属性加成
    public void SetMainPropertyAddition()
    {
        List <PropertyConf> pconflist = ConfigManager.propertyConfManager.datas;

        for (int i = 0; i < pconflist.Count; i++)
        {
            PropertyConf _conf = pconflist[i];
            if (_conf.mainProerty < 0)
            {
                continue;
            }

            AddPropertyVal(_conf.id, propertys.propertyValues[_conf.mainProerty] * _conf.levelval, 1);
        }
    }
コード例 #6
0
    public void SetData(EquipData data)
    {
        this.data = data;
        if (data == null)
        {
            content.SetActive(false);
            return;
        }
        content.SetActive(true);

        EquipConf conf = ConfigManager.equipConfManager.dic[data.equipid];

        iconSprite.spriteName = conf.prefabname;
        equipNameLabel.text   = conf.name;
        equipNameLabel.color  = ConfigManager.equipQualityManager.colordic[data.qualityID];

        equipLvLabel.text = "1";

        string propertyText = "";

        for (int i = 0; i < data.propertyList.Count; i++)
        {
            EquipProperty p     = data.propertyList[i];
            PropertyConf  pconf = ConfigManager.propertyConfManager.dataMap[p.id];

            propertyText += string.Format(pconf.des, p.val) + "\n";
        }

        equipPropertyLabel.text = propertyText;


        if (data.roleid > 0)
        {
            delBtn.SetActive(false);
            equipBtn.SetActive(false);
            unequipBtn.SetActive(true);
        }
        else
        {
            delBtn.SetActive(true);
            equipBtn.SetActive(true);
            unequipBtn.SetActive(false);
        }
    }
コード例 #7
0
ファイル: EquipSystem.cs プロジェクト: LiuFeng1011/Diablo
    public EquipData RandEquipProperty(InGameBaseEquip equip)
    {
        EquipConf     equipConf    = ConfigManager.equipConfManager.dic[equip.confid];
        EquipConfData propertyData = ConfigManager.equipConfManager.datadic[equip.confid];

        List <PropertyConf>  propertys    = ConfigManager.propertyConfManager.datas;
        List <EquipProperty> propertyList = new List <EquipProperty>();

        EquipQuality quality = equip.quality;

        for (int i = 0; i < propertyData.propertyList.Count; i++)
        {
            PropertyConf propertyConf = ConfigManager.propertyConfManager.dataMap[propertyData.propertyList[i].id];

            EquipProperty e = new EquipProperty();
            e.id = propertyConf.id;
            float val = propertyConf.baseval + propertyConf.GetLevelupVal(equip.level);
            e.val = Mathf.Ceil(val + Random.Range(-val * propertyConf.randomrange, val * propertyConf.randomrange));
            e.val = e.val * (propertyData.propertyList[i].rate / 100f);
            propertyList.Add(e);
        }

        for (int i = propertyData.propertyList.Count; i < quality.propertycount; i++)
        {
            PropertyConf  propertyConf = propertys[Random.Range(0, propertys.Count)];
            EquipProperty e            = new EquipProperty();
            e.id = propertyConf.id;
            float val = propertyConf.baseval + propertyConf.GetLevelupVal(equip.level);
            e.val = Mathf.Ceil(val + Random.Range(-val * propertyConf.randomrange, val * propertyConf.randomrange));
            propertyList.Add(e);
        }

        EquipData equipData = new EquipData(
            UserDataManager.instance.GetInstanceID(),
            ConfigManager.equipQualityManager.GetByPropertyCount(propertyList.Count).id,
            equipConf.id,
            -1,
            propertyList);

        return(equipData);
        //UserDataManager.instance.AddEquip(equipData);
    }
コード例 #8
0
    public void AddPropertyVal(int id, float val, float times)
    {
        PropertyConf pconf = ConfigManager.propertyConfManager.dataMap[id];

        val *= times;
        if (pconf.formula != 2)
        {
            if (pconf.formula == 1)
            {
                propertys.propertyValues[id] *= (1f - val / 100f);
            }
            else
            {
                propertys.propertyValues[id] += val;
            }
        }
        else
        {
            propertys.propertyValues[id] += val;
        }
    }
コード例 #9
0
ファイル: EquipInfoLayer.cs プロジェクト: LiuFeng1011/Diablo
    public void Init(EquipData data)
    {
        this.data = data;
        GameUIEventListener.Get(delBtn).onClick   = DelCB;
        GameUIEventListener.Get(equipBtn).onClick = EquipCB;

        EquipConf conf = ConfigManager.equipConfManager.dic[data.equipid];

        if (conf == null)
        {
            return;
        }

        iconSprite.spriteName = conf.prefabname;
        titleLabel.text       = conf.name;

        basePropertyLabel.text = "";

        EquipProperty mainp     = data.propertyList[0];
        PropertyConf  mainpconf = ConfigManager.propertyConfManager.dataMap[mainp.id];

        typeLabel.text = "";
        //lvLabel.text = 1+"";

        string propertyText = "";

        for (int i = 1; i < data.propertyList.Count; i++)
        {
            EquipProperty p     = data.propertyList[i];
            PropertyConf  pconf = ConfigManager.propertyConfManager.dataMap[p.id];

            propertyText += string.Format(pconf.des, p.val) + "\n";
        }

        propertyLabel.text = propertyText;

        Show();
    }
コード例 #10
0
ファイル: PropertyConf.cs プロジェクト: LiuFeng1011/Diablo
    public void Load()
    {
        if (datas != null)
        {
            datas.Clear();
        }

        if (dataMap != null)
        {
            dataMap.Clear();
        }
        else
        {
            dataMap = new Dictionary <int, PropertyConf>();
        }

        if (mainDataMap != null)
        {
            mainDataMap.Clear();
        }
        else
        {
            mainDataMap = new Dictionary <int, List <PropertyConf> >();
        }

        datas = ConfigManager.Load <PropertyConf>();
        for (int i = 0; i < datas.Count; i++)
        {
            PropertyConf data = datas[i];
            dataMap.Add(data.id, data);

            if (!mainDataMap.ContainsKey(data.mainProerty))
            {
                mainDataMap.Add(data.mainProerty, new List <PropertyConf>());
            }
            mainDataMap[data.mainProerty].Add(data);
        }
    }
コード例 #11
0
 public void Init(PropertyConf conf)
 {
     this.conf = conf;
 }