public void EquipConsuamble(RuntimeConsumable consum)
        {
            curConsumable = consum;

            UI.QuickSlot uiSlot = UI.QuickSlot.singleton;
            uiSlot.UpdateSlot(UI.QSlotType.item, consum.instance.icon);
        }
        public RuntimeConsumable ConsumableToRuntime(Consumable c)
        {
            GameObject        go   = new GameObject();
            RuntimeConsumable inst = go.AddComponent <RuntimeConsumable>();

            go.name = c.itemName;

            inst.instance = new Consumable();
            StaticFunctions.DeepCopyConsumables(inst.instance, c);

            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);
                //create here
            }
            return(inst);
        }
Exemple #3
0
        public void DectectItemaction()
        {
            if (onEmpty == false || usingItem || isBlocking)
            {
                return;
            }

            if (itemInput == false)
            {
                return;
            }

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

            if (inventoryManager.curConsumable.itemCount < 1 && inventoryManager.curConsumable.unlimitedCount == false)
            {
                return;
            }

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

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


            usingItem = true;
            anim.Play(targetAnim);
        }
        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 != null)
            {
                EquipWeapon(rightHandWeapon, false);
            }

            if (leftHandWeapon != null)
            {
                EquipWeapon(leftHandWeapon, true);
                hasLeftHandWeapon = true;
            }

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

            if (r_spells.Count > 0)
            {
                if (s_index > r_spells.Count)
                {
                    s_index = 0;
                }

                EquipSpell(r_spells[s_index]);
            }

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

            if (r_consum.Count > 0)
            {
                if (c_index > r_consum.Count - 1)
                {
                    c_index = 0;
                }

                EquipConsuamble(r_consum[c_index]);
            }

            InitALLDamageColliders(states);
            CloseAllDamageColliders();
        }