48 lines
1.4 KiB
C#
48 lines
1.4 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using MoreMountains.Tools;
|
|
using UnityEngine;
|
|
|
|
namespace MoreMountains.Tools
|
|
{
|
|
/// <summary>
|
|
/// A class defining the contents of a MMLootTable
|
|
/// </summary>
|
|
/// <typeparam name="T"></typeparam>
|
|
public class MMLoot<T>
|
|
{
|
|
/// the object to return
|
|
public T Loot;
|
|
/// the weight attributed to this specific object in the table
|
|
public float Weight = 1f;
|
|
/// the chance percentage to display for this object to be looted. ChancePercentages are meant to be computed by the MMLootTable class
|
|
[MMReadOnly]
|
|
public float ChancePercentage;
|
|
|
|
/// the computed low bound of this object's range
|
|
public float RangeFrom { get; set; }
|
|
/// the computed high bound of this object's range
|
|
public float RangeTo { get; set; }
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// a MMLoot implementation for gameobjects
|
|
/// </summary>
|
|
[System.Serializable]
|
|
public class MMLootGameObject : MMLoot<GameObject> { }
|
|
|
|
/// <summary>
|
|
/// a MMLoot implementation for strings
|
|
/// </summary>
|
|
[System.Serializable]
|
|
public class MMLootString : MMLoot<string> { }
|
|
|
|
/// <summary>
|
|
/// a MMLoot implementation for floats
|
|
/// </summary>
|
|
[System.Serializable]
|
|
public class MMLootFloat : MMLoot<float> { }
|
|
|
|
}
|