コード例 #1
0
 public void AddData(string[] lineArray)
 {
     for (int i = 1; i < lineArray.Length; i++)
     {
         lineArray[i] = lineArray[i].Replace("\r", "");
         string[]          strArray = lineArray[i].Split(","[0]);
         StaticBuffLevelVo vo       = new StaticBuffLevelVo(strArray);
         _datapool.Add(vo);
     }
 }
コード例 #2
0
ファイル: BaseUnit.cs プロジェクト: LJCLJCLJC/GuaJi-Souls
    public virtual void AddBuff(int id, int level, BaseUnit income)
    {
        StaticBuffLevelVo buffVo = StaticDataPool.Instance.staticBuffLevelPool.GetStaticDataVo(id, level);
        KeyValuePair <StaticBuffLevelVo, BaseUnit> _buff = new KeyValuePair <StaticBuffLevelVo, BaseUnit>(buffVo, income);

        BuffVo tempBuff = _buffs.Find(p => (p.staticVo == buffVo && p.inCome == income));

        if (tempBuff == null)
        {
            BuffVo newBuff = new BuffVo();
            newBuff.inCome   = income;
            newBuff.staticVo = buffVo;
            newBuff.ifEffect = false;
            newBuff.Round    = buffVo.cd;
            _buffs.Add(newBuff);
        }
        else
        {
            tempBuff.Round = tempBuff.staticVo.cd;
        }

        //if (!buff.ContainsKey(_buff))
        //{
        //    ArrayList al = new ArrayList();
        //    al.Add(buffVo.cd);
        //    al.Add(false);
        //    buff.Add(_buff, al);
        //}
        //else
        //{
        //    ArrayList al = new ArrayList();
        //    al.Add(buffVo.cd);
        //    al.Add(buff[_buff][1]);
        //    buff[_buff] = al;
        //}
    }
