// ********************************************************************* //Constructor public Buff(float value, float valuePerSecond, float duration, EBuffType type) { Value = value; ValuePerSecond = valuePerSecond; Duration = duration; FullDuration = duration; Type = type; }
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; }
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; } } }
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]; }
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; } }
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; } }