// ================================================== private void Punch(float distance) { float punchAngle = SCR_Helper.AngleBetweenTwoPoint(x, y, bossScript.x, bossScript.y); float punchX = PLAYER_PUNCH_FORCE * SCR_Helper.Sin(punchAngle); float punchY = PLAYER_PUNCH_FORCE * (1 + SCR_Helper.Cos(punchAngle) * 0.33f); float particleX = (x + bossScript.x) * 0.5f; float particleY = (y + bossScript.y) * 0.5f; punchParticle.transform.position = new Vector3(SCR_Gameplay.SCREEN_W * 0.5f + particleX, particleY, punchParticle.transform.position.z); foreach (Transform child in punchParticle.transform) { child.gameObject.SetActive(true); } Material shockMaterial = punchParticle.transform.Find("Shock").GetComponent <Renderer>().sharedMaterial; int index = SCR_Gameplay.instance.comboCount; if (index < 0) { index = 0; } if (index > PUNCH_PARTICLE_COLORS.Length - 1) { index = PUNCH_PARTICLE_COLORS.Length - 1; } shockMaterial.SetColor("_TintColor", PUNCH_PARTICLE_COLORS[index]); bossScript.Punch(punchX, Mathf.Abs(punchY), false); if (ricocheted == true) { bossScript.ShowMoneyBag(); SCR_Gameplay.instance.ShowRicochet(bossScript.x + SCR_Gameplay.SCREEN_W * 0.5f, bossScript.y - SCR_Gameplay.instance.cameraHeight); SCR_Audio.PlayPunchRicochetSound(); int money = RICOCHET_MONEY; if (bossScript.size == BossSize.BIG) { money *= PUNCH_MONEY_BIG_MULTIPLIER; } SCR_Gameplay.instance.AddMoneyAtPosition(money, bossScript.x + SCR_Gameplay.SCREEN_W * 0.5f, bossScript.y - SCR_Gameplay.instance.cameraHeight); } else { SCR_Audio.PlayPunchNormalSound(); int money = PUNCH_MONEY_START + PUNCH_MONEY_STEP * SCR_Gameplay.instance.comboCount; if (bossScript.size == BossSize.BIG) { money *= PUNCH_MONEY_BIG_MULTIPLIER; } SCR_Gameplay.instance.AddMoneyAtPosition( money, bossScript.x + SCR_Gameplay.SCREEN_W * 0.5f, bossScript.y - SCR_Gameplay.instance.cameraHeight); } SCR_Gameplay.instance.PunchSuccess(bossScript.x + SCR_Gameplay.SCREEN_W * 0.5f, bossScript.y - SCR_Gameplay.instance.cameraHeight); punchCount = PLAYER_PUNCH_TIME; }