72 lines
2.7 KiB
C#
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
|
|
}
|
|
} |