ccl4/blueberryPeak/Assets/Scripts/Quests/Reward.cs

61 lines
1.5 KiB
C#

using UnityEngine;
// base class for all rewards
public abstract class InventoryItem : ScriptableObject
{
[SerializeField] public string itemName;
[SerializeField] public int quantity = 1;
public abstract void giveReward(GameObject player);
}
[CreateAssetMenu(menuName = "GameItems/ItemReward")]
public class ItemReward : InventoryItem
{
public ItemReward(string itemName, int quantity)
{
this.itemName = itemName;
this.quantity = quantity;
}
public override void giveReward(GameObject player)
{
var reward = CreateInstance<ItemReward>();
reward.itemName = itemName;
reward.quantity = quantity;
player.GetComponent<PlayerInteraction>().AddToInventory(reward);
// Add logic to give an item to the player
Debug.Log($"You have received {quantity} {itemName}(s)!");
}
}
[CreateAssetMenu(menuName = "GameItems/ItemRewardWithScript")]
public class ItemRewardWithScript : InventoryItem
{
public ItemRewardWithScript(string itemName, int quantity)
{
this.itemName = itemName;
this.quantity = quantity;
}
public override void giveReward(GameObject player)
{
var reward = CreateInstance<ItemReward>();
reward.itemName = itemName;
reward.quantity = quantity;
player.GetComponent<PlayerInteraction>().AddToInventory(reward);
// Add logic to give an item to the player
Debug.Log($"You have received {quantity} {itemName}(s)!");
}
}