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(); }
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; } } }
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); }