public void OnBuffAdded(object source, GameplayBuffEventArgs args) { if (Pjs.TryGetValue(args.PlayerId, out Pj pj)) { switch (args.BuffType) { case (int)BuffTypes.SprintBuff: pj.Buffs.Add(args.BuffId, new SprintBuff(pj)); break; case (int)BuffTypes.TraverseWallsBuff: pj.Buffs.Add(args.BuffId, new TraverseWallsBuff(pj)); break; case (int)BuffTypes.BananaStunBuff: pj.Buffs.Add(args.BuffId, new BananaStunBuff(pj)); break; case (int)BuffTypes.InvisibleBuff: pj.Buffs.Add(args.BuffId, new InvisibleBuff(pj)); break; case (int)BuffTypes.ImmuneBuff: pj.Buffs.Add(args.BuffId, new ImmuneBuff(pj)); break; case (int)BuffTypes.RelojBuff: pj.Buffs.Add(args.BuffId, new RelojBuff(pj)); break; default: throw new System.ComponentModel.InvalidEnumArgumentException(); } } }
public void OnBuffRemoved(object source, GameplayBuffEventArgs args) { if (Pjs.TryGetValue(args.PlayerId, out Pj pj)) { if (pj.Buffs.TryGetValue(args.BuffId, out Buff buff)) { buff.End(); pj.Buffs.Remove(args.BuffId); } else { throw new System.ComponentModel.InvalidEnumArgumentException(); } } else { throw new System.ComponentModel.InvalidEnumArgumentException(); } }