Beispiel #1
0
    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);
    }
Beispiel #2
0
    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();
    }
Beispiel #3
0
    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);
            }
        }
    }