Пример #1
0
    private void CreateProjectile()
    {
        ConfigureProjectile();
        CreateFireEffect();

        GameObject loadedPrefab = Resources.Load("Projectiles/" + prefabName) as GameObject;

        if (loadedPrefab == null)
        {
            Debug.LogError("Prefab was null");
            return;
        }

        //Quaternion rot = Quaternion.FromToRotation(effectOrigin, shootDirection);//Quaternion.LookRotation(shootDirection, Vector3.forward);

        GameObject shot       = VisualEffectManager.CreateVisualEffect(loadedPrefab, effectOrigin, shotPos.rotation);
        Projectile shotScript = shot.GetComponent <Projectile>();

        if (error != 0f)
        {
            float e = Random.Range(-error, error);
            shot.transform.rotation = shotPos.rotation * Quaternion.Euler(shotPos.rotation.x, shotPos.rotation.y, e);

            if (shotScript.ProjectileMovement.lobbed)
            {
                shotScript.ProjectileMovement.angle += e;
            }
        }

        shotScript.Initialize(parentEffect, layerMask, 0f, parentEffect.effectDamage);

        //if (kickBack) {
        //    parentAbility.source.GetComponent<Rigidbody2D>().AddForce(-shotPos.up * kickStrength);
        //}
    }
    private void CreateFireEffect()
    {
        ConfigureMeleeAttack();
        GameObject effect = VisualEffectManager.CreateVisualEffect(fireEffect, effectOrigin, effectTransform.rotation);

        if (parentAbility.source.Facing == Constants.EntityFacing.Left)
        {
            effect.GetComponentInChildren <ParticleSystem>().transform.localScale = new Vector3(-1, 1, 1);
        }

        VisualEffectManager.DestroyVFX(effect, 1f);
    }
Пример #3
0
    private void CreateFireEffect()
    {
        GameObject firePrefab = Resources.Load(((EffectAttack)parentEffect).fireEffectName) as GameObject;

        if (firePrefab == null)
        {
            //Debug.LogError("Fire Prefab Null");
            Debug.LogWarning(parentAbility.abilityName + " is firing with no fire prefab");
            return;
        }

        GameObject fireEffect = VisualEffectManager.CreateVisualEffect(firePrefab, effectOrigin, Quaternion.identity);
    }
Пример #4
0
    private void CreateHitEffects(RaycastHit2D hit)
    {
        Vector2 rayDir = Vector2.Reflect((hit.point - effectOrigin).normalized, hit.normal);

        Quaternion impactRotation = TargetingUtilities.CalculateImpactRotation(rayDir);

        GameObject hitPrefab = Resources.Load(((EffectAttack)parentEffect).impactEffectName) as GameObject;
        GameObject hitEffect = VisualEffectManager.CreateVisualEffect(hitPrefab, hit.point, impactRotation);


        VisualEffectManager.SetParticleEffectLayer(hitEffect, hit.collider.gameObject);

        //ParticleSystem[] ps = hitEffect.GetComponentsInChildren<ParticleSystem>();
        //SpriteRenderer hitSprite = hit.collider.gameObject.GetComponentInChildren<SpriteRenderer>();

        //for (int i = 0; i < ps.Length; i++) {
        //    ps[i].GetComponent<ParticleSystemRenderer>().sortingOrder = hitSprite.sortingOrder;
        //}
    }
Пример #5
0
    private void CreateMeleeAttack()
    {
        //Grid.EventManager.RemoveListener(Constants.GameEvent.AnimationEvent, OnAnimationEvent);

        ConfigureMeleeAttack();

        GameObject loadedPrefab = Resources.Load("Melee/" + prefabName) as GameObject;

        if (loadedPrefab == null)
        {
            Debug.LogError("Prefab was null : " + prefabName);
            return;
        }

        GameObject hit       = VisualEffectManager.CreateVisualEffect(loadedPrefab, effectOrigin, Quaternion.identity);
        MeleeHit   hitScript = hit.GetComponent <MeleeHit>();

        hit.transform.SetParent(parentAbility.source.transform, true);

        hitScript.Initialize(parentEffect, layerMask, 0f, parentEffect.effectDamage);
    }
    private void CreateMeleeAttack()
    {
        ConfigureMeleeAttack();

        GameObject loadedPrefab = Resources.Load("HitPrefabs/" + prefabName) as GameObject;

        if (loadedPrefab == null)
        {
            Debug.LogError("Prefab was null : " + prefabName);
            return;
        }

        //Debug.Log("Attack Created");

        GameObject hit       = VisualEffectManager.CreateVisualEffect(loadedPrefab, effectOrigin, Quaternion.identity);
        MeleeHit   hitScript = hit.GetComponent <MeleeHit>();

        hit.transform.SetParent(parentAbility.source.transform, true);

        hitScript.Initialize(parentEffect, layerMask, 0f, parentEffect.effectDamage);
    }
Пример #7
0
    protected virtual void OnTriggerStay2D(Collider2D other)
    {
        if ((LayerMask & 1 << other.gameObject.layer) == 1 << other.gameObject.layer)
        {
            //Debug.Log("hit " + other.gameObject.name);

            Entity hitTarget = other.gameObject.GetComponent <Entity>();

            if (!CheckHitList(hitTarget))
            {
                return;
            }

            parentEffect.Apply(other.gameObject);

            GameObject effect = null;

            if (hitEffect != null)
            {
                effect = VisualEffectManager.CreateVisualEffect(hitEffect, other.transform.position, Quaternion.identity);
                Destroy(effect, 1f);
            }
        }
    }