public override void ActOnce(StateController controller) { GargoyleData data = (GargoyleData)controller.data; data.transform.localScale = new Vector3(data.transform.localScale.x * -1, data.transform.localScale.y, data.transform.localScale.z); data.sight.LostSightOfPlayer(); data.rb.velocity = new Vector2(0, data.rb.velocity.y); data.transform.Translate(new Vector3(-0.8f * data.transform.localScale.x, 0.5f, 0)); }
public override void ActOnce(StateController controller) { GargoyleData data = (GargoyleData)controller.data; data.velocityBeforeFrozen = data.rb.velocity; data.rb.constraints = RigidbodyConstraints2D.FreezeAll; data.gameObject.layer = 8; // Blockable data.playerDamageData.harmful = false; data.SetPlatformEffector(true); }
public override void ActOnce(StateController controller) { GargoyleData data = (GargoyleData)controller.data; data.SetPlatformEffector(false); data.rb.constraints = RigidbodyConstraints2D.FreezeRotation; data.gameObject.layer = 11; // Enemy data.playerDamageData.harmful = true; data.rb.velocity = data.velocityBeforeFrozen; }
public override void ActOnce(StateController controller) { GargoyleData data = (GargoyleData)controller.data; data.switchingCollider = true; data.dashCollider.enabled = false; data.idleCollider.enabled = true; data.ToggleColliderSwitchCoroutine(); }
public override void ActOnce(StateController controller) { GargoyleData data = (GargoyleData)controller.data; data.switchingCollider = true; controller.rb.velocity = new Vector2(0, 0); controller.rb.AddForce(jumpAngle * data.DashForce.y * controller.rb.mass); controller.rb.AddForce(dashAngle * data.DashForce.x * controller.transform.localScale.x * controller.rb.mass); data.dashCollider.enabled = true; data.idleCollider.enabled = false; data.transform.Translate(new Vector3(0.8f * data.transform.localScale.x, 0, 0)); data.ToggleColliderSwitchCoroutine(); }
public override bool?CheckCollisionEnter(StateController controller, Collision2D other) { if (mask == (mask | (1 << other.gameObject.layer))) { GargoyleData data = (GargoyleData)controller.data; if (other.relativeVelocity.magnitude > 1) { data.gargoyleCollideSound.Play(); } if (other.transform.tag == "Breakable") { data.rb.velocity = data.previousVelocity; return(false); } return(true); } return(false); }
public override bool?CheckCondition(StateController controller) { GargoyleData data = (GargoyleData)controller.data; if (data != null && data.sight.PlayerInRange()) { RaycastHit2D hit; if (data.CanSeeThrughWalls) { hit = Physics2D.Linecast(controller.transform.position, data.sight.player.transform.position, seeThroughWalls); } else { hit = Physics2D.Linecast(controller.transform.position, data.sight.player.transform.position, mask); } return(hit.collider.tag == "Player"); } return(false); }
public override void ActOnce(StateController controller) { GargoyleData data = (GargoyleData)controller.data; data.frozenColorBlinkData.Start(data.spriteRenderer); }