1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using Sirenix.OdinInspector;
- namespace KairoEngine.Inventory
- {
- [System.Serializable]
- public class RandomItem
- {
- public ItemBase item;
- [Range(0, 100f)] public float probability = 5f;
- [MinMaxSlider(0, 1000, true)] public Vector2 quantity = new Vector2(1, 1);
- }
- public class RandomItems : MonoBehaviour
- {
- public bool addItems = true;
- [ShowInInspector] public ItemContainer itemContainer;
- public List<RandomItem> items = new List<RandomItem>();
- void Start()
- {
- if(itemContainer == null)
- {
- Debug.LogError("Missing item container in RandomItems for " + gameObject.name);
- return;
- }
- if(addItems)
- {
- addItems = false;
- AddRandomItems();
- }
- }
- private void AddRandomItems()
- {
- foreach (var item in items)
- {
- float dice = Random.Range(0, 101);
- if(dice <= item.probability)
- {
- AddItem(item);
- }
- }
- }
- private void AddItem(RandomItem item)
- {
- int quantity = Random.Range((int)item.quantity.x, ((int)item.quantity.y) + 1);
- if(item.item.category == ItemType.firearm)
- {
- ItemBaseFirearm itemBaseFirearm = (ItemBaseFirearm)item.item;
- ItemBaseAmmo itemBaseAmmo = (ItemBaseAmmo)itemBaseFirearm.ammoType;
- int ammo = itemBaseFirearm.ammoCapacity;
- ItemFirearmRef firearmRef = new ItemFirearmRef(itemBaseFirearm, quantity, itemBaseAmmo, ammo);
- itemContainer.AddItem(firearmRef);
- }
- else
- {
- ItemRef itemRef = new ItemRef(item.item, quantity, 10000);
- itemContainer.AddItem(itemRef);
- }
- }
- }
- }
|