public override void Show() { NGUITools.SetActive(this.gameObject, true); this.IsActive = true; QuantitySlider.numberOfSteps = Target.GetQuantity(); _quanity = Target.GetQuantity(); QuantitySlider.value = 0; QuantityLabel.text = "1"; //_quanity.ToString(); if (Target.Item.IsUsable && Target.IsPlayerOwned) { Use.isEnabled = true; } else { Use.isEnabled = false; } InputEventHandler.Instance.State = UserInputState.PopupOpen; InputEventHandler.OnPopupMouseWheel -= OnMouseWheelInput; InputEventHandler.OnPopupMouseWheel += OnMouseWheelInput; GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("OpenSplitMenu"), 0.5f); }
public void OnCloseSplitMenuTake(GridItem item, int quantity) { _windowPanel.SplitItemPanel.Hide(); if (quantity > 0 && quantity < item.GetQuantity()) { //reduce the exsiting item's quantity and add new item to selected item.SetQuantity(item.GetQuantity() - quantity); Item newItem = new Item(item.Item); CreateSelectedItem(newItem, quantity, item.IsPlayerOwned); } else if (quantity >= item.GetQuantity()) { PickupItem(item); } }
private void DropDiscardedItems() { foreach (TempSlot slot in DiscardSlots) { if (slot.Items.Count > 0) { //create an instance of pickup item near the owner GridItem gridItem = slot.Items.First(); var resource = Resources.Load(gridItem.Item.PrefabName + "Pickup"); if (resource != null) { GameObject pickup = GameObject.Instantiate(resource) as GameObject; pickup.transform.position = slot.Owner.transform.position + new Vector3(UnityEngine.Random.Range(-0.2f, 0.2f), 1f, UnityEngine.Random.Range(-0.2f, 0.2f)); Transform parent = GameManager.Inst.ItemManager.FindPickupItemParent(pickup.transform); if (parent != null) { pickup.transform.parent = parent; } pickup.GetComponent <PickupItem>().Item = gridItem.Item; pickup.GetComponent <PickupItem>().Quantity = gridItem.GetQuantity(); } GameManager.Inst.UIManager.WindowPanel.InventoryPanel.DestroyItem(gridItem); slot.Items.Clear(); } } }
public void OnCloseSplitMenuUse(GridItem item, int quantity) { if (quantity > 0 && quantity <= item.GetQuantity()) { //perform consumption. If consumption successful, reduce item quantity and hide panel if (GameManager.Inst.PlayerControl.Survival.UseItem(item.Item, quantity)) { int existingQuantity = item.GetQuantity(); item.SetQuantity(existingQuantity - quantity); _windowPanel.SplitItemPanel.Hide(); if (existingQuantity <= quantity) { InventoryGrid parentGrid = item.GetParentGrid(); if (parentGrid != null) { parentGrid.RemoveGridItem(item); } DestroyItem(item); } } } }
public void OnPlaceItem(GridItem item) { if (SelectedItem == item && item.Boundary.alpha == 1) { if (FocusedTempSlot != null) { //place in temp slot GridItem existingItem = null; TempSlot temp = FocusedTempSlot; if (FocusedTempSlot.Items.Count > 0) { existingItem = FocusedTempSlot.Items[0]; } FocusedTempSlot.Items.Clear(); PlaceItemInTempSlot(item); if (_selectedItemLastList != null && _selectedItemLastList != temp.Items) { _selectedItemLastList.Remove(item); _selectedItemLastList = null; } if (existingItem != null && existingItem != item) { PickupItem(existingItem); } } else if (FocusedBodySlot != null) { //place in body slot GridItem existingItem = null; BodySlot temp = FocusedBodySlot; if (FocusedBodySlot.Items.Count > 0) { existingItem = FocusedBodySlot.Items[0]; } if (item.Item.Type == ItemType.Ammo && (FocusedBodySlot.AllowedItemType == ItemType.PrimaryWeapon || FocusedBodySlot.AllowedItemType == ItemType.SideArm)) { if (existingItem != null && (int)existingItem.Item.GetAttributeByName("_LoadedAmmos").Value <= 0 && (string)item.Item.GetAttributeByName("_Caliber").Value == (string)existingItem.Item.GetAttributeByName("_Caliber").Value) { existingItem.Item.SetAttribute("_LoadedAmmoID", item.Item.ID); GameManager.Inst.UIManager.SetConsoleText("The weapon is now loading " + item.Item.Name); GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("LoadAmmo"), 0.05f); } else if ((int)existingItem.Item.GetAttributeByName("_LoadedAmmos").Value > 0) { GameManager.Inst.UIManager.SetConsoleText("Weapon is still loaded, unload ammo first."); GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("Error1"), 0.05f); } else if ((string)item.Item.GetAttributeByName("_Caliber").Value != (string)existingItem.Item.GetAttributeByName("_Caliber").Value) { GameManager.Inst.UIManager.SetConsoleText("Caliber doesn't match!"); GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("Error1"), 0.05f); } } else { FocusedBodySlot.Items.Clear(); PlaceItemInBodySlot(item); if (_selectedItemLastList != null && _selectedItemLastList != temp.Items) { _selectedItemLastList.Remove(item); _selectedItemLastList = null; } if (existingItem != null && existingItem != item) { PickupItem(existingItem); } } } else if (FocusedGrid != null) { PlaceItem(item); if (_selectedItemLastList != null) { _selectedItemLastList.Remove(item); _selectedItemLastList = null; } if (ReplaceItem != null) { Debug.Log("Replace item is not null"); //if replace item is same as item then try to combine the two if (ReplaceItem.Item.ID == item.Item.ID && item.Item.MaxStackSize > 1) { int fill = item.Item.MaxStackSize - item.GetQuantity(); if (fill < ReplaceItem.GetQuantity()) { item.SetQuantity(item.Item.MaxStackSize); ReplaceItem.SetQuantity(ReplaceItem.GetQuantity() - fill); PickupItem(ReplaceItem); ReplaceItem.Sprite.alpha = 1; ReplaceItem = null; } else { item.SetQuantity(item.GetQuantity() + ReplaceItem.GetQuantity()); FocusedGrid.Items.Remove(ReplaceItem); DestroyItem(ReplaceItem); } RefreshItemTotals(); return; } //if replace item is not the same, but selected item is ammo and replace item is an empty gun that can use the ammo //then load the gun with ammo if (item.Item.Type == ItemType.Ammo && (ReplaceItem.Item.Type == ItemType.PrimaryWeapon || ReplaceItem.Item.Type == ItemType.SideArm)) { if ((bool)ReplaceItem.Item.GetAttributeByName("_IsRanged").Value == true) { if ((int)ReplaceItem.Item.GetAttributeByName("_LoadedAmmos").Value <= 0 && (string)item.Item.GetAttributeByName("_Caliber").Value == (string)ReplaceItem.Item.GetAttributeByName("_Caliber").Value) { ReplaceItem.Item.SetAttribute("_LoadedAmmoID", item.Item.ID); GameManager.Inst.UIManager.SetConsoleText("The weapon is now loading " + item.Item.Name); GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("LoadAmmo"), 0.05f); } else if ((int)ReplaceItem.Item.GetAttributeByName("_LoadedAmmos").Value > 0) { GameManager.Inst.UIManager.SetConsoleText("Weapon is still loaded, unload ammo first."); GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("Error1"), 0.05f); } else if ((string)item.Item.GetAttributeByName("_Caliber").Value != (string)ReplaceItem.Item.GetAttributeByName("_Caliber").Value) { GameManager.Inst.UIManager.SetConsoleText("Caliber doesn't match!"); GameManager.Inst.SoundManager.UI.PlayOneShot(GameManager.Inst.SoundManager.GetClip("Error1"), 0.05f); } PickupItem(item); RefreshItemTotals(); return; } } PickupItem(ReplaceItem); ReplaceItem.Sprite.alpha = 1; ReplaceItem = null; } } } RefreshItemTotals(); }
public void OnHoverItem(GridItem item) { ItemName.text = item.Item.Name; if (item.Item.Type == ItemType.PrimaryWeapon || item.Item.Type == ItemType.SideArm) { bool isRanged = (bool)item.Item.GetAttributeByName("_IsRanged").Value; if (isRanged) { string ammoID = (string)item.Item.GetAttributeByName("_LoadedAmmoID").Value; string ammoName = GameManager.Inst.ItemManager.GetItemNameFromID(ammoID); ItemDescription.text = item.Item.Description + "\n\n" + "Caliber: " + (string)item.Item.GetAttributeByName("_Caliber").Value + "\n" + "Currently chambering: " + ammoName; } else { ItemDescription.text = item.Item.Description; } } else { ItemDescription.text = item.Item.Description; } if (item.Item.Type == ItemType.PrimaryWeapon || item.Item.Type == ItemType.SideArm || item.Item.Type == ItemType.Helmet || item.Item.Type == ItemType.Armor) { ItemDescription.text = ItemDescription.text + "\n\n" + "Durability: " + Mathf.RoundToInt(item.Item.Durability) + " / " + Mathf.RoundToInt(item.Item.MaxDurability); } //generate item attribute list string attributeNames = ""; string attributeValues = ""; string specialAttributesGood = ""; string specialAttributesBad = ""; foreach (ItemAttribute attribute in item.Item.Attributes) { if (attribute.Name[0] == '+') { specialAttributesGood = specialAttributesGood + attribute.Name + "\n"; } else if (attribute.Name[0] == '-') { specialAttributesBad = specialAttributesBad + attribute.Name + "\n"; } else if (attribute.Name[0] != '_') { attributeNames = attributeNames + attribute.Name + "\n"; attributeValues = attributeValues + attribute.Value.ToString() + "\n"; } } attributeNames = attributeNames + "Weight"; attributeValues = attributeValues + (item.Item.Weight * item.GetQuantity()).ToString(); ItemAttributeNames.text = attributeNames; ItemAttributeValues.text = attributeValues; ItemSpecialAttrBad.text = ""; ItemSpecialAttrGood.text = ""; if (specialAttributesGood.Length > 0) { ItemSpecialAttrGood.text = specialAttributesGood.Substring(1, specialAttributesGood.Length - 1); ItemSpecialAttrGood.transform.localPosition = ItemAttributeNames.transform.localPosition - new Vector3(0, ItemAttributeNames.height + 5, 0); } if (specialAttributesBad.Length > 0) { ItemSpecialAttrBad.text = specialAttributesBad.Substring(1, specialAttributesBad.Length - 1); float offset = 0; if (specialAttributesGood.Length > 0) { offset = ItemSpecialAttrGood.height; } ItemSpecialAttrBad.transform.localPosition = ItemAttributeNames.transform.localPosition - new Vector3(0, ItemAttributeNames.height + offset + 5, 0); } if (GameManager.Inst.UIManager.WindowPanel.TradingPanel.IsActive) { if (item.IsPlayerOwned) { ItemPrice.text = "Sell Price: " + Mathf.FloorToInt(item.PriceTag) + " RU"; } else { ItemPrice.text = "Purchase Price: " + Mathf.FloorToInt(item.PriceTag) + " RU"; } } else { ItemPrice.text = ""; } }
public void OnCloseSplitMenu(GridItem item, int quantity) { _windowPanel.SplitItemPanel.Hide(); if(quantity > 0 && quantity < item.GetQuantity()) { //reduce the exsiting item's quantity and add new item to selected item.SetQuantity(item.GetQuantity() - quantity); Item newItem = new Item(item.Item); CreateSelectedItem(newItem, quantity); } else if(quantity >= item.GetQuantity()) { PickupItem(item); } }
public void OnPlaceItem(GridItem item) { if(SelectedItem == item && item.Boundary.alpha == 1) { if(FocusedTempSlot != null) { //place in temp slot GridItem existingItem = null; TempSlot temp = FocusedTempSlot; if(FocusedTempSlot.Items.Count > 0) { existingItem = FocusedTempSlot.Items[0]; } FocusedTempSlot.Items.Clear(); PlaceItemInTempSlot(item); if(_selectedItemLastList != null && _selectedItemLastList != temp.Items) { _selectedItemLastList.Remove(item); _selectedItemLastList = null; } if(existingItem != null && existingItem != item) { PickupItem(existingItem); } } else if(FocusedBodySlot != null) { //place in body slot GridItem existingItem = null; BodySlot temp = FocusedBodySlot; if(FocusedBodySlot.Items.Count > 0) { existingItem = FocusedBodySlot.Items[0]; } if(item.Item.Type == ItemType.Ammo && (FocusedBodySlot.AllowedItemType == ItemType.PrimaryWeapon || FocusedBodySlot.AllowedItemType == ItemType.SideArm)) { if(existingItem != null && (int)existingItem.Item.GetAttributeByName("_LoadedAmmos").Value <= 0 && (string)item.Item.GetAttributeByName("_Caliber").Value == (string)existingItem.Item.GetAttributeByName("_Caliber").Value) { existingItem.Item.SetAttribute("_LoadedAmmoID", item.Item.ID); GameManager.Inst.UIManager.SetConsoleText("The weapon is now loading " + item.Item.Name); } else if((int)existingItem.Item.GetAttributeByName("_LoadedAmmos").Value > 0) { GameManager.Inst.UIManager.SetConsoleText("Weapon is still loaded, unload ammo first."); } else if((string)item.Item.GetAttributeByName("_Caliber").Value != (string)existingItem.Item.GetAttributeByName("_Caliber").Value) { GameManager.Inst.UIManager.SetConsoleText("Caliber doesn't match!"); } } else { FocusedBodySlot.Items.Clear(); PlaceItemInBodySlot(item); if(_selectedItemLastList != null && _selectedItemLastList != temp.Items) { _selectedItemLastList.Remove(item); _selectedItemLastList = null; } if(existingItem != null && existingItem != item) { PickupItem(existingItem); } } } else if(FocusedGrid != null) { PlaceItem(item); if(_selectedItemLastList != null) { _selectedItemLastList.Remove(item); _selectedItemLastList = null; } if(ReplaceItem != null) { Debug.Log("Replace item is not null"); //if replace item is same as item then try to combine the two if(ReplaceItem.Item.ID == item.Item.ID && item.Item.MaxStackSize > 1) { int fill = item.Item.MaxStackSize - item.GetQuantity(); if(fill < ReplaceItem.GetQuantity()) { item.SetQuantity(item.Item.MaxStackSize); ReplaceItem.SetQuantity(ReplaceItem.GetQuantity() - fill); PickupItem(ReplaceItem); ReplaceItem.Sprite.alpha = 1; ReplaceItem = null; } else { item.SetQuantity(item.GetQuantity() + ReplaceItem.GetQuantity()); FocusedGrid.Items.Remove(ReplaceItem); DestroyItem(ReplaceItem); } return; } //if replace item is not the same, but selected item is ammo and replace item is an empty gun that can use the ammo //then load the gun with ammo if(item.Item.Type == ItemType.Ammo && (ReplaceItem.Item.Type == ItemType.PrimaryWeapon || ReplaceItem.Item.Type == ItemType.SideArm)) { if((int)ReplaceItem.Item.GetAttributeByName("_LoadedAmmos").Value <= 0 && (string)item.Item.GetAttributeByName("_Caliber").Value == (string)ReplaceItem.Item.GetAttributeByName("_Caliber").Value) { ReplaceItem.Item.SetAttribute("_LoadedAmmoID", item.Item.ID); GameManager.Inst.UIManager.SetConsoleText("The weapon is now loading " + item.Item.Name); } else if((int)ReplaceItem.Item.GetAttributeByName("_LoadedAmmos").Value > 0) { GameManager.Inst.UIManager.SetConsoleText("Weapon is still loaded, unload ammo first."); } else if((string)item.Item.GetAttributeByName("_Caliber").Value != (string)ReplaceItem.Item.GetAttributeByName("_Caliber").Value) { GameManager.Inst.UIManager.SetConsoleText("Caliber doesn't match!"); } PickupItem(item); return; } PickupItem(ReplaceItem); ReplaceItem.Sprite.alpha = 1; ReplaceItem = null; } } } }