public virtual void Read(BinaryReader reader, int buffVersion, Dictionary <ushort, StatModifier> idTable) { timer = BuffTimer.Read(reader); descriptor = BuffDescriptor.Read(reader); isOverriden = new Value <bool>(reader.ReadBoolean()); int statModifierListCount = reader.ReadByte(); statModifierList = new List <StatModifier>(); for (int i = 0; i < statModifierListCount; i++) { ushort key = reader.ReadUInt16(); StatModifier statModifier = idTable[key]; statModifierList.Add(statModifier); } int buffModiferListCount = reader.ReadByte(); buffModifierList = new List <BuffModifier>(); for (int j = 0; j < buffModiferListCount; j++) { BuffModifier buffModifier = BuffModifier.Read(reader); buffModifier.buff = this; buffModifierList.Add(buffModifier); } instigatorId = new Value <int>(reader.ReadInt32()); }
public virtual void Read(BinaryReader reader, int version) { UID = new Value <int>(reader.ReadInt32()); fileId = new Value <ushort>(reader.ReadUInt16()); buffCategoryFlags = (EnumBuffCategoryFlags)reader.ReadInt32(); stackCount = new Value <int>(reader.ReadInt32()); buffTimer = BuffTimer.Read(reader); }
public static BuffTimer Read(BinaryReader reader) { buffTimerVersion = new Value <int>(reader.ReadInt32()); buffTimerClassId = new Value <int>((int)reader.ReadByte()); Type type; dictionary.TryGetValue((EnumBuffTimerClassId)buffTimerClassId.Get(), out type); BuffTimer buffTimer = Activator.CreateInstance(type, null) as BuffTimer; buffTimer.classId = (EnumBuffTimerClassId)buffTimerClassId.Get(); buffTimer.Read(reader, buffTimerVersion.Get()); return(buffTimer); }
public static MultiBuffAction Read(BinaryReader reader) { multiBuffActionVersion = new Value <int>(reader.ReadInt32()); MultiBuffAction multiBuffAction = new MultiBuffAction { command = (EnumCommand)reader.ReadByte(), unknownC = new Value <float>(reader.ReadSingle()), categoryFlags = (EnumBuffCategoryFlags)reader.ReadInt32(), unknownV = new Value <int>(reader.ReadInt32()), unknownO = new Value <string>(reader.ReadString()), unknownW = new Value <string>(reader.ReadString()), context = new Value <string>(reader.ReadString()), unknownJ = BuffTimer.Read(reader), unknownS = BuffTimer.Read(reader), unknownF = new Value <bool>(reader.ReadBoolean()), unknownI = new Value <bool>(reader.ReadBoolean()) }; return(multiBuffAction); }