public void Execute(CombatHandler handler, StateType statetype) { if (startClip != null) { handler.GetComponent <AudioSource>().clip = startClip; handler.GetComponent <AudioSource>().Play(); } CombatInfo combatInfo = new CombatInfo(statetype, damage, applyVelocity, isKnockDown, stiffTime, isCrit, hitClip); if (combatType == CombatType.Attack) { handler.PrepareAttack(combatInfo); } else if (combatType == CombatType.Project) { Vector3 point = new Vector3(launchPoint.x, launchPoint.y, 0f); int flip = handler.transform.rotation.eulerAngles.y > 90f ? -1 : 1; point.x *= flip; Projectile instance = Object.Instantiate(projectile, handler.transform.position + point, handler.transform.rotation).GetComponent <Projectile>(); instance.ownerId = handler.gameObject.name; instance.combatInfo = combatInfo; } }