58 lines
1.7 KiB
C#
58 lines
1.7 KiB
C#
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.Playables;
|
|
|
|
namespace OctoberStudio.Timeline
|
|
{
|
|
public abstract class WaveAsset : PlayableAsset
|
|
{
|
|
public abstract int EnemiesCount { get; }
|
|
public EnemyType EnemyType { get; set; }
|
|
|
|
[SerializeField] protected WaveOverride waveOverride;
|
|
[SerializeField] protected bool circularSpawn;
|
|
}
|
|
|
|
[System.Serializable]
|
|
public class WaveOverride
|
|
{
|
|
[SerializeField] protected bool useDamageOverride;
|
|
[SerializeField] protected float damageOverride;
|
|
|
|
public float ApplyDamageOverride(float damage)
|
|
{
|
|
return useDamageOverride ? damageOverride : damage;
|
|
}
|
|
|
|
[Space]
|
|
[SerializeField] protected bool useHPOverride;
|
|
[SerializeField] protected float hpOverride;
|
|
|
|
public float ApplyHPOverride(float hp)
|
|
{
|
|
return useHPOverride ? hpOverride : hp;
|
|
}
|
|
|
|
[Space]
|
|
[SerializeField] protected bool useSpeedOverride;
|
|
[SerializeField] protected float speedOverride;
|
|
|
|
public float ApplySpeedOverride(float speed)
|
|
{
|
|
return useSpeedOverride ? speedOverride : speed;
|
|
}
|
|
|
|
[Space]
|
|
[SerializeField] protected bool useDropOverride;
|
|
[SerializeField] protected List<EnemyDropData> dropOverride;
|
|
|
|
public List<EnemyDropData> ApplyDropOverride(List<EnemyDropData> drop)
|
|
{
|
|
return useDropOverride ? dropOverride : drop;
|
|
}
|
|
|
|
[Space]
|
|
[SerializeField] protected bool disableOffscreenTeleport;
|
|
public bool DisableOffscreenTeleport => disableOffscreenTeleport;
|
|
}
|
|
} |