using System; using System.Collections; using System.Collections.Generic; using BITKit; using BITKit.Entities; using UnityEngine; namespace Net.Project.B.Buff { public class UnityBuffService:IDisposable { private IEntitiesService _entitiesService; private readonly ITicker _ticker; public UnityBuffService(IEntitiesService entitiesService, ITicker ticker) { _entitiesService = entitiesService; _ticker = ticker; _ticker.Add(OnTick); } private void OnTick(float obj) { foreach (var buffComponent in _entitiesService.QueryComponents()) { var buffs = buffComponent.Buffs.Span; for (var i = 0; i < buffs.Length; i++) { ref var buff = ref buffs[i]; buff.Value= Mathf.Max(0, buff.Value - obj/12f); } } } public void Dispose() { _ticker.Remove(OnTick); } } }