private WeaponHolderSlot GetWeaponHolderSlot(WeaponSlotID slotID) { switch(slotID) { case WeaponSlotID.RightHandSlot: return rightHandSlot; case WeaponSlotID.LeftHandSlot: return leftHandSlot; case WeaponSlotID.BackSlot: return backSlot; default: throw new Exception("Invalid weapon slot ID"); } }
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); } }
public void UnloadWeaponOnSlot(WeaponSlotID slotID) { GetWeaponHolderSlot(slotID).UnloadItemModel(); }