void OnTriggerEnter2D(Collider2D col) { if (col.gameObject.tag == "Player") { PlayerData.addScore(250); switch (pUpType) { case PUTypes.SPEED_INC: ProjectileManager2D.actFireRate(); GetComponent <SpriteRenderer>().enabled = false; GetComponent <CircleCollider2D>().enabled = false; GetComponent <BoxCollider2D>().enabled = false; GetComponent <ParticleSystem>().enableEmission = false; speeding = true; timeToStop = Time.time + (blinkTime * 2); //Add extra speed break; case PUTypes.ONE_UP: PlayerData.lives++; Destroy(gameObject); //Add extra life break; case PUTypes.TRIPLE_SHOOT: ProjectileManager2D.actTripleShoot(); GetComponent <SpriteRenderer>().enabled = false; GetComponent <CircleCollider2D>().enabled = false; GetComponent <BoxCollider2D>().enabled = false; GetComponent <ParticleSystem>().enableEmission = false; tripling = true; timeToStop = Time.time + (blinkTime * 2); //Set as Shotgun in Gund break; case PUTypes.FOLLOW: Projectile2D.followOn(); GetComponent <SpriteRenderer>().enabled = false; GetComponent <CircleCollider2D>().enabled = false; GetComponent <BoxCollider2D>().enabled = false; GetComponent <ParticleSystem>().enableEmission = false; following = true; timeToStop = Time.time + blinkTime; //Set to Follow break; default: break; } } }
public void LaunchInDirection(Vector2 target) { GameObject shot = Instantiate(projectile, transform.position, projectile.transform.rotation); float x = shot.transform.position.x; float y = shot.transform.position.y; x = x - target.x; y = y - target.y; float angle = Mathf.Atan2(x, y) * Mathf.Rad2Deg; shot.transform.rotation = Quaternion.Euler(new Vector3(0, 0, -angle)); //print(launcherCollider + " " + gameObject.name); if (launcherCollider) { Physics2D.IgnoreCollision(launcherCollider, shot.GetComponent <Collider2D>()); } shot.GetComponent <Rigidbody2D>().velocity = -1 * shot.transform.up * projectileVelocity; // shot.transform.rotation = Quaternion.LookRotation(dir, Vector3.forward); if (sizeMultilpier != 1) { shot.transform.localScale *= sizeMultilpier; } if (lifetimeModifier != -1) { shot.GetComponent <Temporary>().lifespan = lifetimeModifier; } Projectile2D proj = shot.GetComponent <Projectile2D>(); if (gameObject.CompareTag("Player")) { proj.isTargetingPlayer = false; } else { proj.isTargetingPlayer = true; } proj.projectileVelocity = projectileVelocity; proj.damage = damage; if (damageModifier != -1) { shot.GetComponent <Projectile2D>().damage += damageModifier; } proj.damageType = damageType; projectile = wizardProjectile; }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("Projectile") || collision.CompareTag("BouncingProjectile")) { Projectile2D projectile2D = collision.GetComponent <Projectile2D>(); if (projectile2D.isTargetingPlayer && parent.CompareTag("Player")) { projectile2D.GetAffectedBySquander(); } else if (!projectile2D.isTargetingPlayer && parent.CompareTag("Enemy")) { projectile2D.GetAffectedBySquander(); } } }
// Update is called once per frame void Update() { if (following == true) { if (Time.time >= timeToFollow) { timeToFollow = Time.time + blinkSpeed; } if (Time.time >= timeToStop) { Projectile2D.followOff(); following = false; Destroy(gameObject); } } if (tripling == true) { if (Time.time >= timeToFollow) { timeToFollow = Time.time + blinkSpeed; } if (Time.time >= timeToStop) { ProjectileManager2D.disTripleShoot(); tripling = false; Destroy(gameObject); } } if (speeding == true) { if (Time.time >= timeToFollow) { timeToFollow = Time.time + blinkSpeed; } if (Time.time >= timeToStop) { ProjectileManager2D.disFireRate(); speeding = false; Destroy(gameObject); } } }