Exemple #1
0
        public void MoveItem(Characters.Character character, Characters.Items.CharacterItem item, int quantity, bool add)
        {
            if (memberOne.Character == character)
            {
                if (add)
                {
                    Reset();

                    lock (memberOne.Items)
                    {
                        if (memberOne.Items.Any(x => x.Item == item))
                        {
                            var item2 = memberOne.Items.First(x => x.Item == item);
                            item2.Quantity += quantity;

                            if (item2.Quantity > item.Quantity)
                                item2.Quantity = item.Quantity;

                            memberOne.Send(string.Format("EMKO+{0}|{1}", item.ID, item2.Quantity));
                            memberTwo.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", item.ID, item2.Quantity, item.Model.ID, item.EffectsInfos()));
                        }
                        else
                        {
                            var newItem = new ExchangeItem(item);
                            newItem.Quantity = quantity;

                            memberOne.Items.Add(newItem);

                            memberOne.Send(string.Format("EMKO+{0}|{1}", item.ID, newItem.Quantity));
                            memberTwo.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", item.ID, newItem.Quantity, item.Model.ID, item.EffectsInfos()));
                        }
                    }
                }
                else
                {
                    Reset();

                    lock (memberOne.Items)
                    {
                        var Item = memberOne.Items.First(x => x.Item == item);
                        if (Item.Quantity <= quantity)
                        {
                            memberOne.Items.Remove(Item);

                            memberOne.Send(string.Concat("EMKO-", Item.Item.ID));
                            memberTwo.Send(string.Concat("EmKO-", Item.Item.ID));
                        }
                        else
                        {
                            Item.Quantity -= quantity;

                            memberOne.Send(string.Format("EMKO+{0}|{1}", Item.Item.ID, Item.Quantity));
                            memberTwo.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", Item.Item.ID, Item.Quantity, Item.Item.Model.ID, Item.Item.EffectsInfos()));
                        }
                    }
                }
            }
            else if (memberTwo.Character == character)
            {
                if (add)
                {
                    Reset();

                    lock (memberTwo.Items)
                    {
                        if (memberTwo.Items.Any(x => x.Item == item))
                        {
                            var item2 = memberTwo.Items.First(x => x.Item == item);
                            item2.Quantity += quantity;

                            if (item2.Quantity > item.Quantity)
                                item2.Quantity = item.Quantity;

                            memberTwo.Send(string.Format("EMKO+{0}|{1}", item.ID, item2.Quantity));
                            memberOne.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", item.ID, item2.Quantity, item.Model.ID, item.EffectsInfos()));
                        }
                        else
                        {
                            var newItem = new ExchangeItem(item);
                            newItem.Quantity = quantity;

                            memberTwo.Items.Add(newItem);

                            memberTwo.Send(string.Format("EMKO+{0}|{1}", item.ID, newItem.Quantity));
                            memberOne.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", item.ID, newItem.Quantity, item.Model.ID, item.EffectsInfos()));
                        }
                    }
                }
                else
                {
                    Reset();

                    lock (memberTwo.Items)
                    {
                        var Item = memberTwo.Items.First(x => x.Item == item);
                        if (Item.Quantity <= quantity)
                        {
                            memberTwo.Items.Remove(Item);

                            memberTwo.Send(string.Concat("EMKO-", Item.Item.ID));
                            memberOne.Send(string.Concat("EmKO-", Item.Item.ID));
                        }
                        else
                        {
                            Item.Quantity -= quantity;

                            memberTwo.Send(string.Format("EMKO+{0}|{1}", Item.Item.ID, Item.Quantity));
                            memberOne.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", Item.Item.ID, Item.Quantity, Item.Item.Model.ID, Item.Item.EffectsInfos()));
                        }
                    }
                }
            }
        }
Exemple #2
0
        public void MoveItem(Characters.Character character, Characters.Items.CharacterItem item, int quantity, bool add)
        {
            if (player1 == character)
            {
                if (add)
                {
                    Reset();

                    lock (_player1Items)
                    {
                        if (_player1Items.Any(x => x.Item == item))
                        {
                            var item2 = _player1Items.First(x => x.Item == item);
                            item2.Quantity += quantity;

                            if (item2.Quantity > item.Quantity)
                                item2.Quantity = item.Quantity;

                            player1.NetworkClient.Send(string.Format("EMKO+{0}|{1}", item.ID, item2.Quantity));
                            player2.NetworkClient.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", item.ID, item2.Quantity, item.Model.ID, item.EffectsInfos()));
                        }
                        else
                        {
                            var newItem = new ExchangeItem(item);
                            newItem.Quantity = quantity;

                            _player1Items.Add(newItem);

                            player1.NetworkClient.Send(string.Format("EMKO+{0}|{1}", item.ID, newItem.Quantity));
                            player2.NetworkClient.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", item.ID, newItem.Quantity, item.Model.ID, item.EffectsInfos()));
                        }
                    }
                }
                else
                {
                    Reset();

                    lock (_player1Items)
                    {
                        var Item = _player1Items.First(x => x.Item == item);
                        if (Item.Quantity <= quantity)
                        {
                            player1.NetworkClient.Send(string.Format("EMKO-{0}", Item.Item.ID));
                            player2.NetworkClient.Send(string.Format("EmKO-{0}", Item.Item.ID));
                            _player1Items.Remove(Item);
                        }
                        else
                        {
                            Item.Quantity -= quantity;
                            player1.NetworkClient.Send(string.Format("EMKO+{0}|{1}", Item.Item.ID, Item.Quantity));
                            player2.NetworkClient.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", Item.Item.ID, Item.Quantity, Item.Item.Model.ID, Item.Item.EffectsInfos()));
                        }
                    }
                }
            }
            else if (player2 == character)
            {
                if (add)
                {
                    Reset();

                    lock (_player2Items)
                    {
                        if (_player2Items.Any(x => x.Item == item))
                        {
                            var item2 = _player2Items.First(x => x.Item == item);
                            item2.Quantity += quantity;

                            if (item2.Quantity > item.Quantity)
                                item2.Quantity = item.Quantity;

                            player2.NetworkClient.Send(string.Format("EMKO+{0}|{1}", item.ID, item2.Quantity));
                            player1.NetworkClient.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", item.ID, item2.Quantity, item.Model.ID, item.EffectsInfos()));
                        }
                        else
                        {
                            var newItem = new ExchangeItem(item);
                            newItem.Quantity = quantity;

                            _player2Items.Add(newItem);

                            player2.NetworkClient.Send(string.Format("EMKO+{0}|{1}", item.ID, newItem.Quantity));
                            player1.NetworkClient.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", item.ID, newItem.Quantity, item.Model.ID, item.EffectsInfos()));
                        }
                    }
                }
                else
                {
                    Reset();

                    lock (_player2Items)
                    {
                        var Item = _player2Items.First(x => x.Item == item);
                        if (Item.Quantity <= quantity)
                        {
                            player2.NetworkClient.Send(string.Format("EMKO-{0}", Item.Item.ID));
                            player1.NetworkClient.Send(string.Format("EmKO-{0}", Item.Item.ID));
                            _player2Items.Remove(Item);
                        }
                        else
                        {
                            Item.Quantity -= quantity;
                            player2.NetworkClient.Send(string.Format("EMKO+{0}|{1}", Item.Item.ID, Item.Quantity));
                            player1.NetworkClient.Send(string.Format("EmKO+{0}|{1}|{2}|{3}", Item.Item.ID, Item.Quantity, Item.Item.Model.ID, Item.Item.EffectsInfos()));
                        }
                    }
                }
            }
        }