62 lines
1.2 KiB
C#
62 lines
1.2 KiB
C#
|
using System;
|
||
|
using UnityEngine;
|
||
|
|
||
|
namespace RoR2;
|
||
|
|
||
|
public abstract class MiscPickupDef : ScriptableObject
|
||
|
{
|
||
|
[SerializeField]
|
||
|
public uint coinValue;
|
||
|
|
||
|
[SerializeField]
|
||
|
public string nameToken;
|
||
|
|
||
|
[SerializeField]
|
||
|
public GameObject displayPrefab;
|
||
|
|
||
|
[SerializeField]
|
||
|
public GameObject dropletDisplayPrefab;
|
||
|
|
||
|
[SerializeField]
|
||
|
public ColorCatalog.ColorIndex baseColor;
|
||
|
|
||
|
[SerializeField]
|
||
|
public ColorCatalog.ColorIndex darkColor;
|
||
|
|
||
|
[SerializeField]
|
||
|
public string interactContextToken;
|
||
|
|
||
|
[SerializeField]
|
||
|
public string descriptionToken;
|
||
|
|
||
|
[SerializeField]
|
||
|
public Sprite visual;
|
||
|
|
||
|
[NonSerialized]
|
||
|
public MiscPickupIndex miscPickupIndex;
|
||
|
|
||
|
public abstract void GrantPickup(ref PickupDef.GrantContext context);
|
||
|
|
||
|
public virtual string GetInternalName()
|
||
|
{
|
||
|
return "MiscPickupIndex." + base.name;
|
||
|
}
|
||
|
|
||
|
public virtual PickupDef CreatePickupDef()
|
||
|
{
|
||
|
return new PickupDef
|
||
|
{
|
||
|
internalName = GetInternalName(),
|
||
|
coinValue = coinValue,
|
||
|
nameToken = nameToken,
|
||
|
displayPrefab = displayPrefab,
|
||
|
dropletDisplayPrefab = dropletDisplayPrefab,
|
||
|
baseColor = ColorCatalog.GetColor(baseColor),
|
||
|
darkColor = ColorCatalog.GetColor(darkColor),
|
||
|
interactContextToken = interactContextToken,
|
||
|
attemptGrant = GrantPickup,
|
||
|
miscPickupIndex = miscPickupIndex
|
||
|
};
|
||
|
}
|
||
|
}
|