Example #1
0
File: Car.cs Project: xiabob/ld46
 public void OnDie()
 {
     if (peopleInside > 0)
     {
         sessionData.peopleDied += peopleInside;
         peopleInside            = 0;
         Instantiate(tombstonePrefab, transform.position, Quaternion.identity, transform.parent);
     }
     if (flammable.IsOnFire())
     {
         Instantiate(explosionPrefab, transform.position, Quaternion.identity, transform.parent);
     }
     spriteRenderer.sprite           = ashSprite;
     spriteRenderer.sortingLayerName = "Floor";
     spriteRenderer.color            = Color.white;
     castsShadow.RemoveShadow();
     state = State.Dead;
 }
Example #2
0
    void OnTriggerEnter2D(Collider2D collider)
    {
        Flammable flammable = collider.gameObject.GetComponentInChildren <Flammable>();

        if (flammable && flammable.IsOnFire())
        {
            Instantiate(waterSplashPrefab, transform.position, Quaternion.identity, transform.parent);
            SoundManager.Play(waterHitSound);
            Destroy(gameObject);
        }
        else if (collider.gameObject.GetComponent <Car>() || collider.gameObject.GetComponent <Propane>())
        {
            collider.gameObject.GetComponent <Rigidbody2D>().velocity = body.velocity / 2;
        }
    }
Example #3
0
File: Car.cs Project: xiabob/ld46
 IEnumerator CheckForSwerveTargets()
 {
     while (true)
     {
         RaycastHit2D[] results = Physics2D.CircleCastAll(transform.position, NEAR_BUILDING_DISTANCE, Vector2.zero, 0);
         foreach (RaycastHit2D result in results)
         {
             Flammable flammable   = result.collider.gameObject.GetComponent <Flammable>();
             Vector2   playerDelta = playerData.position - body.position;
             if (flammable &&
                 !flammable.IsOnFire() &&
                 result.collider.gameObject.transform.parent != null &&
                 result.collider.gameObject.transform.parent.tag == "Building" &&
                 state == State.Normal &&
                 Random.value < SWERVE_CHANCE &&
                 playerDelta.sqrMagnitude < NEAR_PLAYER_SWERVE_DISTANCE * NEAR_PLAYER_SWERVE_DISTANCE)
             {
                 state        = State.Swerve;
                 swerveTarget = result.collider.gameObject.transform;
             }
         }
         yield return(new WaitForSeconds(2f));
     }
 }