public Buff(BinaryReader reader) { var type = (BuffType)reader.ReadByte(); Info = Envir.GetBuffInfo(type); Caster = null; if (Envir.LoadVersion < 88) { var visible = reader.ReadBoolean(); } ObjectID = reader.ReadUInt32(); ExpireTime = reader.ReadInt64(); if (Envir.LoadVersion <= 84) { Values = new int[reader.ReadInt32()]; for (int i = 0; i < Values.Length; i++) { Values[i] = reader.ReadInt32(); } if (Envir.LoadVersion < 88) { var infinite = reader.ReadBoolean(); } Stats = new Stats(); Data = new Dictionary <string, object>(); } else { if (Envir.LoadVersion < 88) { var stackable = reader.ReadBoolean(); } Values = new int[0]; Stats = new Stats(reader); Data = new Dictionary <string, object>(); int count = reader.ReadInt32(); for (int i = 0; i < count; i++) { var key = reader.ReadString(); var length = reader.ReadInt32(); var array = new byte[length]; for (int j = 0; j < array.Length; j++) { array[j] = reader.ReadByte(); } Data[key] = Functions.DeserializeFromBytes(array); } if (Envir.LoadVersion > 86) { count = reader.ReadInt32(); Values = new int[count]; for (int i = 0; i < count; i++) { Values[i] = reader.ReadInt32(); } } } }
public Buff(BuffType type) { Info = Envir.GetBuffInfo(type); Stats = new Stats(); Data = new Dictionary <string, object>(); }