void Swap() { if (interactTimer >= interactTime && HUDManager.instance.CanInteractWithWeapon()) { WeaponSystem next = HUDManager.instance.GetClosestWeapon(); switch (curWeapon) { case 0: if (next.data.sidearm && weaponSidearm == null) { weaponSidearm = next; weaponSidearm.PickupWeapon(defaultWeaponPos, 2); Switch(weaponPrimary, true); LoadoutManager.instance.UpdateWeapon(weaponSidearm); } else if (weaponPrimary == null) { weaponPrimary = next; weaponPrimary.PickupWeapon(defaultWeaponPos, 0); LoadoutManager.instance.UpdateWeapon(weaponPrimary); } else if (weaponSecondary == null) { weaponSecondary = next; weaponSecondary.PickupWeapon(defaultWeaponPos, 1); Switch(weaponPrimary, false); LoadoutManager.instance.UpdateWeapon(weaponSecondary); } else { weaponPrimary.DropWeapon(); weaponPrimary = next; weaponPrimary.PickupWeapon(defaultWeaponPos, 0); nextWeapon = 0; switching = true; switchTimer = weaponPrimary.data.switchTime; LoadoutManager.instance.UpdateWeapon(weaponPrimary); } break; case 1: if (next.data.sidearm && weaponSidearm == null) { weaponSidearm = next; weaponSidearm.PickupWeapon(defaultWeaponPos, 2); Switch(weaponSecondary, true); LoadoutManager.instance.UpdateWeapon(weaponSidearm); } else if (weaponPrimary == null) { weaponPrimary = next; weaponPrimary.PickupWeapon(defaultWeaponPos, 0); Switch(weaponSecondary, false); LoadoutManager.instance.UpdateWeapon(weaponPrimary); } else { weaponSecondary.DropWeapon(); weaponSecondary = next; weaponSecondary.PickupWeapon(defaultWeaponPos, 1); nextWeapon = 1; switching = true; switchTimer = weaponSecondary.data.switchTime; LoadoutManager.instance.UpdateWeapon(weaponSecondary); } break; case 2: if (weaponPrimary == null) { weaponPrimary = next; weaponPrimary.PickupWeapon(defaultWeaponPos, 0); Switch(weaponSidearm, false); LoadoutManager.instance.UpdateWeapon(weaponPrimary); } else if (weaponSecondary == null) { weaponSecondary = next; weaponSecondary.PickupWeapon(defaultWeaponPos, 1); nextWeapon = 1; switching = true; switchTimer = GetCurWeapon().data.switchTime; GetCurWeapon().SwitchingWeapon(true); LoadoutManager.instance.SwitchWeapon(2, 0); LoadoutManager.instance.SwitchWeapon(0, 1); LoadoutManager.instance.UpdateWeapon(weaponSecondary); } else if (next.data.sidearm) { weaponSidearm.DropWeapon(); weaponSidearm = next; weaponSidearm.PickupWeapon(defaultWeaponPos, 2); nextWeapon = 2; switching = true; switchTimer = weaponSidearm.data.switchTime; LoadoutManager.instance.UpdateWeapon(weaponSidearm); } break; } interactTimer = 0; interacting = false; } interactTimer += Time.deltaTime; }