コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public ExtraDropItem(ExtraDropItem item)
 {
     this.Id          = item.Id;
     this.Probability = item.Probability;
 }