public void PlaceAbilityTomeOnInventorySlot(AbilityTomeInventoryCard abilityCard, InventorySlot slot) { Debug.Log("InventoryController.AddItemToInventory() called..."); abilityCard.transform.position = slot.transform.position; abilityCard.transform.SetParent(itemsParent.transform); abilityCard.myInventorySlot = slot; slot.myAbilityTomeCard = abilityCard; slot.occupied = true; abilityCard.SetRayCastingState(true); }
public void TryPlaceAbilityTomeOnDropSlot(AbilityTomeInventoryCard tome, AbilityTomeDropSlot dropSlot) { Debug.Log("InventoryController.TryPlaceAbilityTomeOnDropSlot() called, attempting to teach " + tome.myData.abilityName + " to " + dropSlot.myCharacter.myName); if (IsTomeDropActionValid(tome.myData, dropSlot.myCharacter)) { dropSlot.myCharacter.HandleLearnAbility(tome.myData); tome.myInventorySlot.occupied = false; tome.myInventorySlot.myAbilityTomeCard = null; Destroy(tome.gameObject); } }
public void OnDrop(PointerEventData eventData) { Debug.Log("AbilityTomeDropSlot.OnDrop() called..."); AbilityTomeInventoryCard draggedTome = null; if (InventoryController.Instance.itemBeingDragged) { draggedTome = InventoryController.Instance.itemBeingDragged.GetComponent <AbilityTomeInventoryCard>(); } if (draggedTome) { InventoryController.Instance.TryPlaceAbilityTomeOnDropSlot(draggedTome, this); InventoryController.Instance.itemBeingDragged = null; } }
// Ability Tome Logic #region public void AddAbilityTomeToInventory(AbilityDataSO abilityData, bool showOverlayCardEffect = false) { // Create game object GameObject newAbilityTomeGO = Instantiate(PrefabHolder.Instance.AbilityTomeInventoryCard, itemsParent.transform); AbilityTomeInventoryCard abilityTome = newAbilityTomeGO.GetComponent <AbilityTomeInventoryCard>(); // Enable char roster sparkle UIManager.Instance.SetCharacterRosterButtonParticleViewState(true); // play screen overlay VFX if (showOverlayCardEffect) { CardRewardScreenManager.Instance.CreateAbilityCardRewardEffect(abilityData); } // Place in inventory PlaceAbilityTomeOnInventorySlot(abilityTome, GetNextAvailableSlot()); // Initialize tome abilityTome.BuildFromAbilityData(abilityData); }