void OnTriggerEnter(Collider col)
    {
        ShmupHitbox3D hitbox = col.GetComponent <ShmupHitbox3D>();

        if (hitbox != null && this.isPlayerOwned != hitbox.isPlayerOwned)
        {
            ShmupEntity entity = owner.GetComponent <ShmupEntity>();
            entity.OnHit(hitbox.damage);

            if (!hitbox.persistent)
            {
                //Call special animations for the hitbox's object if applicable
                hitbox.DestroyHitbox();
            }
        }

        BombHitbox3D bombHitbox = col.GetComponent <BombHitbox3D>();

        if (bombHitbox != null && this.isPlayerOwned != bombHitbox.isPlayerOwned)
        {
            ShmupEntity entity = owner.GetComponent <ShmupEntity>();
            entity.OnStun();
        }

        //Visual hit effect stuff?
        EntityType type1 = EffectManager.instance.LayerToEntityType(this.gameObject.layer);
        EntityType type2 = EffectManager.instance.LayerToEntityType(col.gameObject.layer);

        EffectManager.instance.SpawnCollisionEffect(type1, type2, this.transform.position);
        if (isProjectile)
        {
            Destroy(this.gameObject);
        }
    }
Beispiel #2
0
 public void TrackObject(ShmupEntity obj)
 {
     if (obj != null)
     {
         target = obj;
     }
 }
Beispiel #3
0
    private void OnTriggerEnter(Collider col)
    {
        ShmupEntity entity = col.GetComponentInParent <ShmupEntity>();

        foreach (FloatingBit myBit in bits)
        {
            myBit.TrackObject(entity);
        }

        StartCoroutine(GarbageCollect());
    }
    new void Update()
    {
        base.Update();
        List <ShmupEntity> aliveEntities = linkedEntities.Where(x => !x.IsCompleted()).ToList();

        lineRenderer.SetPosition(0, this.transform.position);

        for (int i = 0; i < aliveEntities.Count(); i++)
        {
            ShmupEntity entity = aliveEntities[i];

            lineRenderer.SetPosition(2 * i + 1, this.transform.position);
            lineRenderer.SetPosition(2 * i + 2, entity.gameObject.transform.position);
        }

        for (int i = aliveEntities.Count; i < linkedEntities.Count(); i++)
        {
            lineRenderer.SetPosition(2 * i + 1, this.transform.position);
            lineRenderer.SetPosition(2 * i + 2, this.transform.position);
        }
    }