public void MoveHalfSlotAndMergeThemWithOverflow() { var item = Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 999), 0)) .First(); Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 500), 0)); Inventory.TryMoveItem(item.Type, item.Slot, 600, 1, out var originItem, out var destinationItem); Assert.IsTrue((originItem?.ItemInstance.Amount == 500) && (originItem.Slot == 0)); Assert.IsTrue((destinationItem?.ItemInstance.Amount == 999) && (destinationItem.Slot == 1)); }
public void Test_BoundCharacter_Question() { var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (QnaPacket)_session.LastPackets.FirstOrDefault(s => s is QnaPacket); Assert.AreEqual(_session.GetMessageFromKey(LanguageKey.ASK_BIND), lastpacket.Question); }
public void DeleteFromTypeAndSlot() { Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0)); Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0)); Assert.IsTrue(Inventory.Count == 2); var item = Inventory.DeleteFromTypeAndSlot(NoscorePocketType.Main, 0); Assert.IsNull(item); Assert.IsTrue(Inventory.Count == 1); }
public void Test_Vehicle_GetDelayed() { _useItem.Mode = 1; var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (DelayPacket)_session.LastPackets.FirstOrDefault(s => s is DelayPacket); Assert.IsNotNull(lastpacket); }
public void Test_Miniland() { _useItem.Mode = 2; var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); Assert.AreEqual(MapInstanceType.NormalInstance, _session.Character.MapInstance.MapInstanceType); Assert.AreEqual(0, _session.Character.InventoryService.Count); }
private void SelectGift() { if (_miniland.MinilandPoint < 100) { return; } var obj = MinilandHelper.Instance.GetMinilandGift(_minigamePacket.MinigameVNum, _minigamePacket.Point ?? 0); if (obj == null) { return; } _clientSession.SendPacket(new MloRwPacket { Amount = obj.Amount, VNum = obj.VNum }); // _clientSession.SendPacket(new MlptPacket {_miniland.MinilandPoint, 100}); var inv = _clientSession.Character.InventoryService.AddItemToPocket(InventoryItemInstance.Create( _itemProvider.Create(obj.VNum, obj.Amount), _clientSession.Character.CharacterId)); _miniland.MinilandPoint -= 100; if (inv.Count == 0) { //todo add gifts //_clientSession.Character.SendGift(_clientSession.Character.CharacterId, obj.VNum, obj.Amount, 0, 0, false); } if (_miniland.MapInstanceId != _clientSession.Character.MapInstanceId) { switch (_minigamePacket.Point) { case 0: _minilandObject.Level1BoxAmount++; break; case 1: _minilandObject.Level2BoxAmount++; break; case 2: _minilandObject.Level3BoxAmount++; break; case 3: _minilandObject.Level4BoxAmount++; break; case 4: _minilandObject.Level5BoxAmount++; break; } } }
public void Test_BadEquipment() { _useItem.Mode = 1; var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(5), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (SayPacket)_session.LastPackets.FirstOrDefault(s => s is SayPacket); Assert.AreEqual(_session.GetMessageFromKey(LanguageKey.BAD_EQUIPMENT), lastpacket.Message); }
public void Delete() { Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0)); var items = Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0)); Assert.IsTrue(Inventory.Count == 2); var item = Inventory.DeleteById(items[0].ItemInstanceId); Assert.IsNull(item); Assert.IsTrue(Inventory.Count == 1); }
public void Test_Delete_FromSlot() { _session.Character.InventoryService.AddItemToPocket(InventoryItemInstance.Create(_item.Create(1012, 999), 0)); _biPacketHandler.Execute(new BiPacket { Option = RequestDeletionType.Confirmed, Slot = 0, PocketType = PocketType.Main }, _session); var packet = (IvnPacket)_session.LastPackets.FirstOrDefault(s => s is IvnPacket); Assert.IsTrue(packet.IvnSubPackets.All(iv => (iv.Slot == 0) && (iv.VNum == -1))); }
///<summary> /// Returns the quantity in the curent order cart for the given <paramref name="instanceToAdd"/>. ///</summary> private int CartQuantity(InventoryItemInstance instanceToAdd) { int cartAmmount = 0; if (itemsInCurentOrder.Exists(a => a.Item.ID == changeAmmountTargetItem.Item.ID)) { cartAmmount = itemsInCurentOrder.Find(i => i.Item.ID == instanceToAdd.Item.ID).Quantity; } return(cartAmmount); }
public void Test_TitleItemHandler() { var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (QnaPacket)_session.LastPackets.FirstOrDefault(s => s is QnaPacket); Assert.IsNotNull(lastpacket); Assert.IsTrue(lastpacket.YesPacket.GetType() == typeof(GuriPacket)); }
public void Test_Put() { _session.Character.InventoryService.AddItemToPocket(InventoryItemInstance.Create(_item.Create(1012, 1), 0)); _putPacketHandler.Execute(new PutPacket { PocketType = PocketType.Main, Slot = 0, Amount = 1 }, _session); Assert.IsTrue(_session.Character.InventoryService.Count == 0); }
public void Test_Miniland_Delay() { var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (DelayPacket)_session.LastPackets.FirstOrDefault(s => s is DelayPacket); Assert.IsNotNull(lastpacket); Assert.AreEqual(1, _session.Character.InventoryService.Count); }
public void Test_Use_Fairy() { _useItem.Mode = 1; SystemTime.Freeze(); var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(2), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (PairyPacket)_session.Character.MapInstance.LastPackets.FirstOrDefault(s => s is PairyPacket); Assert.IsNotNull(lastpacket); }
public void CreateItemAndFillMultiSlot() { Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0), NoscorePocketType.Main, 0); Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0), NoscorePocketType.Main, 1); Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0), NoscorePocketType.Main, 2); var items = Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 27), 0)); Assert.IsTrue(items.All(item => item.ItemInstance.Amount == 999) && (items.Count == 3)); }
public void Test_PutPartialSlot() { _session.Character.InventoryService.AddItemToPocket(InventoryItemInstance.Create(_item.Create(1012, 999), 0)); _putPacketHandler.Execute(new PutPacket { PocketType = PocketType.Main, Slot = 0, Amount = 500 }, _session); Assert.IsTrue((_session.Character.InventoryService.Count == 1) && (_session.Character.InventoryService.FirstOrDefault().Value.ItemInstance.Amount == 499)); }
public void Test_Binding() { _session.Character.InventoryService.AddItemToPocket(InventoryItemInstance.Create(_item.Create(1, 1), 0)); _useItemPacketHandler.Execute(new UseItemPacket { Slot = 0, Type = PocketType.Equipment, Mode = 1 }, _session); Assert.IsTrue(_session.Character.InventoryService.Any(s => (s.Value.ItemInstance.ItemVNum == 1) && (s.Value.Type == NoscorePocketType.Wear) && (s.Value.ItemInstance.BoundCharacterId == _session.Character.VisualId))); }
public void CreateMoreItemThanInventoryPlace() { Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0), NoscorePocketType.Main, 0); Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0), NoscorePocketType.Main, 1); Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 990), 0), NoscorePocketType.Main, 2); var items = Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1012, 99), 0)); Assert.IsTrue(Inventory.Values.All(item => item.ItemInstance.Amount == 990) && (items.Count == 0)); }
public void Test_SpRecharger() { _session.Character.SpAdditionPoint = 0; var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (MsgPacket)_session.LastPackets.FirstOrDefault(s => s is MsgPacket); Assert.AreEqual(1, _session.Character.SpAdditionPoint); Assert.AreEqual(0, _session.Character.InventoryService.Count); }
public void Test_Miniland_On_Vehicle() { _session.Character.IsVehicled = true; var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (SayPacket)_session.LastPackets.FirstOrDefault(s => s is SayPacket); Assert.AreEqual(Language.Instance.GetMessageFromKey(LanguageKey.CANT_USE_IN_VEHICLE, _session.Character.Account.Language), lastpacket.Message); Assert.AreEqual(1, _session.Character.InventoryService.Count); }
public override void Execute(PclPacket getGiftPacket, ClientSession clientSession) { var isCopy = getGiftPacket.Type == 2; var mail = _mailHttpClient.GetGift(getGiftPacket.GiftId, clientSession.Character.VisualId, isCopy); if (mail == null) { return; } if ((getGiftPacket.Type == 4) && (mail.ItemInstance != null)) { var itemInstance = _itemInstanceDao.FirstOrDefault(s => s.Id == mail.ItemInstance.Id); var item = _itemProvider.Convert(itemInstance); item.Id = Guid.NewGuid(); var newInv = clientSession.Character.InventoryService .AddItemToPocket(InventoryItemInstance.Create(item, clientSession.Character.CharacterId)) .FirstOrDefault(); if (newInv != null) { clientSession.SendPacket(clientSession.Character.GenerateSay( string.Format( Language.Instance.GetMessageFromKey(LanguageKey.ITEM_RECEIVED, clientSession.Account.Language), newInv.ItemInstance.Item.Name, newInv.ItemInstance.Amount), SayColorType.Green)); clientSession.SendPacket( new ParcelPacket { Type = 2, Unknown = 1, Id = (short)getGiftPacket.GiftId }); _mailHttpClient.DeleteGift(getGiftPacket.GiftId, clientSession.Character.VisualId, isCopy); } else { clientSession.SendPacket(new ParcelPacket { Type = 5, Unknown = 1, Id = 0 }); clientSession.SendPacket(new MsgPacket { Message = Language.Instance.GetMessageFromKey(LanguageKey.NOT_ENOUGH_PLACE, clientSession.Account.Language), Type = 0 }); } } else if (getGiftPacket.Type == 5) { clientSession.SendPacket(new ParcelPacket { Type = 7, Unknown = 1, Id = (short)getGiftPacket.GiftId }); _mailHttpClient.DeleteGift(getGiftPacket.GiftId, clientSession.Character.VisualId, isCopy); } }
///<summary> ///Updates the item object's interface and assigns its button and double click actions. ///</summary> public void UpdateItemObject(Constants.ItemInteraction interactionType, InventoryItemInstance instance, UnityAction clickAction, UnityAction doubleAction) { switch (interactionType) { case Constants.ItemInteraction.NoInteraction: { isDoubleClickEditable = false; stockLabelText.text = Constants.AMMOUNT_LABEL; editButton.gameObject.SetActive(false); break; } case Constants.ItemInteraction.AddToCart: { isDoubleClickEditable = true; stockLabelText.text = Constants.STOCK_LABEL; editButton.gameObject.SetActive(true); addToCartImage.SetActive(true); removeCartImage.SetActive(false); break; } case Constants.ItemInteraction.RemoveFromCart: { isDoubleClickEditable = false; stockLabelText.text = Constants.AMMOUNT_LABEL; editButton.gameObject.SetActive(true); addToCartImage.SetActive(false); removeCartImage.SetActive(true); break; } default: { break; } } ID = instance.Item.Name.ToLower(); itemNameText.text = instance.Item.Name; stockText.text = instance.Quantity.ToString(); priceText.text = (instance.discount > 0) ? Constants.DIDSCOUNT_OLD_BEGIN + Constants.CURENCY_SYMBOL + instance.Item.BasePrice + " -" + instance.discount + Constants.PERCENT + Constants.DIDSCOUNT_OLD_END + Constants.NEWLINE + Constants.DIDSCOUNT_NEW_BEGIN + Constants.CURENCY_SYMBOL + instance.DiscountedPrice.ToString(Constants.CURENCY_FORMAT) + Constants.DIDSCOUNT_NEW_END : Constants.CURENCY_SYMBOL + instance.DiscountedPrice.ToString(Constants.CURENCY_FORMAT); editButton.onClick.AddListener(clickAction); doubleClickAction = doubleAction; gameObject.SetActive(true); }
public void Test_Use_Amulet() { _useItem.Mode = 1; SystemTime.Freeze(); var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(7), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (EffectPacket)_session.LastPackets.FirstOrDefault(s => s is EffectPacket); Assert.IsNotNull(lastpacket); Assert.AreEqual(SystemTime.Now().AddSeconds(itemInstance.ItemInstance.Item.ItemValidTime), itemInstance.ItemInstance.ItemDeleteTime); }
public void SwapWithNotEmpty() { var weapon = Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(2), 0)).First(); var weapon2 = Inventory.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1), 0)).First(); var item = Inventory.MoveInPocket(weapon.Slot, weapon.Type, NoscorePocketType.Wear, (short)EquipmentType.MainWeapon, true); var item2 = Inventory.MoveInPocket(weapon2.Slot, weapon2.Type, NoscorePocketType.Wear, (short)EquipmentType.MainWeapon, true); Assert.IsTrue((item.Type == NoscorePocketType.Equipment) && (item.Slot == 1) && (item2.Type == NoscorePocketType.Wear) && (item2.Slot == (short)EquipmentType.MainWeapon)); }
public void Test_Use_BadJobLevel() { _useItem.Mode = 1; SystemTime.Freeze(); var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(6), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (SayPacket)_session.LastPackets.FirstOrDefault(s => s is SayPacket); Assert.AreEqual(Language.Instance.GetMessageFromKey(LanguageKey.LOW_JOB_LVL, _session.Account.Language), lastpacket.Message); }
public void Test_SpRecharger_When_Max() { _session.Character.SpAdditionPoint = 1; var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); var lastpacket = (MsgPacket)_session.LastPackets.FirstOrDefault(s => s is MsgPacket); Assert.AreEqual(Language.Instance.GetMessageFromKey(LanguageKey.SP_ADDPOINTS_FULL, _session.Character.Account.Language), lastpacket.Message); Assert.AreEqual(1, _session.Character.SpAdditionPoint); Assert.AreEqual(1, _session.Character.InventoryService.Count); }
public override async Task ExecuteAsync(PclPacket getGiftPacket, ClientSession clientSession) { var isCopy = getGiftPacket.Type == 2; var mail = await _mailHttpClient.GetGiftAsync(getGiftPacket.GiftId, clientSession.Character.VisualId, isCopy).ConfigureAwait(false); if (mail == null) { return; } if ((getGiftPacket.Type == 4) && (mail.ItemInstance != null)) { var itemInstance = await _itemInstanceDao.FirstOrDefaultAsync(s => s !.Id == mail.ItemInstance.Id).ConfigureAwait(false); var item = _itemProvider.Convert(itemInstance !); item.Id = Guid.NewGuid(); var newInv = clientSession.Character.InventoryService .AddItemToPocket(InventoryItemInstance.Create(item, clientSession.Character.CharacterId))? .FirstOrDefault(); if (newInv != null) { await clientSession.SendPacketAsync(clientSession.Character.GenerateSay( string.Format( GameLanguage.Instance.GetMessageFromKey(LanguageKey.ITEM_RECEIVED, clientSession.Account.Language), newInv.ItemInstance !.Item !.Name, newInv.ItemInstance.Amount), SayColorType.Green)).ConfigureAwait(false); await clientSession.SendPacketAsync( new ParcelPacket { Type = 2, Unknown = 1, Id = (short)getGiftPacket.GiftId }).ConfigureAwait(false); await _mailHttpClient.DeleteGiftAsync(getGiftPacket.GiftId, clientSession.Character.VisualId, isCopy).ConfigureAwait(false); } else { await clientSession.SendPacketAsync(new ParcelPacket { Type = 5, Unknown = 1, Id = 0 }).ConfigureAwait(false); await clientSession.SendPacketAsync(new MsgiPacket { Message = Game18NConstString.NotEnoughSpace, Type = 0 }).ConfigureAwait(false); } } else if (getGiftPacket.Type == 5) { await clientSession.SendPacketAsync(new ParcelPacket { Type = 7, Unknown = 1, Id = (short)getGiftPacket.GiftId }).ConfigureAwait(false); await _mailHttpClient.DeleteGiftAsync(getGiftPacket.GiftId, clientSession.Character.VisualId, isCopy).ConfigureAwait(false); } }
public void Test_AddMedal_AlreadyOne() { var itemInstance = InventoryItemInstance.Create(_itemProvider.Create(1), _session.Character.CharacterId); _session.Character.StaticBonusList.Add(new StaticBonusDto { CharacterId = _session.Character.CharacterId, DateEnd = SystemTime.Now().AddDays(1), StaticBonusType = StaticBonusType.BazaarMedalGold }); _session.Character.InventoryService.AddItemToPocket(itemInstance); ExecuteInventoryItemInstanceEventHandler(itemInstance); Assert.AreEqual(1, _session.Character.InventoryService.Count); }
public void Test_RemoveSp() { _session.Character.InventoryService.AddItemToPocket(InventoryItemInstance.Create(_item.Create(912, 1), _session.Character.CharacterId)); var item = _session.Character.InventoryService.First(); _session.Character.UseSp = true; item.Value.Type = NoscorePocketType.Wear; item.Value.Slot = (byte)EquipmentType.Sp; _spTransformPacketHandler.Execute(new SpTransformPacket { Type = SlPacketType.WearSpAndTransform }, _session); Assert.IsFalse(_session.Character.UseSp); }
public void Test_TitleGuriHandler() { _session.Character.InventoryService.AddItemToPocket(InventoryItemInstance.Create(_itemProvider.Create(1, 1), 0)); ExecuteGuriEventHandler(new GuriPacket { Type = GuriPacketType.Title, VisualId = 0 }); var lastpacket = (InfoPacket)_session.LastPackets.FirstOrDefault(s => s is InfoPacket); Assert.AreEqual(Language.Instance.GetMessageFromKey(LanguageKey.WEAR_NEW_TITLE, _session.Account.Language), lastpacket.Message); Assert.AreEqual(1, _session.Character.Titles.Count); }