public ExtraDropEntry(Stream input) { Name = new NameChar(128); Name.DefaultEncoding = Encoding.GetEncoding("GB18030"); BinaryReader binaryReader = new BinaryReader(input); int num1 = binaryReader.ReadInt32(); for (int index = 0; index < num1; ++index) { this.Monsters.Add(binaryReader.ReadInt32()); } for (int index = 0; index < 256; ++index) { ExtraDropItem extraDropItem = new ExtraDropItem(input); if (extraDropItem.Id > 0U) { this.DropItems.Add(extraDropItem); } } this.SetName(binaryReader.ReadBytes(128)); this.SetType(binaryReader.ReadInt32()); for (int index = 0; index < 8; ++index) { float num2 = binaryReader.ReadSingle(); this._dropNumProbabilities[index] = num2; } }
public int FindItem(uint itemId, int offset) { ExtraDropItem extraDropItem = new ExtraDropItem(itemId, 0.0f); int num = this.DropItems.Skip <ExtraDropItem>(offset).ToList <ExtraDropItem>().IndexOf(extraDropItem); if (num == -1) { return(-1); } return(num + offset); }
public ExtraDropItem AddItem(uint id, float probability) { if (this.DropItems.Count >= 256) { throw new OverflowException("Too many items in entry"); } ExtraDropItem extraDropItem = new ExtraDropItem(id, probability); this.DropItems.Add(extraDropItem); return(extraDropItem); }
public ExtraDropItem(ExtraDropItem item) { this.Id = item.Id; this.Probability = item.Probability; }