void OnTriggerEnter2D(Collider2D collider)
 {
     if (collider.tag == "Ball")
     {
         GameControl      gc       = GameObject.Find("GameControl").GetComponent <GameControl>();
         PlatformBehavior platform = player.GetComponent <PlatformBehavior>();
         if (!GameData.FriendlyFire && collider.gameObject.GetComponent <BallBehavior>().lastPlayer == player)
         {
             gc.SpawnBall();
             return;
         }
         Debug.Log("Killing player " + player.name);
         audioSource.PlayOneShot(GameData.S_DeathSound);
         col.isTrigger             = false;
         collider.gameObject.layer = 8;
         sr.material = dead;
         if (platform.Horizontal)
         {
             player.GetComponent <HorizontalPlatformMovement>().Speed = 0;
         }
         else
         {
             player.GetComponent <VerticalPlatformMovement>().Speed = 0;
         }
         player.GetComponent <BoxCollider2D>().enabled = false;
         gc.players.Remove(player);
         BallBehavior bb = collider.gameObject.GetComponent <BallBehavior>();
         if (bb.lastPlayer != null)
         {
             PlatformBehavior   pb  = bb.lastPlayer.GetComponent <PlatformBehavior>();
             PlayerCardBehavior pcb = pb.playerCard.GetComponent <PlayerCardBehavior>();
             pcb.KillCountUpdate(1);
             pcb.BallCountUpdate(-1);
         }
         platform.CancelInvoke("Bored");
         if (platform.PostDeathControl)
         {
             if (gc.Flaps.Exists(x => !x.GetComponent <Flap>().taken))
             {
                 Flap f = gc.Flaps.First(x => !x.taken);
                 f.taken = true;
                 f.AssignPlayer(player.GetComponent <BasePlatformMovement>(), true);
             }
             if (gc.Flaps.Count > 3 && gc.Flaps.Exists(x => !x.GetComponent <Flap>().taken))
             {
                 Flap f = gc.Flaps.First(x => !x.taken);
                 f.taken = true;
                 f.AssignPlayer(player.GetComponent <BasePlatformMovement>(), false);
             }
         }
         string[] anims = platform.deathAnims;
         player.GetComponent <Animator>().Play(anims[Random.Range(0, anims.Length)], 0);
         foreach (GameObject ball in gc.balls)
         {
             ball.GetComponent <Rigidbody2D>().velocity *= gc.SpeedUpOnKill;
         }
         if (gc.players.Where(x => x.activeSelf).Count() == 1)
         {
             gc.Winner(gc.players[0]);
         }
     }
 }