Ejemplo n.º 1
0
    public void DetectItemAction()
    {
        if (!onEmpty || usingItem || isBlocking)
        {
            return;
        }
        if (!itemInput)
        {
            return;
        }

        if (inventoryManager.currentConsumable == null)
        {
            return;
        }

        if (inventoryManager.currentConsumable.itemCount < 1 && !inventoryManager.currentConsumable.unlimitedCount)
        {
            return;
        }

        RuntimeConsumable slot       = inventoryManager.currentConsumable;
        string            targetAnim = slot.instance.targetAnim;

        if (string.IsNullOrEmpty(targetAnim))
        {
            return;
        }

        usingItem = true;
        anim.Play(targetAnim);
    }
Ejemplo n.º 2
0
    public RuntimeConsumable ConsumableToRuntimeConsumable(Consumable c)
    {
        GameObject        go   = new GameObject();
        RuntimeConsumable inst = go.AddComponent <RuntimeConsumable>();

        inst.instance = new Consumable();
        StaticFunctions.DeepCopyConsumable(inst.instance, c);
        go.name = c.item_id;

        if (inst.instance.itemPrefab != null)
        {
            GameObject model = Instantiate(inst.instance.itemPrefab) as GameObject;
            Transform  p     = states.anim.GetBoneTransform(HumanBodyBones.RightHand);
            model.transform.parent           = p;
            model.transform.localPosition    = inst.instance.r_model_pos;
            model.transform.localEulerAngles = inst.instance.r_model_eulers;

            Vector3 targetScale = inst.instance.model_scale;
            if (targetScale == Vector3.zero)
            {
                targetScale = Vector3.one;
            }
            model.transform.localScale = targetScale;

            inst.itemModel = model;
            inst.itemModel.SetActive(false);
        }

        return(inst);
    }
Ejemplo n.º 3
0
    public void EquipConsumable(RuntimeConsumable c)
    {
        currentConsumable = c;

        UI.QuickSlot uiSlot = UI.QuickSlot.singleton;

        Item i = ResourcesManager.singleton.GetItem(c.instance.item_id, ItemType.consum);

        uiSlot.UpdateSlot(UI.QSlotType.item, i.icon);
    }
Ejemplo n.º 4
0
    public void LoadInventory()
    {
        unarmedRuntime = WeaponToRuntimeWeapon(ResourcesManager.singleton.GetWeapon(unarmedId), false);

        for (int i = 0; i < rh_weapons.Count; i++)
        {
            RuntimeWeapon rw = WeaponToRuntimeWeapon(ResourcesManager.singleton.GetWeapon(rh_weapons[i]));
            r_r_weapons.Add(rw);
        }
        for (int i = 0; i < lh_weapons.Count; i++)
        {
            RuntimeWeapon rw = WeaponToRuntimeWeapon(ResourcesManager.singleton.GetWeapon(lh_weapons[i]), true);
            r_l_weapons.Add(rw);
        }

        if (r_r_weapons.Count > 0)
        {
            if (r_index > r_r_weapons.Count - 1)
            {
                r_index = 0;
            }
            rightHandWeapon = r_r_weapons[r_index];
        }
        if (r_l_weapons.Count > 0)
        {
            if (l_index > r_l_weapons.Count - 1)
            {
                l_index = 0;
            }
            leftHandWeapon = r_l_weapons[l_index];
        }

        if (rightHandWeapon)
        {
            EquipWeapon(rightHandWeapon, false);
        }
        if (leftHandWeapon)
        {
            EquipWeapon(leftHandWeapon, true);
            hasLeftHandWeapon = true;
        }

        for (int i = 0; i < spell_items.Count; i++)
        {
            SpellToRuntimeSpell(ResourcesManager.singleton.GetSpell(spell_items[i]));
        }

        if (r_spells.Count > 0)
        {
            if (s_index > r_spells.Count - 1)
            {
                s_index = 0;
            }
            EquipSpell(r_spells[s_index]);
        }

        for (int i = 0; i < consumable_items.Count; i++)
        {
            RuntimeConsumable c = ConsumableToRuntimeConsumable(ResourcesManager.singleton.GetConsumable(consumable_items[i]));
            r_consumables.Add(c);
        }

        if (r_consumables.Count > 0)
        {
            if (c_index > r_consumables.Count - 1)
            {
                c_index = 0;
            }
            EquipConsumable(r_consumables[c_index]);
        }

        hasLeftHandWeapon = (leftHandWeapon != null);

        InitAllDamageColliders(states);
        CloseAllDamageColliders();
    }