evershade/Assets/Data/ScriptableObjects/Items/SeedItemSo.cs

65 lines
2.0 KiB
C#

using System.Collections.Generic;
using Managers;
using Types.Items;
using Types.Map;
using UnityEngine;
namespace Data.ScriptableObjects.Items
{
[CreateAssetMenu(fileName = "SeedItem", menuName = "Game Data/Seed")]
public class SeedItemSo : GameItemSo
{
public int growthTime;
public List<Season> growSeasons;
public CropItem Crop;
// set type on instantiation
public SeedItemSo()
{
type = ItemType.Seed;
}
public void Plant(Tile tile)
{
// checks if it's the correct season to be plantable.
// checks if the tile is tilled and not occupied by another crop.
// sets the tile to be occupied by the crop.
// sets the crop to the correct growth stage.
Debug.Log("Planting seed");
var cropInteractable = CropManager.Instance.GetCropByName(Crop.ItemName);
cropInteractable.currentGrowthStage = 1;
cropInteractable.SeedItem = Clone();
tile.SetInteractable(cropInteractable);
}
public new SeedItem Clone()
{
var clone = new SeedItem
{
ItemName = itemName,
Icon = icon,
ItemValue = itemValue,
Rarity = rarity,
Quantity = quantity,
StackSize = stackSize,
SellValue = sellValue,
IsStackable = isStackable,
IsEquippable = isEquippable,
IsConsumable = isConsumable,
IsQuestItem = isQuestItem,
IsKeyItem = isKeyItem,
IsCraftable = isCraftable,
IsTradeable = isTradeable,
IsSellable = isSellable,
IsDroppable = isDroppable,
IsDestroyable = isDestroyable,
Crop = Crop,
GrowthTime = growthTime,
GrowSeasons = growSeasons
};
return clone;
}
}
}