private void PlayerCharacterHandlerOnshoot(object sender, PlayerCharacterHandler.OnShootEventArgs e) { Vector3 quadPosition = e.gunEndPosition; Vector3 quadSize = new Vector3(0.5f, 1f); float rotation = 0f; //ShellParticlesSystemHandlerx.Instance.SpawnShell(quadPosition, new Vector3(1,1)); //int spawnedQuadIndex = AddQuad(quadPosition, rotation, quadSize, true, 0); //FunctionUpdater.Create(() => //{ // quadPosition += new Vector3(1, 1) * 3f * Time.deltaTime; // quadSize += new Vector3(1, 1) * Time.deltaTime; // rotation += 180f * Time.deltaTime; // UpdateQuad(spawnedQuadIndex, quadPosition, rotation, quadSize, true, 0); //}); }
public void PlayerCharacterHandlerOnShoot(object sender, PlayerCharacterHandler.OnShootEventArgs e) { UtilsClass.ShakeCamera(0.5f, 0.25f); Vector3 quadPosition = e.gunEndPosition; Vector3 quadSize = new Vector3(0.5f, 1f); DmgPopupPos.Set(playerDamagePopupPlace.position.x, playerDamagePopupPlace.position.y, playerDamagePopupPlace.position.z); CreateWeaponTracer(e.gunEndPosition, e.shootPosition); CreateShootFlash(e.gunEndPosition); ShellParticleSystemHandler.Instance.SpawnShell(quadPosition, new Vector3(1, 1)); RaycastHit2D raycastHit = Physics2D.Raycast(e.gunEndPosition, (e.shootPosition - e.gunEndPosition).normalized, Vector3.Distance(e.gunEndPosition, e.shootPosition)); if (raycastHit.collider != null) { EnemyHealth enemyHealth = raycastHit.collider.GetComponent <EnemyHealth>(); isFollowing = true; StartCoroutine(WaitAfterFollowing()); if (enemyHealth != null) { //Hit enemy int DamageAmount = UnityEngine.Random.Range(10, 100); bool isCritical = UnityEngine.Random.Range(0, 100) < 30; if (isCritical) { DamageAmount *= 2; } //Deal Dmg enemyHealth.TakeDamage(DamageAmount); DamagePopupScript.Create(DmgPopupPos, DamageAmount, isCritical); } } }