Exemplo n.º 1
0
        private void Awake()
        {
            animator = GetComponent<Animator>();
            quickSlotsUI = FindObjectOfType<QuickSlotsUI>();
            playerStats = GetComponentInParent<PlayerStats>();
            InputHandler = GetComponentInParent<InputHandler>();
            playerManager = GetComponentInParent<PlayerManager>();
            playerInventory = GetComponentInParent<PlayerInventory>();

            WeaponHolderSlot[] weaponHolderSlots = GetComponentsInChildren<WeaponHolderSlot>();
            foreach (WeaponHolderSlot weaponSlot in weaponHolderSlots)
            {
                if (weaponSlot.slotID == WeaponSlotID.LeftHandSlot)
                {
                    leftHandSlot = weaponSlot;
                }
                else if (weaponSlot.slotID == WeaponSlotID.RightHandSlot)
                {
                    rightHandSlot = weaponSlot;
                }
                else if (weaponSlot.slotID == WeaponSlotID.BackSlot)
                {
                    backSlot = weaponSlot;
                }
            }
        }
Exemplo n.º 2
0
        public void LoadWeaponOnSlot(WeaponItem weaponItem, WeaponSlotID slotID)
        {
            WeaponHolderSlot slot = GetWeaponHolderSlot(slotID);
            if (slot.slotID == WeaponSlotID.LeftHandSlot)
            {
                leftHandSlot.currentWeapon = weaponItem;
                leftHandSlot.LoadWeaponModel(weaponItem);
                LoadLeftWeaponDamageCollider();
                quickSlotsUI.UpdateWeaponQuickSlotsUI(true, weaponItem);

                if (weaponItem != null && weaponItem.Left_Hand_Idle != null)
                {
                    animator.CrossFade(weaponItem.Left_Hand_Idle, 0.2f);
                }
                else
                {
                    animator.CrossFade("Left Arm Empty", 0.2f);
                }
            }
            else
            {
                if (InputHandler.twoHandFlag)
                {
                    backSlot.LoadWeaponModel(leftHandSlot.currentWeapon);
                    leftHandSlot.UnloadItemModelAndDestroy();
                    animator.CrossFade(weaponItem.Two_Hand_Idle, 0.2f);
                }
                else
                {
                    backSlot.UnloadItemModelAndDestroy();
                    animator.CrossFade("Both Arms Empty", 0.2f);
                    if (weaponItem != null && weaponItem.Right_Hand_Idle != null)
                    {
                        animator.CrossFade(weaponItem.Right_Hand_Idle, 0.2f);
                    }
                    else
                    {
                        animator.CrossFade("Right Arm Empty", 0.2f);
                    }
                }

                rightHandSlot.currentWeapon = weaponItem;
                rightHandSlot.LoadWeaponModel(weaponItem);
                LoadRightWeaponDamageCollider();
                quickSlotsUI.UpdateWeaponQuickSlotsUI(false, weaponItem);
            }
        }