/// <summary> /// Otherwise do the same thing as MoveItem in inventory Script. /// But we need to reconstruct the invetory to the player. /// </summary> /// <param name="clicked"></param> public override void MoveItem(GameObject clicked) { base.MoveItem(clicked); foreach (Slot slot in equipmentSlots) { Transform equipmentTransform = player.transform.FindChild(slot.name); if (equipmentTransform != null) { EquipmentSlot equipment = equipmentTransform.GetComponent <EquipmentSlot>(); if (slot.isEmpty && !equipment.IsEmpty()) { equipment.RemoveItem(); } else if (!slot.isEmpty) { if (equipment.IsEmpty() || equipment.Item.Item != slot.CurrentItem.Item) { equipment.SetItem(slot.CurrentItem); } } } } }
public void Equip(Item item) { //从物品栏直接点击装备物品 Item exitItem = null; foreach (Slot slot in SlotList) { EquipmentSlot equipmentSlot = (EquipmentSlot)slot; if (equipmentSlot.IsRightItem(item)) { if (equipmentSlot.transform.childCount > 0) { ItemUI currentItem = equipmentSlot.transform.GetChild(0).GetComponent <ItemUI>(); exitItem = currentItem.Item; currentItem.SetItemUI(item, 1); } else { equipmentSlot.SetItem(item); } EquipItem(item, true); equipmentSlot.CheckEquipSlot(); break; } } if (exitItem != null) { BackPack.Instance.SetItem(exitItem); } }
/// <summary> /// Reconstruct single slot's equipment stats. /// </summary> /// <param name="clothing"></param> private void SetClothing(string clothing) { EquipmentSlot equipment = player.transform.FindChild(clothing).GetComponent <EquipmentSlot>(); Slot slot = GetSlot(clothing); if (slot.isEmpty && !equipment.IsEmpty()) { equipment.RemoveItem(); } else if (!slot.isEmpty) { if (equipment.Item == null || equipment.Item.Item != slot.CurrentItem.Item) { equipment.SetItem(slot.CurrentItem); } } }
public void SetEquipment(Item item) { foreach (Slot slot in SlotList) { if (slot is EquipmentSlot) { EquipmentSlot equipmentSlot = (EquipmentSlot)slot; if (equipmentSlot.IsRightItem(item)) { if (equipmentSlot.transform.childCount > 0) { ItemUI currentItem = equipmentSlot.transform.GetChild(0).GetComponent <ItemUI>(); currentItem.SetItemUI(item, 1); } else { equipmentSlot.SetItem(item); } equipmentSlot.CheckEquipSlot(); break; } } } }
internal void Observe(PlayerController player) { if (!player) { return; } var amulet = player.Inventory.GetEquipmentOfCategory(ItemCategory.Amulet); amuletSlot.SetItem(amulet); var ring = player.Inventory.GetEquipmentOfCategory(ItemCategory.Ring); ringSlot.SetItem(ring); var pet = player.Inventory.GetEquipmentOfCategory(ItemCategory.Pet); petSlot.SetItem(pet); var helmet = player.Inventory.GetEquipmentOfType(ItemCategory.Armor, ItemType.Helm); helmetSlot.SetItem(helmet); var chest = player.Inventory.GetEquipmentOfType(ItemCategory.Armor, ItemType.Chest); chestSlot.SetItem(chest); var gloves = player.Inventory.GetEquipmentOfType(ItemCategory.Armor, ItemType.Gloves); glovesSlot.SetItem(gloves); var leggings = player.Inventory.GetEquipmentOfType(ItemCategory.Armor, ItemType.Leggings); leggingsSlot.SetItem(leggings); var boots = player.Inventory.GetEquipmentOfType(ItemCategory.Armor, ItemType.Boots); bootsSlot.SetItem(boots); var sword0 = player.Inventory.GetEquipmentOfType(ItemCategory.Weapon, ItemType.TwoHandedSword); var sword1 = player.Inventory.GetEquipmentOfType(ItemCategory.Weapon, ItemType.OneHandedSword); if (sword0 != null) { swordSlot.SetItem(sword0); } else { swordSlot.SetItem(sword1); } var shield = player.Inventory.GetEquipmentOfType(ItemCategory.Armor, ItemType.Shield); shieldSlot.SetItem(shield); var staff = player.Inventory.GetEquipmentOfType(ItemCategory.Weapon, ItemType.TwoHandedStaff); staffSlot.SetItem(staff); var bow = player.Inventory.GetEquipmentOfType(ItemCategory.Weapon, ItemType.TwoHandedBow); bowSlot.SetItem(bow); }