Пример #1
0
        public static Chip Read(BinaryReader reader, int position)
        {
            var chip = (Chip)Empty.MemberwiseClone();

            chip.Position = position;
            chip.BaseCode = reader.ReadInt32();
            chip.BaseId   = reader.ReadInt32();
            chip.Type     = reader.ReadInt32();
            chip.Level    = reader.ReadInt32();
            chip.Weight   = reader.ReadInt32();
            chip.SlotA    = reader.ReadInt32();
            chip.SlotB    = reader.ReadInt32();
            chip.SlotC    = reader.ReadInt32();
            for (int i = 0; i < 0x10; i++)
            {
                reader.ReadByte();
            }

            if (Chips.TryGetValue(chip.Type, out var knownChip))
            {
                chip.Name     = knownChip.Name;
                chip.BaseCode = knownChip.BaseCode;
                chip.BaseId   = knownChip.BaseId;
            }
            else if (chip.Type != Empty.Type)
            {
                chip.Name      = "???";
                chip.BaseCode -= chip.Level;
                chip.BaseId   -= chip.Level;
            }

            return(chip);
        }
Пример #2
0
 public void ChangeType(int type)
 {
     if (Chips.TryGetValue(type, out var newChip))
     {
         Name      = newChip.Name;
         HasLevels = newChip.HasLevels;
         BaseCode  = newChip.BaseCode;
         BaseId    = newChip.BaseId;
         Type      = newChip.Type;
     }
 }