コード例 #3
0
ファイル: BaseUnit.cs プロジェクト: LJCLJCLJC/GuaJi-Souls
    public virtual void Buff()
    {
        List <BuffVo> removeList = new List <BuffVo>();

        for (int i = 0; i < _buffs.Count; i++)
        {
            BaseUnit          inCome = _buffs[i].inCome;
            StaticBuffLevelVo _buff  = _buffs[i].staticVo;
            switch (_buff.type)//0:物理伤害1:魔法伤害2:回血3:回蓝4:攻击提升5:法伤提升6:护甲提升7:闪避提升8:暴击提升
            {
            case 0:
                if (_buffs[i].Round > 0)
                {
                    if (_buff.effectType == 0)
                    {
                        nowHp -= Random.Range(inCome.attackSmall, inCome.attackBig) * _buff.effectValue * (1 - (defance / (defanceRate * level + defance)));
                    }
                    else if (_buff.effectType == 1)
                    {
                        nowHp -= (Random.Range(inCome.attackSmall, inCome.attackBig) + _buff.effectValue) * (1 - (defance / (defanceRate * level + defance)));
                    }
                    _buffs[i].Round = _buffs[i].Round - 1;
                }
                else
                {
                    removeList.Add(_buffs[i]);
                }
                break;

            case 1:
                if (_buffs[i].Round > 0)
                {
                    if (_buff.effectType == 0)
                    {
                        nowHp -= inCome.magicAttack * _buff.effectValue * (1 - (defance / (defanceRate * level + defance)));
                    }
                    else if (_buff.effectType == 1)
                    {
                        nowHp -= (inCome.magicAttack + _buff.effectValue) * (1 - (defance / (defanceRate * level + defance)));
                    }
                    _buffs[i].Round = _buffs[i].Round - 1;
                }
                else
                {
                    removeList.Add(_buffs[i]);
                }
                break;

            case 2:
                if (_buffs[i].Round > 0)
                {
                    if (_buff.effectType == 0)
                    {
                        float addHp = maxHp * _buff.effectValue;
                        if (nowHp + addHp > maxHp)
                        {
                            addHp = maxHp - nowHp;
                        }
                        nowHp += addHp;
                    }
                    else if (_buff.effectType == 1)
                    {
                        float addHp = _buff.effectValue;
                        if (nowHp + addHp > maxHp)
                        {
                            addHp = maxHp - nowHp;
                        }
                        nowHp += addHp;
                    }
                    _buffs[i].Round = _buffs[i].Round - 1;
                }
                else
                {
                    removeList.Add(_buffs[i]);
                }
                break;

            case 3:
                if (_buffs[i].Round > 0)
                {
                    if (_buff.effectType == 0)
                    {
                        float addMp = maxMp * _buff.effectValue;
                        if (nowHp + addMp > maxMp)
                        {
                            addMp = maxMp - addMp;
                        }
                        nowMp += addMp;
                    }
                    else if (_buff.effectType == 1)
                    {
                        float addMp = _buff.effectValue;
                        if (nowMp + addMp > maxMp)
                        {
                            addMp = maxMp - nowMp;
                        }
                        nowMp += addMp;
                    }
                    _buffs[i].Round = _buffs[i].Round - 1;
                }
                else
                {
                    removeList.Add(_buffs[i]);
                }
                break;

            case 4:
                if (_buffs[i].Round > 0)
                {
                    if (_buffs[i].ifEffect == false)
                    {
                        if (_buff.effectType == 0)
                        {
                            float addNum = attackSmall * _buff.effectValue;
                            _buffs[i].num = addNum;
                            attackBig    += addNum;
                            attackSmall  += addNum;
                        }
                        else if (_buff.effectType == 1)
                        {
                            float addNum = _buff.effectValue;
                            _buffs[i].num = addNum;
                            attackBig    += addNum;
                            attackSmall  += addNum;
                        }
                        _buffs[i].ifEffect = true;
                    }
                }
                else
                {
                    if (_buffs[i].ifEffect == true)
                    {
                        attackBig         -= _buffs[i].num;
                        attackSmall       -= _buffs[i].num;
                        _buffs[i].ifEffect = false;
                        removeList.Add(_buffs[i]);
                    }
                }
                _buffs[i].Round = _buffs[i].Round - 1;
                break;

            case 5:
                if (_buffs[i].Round > 0)
                {
                    if (_buffs[i].ifEffect == false)
                    {
                        if (_buff.effectType == 0)
                        {
                            float addNum = magicAttack * _buff.effectValue;
                            _buffs[i].num = addNum;
                            magicAttack  += addNum;
                        }
                        else if (_buff.effectType == 1)
                        {
                            float addNum = _buff.effectValue;
                            _buffs[i].num = addNum;
                            magicAttack  += addNum;
                        }
                        _buffs[i].ifEffect = true;
                    }
                }
                else
                {
                    if (_buffs[i].ifEffect == true)
                    {
                        _buffs[i].ifEffect = false;
                        magicAttack       -= _buffs[i].num;
                        removeList.Add(_buffs[i]);
                    }
                }
                _buffs[i].Round = _buffs[i].Round - 1;
                break;

            case 6:
                if (_buffs[i].Round > 0)
                {
                    if (_buffs[i].ifEffect == false)
                    {
                        if (_buff.effectType == 0)
                        {
                            float addNum = defance * _buff.effectValue;
                            _buffs[i].num = addNum;
                            defance      += addNum;
                        }
                        else if (_buff.effectType == 1)
                        {
                            float addNum = _buff.effectValue;
                            _buffs[i].num = addNum;
                            defance      += addNum;
                        }
                        _buffs[i].ifEffect = true;
                    }
                }
                else
                {
                    if (_buffs[i].ifEffect == true)
                    {
                        _buffs[i].ifEffect = false;
                        defance           -= _buffs[i].num;
                        removeList.Add(_buffs[i]);
                    }
                }
                _buffs[i].Round = _buffs[i].Round - 1;
                break;

            case 7:
                if (_buffs[i].Round > 0)
                {
                    if (_buffs[i].ifEffect == false)
                    {
                        if (_buff.effectType == 0)
                        {
                            float addNum = duckNum * _buff.effectValue;
                            _buffs[i].num = addNum;
                            duckNum      += addNum;
                        }
                        else if (_buff.effectType == 1)
                        {
                            float addNum = _buff.effectValue;
                            _buffs[i].num = addNum;
                            duckNum      += addNum;
                        }
                        _buffs[i].ifEffect = true;
                    }
                }
                else
                {
                    if (_buffs[i].ifEffect == true)
                    {
                        _buffs[i].ifEffect = false;
                        duckNum           -= _buffs[i].num;
                        removeList.Add(_buffs[i]);
                    }
                }
                _buffs[i].Round = _buffs[i].Round - 1;
                break;

            case 8:
                if (_buffs[i].Round > 0)
                {
                    if (_buffs[i].ifEffect == false)
                    {
                        if (_buff.effectType == 0)
                        {
                            float addNum = critNum * _buff.effectValue;
                            _buffs[i].num = addNum;
                            critNum      += addNum;
                        }
                        else if (_buff.effectType == 1)
                        {
                            float addNum = _buff.effectValue;
                            _buffs[i].num = addNum;
                            critNum      += addNum;
                        }
                        _buffs[i].ifEffect = true;
                    }
                }
                else
                {
                    if (_buffs[i].ifEffect == true)
                    {
                        _buffs[i].ifEffect = false;
                        critNum           -= _buffs[i].num;
                        removeList.Add(_buffs[i]);
                    }
                }
                _buffs[i].Round = _buffs[i].Round - 1;
                break;
            }
        }
        for (int i = 0; i < removeList.Count; i++)
        {
            _buffs.Remove(removeList[i]);
        }
    }