private bool TryFind(int Type, out BuffRegister b) { for (int i = 0; i < buffs.Count; i++) { if (buffs[i].Type == Type) { b = buffs[i]; return(true); } } b = null; return(false); }
public void RemoveRegister(IGiveBuff give) { for (int i = buffs.Count; i > -1; i--) { BuffRegister b = buffs[i]; b.Remove(give, out bool c); if (c) { b.OnValueChanged -= InvokeOnBuffRegisterValueChanged; buffs.RemoveAt(i); } } if (giveBuffs.Contains(give)) { giveBuffs.Remove(give); } OnValueChanged?.Invoke(AMOUNT_GIVEBUFF_REGISTED); }
public void Register(IGiveBuff give, int typeBuff, float a) { if (TryFind(typeBuff, out BuffRegister b)) { b.Register(give, a); } else { b = new BuffRegister(typeBuff); b.OnValueChanged += InvokeOnBuffRegisterValueChanged; buffs.Add(b); b.Register(give, a); } if (!giveBuffs.Contains(give)) { giveBuffs.Add(give); } OnValueChanged?.Invoke(AMOUNT_GIVEBUFF_REGISTED); }