Пример #1
0
    public override void Use()
    {
        Animator anim = GetComponent <Animator>();

        if (anim == null)
        {
            Debug.LogWarning("NULL");
        }

        anim.SetTrigger("Attack");
        _attacking = true;
        _camera.ShakeCamera(0, 0.08f, 0.1f);
        StabSound.Play();
        //Strike();
    }
Пример #2
0
        private void FixedUpdate()
        {
            m_Grounded = false;

            // The player is grounded if a circlecast to the groundcheck position hits anything designated as ground
            // This can be done using layers instead but Sample Assets will not overwrite your project settings.
            Collider2D[] colliders = Physics2D.OverlapCircleAll(m_GroundCheck.position, k_GroundedRadius, m_WhatIsGround);
            for (int i = 0; i < colliders.Length; i++)
            {
                if (colliders[i].gameObject != gameObject)
                {
                    m_Grounded = true;
                }
            }
            if (prevGrounded != m_Grounded && m_Grounded)
            {
                // Add slight camera shake effect
                camEffects.ShakeCamera(0.01f, 0.01f);
                Transform clone = Instantiate(landedParticle, landedSpawnPoint.position, landedSpawnPoint.rotation) as Transform;
                GameMaster.gm.Destroyer(clone.gameObject);
                if (!audioSource.isPlaying)
                {
                    Player.PlaySound(Player.SoundType.LAND);
                }
            }
            prevGrounded = m_Grounded;
            m_Anim.SetBool("Ground", m_Grounded);

            // Set the vertical animation
            m_Anim.SetFloat("vSpeed", m_Rigidbody2D.velocity.y);
        }
Пример #3
0
    private void OnTriggerExit2D(Collider2D collision)
    {
        // Destroy GameObjects that exit the Boundary (Box) trigger collider
        //Debug.Log("Trigger Exited: " + collision.GetComponent<Collider2D>().name);
        if (collision.gameObject.tag == "Player")
        {
            Player p = collision.gameObject.GetComponent <Player>();
            if (p == null)
            {
                Debug.Log("Player component not found.");
            }
            Player.PlaySound(Player.SoundType.DEATH);
            cameraEffects.ShakeCamera(p.shakeAmount, p.shakeLength);

            // Updates score
            ScoreManager.sm.PlayerDied();

            StartCoroutine(WaitAndReloadScene());
        }
        Destroy(collision.gameObject, 0.5f);
    }
Пример #4
0
    public void Fire(Vector2 direction, float range, LayerMask blockingLayers)
    {
        _lineRenderer.startWidth = 0.5f;
        _lineRenderer.endWidth   = 0.5f;
        _lineRenderer.material   = FireMaterial;
        _lineRenderer.SetPositions(new Vector3[] { transform.position, GetBeamHitPoint(direction, range, blockingLayers) });

        _coolDown = COOLDOWN_TIME;
        Invoke("HideBeam", FIRE_EFFECT_DURATION);

        RaycastHit2D rayHit = Physics2D.Raycast(transform.position, direction, range, blockingLayers);

        if (rayHit)
        {
            if (rayHit.collider.tag == "Player")
            {
                rayHit.collider.GetComponent <DieOnHit>().HitBy(new MeleeWeapon.WeaponHitData(rayHit.point, ((Vector2)transform.position - rayHit.point).normalized, 100f));
            }
        }

        _camera.ShakeCamera(1f, 0f, 0.5f);
    }
Пример #5
0
 public override void LoseHealth(int loss)
 {
     base.LoseHealth(loss);
     StartCoroutine(CameraEffects.ShakeCamera(GameObject.FindWithTag("MainCamera")));
 }