BITFALL/Assets/Artists/Scripts/LootSystem/WorldContainerLootSpawner.cs

46 lines
1.1 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using BITFALL.Items;
using BITKit;
using TinyScript;
using UnityEngine;
namespace BITFALL.LooSystem
{
public class WorldContainerLootSpawner : MonoBehaviour
{
[SerializeField] private bool spawnOnStart;
[SerializeField] private LootDrop lootDrop;
[SerializeField] private WorldItemContainer container;
[SerializeField] private int count;
private void Start()
{
if (spawnOnStart)
{
Execute();
}
}
[BIT]
public void Execute()
{
var initialAllowStorage = container.AllowStorage;
container.AllowStorage = true;
foreach (var x in lootDrop.GetGuaranteeedLoot().Select(x=>x.GetComponent<WorldItem>()))
{
var item = x.Pick();
item.Id = Guid.NewGuid().GetHashCode();
container.Add(item);
}
foreach (var x in lootDrop.GetRandomLoot(count).Select(x=>x.GetComponent<WorldItem>()))
{
var item = x.Pick();
item.Id = Guid.NewGuid().GetHashCode();
container.Add(item);
}
container.AllowStorage = initialAllowStorage;
}
}
}