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; } } }
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); } }