private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { OriginalParentTracker parentTracker = GetComponent <OriginalParentTracker>(); if (other.transform == parentTracker.GetSource()) { return; } PlayerEventMessenger messenger = other.GetComponent <PlayerEventMessenger>(); messenger.SendSetAblazeEvent(parentTracker.GetSource().gameObject, _name, _duration, _ticks, _damage); } }
private void OnTriggerEnter(Collider other) { if (other.CompareTag("Player")) { OriginalParentTracker parentTracker = GetComponent <OriginalParentTracker>(); if (other.transform == parentTracker.GetSource()) { return; } PlayerEventMessenger messenger = other.GetComponent <PlayerEventMessenger>(); messenger.SendKnockbackEvent(parentTracker.GetSource().gameObject, _name, CalculateDisplacement(), _knockbackDuration); messenger.SendHealthChangeEvent(parentTracker.GetSource().gameObject, _name, -_damage, HealthChangeType.Generic); } }
public override void Update(PlayerEventMessenger playerEventMessenger) { _timeSinceLastTick += Time.deltaTime; _duration -= Time.deltaTime; if (_timeSinceLastTick > _tickInterval) { _timeSinceLastTick -= _tickInterval; playerEventMessenger.SendHealthChangeEvent(_source, "Ablaze", -_damage, HealthChangeType.DOT); if (--_ticks == 0) { _isActive = false; } } }
public abstract void Update(PlayerEventMessenger playerEventMessenger);
private void Start() { _eventMessenger = GetComponent <PlayerEventMessenger>(); _eventMessenger.AddSetAblazeReceiver(this); _statuses.Add(_ablazeStatus); }