public void SpitObject(bool left) { //Instantiate the object being held //Need to reset the state when the animation is completed. //Debug.Log(left); //TODO: Remove this explicit fireball script call. Look into if creating a 'Sin' class would help fix FireballScript fScript = heldObj.GetComponent <FireballScript>(); //Set the held objects position to the players current position and reactivate it, changing it's tag heldObj.transform.position = transform.position; heldObj.SetActive(true); heldObj.tag = "Sin"; if (left) { heldObj.transform.localRotation = Quaternion.Euler(0.0f, 0.0f, 90f); fScript.SetOriginAndTarget(heldObj.transform.position, new Vector2(-50, heldObj.transform.position.y)); } else { heldObj.transform.localRotation = Quaternion.Euler(0f, 0f, -90f); fScript.SetOriginAndTarget(heldObj.transform.position, new Vector2(50, heldObj.transform.position.y)); } heldObj = null; }
public void DestroyTarget(GameObject block) { if (NetworkManager.Instance.IsViewMine(photonView)) { GameObject newFireBall = NetworkManager.Instance.InstantiateGameObject(fireBall.name, attackSpawnLocation.position, Quaternion.Euler(Vector3.zero)); FireballScript fireballScript = newFireBall.GetComponent <FireballScript>(); fireballScript.SetTarget(block); } }
public void SuperAttack() { FireballScript superInstance = Instantiate(superFireballPrefab, transform.position + new Vector3(direction * 5, 0, 0), transform.rotation); superInstance.rb.velocity = new Vector2(direction * superInstance.moveSpeed * Time.fixedDeltaTime, 0); superInstance.SetDirection(direction); superInstance.GetComponent <AttackData>().origin = this; audio.Play("FireballSound"); Debug.Log("Fireball Super"); }
public void Fire(bool fireImmediate = false) { if (readyToFire && !fireballInMouth) { readyToFire = false; GameObject newFireball = new GameObject(transform.name + "_fireball"); newFireball.transform.parent = transform; newFireball.transform.position = transform.position; newFireball.transform.rotation = transform.rotation; currentFireball = Instantiate(FireballPref, newFireball.transform); fireballList.Add(newFireball); if (transform.localScale.y >= 0) { currentFireball.transform.localPosition = mouthPos; } else { currentFireball.transform.localPosition = new Vector3(mouthPos.x, -mouthPos.y, 0); } //currentFireball.transform.localScale = Vector3.one * 0.3f; FireballScript newFireballScript = currentFireball.GetComponent <FireballScript>(); newFireballScript.speed = fireballSpeed + 2 * gameObject.GetComponent <Rigidbody2D>().velocity.magnitude; newFireballScript.lifespan = fireballLifespan; newFireballScript.damage = dragon.damage; newFireballScript.owner = gameObject; newFireballScript.shouldGrow = true; newFireballScript.growingTimer = newFireballScript.maxGrowingTime; fireballInMouth = true; anim.Play("Dragon_Armature|Head_Prepare_Fireball"); for (int i = 0; i < newFireball.transform.childCount; i++) { newFireball.transform.GetChild(i).transform.localScale = Vector3.one * 0.05f; } if (fireImmediate) { fireballIsReleased = true; } currentFireball.transform.localScale = Vector3.one * 1.5f; StartCoroutine(Cooldown()); } }
private void Update() { if (dead) { manager.PlaySound("ed"); alive.enemiesAlive--; Instantiate(deathParticles, new Vector3(transform.position.x, transform.position.y, -1), Quaternion.identity); Destroy(gameObject); } timer -= Time.deltaTime; if (timer < 0) { timer = size; Transform flame = Instantiate(fireBall, transform.position, Quaternion.identity); FireballScript fs = flame.GetComponent <FireballScript>(); Vector2 rot = (transform.position - target.position).normalized; Vector2 dir = (target.position - transform.position).normalized; fs.Setup(size, rot, dir); } }
private void OnTriggerEnter2D(Collider2D collision) { if (collision.tag == "eUltimate") { Destroy(gameObject); } if (!ultimate) { if (collision.tag == "Enemy" || collision.tag == "eHalo") { Destroy(gameObject); } else if (collision.tag == "fireBall") { FireballScript fs = collision.gameObject.GetComponent <FireballScript>(); if (fs.size == 3) { Destroy(gameObject); } } } }
private void OnTriggerEnter2D(Collider2D collision) { if (!dead) { if (collision.tag == "fireBall") { FireballScript fs = collision.GetComponent <FireballScript>(); hp -= fs.size; if (!dead) { manager.PlaySound("ph"); } } else if (collision.tag == "eHalo") { hp -= 2; if (!dead) { manager.PlaySound("ph"); } } else if (collision.tag == "eUltimate") { hp -= 6; if (!dead) { manager.PlaySound("ph"); } } if (hp <= 0) { manager.PlaySound("pd"); StartCoroutine(DeathAnimation()); } } }