Exemple #1
0
        public void AddGood(Good good)
        {
            if (good == null)
            {
                return;
            }

            foreach (var goodItem in _goods)
            {
                if (goodItem.Value == null || goodItem.Value.TheGood == null)
                {
                    continue;
                }
                if (Utils.EqualNoCase(good.FileName, goodItem.Value.TheGood.FileName))
                {
                    //Already exist.
                    if (_numberValid)
                    {
                        goodItem.Value.Count++;
                        UpdateItems();
                    }
                    return;
                }
            }

            _goodTypeCount++;
            _goods[_goodTypeCount] = new GoodsListManager.GoodsItemInfo(good, 1);
            UpdateItems();
        }
Exemple #2
0
        public void BeginBuy(string listFileName, Character target, bool canSellSelfGoods)
        {
            _fileName        = listFileName;
            _target          = target;
            CanSellSelfGoods = canSellSelfGoods;
            BuyPercent       = 100;
            RecyclePercent   = 100;
            try
            {
                _goods.Clear();
                IniData data;
                if (_target != null && !string.IsNullOrEmpty(_target.BuyIniString))
                {
                    var str    = Utils.Base64Decode(_target.BuyIniString);
                    var parser = new IniDataParser();
                    data = parser.Parse(str);
                }
                else
                {
                    var path = @"save\game\" + listFileName;
                    if (!File.Exists(path))
                    {
                        path = @"ini\buy\" + listFileName;
                    }

                    var parser = new FileIniDataParser();
                    data = parser.ReadFile(path, Globals.LocalEncoding);
                }

                _goodTypeCountAtStart = _goodTypeCount = int.Parse(data["Header"]["Count"]);
                _numberValid          = (_target != null && !string.IsNullOrEmpty(_target.BuyIniString)) || (!string.IsNullOrEmpty(data["Header"]["NumberValid"]) && int.Parse(data["Header"]["NumberValid"]) != 0);
                if (!string.IsNullOrEmpty(data["Header"]["BuyPercent"]))
                {
                    BuyPercent = int.Parse(data["Header"]["BuyPercent"]);
                }
                if (!string.IsNullOrEmpty(data["Header"]["RecyclePercent"]))
                {
                    RecyclePercent = int.Parse(data["Header"]["RecyclePercent"]);
                }

                for (var i = 1; i <= _goodTypeCountAtStart; i++)
                {
                    var count = 0;
                    if (_numberValid)
                    {
                        var number = data[i.ToString()]["Number"];
                        count = string.IsNullOrEmpty(number) ? 0 : int.Parse(number);
                    }
                    _goods[i] = new GoodsListManager.GoodsItemInfo(data[i.ToString()]["IniFile"], count);
                }
                _listView.ScrollToRow(0);
                UpdateItems();
                IsShow = true;
            }
            catch (Exception exception)
            {
                Log.LogFileLoadError("BuySell", listFileName, exception);
            }
        }
Exemple #3
0
        public void BeginBuy(string listFileName, bool canSellSelfGoods)
        {
            _fileName = listFileName;
            var path = @"save\game\" + listFileName;

            if (!File.Exists(path))
            {
                path = @"ini\buy\" + listFileName;
            }
            CanSellSelfGoods = canSellSelfGoods;
            try
            {
                _goods.Clear();
                var parser = new FileIniDataParser();
                var data   = parser.ReadFile(path, Globals.LocalEncoding);
                _goodTypeCountAtStart = _goodTypeCount = int.Parse(data["Header"]["Count"]);
                _numberValid          = !string.IsNullOrEmpty(data["Header"]["NumberValid"]) && int.Parse(data["Header"]["NumberValid"]) != 0;
                for (var i = 1; i <= _goodTypeCountAtStart; i++)
                {
                    var count = 0;
                    if (_numberValid)
                    {
                        var number = data[i.ToString()]["Number"];
                        count = string.IsNullOrEmpty(number) ? 0 : int.Parse(number);
                    }
                    _goods[i] = new GoodsListManager.GoodsItemInfo(data[i.ToString()]["IniFile"], count);
                }
                _listView.ScrollToRow(0);
                UpdateItems();
                IsShow = true;
            }
            catch (Exception exception)
            {
                Log.LogFileLoadError("BuySell", path, exception);
            }
        }