This commit is contained in:
CortexCore
2023-10-30 01:25:53 +08:00
parent add6d0cab3
commit 18f664a545
125 changed files with 3529 additions and 700 deletions

View File

@@ -6,7 +6,7 @@ using UnityEngine;
namespace BITKit
{
public class AutoHealComponent : EntityComponent,IDamageCallback
public class AutoHealBehavior : EntityBehavior,IDamageCallback
{
[SerializeField] private IntervalUpdate healDelayInterval;
[SerializeField] private IntervalUpdate healInterval;
@@ -16,12 +16,10 @@ namespace BITKit
private IHealth _health;
public override void OnStart()
{
_health = entity.Get<IHealth>();
_health = UnityEntity.Get<IHealth>();
_health.OnSetAlive += OnSetAlive;
_health.OnSetHealthPoint += OnSetHP;
entity.RegisterCallback<IDamageCallback>(this);
}
private void Update()

View File

@@ -8,7 +8,7 @@ using UnityEngine;
namespace BITKit
{
public class AutoRespawnComponent : EntityComponent,IAction
public class AutoRespawnBehavior : EntityBehavior,IAction
{
[SerializeField] private IntervalUpdate respawnInterval;
private bool requestRespawn;

View File

@@ -61,8 +61,8 @@ namespace BITKit.Entities
}
public record DamageMessage
{
public IEntity Initiator;
public IEntity Target;
public IUnityEntity Initiator;
public IUnityEntity Target;
public bool RawDamage;
public int Damage;
public IDamagable Hit;
@@ -75,7 +75,7 @@ namespace BITKit.Entities
}
public interface IDamagable
{
IEntity Entity { get; }
IUnityEntity UnityEntity { get; }
Rigidbody Rigidbody { get; }
void GiveDamage(DamageMessage message);
}
@@ -99,11 +99,6 @@ namespace BITKit.Entities
damageMessage.Initiator?.Invoke(damageMessage);
damageMessage.Target?.Invoke(damageMessage);
foreach (var x in damageMessage.Target?.GetCallbacks<IDamageCallback>()!)
{
x.OnGetDamage(damageMessage);
}
OnEntityDamaged?.Invoke(damageMessage);
if (heal.IsAlive is false)
{

View File

@@ -26,7 +26,7 @@ namespace BITKit.Entities
bool IsAlive { get; }
}
[CustomType(typeof(IHealth))]
public class EntityHealth : EntityComponent, IHealth
public class EntityHealth : EntityBehavior, IHealth
{
[Header(Constant.Header.Settings)]
[SerializeField] private int healthPoint = 100;
@@ -49,7 +49,7 @@ namespace BITKit.Entities
public bool IsAlive { get; private set; }
public override void OnAwake()
{
entity.AddListener<DamageMessage>(OnGetDamage);
UnityEntity.AddListener<DamageMessage>(OnGetDamage);
}
public override void OnStart()
@@ -83,7 +83,7 @@ namespace BITKit.Entities
private void OnGetDamage(DamageMessage damageMessage)
{
if (damageMessage.Target != entity) return;
if (damageMessage.Target != UnityEntity) return;
if (IsAlive is false) return;
var damage = damageMessage.Damage;
foreach (var x in OnDamageFactory.CastAsFunc().Reverse())

View File

@@ -9,7 +9,7 @@ using UnityEngine.Events;
namespace BITKit.Entities
{
public class GetDamageComponent : EntityComponent
public class GetDamageBehavior : EntityBehavior
{
private readonly Queue<DamageMessage> DamageMessages = new();
[SerializeField] private UnityEvent<DamageMessage> onGetDamage;
@@ -17,11 +17,11 @@ namespace BITKit.Entities
private IDamageCallback[] callbacks;
public override void OnAwake()
{
entity.AddListener<DamageMessage>(OnGetDamage);
UnityEntity.AddListener<DamageMessage>(OnGetDamage);
}
private void OnGetDamage(DamageMessage obj)
{
if (obj.Target != entity) return;
if (obj.Target != UnityEntity) return;
DamageMessages.Enqueue(obj);
onGetDamage?.Invoke(obj);
foreach (var x in callbacks)