protected override void Impact(Vector3 point, Vector3 normal, GameObject collisionObject, int collisionObjectLayer) { if (collisionObjectLayer == playerLayer || collisionObjectLayer == entityLayer) { EntityModifierHandler modifierHandler = collisionObject.GetComponent <EntityModifierHandler>(); if (modifierHandler != null) { Modifier slowModifierInstance = UnityEngine.Object.Instantiate(slowModifier) as Modifier; modifierHandler.RegisterModifier(slowModifierInstance); } } base.Impact(point, normal, collisionObject, collisionObjectLayer); }
public void Init(EntityModifierHandler _modifierHandler) { modifierHandler = _modifierHandler; durationRemaining = baseDuration; Transform modifierTarget = modifierHandler.transform; instantiatedParticles = Instantiate(modifierEffectParticles, modifierTarget.position, Quaternion.identity, modifierTarget); ParticleSystem instantiatedParticleSystem = instantiatedParticles.GetComponent <ParticleSystem>(); ParticleSystem.MainModule mainParticleSystem = instantiatedParticleSystem.main; mainParticleSystem.duration = baseDuration; instantiatedParticleSystem.Play(); }
void ApplyBlinkStun(Vector3 blinkOrigin, Vector3 blinkDestination) { Vector3 toDestination = blinkDestination - blinkOrigin; RaycastHit[] hits = Physics.RaycastAll(blinkOrigin, toDestination, toDestination.magnitude, entityLayermask); for (int i = 0; i < hits.Length; i++) { GameObject entity = hits[i].collider.gameObject; EntityModifierHandler entityModifierHandler = entity.GetComponent <EntityModifierHandler>(); if (entityModifierHandler != null) { entityModifierHandler.RegisterModifier(blinkStunModifier); } } }