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