Files
dungeons/Assets/DamageNumbersPro/Scripts/Settings/CombinationSettings.cs

72 lines
2.7 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace DamageNumbersPro
{
[System.Serializable]
public struct CombinationSettings
{
public CombinationSettings(float customDefault)
{
method = CombinationMethod.ABSORB_NEW;
maxDistance = 10f;
bonusLifetime = 1f;
spawnDelay = 0.2f;
absorbDuration = 0.4f;
scaleCurve = new AnimationCurve(new Keyframe(0, 1), new Keyframe(0.7f, 1), new Keyframe(1f, 0f));
alphaCurve = new AnimationCurve(new Keyframe(0, 1), new Keyframe(0.5f, 1), new Keyframe(1f, 0));
moveToAbsorber = true;
teleportToAbsorber = false;
instantGain = false;
absorberScaleFactor = 1.5f;
absorberScaleFade = 15;
}
[Header("Main:")]
[Tooltip("ABSORB_NEW: Oldest damage number absorbs newer damage numbers.\n\nREPLACE_OLD: New damage numbers absorb all existing damage numbers.\n\nIS_ALWAYS_ABSORBER: Will absorb all IS_ALWAYS_VICTIM damage numbers.\n\nIS_ALWAYS_VICTIM: Will be absorbed by the closest IS_ALWAYS_ABSORBER damage number.")]
public CombinationMethod method;
[Tooltip("The maximum distance at which numbers will combine.")]
public float maxDistance;
[Tooltip("The absorbtion delay after spawning.")]
public float spawnDelay;
[Header("Animation:")]
[Tooltip("The length of the absorb animation.")]
public float absorbDuration;
[Tooltip("The scale over the absorb duration.")]
public AnimationCurve scaleCurve;
[Tooltip("The alpha over the absorb duration.")]
public AnimationCurve alphaCurve;
[Tooltip("If enabled the damage number will move towards it's absorber.")]
public bool moveToAbsorber;
[Tooltip("If enabled the damage number will teleport (spawn) inside it's absorber.")]
public bool teleportToAbsorber;
[Tooltip("How much the absorber is scaled up when it absorbs a damage number.")]
public float absorberScaleFactor;
[Tooltip("How quickly the absorber scales back to it's original size after being scaled up.")]
public float absorberScaleFade;
[Header("Other:")]
[Tooltip("If true, the absorber will instantly gain the numbers of the target. Should be used when combination is very fast.")]
public bool instantGain;
[Tooltip("The lifetime of the absorber is reset but also increased by this bonus lifetime.")]
public float bonusLifetime;
}
[System.Serializable]
public enum CombinationMethod
{
ABSORB_NEW
,
REPLACE_OLD
,
IS_ALWAYS_ABSORBER
,
IS_ALWAYS_VICTIM
}
}