Files
Net.Like.Xue.Tokyo/Packages-Local/Com.Project.B.Unity/Buff/UnityBuffService.cs

42 lines
1.0 KiB
C#
Raw Normal View History

2025-06-24 23:49:13 +08:00
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<IBuffComponent>())
{
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);
}
}
}