Esempio n. 1
0
    void Handle(CollisionEnter2DEvent e)
    {
        Debug.Log("Enter Collision Event");
        constraint.ForEachGameObject((egoComponent, spriteRenderer, collisionComponent, lineRenderer, movement, player) => {
            SpriteRenderer shipSprite;
            PlayerComponent playerC;
            //Return if colliding Object has no SpriteRenderer
            if (!e.egoComponent1.TryGetComponents(out shipSprite))
            {
                return;
            }
            //Else change Sprite to Explosion, if you collided with a spaceship
            else if (e.egoComponent2.TryGetComponents(out playerC) && e.egoComponent1.TryGetComponents(out playerC))
            {
                //e.egoComponent1.GetComponent<SpriteRenderer>().sprite = collisionComponent.explodingSprite;
                if (e.egoComponent1.GetComponent <MovementComponent>().myFlyStatus == MovementComponent.FlyStatus.flying &&
                    e.egoComponent2.GetComponent <MovementComponent>().myFlyStatus == MovementComponent.FlyStatus.flying)
                {
                    var ev = new DamageEvent(player.playerID, false);
                    Debug.Log("Damage Event called cause players collided");
                    EgoEvents <DamageEvent> .AddEvent(ev);
                }

                //Unschön, vielleicht geht das ja auch aus dem DamageEvent heraus?

                /*MovementComponent movementComponent;
                 * if (!e.egoComponent1.TryGetComponents(out movementComponent)) {
                 *      return;
                 * }
                 * else {
                 *      movementComponent.myFlyStatus = MovementComponent.FlyStatus.notFlying;
                 * }*/
            }

            PowerUpComponent powerup;
            if (!e.egoComponent2.TryGetComponents(out powerup))
            {
                return;
            }
            else if (e.egoComponent2.TryGetComponents(out powerup))
            {
                Debug.Log("powerup collected");
                Ego.AddComponent <HasSpeedUpComponent>(e.egoComponent1);
                e.egoComponent1.GetComponent <PlayerPowerUpComponent>().playerPowerUpTimer = 0;
                //e.egoComponent2.gameObject.SetActive(false);
                e.egoComponent2.gameObject.GetComponent <SpriteRenderer>().enabled   = false;
                e.egoComponent2.gameObject.GetComponent <CircleCollider2D>().enabled = false;
                var ev = new OnSpeedUpPickUp(e.egoComponent1.GetComponent <PlayerComponent>().playerID);
                EgoEvents <OnSpeedUpPickUp> .AddEvent(ev);
            }
        });
    }
Esempio n. 2
0
 void Handle(OnSpeedUpPickUp e)
 {
     constraint.ForEachGameObject((egoComponent, transform, powerUpUIComponent) => {
         if (e.playerID == 1)
         {
             if (powerUpUIComponent.playerID == 1)
             {
                 egoComponent.gameObject.GetComponent <SpriteRenderer>().enabled = true;
             }
         }
         else if (e.playerID == 2)
         {
             if (powerUpUIComponent.playerID == 2)
             {
                 egoComponent.gameObject.GetComponent <SpriteRenderer>().enabled = true;
             }
         }
     });
 }