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; } } }