private void HandleMovingHitEntities() { Entity[] hitEntities; AbilityPerformer.AdditionalHitInfos[] hitEntitiesInfos; var everything = AbilityPerformer.ComputeMovingHitboxHitEntities(_castData, transform.position, _currentMoveSpeed); hitEntities = everything.Item1; hitEntitiesInfos = everything.Item2; if (_hitboxData.SameTargetHitPeriod > 0f) { for (int i = 0; i < hitEntities.Length; i++) { if (_hitEntitiesDic.ContainsKey(hitEntities[i])) { if (Time.time - _hitEntitiesDic[hitEntities[i]] < _hitboxData.SameTargetHitPeriod) { continue; } else { _hitEntitiesDic[hitEntities[i]] = Time.time; } } else { _hitEntitiesDic.Add(hitEntities[i], Time.time); } ApplyHitOnEntity(hitEntities[i], hitEntitiesInfos[i]); } } else { hitEntities = AbilityPerformer.ComputeStaticHitboxHitEntities(_castData, transform.position, _hitEntitiesDic.Keys); for (int i = 0; i < hitEntities.Length; i++) { if (_hitEntitiesDic.ContainsKey(hitEntities[i])) { continue; } _hitEntitiesDic.Add(hitEntities[i], Time.time); ApplyHitOnEntity(hitEntities[i], hitEntitiesInfos[i]); } } }
private void HandleStaticHitEntities() { Entity[] hitEntities; if (_hitboxData.SameTargetHitPeriod > 0f) { hitEntities = AbilityPerformer.ComputeStaticHitboxHitEntities(_castData, transform.position); for (int i = 0; i < hitEntities.Length; i++) { if (_hitEntitiesDic.ContainsKey(hitEntities[i])) { if (Time.time - _hitEntitiesDic[hitEntities[i]] < _hitboxData.SameTargetHitPeriod) { continue; } else { _hitEntitiesDic[hitEntities[i]] = Time.time; } } else { _hitEntitiesDic.Add(hitEntities[i], Time.time); } ApplyHitOnEntity(hitEntities[i], null); } } else { hitEntities = AbilityPerformer.ComputeStaticHitboxHitEntities(_castData, transform.position, _hitEntitiesDic.Keys); for (int i = 0; i < hitEntities.Length; i++) { if (_hitEntitiesDic.ContainsKey(hitEntities[i])) { continue; } _hitEntitiesDic.Add(hitEntities[i], Time.time); ApplyHitOnEntity(hitEntities[i], null); } } }