Example #1
0
 // *********************************************************************
 //Constructor
 public Buff(float value, float valuePerSecond, float duration, EBuffType type)
 {
     Value = value;
     ValuePerSecond = valuePerSecond;
     Duration = duration;
     FullDuration = duration;
     Type = type;
 }
Example #2
0
 public Buff(BuffManager manager, BuffBase buffBase)
 {
     mManager  = manager;
     mBuffBase = buffBase;
     mLeftTime = buffBase.Time * 0.001f;
     mBuffType = (EBuffType)(int)mBuffBase.Type;
     if (!string.IsNullOrEmpty(buffBase.AttribEffect))
     {
         mAttrib = (EPA)Enum.Parse(typeof(EPA), buffBase.AttribEffect);
     }
     mSpecialEffect = (EBuffSpecialEffect)(int)mBuffBase.SpecialEffect;
 }
Example #3
0
    public void DelBuffByType(EBuffType type, int delBuffNum = 0)
    {
        int            num  = 0;
        List <ActBuff> list = new List <ActBuff>(mBuffs.Values);

        for (int i = 0; i < list.Count; i++)
        {
            ActBuff current = list[i];
            if (current.Type == type)
            {
                num++;
                current.Stop();
            }
            if (delBuffNum > 0 && num >= delBuffNum)
            {
                break;
            }
        }
    }
Example #4
0
    public EFirePos buffEffPos = EFirePos.Top;//buff特效 显示位置

    public void paresData(string datastr)
    {
        string[] propArray = datastr.Split(',');

        buffid = int.Parse(propArray[0]);
        buffname = propArray[1];

        buffdesc = propArray[2];
        bufftype = (EBuffType)int.Parse(propArray[3]);

        string[] buffdata = propArray[4].Split(';');
        string[] tempdata;
        for (int i = 0; i < buffdata.Length; i++)
        {
            tempdata = buffdata[i].Split('|');
            if (tempdata.Length > 1)
            {
                effectBaseAttr.Add((EBaseAttr)int.Parse(tempdata[0]), float.Parse(tempdata[1])/100f);
            }
        }

        buffdata = propArray[5].Split(';');

        for (int i = 0; i < buffdata.Length; i++)
        {

            tempdata = buffdata[i].Split('|');
            if (tempdata.Length > 1)
            {
                effectSubAttr.Add((ESubAttr)int.Parse(tempdata[0]), float.Parse(tempdata[1]) / 100f);
            }

        }
        specialtype = (EBuffSpecialType)int.Parse(propArray[6]);
        duration = int.Parse(propArray[7]);
        buffEffPos = (EFirePos)int.Parse(propArray[8]);
        effurl = propArray[9];

    }
Example #5
0
    public IEnumerator ApplyBuff(EBuffType _buffType, float buffAmount, float duration)
    {
        Debug.Log("Applying float buff to " + gameObject.name + " of " + _buffType.ToString() + " for " + duration + " seconds with " + buffAmount + " buff amount");
        CharacterStats cs = GetComponent <Character>().Stats;

        switch (_buffType)
        {
        case EBuffType.CritRate:
            cs.CritRate *= buffAmount;
            break;

        case EBuffType.CritDamage:
            cs.CritDamage *= buffAmount;
            break;

        case EBuffType.HpRegen:
            cs.HpRegen *= buffAmount;
            break;

        case EBuffType.ManaRegen:
            cs.ManaRegen *= buffAmount;
            break;

        case EBuffType.ASpeed:
            cs.ASpeed *= buffAmount;
            break;

        case EBuffType.Cdr:
            cs.Cdr *= buffAmount;
            break;

        case EBuffType.Tenacity:
            cs.Tenacity *= buffAmount;
            break;

        case EBuffType.LifeSteal:
            cs.LifeSteal *= buffAmount;
            break;

        case EBuffType.SpellVamp:
            cs.SpellVamp *= buffAmount;
            break;
        }

        yield return(new WaitForSeconds(duration));

        switch (_buffType)
        {
        case EBuffType.CritRate:
            cs.CritRate /= buffAmount;
            break;

        case EBuffType.CritDamage:
            cs.CritDamage /= buffAmount;
            break;

        case EBuffType.HpRegen:
            cs.HpRegen /= buffAmount;
            break;

        case EBuffType.ManaRegen:
            cs.ManaRegen /= buffAmount;
            break;

        case EBuffType.ASpeed:
            cs.ASpeed /= buffAmount;
            break;

        case EBuffType.Cdr:
            cs.Cdr /= buffAmount;
            break;

        case EBuffType.Tenacity:
            cs.Tenacity /= buffAmount;
            break;

        case EBuffType.LifeSteal:
            cs.LifeSteal /= buffAmount;
            break;

        case EBuffType.SpellVamp:
            cs.SpellVamp /= buffAmount;
            break;
        }
    }
Example #6
0
    public IEnumerator ApplyBuff(EBuffType _buffType, int buffAmount, float duration)
    {
        Debug.Log("Applying int buff to " + gameObject.name + " of " + _buffType.ToString() + " for " + duration + " seconds with " + buffAmount + " buff amount");
        CharacterStats cs = GetComponent <Character>().Stats;

        switch (_buffType)
        {
        case EBuffType.Attack:
            cs.Attack *= buffAmount;
            break;

        case EBuffType.Magic:
            cs.Magic *= buffAmount;
            break;

        case EBuffType.Armor:
            cs.Armor *= buffAmount;
            break;

        case EBuffType.MResistance:
            cs.MResistance *= buffAmount;
            break;

        case EBuffType.MSpeed:
            cs.MSpeed *= buffAmount;
            break;

        case EBuffType.MaxHP:
            cs.MaxHp *= buffAmount;
            break;

        case EBuffType.MaxMP:
            cs.MaxMp *= buffAmount;
            break;

        case EBuffType.Barrier:
            cs.Barrier *= buffAmount;
            break;

        case EBuffType.Range:
            cs.Range *= buffAmount;
            break;

        case EBuffType.ArmorPen:
            cs.ArmorPen *= buffAmount;
            break;

        case EBuffType.MagicPen:
            cs.MagicPen *= buffAmount;
            break;
        }

        yield return(new WaitForSeconds(duration));

        switch (_buffType)
        {
        case EBuffType.Attack:
            cs.Attack /= buffAmount;
            break;

        case EBuffType.Magic:
            cs.Magic /= buffAmount;
            break;

        case EBuffType.Armor:
            cs.Armor /= buffAmount;
            break;

        case EBuffType.MResistance:
            cs.MResistance /= buffAmount;
            break;

        case EBuffType.MSpeed:
            cs.MSpeed /= buffAmount;
            break;

        case EBuffType.MaxHP:
            cs.MaxHp /= buffAmount;
            break;

        case EBuffType.MaxMP:
            cs.MaxMp /= buffAmount;
            break;

        case EBuffType.Barrier:
            cs.Barrier /= buffAmount;
            break;

        case EBuffType.Range:
            cs.Range /= buffAmount;
            break;

        case EBuffType.ArmorPen:
            cs.ArmorPen /= buffAmount;
            break;

        case EBuffType.MagicPen:
            cs.MagicPen /= buffAmount;
            break;
        }
    }