private void EquipBoots(InventoryItem item, PlayerInventorySlot slot) { if (PlayerEquipment.instance.Boots != null) { if (PlayerEquipment.instance.Boots.Occupied) //IF WE ALREADY HAVE A WEAPON EQUIPPED! { //Temporarily hold the item that is equipped. InventoryItem tempItem = PlayerEquipment.instance.Boots.Item; //Reset the slot that held equipped item. PlayerEquipment.instance.Boots.Reset(); //Equip the new item. PlayerEquipment.instance.EquipArmor(item); //Remove the newly equipped item from the inventory itemlist. itemList.Remove(item); //Place the former equipped item in the slot that was freed up. slot.Item = tempItem; //Add that item to the inventory itemlist. itemList.Add(tempItem); return; //All is done. No need to RemoveItem() since we just switched places with it. } } else { Debug.Log("Boots Slot Could Not Be Found"); } }
public void RemoveTrashItem(ItemTrash trash) { PlayerInventorySlot fullSlot = inventorySlots.Find(p => p.item == trash); Destroy(fullSlot.item.item); fullSlot.item = null; }
private bool AddWeapon(InventoryItem item, string slotName) { PlayerInventorySlot theSlot = null; foreach (PlayerInventorySlot slot in inventoryWeaponSlots) { if (slot.name == slotName) { theSlot = slot; break; } } Debug.Log("The Slot: " + theSlot); if (theSlot == null) { return(false); } Debug.Log("The slot: " + theSlot.name + ", Item SlotName: " + item.slotname); theSlot.Item = item; theSlot.Occupied = true; itemList.Add(item); Debug.Log("Item Added: " + item.itemName); return(true); }
public void AddTrashItem(ItemTrash trash) { PlayerInventorySlot openSlot = inventorySlots.FirstOrDefault <PlayerInventorySlot>(p => p.isFull == false); GameObject newItem = Instantiate <GameObject>(trash.item, openSlot.slot.transform, false); openSlot.item = newItem.GetComponent <ItemTrash>(); }
/// <summary> /// TESTING /// </summary> /// <param name="inventory"></param> private static void InventoryPos(PlayerInventorySlot inventory) { Vector3 vector = Camera.main.ScreenToViewportPoint(ReticuleBehaviour.instance.Reticle.position); //Vector3 inventoryVector = Camera.main.ScreenToViewportPoint(inventory.transform.position); //itemInfo.transform.position = Camera.main.ViewportToScreenPoint(inventoryVector); if (vector.x < 0.5F) { //Debug.Log(vector + " Left Side"); Vector3 addedPos = Camera.main.ScreenToViewportPoint(new Vector3( inventory.transform.position.x + (itemInfo.GetComponent <RectTransform>().rect.width / divideBy), inventory.transform.position.y + (itemInfo.GetComponent <RectTransform>().rect.height / divideBy), 0)); itemInfo.transform.position = Camera.main.ViewportToScreenPoint(addedPos) + (vector * distanceMultiplier); } else { //Debug.Log(vector + " Right Side"); Vector3 addedPos = Camera.main.ScreenToViewportPoint(new Vector3( inventory.transform.position.x - (itemInfo.GetComponent <RectTransform>().rect.width / divideBy), inventory.transform.position.y + (itemInfo.GetComponent <RectTransform>().rect.height / divideBy), 0)); itemInfo.transform.position = Camera.main.ViewportToScreenPoint(addedPos) + (vector * distanceMultiplier); } }
public void SetSelectedSlot(PlayerInventorySlot slot) { if (selectedSlot != null) { selectedSlot.Unselect(); } selectedSlot = slot; selectedSlot.SetSelected(); GetInfos(selectedSlot.InInventoryIndex); playerInventory.SetIndex(selectedSlot.InInventoryIndex); }
void InitializePlayerInventorySlots() { // Set first three slots as ability and fourth one as weapon for (int i = 0; i < 4; ++i) { PlayerInventorySlot playerInventorySlot = PlayerInventorySlots[i].GetComponent <PlayerInventorySlot>(); if (i < 3) { playerInventorySlot.Type = ItemType.ability; } else { playerInventorySlot.Type = ItemType.weapon; } playerInventorySlot.Inventory = this; playerInventorySlot.SlotNumber = i; } }
public static void OpenInfo(InventoryItem item, PlayerInventorySlot inventory) { if (item == null) { return; } itemInfo.SetActive(true); itemIcon.sprite = item.itemIcon; itemName.text = item.itemName; itemDesc.text = item.itemDescription; itemType.text = item.itemType.ToString(); //Activate Buttons - Can dismantle and equip these items. aBtn.gameObject.SetActive(true); xBtn.gameObject.SetActive(true); //USE A STATIC POSITION INSTEAD IF INVENTORY OR EQUIPMENT IS OPEN InventoryPos(inventory); }
public static void UpdateInfo(InventoryItem item, PlayerInventorySlot inventory, PlayerEquipmentSlot equipment) { if (item == null) { return; } itemIcon.sprite = item.itemIcon; itemName.text = item.itemName; itemDesc.text = item.itemDescription; itemType.text = item.itemType.ToString(); if (inventory != null) { InventoryPos(inventory); } if (equipment != null) { EquipmentPos(equipment); } }
public void OpenInventory() { if (!ready) { return; } inventoryParent.alpha = 1f; inventoryParent.interactable = true; inventoryParent.blocksRaycasts = true; opened = true; //Debug.Log (playerInventory.SelectedIndexInInventory); UpdateCrossingPodsIcons(); for (int i = 0; i < playerInventory.inventory.Count; i++) { PlayerInventorySlot p = (PlayerInventorySlot)Instantiate(playerInventorySlotPrefab, inventoryContent.transform); int index = playerInventory.inventory [i].plantSeedIndexInPlantManager; int number = playerInventory.inventory [i].number; p.SetInventoryGrid(this); p.SetPlant(index, number, i); if (i == playerInventory.SelectedIndexInInventory) { selectedSlot = p; p.SetSelected(); GetInfos(selectedSlot.PlantIndex); } } Cursor.lockState = CursorLockMode.None; Cursor.visible = true; }
public void UseItem(PlayerInventorySlot slot, InventoryItem item) { switch (item.itemType) { case InventoryItem.ItemType.Weapon: //EQUIP WEAPON EquipWeapon(item, slot); break; case InventoryItem.ItemType.Armor: //EQUIP ARMOR switch (item.armorType) { case InventoryItem.ArmorType.Head: Debug.Log("Head Equipped"); EquipHead(item, slot); break; case InventoryItem.ArmorType.Torso: Debug.Log("Torso Equipped"); EquipTorso(item, slot); break; case InventoryItem.ArmorType.Boots: Debug.Log("Boots Equipped"); EquipBoots(item, slot); break; default: break; } //RemoveItem(slot, item); break; default: break; } }
/// <summary> /// Check Input if we should use the item. /// </summary> /// <param name="slot"></param> /// <param name="item"></param> public void CheckInput(PlayerInventorySlot slot, InventoryItem item) { if (item != null) { if (Input.GetButtonDown("XboxA")) { //USE ITEM / EQUIP ITEM if (ItemInfo.GetItemInfoActive()) { ItemInfo.CloseInfo(); } UseItem(slot, item); } if (Input.GetButtonDown("XboxX")) { //USE ITEM / EQUIP ITEM if (ItemInfo.GetItemInfoActive()) { ItemInfo.CloseInfo(); } RemoveItem(slot, item); //SHOULD BE CHANGED TO DISMANTLE METHOD AND GET SOMETHING FOR DISMANTLING ITEM. } } }
private void SendData(int packetType, int remoteClient = -1, int ignoreClient = -1, string networkText = null, int number = 0, float number2 = 0.0f, float number3 = 0.0f, float number4 = 0.0f, int number5 = 0, int number6 = 0, int number7 = 0) { if (!_tcpClient.Connected) { return; } lock (SyncLock) { //Debug.WriteLine($"TX: {packetType}"); var buffer = new byte[131070]; using (var memoryStream = new MemoryStream(buffer) { Position = 0 }) using (var writer = new BinaryWriter(memoryStream)) { var oldSteamPosition = writer.BaseStream.Position; writer.BaseStream.Position += 2L; writer.Write((byte)packetType); IPacket packet = null; switch ((PacketType)packetType) { case PacketType.ConnectRequest: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new ConnectRequest())); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.PlayerInfo: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new PlayerInfo())); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.PlayerInventorySlot: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new PlayerInventorySlot())); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.RequestSpawn: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new RequestSpawn())); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.SpawnPlayer: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SpawnPlayer { PlayerIndex = (byte)number })); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.UpdatePlayer: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new UpdatePlayer { PlayerIndex = (byte)number })); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.SendPlayerHealth: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SendPlayerHealth { PlayerIndex = (byte)number, CurrentHealth = 100, HealthMax = 100 })); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.SendPlayerMana: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SendPlayerMana { PlayerIndex = (byte)number, CurrentMana = 100, ManaMax = 100 })); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.SendPlayerBuffs: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SendPlayerBuffs { PlayerIndex = (byte)number })); PacketHelper.WriteToWriter(writer, packet); break; case PacketType.SendClientUUID: PacketEvents.InvokePacketPreSend(new PacketEventArgs(packet = new SendClientUUID())); PacketHelper.WriteToWriter(writer, packet); break; } var newStreamPosition = writer.BaseStream.Position; writer.BaseStream.Position = oldSteamPosition; writer.Write((short)newStreamPosition); writer.BaseStream.Position = newStreamPosition; try { _networkStream.BeginWrite(buffer, 0, (int)memoryStream.Position, ar => _networkStream.EndWrite(ar), null); } catch // The connection was most likely closed by the host (Disconnect packets) { } } } }
public void RemoveItem(PlayerInventorySlot slot, InventoryItem item) { itemList.Remove(item); slot.Reset(); }