29 lines
832 B
C#
29 lines
832 B
C#
|
|
using OTGIntegrated.Stats;
|
||
|
|
using UnityEngine;
|
||
|
|
|
||
|
|
namespace OTGIntegrated.Abilities
|
||
|
|
{
|
||
|
|
public readonly struct AbilityContext
|
||
|
|
{
|
||
|
|
public readonly AbilityData Ability;
|
||
|
|
public readonly Transform Caster;
|
||
|
|
public readonly PlayerStats Stats;
|
||
|
|
public readonly Vector3 Origin;
|
||
|
|
public readonly Vector3 Forward;
|
||
|
|
|
||
|
|
public AbilityContext(AbilityData ability, Transform caster, PlayerStats stats, Vector3 origin, Vector3 forward)
|
||
|
|
{
|
||
|
|
Ability = ability;
|
||
|
|
Caster = caster;
|
||
|
|
Stats = stats;
|
||
|
|
Origin = origin;
|
||
|
|
Forward = forward.sqrMagnitude > 0.001f ? forward.normalized : Vector3.forward;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
public abstract class AbilityEffect : MonoBehaviour
|
||
|
|
{
|
||
|
|
public abstract void Activate(AbilityContext context);
|
||
|
|
}
|
||
|
|
}
|