Пример #1
0
    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);
    }
Пример #2
0
    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);
        }
    }
Пример #3
0
    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;
        }
    }
Пример #4
0
    // 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);
    }