1
This commit is contained in:
@@ -15,6 +15,8 @@ namespace BITFALL.Entities
|
||||
{
|
||||
[SerializeField] private int knockedHealth;
|
||||
[SerializeField] private int initialKnockedHealth;
|
||||
|
||||
[SerializeField] private Optional<float> invincibilityTimes;
|
||||
|
||||
public int KnockedHealth=>knockedHealth;
|
||||
public int InitialKnockedHealth
|
||||
@@ -26,6 +28,7 @@ namespace BITFALL.Entities
|
||||
public event Action OnRevive;
|
||||
public bool IsKnockdown { get;private set; }
|
||||
private readonly Optional<int> knockedHeal=new();
|
||||
private readonly IntervalUpdate invincibilityInterval = new();
|
||||
|
||||
[Inject]
|
||||
private IHealth _health;
|
||||
@@ -64,8 +67,17 @@ namespace BITFALL.Entities
|
||||
|
||||
private int OnDamageFactory(DamageMessage arg,int currentDamage)
|
||||
{
|
||||
if (invincibilityTimes.Allow && invincibilityInterval.AllowUpdateWithoutReset is false)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
if (IsKnockdown || _health.HealthPoint - currentDamage >=0 ) return currentDamage;
|
||||
IsKnockdown = true;
|
||||
if (invincibilityTimes.Allow)
|
||||
{
|
||||
invincibilityInterval.Interval = invincibilityTimes.Value;
|
||||
invincibilityInterval.Reset();
|
||||
}
|
||||
OnKnockdown?.Invoke();
|
||||
_health.HealthPoint = 0;
|
||||
return 0;
|
||||
|
Reference in New Issue
Block a user