37 lines
1.0 KiB
C#
37 lines
1.0 KiB
C#
using SepCore.Entity;
|
|
using UnityEngine;
|
|
|
|
namespace SepCore.Components
|
|
{
|
|
public class AbsorbComponent : MonoBehaviour
|
|
{
|
|
private Player _player;
|
|
private Transform _target;
|
|
|
|
private float AbsorbRangeBase => GameEntry.Luban.Global.DefaultAbsorbRange / 1000f;
|
|
private float AbsorbSpeed => GameEntry.Luban.Global.AbsorbSpeed / 1000f;
|
|
private float CollectDistance => GameEntry.Luban.Global.CollectDistance / 1000f;
|
|
|
|
private float AbsorbRange => AbsorbRangeBase;
|
|
|
|
public void OnInit(Player player, StatComponent statComponent)
|
|
{
|
|
_player = player;
|
|
_target = player.CachedTransform;
|
|
}
|
|
|
|
public void OnUpdate(float elapseSeconds, float realElapseSeconds)
|
|
{
|
|
if (!_player.Available) return;
|
|
|
|
GameEntry.SimulationWorld.SyncPlayerAbsorbSettings(AbsorbRange, AbsorbSpeed, CollectDistance);
|
|
}
|
|
|
|
public void OnReset()
|
|
{
|
|
_target = null;
|
|
_player = null;
|
|
}
|
|
}
|
|
}
|