private void Death() { spawner.KilledEnemy(this); Destroy(gameObject); controller.AddPoints(10); controller.AddCoins(Random.Range(2, 5)); effectHandler.InstantiateParticle(transform.position, ParticleType.EnemyDeath, destroyTime: 5); effectHandler.PlaySound(transform.position, SoundType.EnemyDeath); //STATS statsManager?.KillEnemy(); }
private void Shoot() { controller.Shoot(); if (weapon.weaponType == WeaponType.PROJECTILE) { ShootProjectile(); } else if (weapon.weaponType == WeaponType.RAYCAST) { ShootRay(); } else if (weapon.weaponType == WeaponType.EXPLOSIVE) { ShootExplosive(); } effectHandler.PlaySound(transform.position, SoundType.Shoot); canShoot = false; //STATS statsManager?.Shoot(); }
public void Move(float move, bool crouch, bool jump) { // If crouching, check to see if the character can stand up if (!crouch) { // If the character has a ceiling preventing them from standing up, keep them crouching if (Physics2D.OverlapCircle(m_CeilingCheck.position, k_CeilingRadius, m_WhatIsGround)) { crouch = true; } } //only control the player if grounded or airControl is turned on if (m_Grounded || m_AirControl) { // If crouching if (crouch) { if (!m_wasCrouching) { m_wasCrouching = true; OnCrouchEvent.Invoke(true); } // Reduce the speed by the crouchSpeed multiplier move *= m_CrouchSpeed; // Disable one of the colliders when crouching if (m_CrouchDisableCollider != null) { m_CrouchDisableCollider.enabled = false; } } else { // Enable the collider when not crouching if (m_CrouchDisableCollider != null) { m_CrouchDisableCollider.enabled = true; } if (m_wasCrouching) { m_wasCrouching = false; OnCrouchEvent.Invoke(false); } } // Move the character by finding the target velocity Vector3 targetVelocity = new Vector2(move * 10f, m_Rigidbody2D.velocity.y); // And then smoothing it out and applying it to the character m_Rigidbody2D.velocity = Vector3.SmoothDamp(m_Rigidbody2D.velocity, targetVelocity, ref m_Velocity, m_MovementSmoothing); } // If the player should jump... if (jumps > 0 && jump) { // Add a vertical force to the player. jumps--; jumpParticle.Play(); OnJumpEvent.Invoke(); sfx.PlaySound(transform.position, SoundType.Jump); controller.setJumps(jumps); m_Rigidbody2D.velocity *= Vector2.right; m_Rigidbody2D.AddForce(new Vector2(0f, m_JumpForce)); } }