/* * private void Update() { * TrySpawnDirtParticlesDelay(); * TrySpawnFootprintParticlesDelay(); * } * * private void TrySpawnDirtParticlesDelay() { * if (Time.time >= nextSpawnDirtTime) { * if (characterAimHandler.IsMoving()) { * DirtParticleSystemHandler.Instance.SpawnDirt(characterAimHandler.GetPosition() + new Vector3(0, -3f), characterAimHandler.GetMoveDir() * -1f); * nextSpawnDirtTime = Time.time + .08f; * } * } * } * * private void TrySpawnFootprintParticlesDelay() { * if (Time.time >= nextSpawnFootprintTime) { * if (characterAimHandler.IsMoving()) { * FootprintParticleSystemHandler.Instance.SpawnFootprint(characterAimHandler.GetPosition() + new Vector3(0, -3f), characterAimHandler.GetMoveDir() * -1f); * nextSpawnFootprintTime = Time.time + .3f; * } * } * } */ private void CharacterAimHandler_OnShoot(object sender, CharacterAimHandler.OnShootEventArgs e) { Vector3 quadPosition = e.gunEndPointPosition; Vector3 shootDir = (e.shootPosition - e.gunEndPointPosition).normalized; quadPosition += (shootDir * -1f) * 8f; float applyRotation = Random.Range(+95f, +85f); if (shootDir.x < 0) { applyRotation *= -1f; } Vector3 shellMoveDir = UtilsClass.ApplyRotationToVector(shootDir, applyRotation); ShellParticleSystemHandler.Instance.SpawnShell(quadPosition, shellMoveDir); /* * int uvIndex = Random.Range(0, 8); * int spawnedQuadIndex = AddQuad(quadPosition, rotation, quadSize, true, uvIndex); * * FunctionUpdater.Create(() => { * quadPosition += new Vector3(1, 1) * 3f * Time.deltaTime; * //quadSize += new Vector3(1, 1) * Time.deltaTime; * //rotation += 360f * Time.deltaTime; * UpdateQuad(spawnedQuadIndex, quadPosition, rotation, quadSize, true, uvIndex); * }); */ }
private void CharacterAimHandler_OnShoot(object sender, CharacterAimHandler.OnShootEventArgs e) { // Player shot weapon Shoot_Flash.AddFlash(e.gunEndPointPosition); WeaponTracer.Create(e.gunEndPointPosition, e.shootPosition); UtilsClass.ShakeCamera(.6f, .05f); // Any enemy hit? RaycastHit2D raycastHit = Physics2D.Raycast(e.gunEndPointPosition, (e.shootPosition - e.gunEndPointPosition).normalized, Vector3.Distance(e.gunEndPointPosition, e.shootPosition)); if (raycastHit.collider != null) { EnemyHandler enemyHandler = raycastHit.collider.gameObject.GetComponent <EnemyHandler>(); if (enemyHandler != null) { // Hit enemy int damageAmount = UnityEngine.Random.Range(100, 200); bool isCritical = UnityEngine.Random.Range(0, 100) < 30; if (isCritical) { damageAmount *= 2; } // Deal damage enemyHandler.Damage(this, damageAmount); DamagePopup.Create(enemyHandler.GetPosition(), damageAmount, isCritical); } } }
private void CharacterAimHandler_OnShoot(object sender, CharacterAimHandler.OnShootEventArgs e) { Shoot_Flash.AddFlash(e.gunEndPointPosition); WeaponTracer.Create(e.gunEndPointPosition, e.shootPosition); UtilsClass.ShakeCamera(.6f, .05f); // Any enemy hit? RaycastHit2D raycastHit = Physics2D.Raycast(e.gunEndPointPosition, (e.shootPosition - e.gunEndPointPosition).normalized, Vector3.Distance(e.gunEndPointPosition, e.shootPosition)); if (raycastHit.collider != null) { EnemyHandler enemyHandler = raycastHit.collider.gameObject.GetComponent <EnemyHandler>(); if (enemyHandler != null) { enemyHandler.Damage(characterAimHandler); } } }