コード例 #1
0
        protected virtual void OnSetPrice(Mobile m, DynamicBuyInfo info)
        {
            new InputDialogGump(m)
            {
                InputText = info.Price.ToString(),
                Icon      = info.ItemID,
                IconHue   = info.Hue,
                IconItem  = true,
                Title     = "Set Price",
                Html      = "Enter a price for " + info.Name + "\n\nEnter -1 to mark not for sale.",
                Callback  = (b, t) =>
                {
                    int value;

                    if (Int32.TryParse(t, out value))
                    {
                        info.Price = Math.Max(-1, value);

                        if (info.Item != null)
                        {
                            info.Item.InvalidateProperties();
                        }
                    }
                }
            }.Send();
        }
コード例 #2
0
        public override void OnSubItemAdded(Item item)
        {
            base.OnSubItemAdded(item);

            if (!World.Loading && item.IsChildOf(Backpack))
            {
                var info = _DynamicStock.GetValue(item);

                if (info == null)
                {
                    _DynamicStock[item] = new DynamicBuyInfo(item);

                    item.Movable = false;
                }
            }
        }
コード例 #3
0
        public override void Deserialize(GenericReader reader)
        {
            base.Deserialize(reader);

            var version = reader.GetVersion();

            switch (version)
            {
            case 4:
            {
                reader.ReadDictionary(
                    r =>
                    {
                        var info = new DynamicBuyInfo(r);

                        return(new KeyValuePair <Item, DynamicBuyInfo>(info.Item, info));
                    },
                    _DynamicStock);
            }
                goto case 3;

            case 3:
            {
                _WasStocked = reader.ReadBool();
                CanRestock  = reader.ReadBool();
            }
                goto case 2;

            case 2:
                _CashAbbr = reader.ReadTextDef();
                goto case 1;

            case 1:
                CashProperty = new ObjectProperty(reader);
                goto case 0;

            case 0:
            {
                if (version < 1)
                {
                    var t = new ItemTypeSelectProperty(reader);
                    CashType = t.InternalType;
                }
                else
                {
                    CashType = new TypeSelectProperty <object>(reader);
                }

                _CashName     = reader.ReadTextDef();
                _ShowCashName = reader.ReadBool();

                _Trading = reader.ReadBool();

                Discount        = reader.ReadInt();
                DiscountEnabled = reader.ReadBool();
                DiscountYell    = reader.ReadBool();
            }
            break;
            }

            if (CashProperty == null)
            {
                CashProperty = new ObjectProperty();
            }

            if (version < 3)
            {
                CanRestock = true;
            }

            if (version < 2)
            {
                _CashAbbr = String.Join(String.Empty, _CashName.GetString().Select(Char.IsUpper));
            }

            _DynamicStock.RemoveRange(o => o.Key.Deleted || o.Value == null || o.Value.Item != o.Key);
        }