private void castElementStyleCombo() { Debug.Log("Using " + current_element + " + " + current_style); if (current_element == Element.Wind && current_style == Style.Hawk) { GetComponent<Animator>().SetBool("is_dashing", true); movable.AddForce(transform.up * movable.speed * 5, ForceMode2D.Impulse, .2f); } else if (current_element == Element.Wind && current_style == Style.Tiger) { GameObject clone = Instantiate(wind_tiger_whip, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent<Collider2D>(), GetComponent<Collider2D>()); clone.GetComponent<WindTigerWhipEffect>().source = GetComponent<Movable>(); } else if (current_element == Element.Wind && current_style == Style.Turtle) { GameObject clone = Instantiate(wind_turtle, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent<Collider2D>(), GetComponent<Collider2D>()); clone.GetComponent<WindTurtleEffect>().SetFollowing(transform); } else if (current_element == Element.Wind && current_style == Style.Bear) { GameObject clone = Instantiate(wind_bear, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent<Collider2D>(), GetComponent<Collider2D>()); } else if (current_element == Element.Earth && current_style == Style.Hawk) { GameObject clone = Instantiate(earth_hawk, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent<Collider2D>(), GetComponent<Collider2D>()); clone.GetComponent<Rigidbody2D>().velocity = transform.up * 2; movable.AddForce(-transform.up * movable.speed * 2.5f, ForceMode2D.Impulse, .2f); GetComponent<Animator>().SetBool("is_dashing", true); } else if (current_element == Element.Earth && current_style == Style.Bear) { movable.AddForce(Vector3.zero, ForceMode2D.Force, 1f); GetComponent<Animator>().SetBool("is_walking", false); } else if (current_element == Element.Earth && current_style == Style.Tiger) { movable.SetRotation(-180f, .125f); GameObject go = Instantiate(earth_tiger, transform.position + (-transform.up - transform.right).normalized, Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z - 135)) as GameObject; go.transform.parent = transform; } else if (current_element == Element.Earth && current_style == Style.Turtle) { GameObject clone = Instantiate(earth_turtle, transform.position + transform.right, transform.rotation) as GameObject; EarthTurtleEffect earth_turtle_effect = clone.GetComponent<EarthTurtleEffect>(); earth_turtle_effect.source = movable; earth_turtle_effect.lifetime = 10; } else if (current_element == Element.Water && current_style == Style.Hawk) { Instantiate(water_hawk, transform.position + transform.up + transform.up, transform.rotation); } else if (current_element == Element.Water && current_style == Style.Bear) { Instantiate(water_bear, transform.position, transform.rotation); } else if (current_element == Element.Water && current_style == Style.Turtle) { GameObject clone = Instantiate(water_turtle, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent<Collider2D>(), GetComponent<Collider2D>()); clone.GetComponent<WaterTurtleEffect>().SetFollowing(transform); } else if (current_element == Element.Water && current_style == Style.Tiger) { GameObject clone = Instantiate(water_tiger, transform.position, transform.rotation) as GameObject; clone.transform.SetParent(transform); } else if (current_element == Element.Fire && current_style == Style.Hawk) { castFireHawk(transform.up, transform.rotation); castFireHawk(transform.up + transform.right, Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z - 45)); castFireHawk(transform.up - transform.right, Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + 45)); } else if (current_element == Element.Fire && current_style == Style.Bear) { GameObject clone = Instantiate(fire_bear, transform.position + transform.up, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent<Collider2D>(), GetComponent<Collider2D>()); FireBearEffect fire_bear_effect = clone.GetComponent<FireBearEffect>(); if(current_fire_bear_effect != null) { current_fire_bear_effect.ExplodeTowards((fire_bear_effect.transform.position - current_fire_bear_effect.transform.position).normalized , fire_bear_effect.transform.position + fire_bear_effect.transform.up * .5f); fire_bear_effect.ExplodeTowards((current_fire_bear_effect.transform.position - fire_bear_effect.transform.position).normalized, current_fire_bear_effect.transform.position - current_fire_bear_effect.transform.up * .5f); current_fire_bear_effect = null; } else { current_fire_bear_effect = fire_bear_effect; } } else if (current_element == Element.Fire && current_style == Style.Tiger) { spawnFireTiger(transform.right * 1.2f, transform.rotation); } else if (current_element == Element.Fire && current_style == Style.Turtle) { GameObject clone = Instantiate(fire_turtle, transform.position, transform.rotation) as GameObject; clone.transform.parent = transform; Physics2D.IgnoreCollision(clone.GetComponent<Collider2D>(), GetComponent<Collider2D>()); fire_turtle_effect = clone.GetComponent<FireTurtleEffect>(); } }
void Update() { if (fire_turtle_effect != null && Input.GetKeyUp(KeyCode.RightArrow)) { fire_turtle_effect.Explode(); fire_turtle_effect = null; } if (Input.GetKeyDown(KeyCode.UpArrow)) { if (next_element == Element.None) { next_element = Element.Wind; } else { current_element = next_element; current_style = Style.Hawk; next_element = Element.None; castElementStyleCombo(); } } else if (Input.GetKeyDown(KeyCode.DownArrow)) { if (next_element == Element.None) { next_element = Element.Earth; } else { current_element = next_element; current_style = Style.Bear; next_element = Element.None; castElementStyleCombo(); } } else if (Input.GetKeyDown(KeyCode.LeftArrow)) { if (next_element == Element.None) { next_element = Element.Water; } else { current_element = next_element; current_style = Style.Tiger; next_element = Element.None; castElementStyleCombo(); } } else if (Input.GetKeyDown(KeyCode.RightArrow)) { if (next_element == Element.None) { next_element = Element.Fire; } else { current_element = next_element; current_style = Style.Turtle; next_element = Element.None; castElementStyleCombo(); } } if (Input.GetKeyDown("`")) { Destroy(gameObject); } }
private void castElementStyleCombo() { Debug.Log("Using " + current_element + " + " + current_style); if (current_element == Element.Wind && current_style == Style.Hawk) { GetComponent <Animator>().SetBool("is_dashing", true); movable.AddForce(transform.up * movable.speed * 5, ForceMode2D.Impulse, .2f); } else if (current_element == Element.Wind && current_style == Style.Tiger) { GameObject clone = Instantiate(wind_tiger_whip, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent <Collider2D>(), GetComponent <Collider2D>()); clone.GetComponent <WindTigerWhipEffect>().source = GetComponent <Movable>(); } else if (current_element == Element.Wind && current_style == Style.Turtle) { GameObject clone = Instantiate(wind_turtle, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent <Collider2D>(), GetComponent <Collider2D>()); clone.GetComponent <WindTurtleEffect>().SetFollowing(transform); } else if (current_element == Element.Wind && current_style == Style.Bear) { GameObject clone = Instantiate(wind_bear, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent <Collider2D>(), GetComponent <Collider2D>()); } else if (current_element == Element.Earth && current_style == Style.Hawk) { GameObject clone = Instantiate(earth_hawk, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent <Collider2D>(), GetComponent <Collider2D>()); clone.GetComponent <Rigidbody2D>().velocity = transform.up * 2; movable.AddForce(-transform.up * movable.speed * 2.5f, ForceMode2D.Impulse, .2f); GetComponent <Animator>().SetBool("is_dashing", true); } else if (current_element == Element.Earth && current_style == Style.Bear) { movable.AddForce(Vector3.zero, ForceMode2D.Force, 1f); GetComponent <Animator>().SetBool("is_walking", false); } else if (current_element == Element.Earth && current_style == Style.Tiger) { movable.SetRotation(-180f, .125f); GameObject go = Instantiate(earth_tiger, transform.position + (-transform.up - transform.right).normalized, Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z - 135)) as GameObject; go.transform.parent = transform; } else if (current_element == Element.Earth && current_style == Style.Turtle) { GameObject clone = Instantiate(earth_turtle, transform.position + transform.right, transform.rotation) as GameObject; EarthTurtleEffect earth_turtle_effect = clone.GetComponent <EarthTurtleEffect>(); earth_turtle_effect.source = movable; earth_turtle_effect.lifetime = 10; } else if (current_element == Element.Water && current_style == Style.Hawk) { Instantiate(water_hawk, transform.position + transform.up + transform.up, transform.rotation); } else if (current_element == Element.Water && current_style == Style.Bear) { Instantiate(water_bear, transform.position, transform.rotation); } else if (current_element == Element.Water && current_style == Style.Turtle) { GameObject clone = Instantiate(water_turtle, transform.position, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent <Collider2D>(), GetComponent <Collider2D>()); clone.GetComponent <WaterTurtleEffect>().SetFollowing(transform); } else if (current_element == Element.Water && current_style == Style.Tiger) { GameObject clone = Instantiate(water_tiger, transform.position, transform.rotation) as GameObject; clone.transform.SetParent(transform); } else if (current_element == Element.Fire && current_style == Style.Hawk) { castFireHawk(transform.up, transform.rotation); castFireHawk(transform.up + transform.right, Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z - 45)); castFireHawk(transform.up - transform.right, Quaternion.Euler(0, 0, transform.rotation.eulerAngles.z + 45)); } else if (current_element == Element.Fire && current_style == Style.Bear) { GameObject clone = Instantiate(fire_bear, transform.position + transform.up, transform.rotation) as GameObject; Physics2D.IgnoreCollision(clone.GetComponent <Collider2D>(), GetComponent <Collider2D>()); FireBearEffect fire_bear_effect = clone.GetComponent <FireBearEffect>(); if (current_fire_bear_effect != null) { current_fire_bear_effect.ExplodeTowards((fire_bear_effect.transform.position - current_fire_bear_effect.transform.position).normalized, fire_bear_effect.transform.position + fire_bear_effect.transform.up * .5f); fire_bear_effect.ExplodeTowards((current_fire_bear_effect.transform.position - fire_bear_effect.transform.position).normalized, current_fire_bear_effect.transform.position - current_fire_bear_effect.transform.up * .5f); current_fire_bear_effect = null; } else { current_fire_bear_effect = fire_bear_effect; } } else if (current_element == Element.Fire && current_style == Style.Tiger) { spawnFireTiger(transform.right * 1.2f, transform.rotation); } else if (current_element == Element.Fire && current_style == Style.Turtle) { GameObject clone = Instantiate(fire_turtle, transform.position, transform.rotation) as GameObject; clone.transform.parent = transform; Physics2D.IgnoreCollision(clone.GetComponent <Collider2D>(), GetComponent <Collider2D>()); fire_turtle_effect = clone.GetComponent <FireTurtleEffect>(); } }