TransferItems.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using Sirenix.OdinInspector;
  5. namespace KairoEngine.Inventory
  6. {
  7. public class TransferItems : MonoBehaviour
  8. {
  9. public bool onStart = true;
  10. public ItemContainer sourceItemContainer;
  11. public ItemContainer targetItemContainer;
  12. public bool transferFirearms = true;
  13. public bool transferHandWeapons = true;
  14. public bool transferInstantEffect = true;
  15. public bool transferAmmo = false;
  16. public bool transferMoney = false;
  17. void Start()
  18. {
  19. if(onStart) Transfer();
  20. }
  21. void Update()
  22. {
  23. if(sourceItemContainer.inventory.Count > 0) Transfer();
  24. }
  25. public void Transfer()
  26. {
  27. for (int i = 0; i < sourceItemContainer.inventory.Count; i++)
  28. {
  29. ItemRef itemRef = sourceItemContainer.inventory[i];
  30. if(itemRef == null) continue;
  31. switch (itemRef.item.category)
  32. {
  33. case ItemType.firearm:
  34. if(transferFirearms) TransferItem(itemRef);
  35. break;
  36. case ItemType.handWeapon:
  37. if(transferHandWeapons) TransferItem(itemRef);
  38. break;
  39. case ItemType.instantEffect:
  40. if(transferInstantEffect) TransferItem(itemRef);
  41. break;
  42. case ItemType.ammo:
  43. if(transferAmmo) TransferItem(itemRef);
  44. break;
  45. default:
  46. if(transferMoney && itemRef.item.title == "Old Dollars") TransferItem(itemRef);
  47. break;
  48. }
  49. }
  50. }
  51. void TransferItem(ItemRef itemRef)
  52. {
  53. targetItemContainer.AddItem(itemRef);
  54. sourceItemContainer.RemoveItem(itemRef);
  55. }
  56. }
  57. }