Пример #1
0
        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());
        }
Пример #2
0
 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);
 }
Пример #3
0
        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);
        }