// Start is called before the first frame update private void OnEnable() { currentState = grappleState.Dead; laser = GetComponent <LineRenderer>(); GetComponent <SpriteRenderer>().color = Color.clear; Joints = new List <Vector3>(); }
private void OnTriggerEnter2D(Collider2D other) { if (currentState != grappleState.Shot) { return; } if (other.tag == "Ground" || other.tag == "Platform") { currentState = grappleState.Pull; GetComponent <Rigidbody2D>().velocity = Vector2.zero; GetComponent <Rigidbody2D>().gravityScale = 0f; catchPos = transform.position; StartCoroutine(PullDelay()); // PlayerCharacter.Singleton.GetFSM().CurrentStateIndex = 14; } else if (other.tag == "Enemy") { currentState = grappleState.Pull; GetComponent <Rigidbody2D>().velocity = Vector2.zero; GetComponent <Rigidbody2D>().gravityScale = 0f; catchPos = transform.position; other.GetComponent <Dummy>().UnitTimeFactor = 0f; hitTarget = other.gameObject; StartCoroutine(PullDelay()); // PlayerCharacter.Singleton.GetFSM().CurrentStateIndex = 14; } }
public void Dead() { currentState = grappleState.Dead; laser.enabled = false; GetComponent <Rigidbody2D>().velocity = Vector2.zero; GetComponent <Rigidbody2D>().simulated = false; GetComponent <Rigidbody2D>().gravityScale = 0f; GetComponent <SpriteRenderer>().color = Color.clear; if (hitTarget) { hitTarget.GetComponent <Dummy>().UnitTimeFactor = 1f; } Joints.Clear(); }
private void Fire() { timeToDie = Time.time + lifetime; transform.position = target.position; Joints.Add(target.position); laser.enabled = true; currentState = grappleState.Shot; Vector2 dir = PlayerCharacter.Singleton.transform.parent.GetComponentInChildren <MouseIndicator>().GetAttackDirection(); transform.right = dir; GetComponent <Rigidbody2D>().gravityScale = 0f; GetComponent <Rigidbody2D>().AddForce(initialForce * dir * 100f); GetComponent <SpriteRenderer>().color = Color.white; GetComponent <Rigidbody2D>().simulated = true; }