private void ThrowFire() { GameObject fireBallObject = Instantiate(fireBall, transform.position, transform.rotation) as GameObject; FireProjectileScript projectileScript = fireBallObject.GetComponentInChildren <FireProjectileScript>(); projectileScript.ProjectileExplosionForce = 1000; }
public void Fire(HCI_Project.Library.Avatar avatar) { reloadTimer = avatar.ReloadTimeSpan; for (int i = 0; i < avatar.MissileNumber; i++) { FireProjectileScript fireball = Instantiate(fireballPrefab, transform); fireball.transform.Rotate(0, avatar.MissileNumber / 2 * -5 + 10 * i, 0); fireball.ProjectileColliderSpeed = avatar.MissileSpeed / 2; ParticleSystem fireParticleSystem = fireball.transform.Find("FireboltParticle").GetComponent <ParticleSystem>(); fireParticleSystem.startSpeed = avatar.MissileSpeed / 2; fireParticleSystem.startSize = avatar.MissleRadius * 5; fireball.transform.Find("FireboltCollider").GetComponent <SphereCollider>().radius = avatar.MissleRadius * 2; } }
/// <summary> /// Begin the flamethrower. /// </summary> private void BeginFiring() { if (currentEnergy <= 0.0f) { return; } Vector3 pos; float yRot = transform.rotation.eulerAngles.y; Vector3 forwardY = Quaternion.Euler(0.0f, yRot, 0.0f) * Vector3.forward; Vector3 forward = transform.forward; Vector3 right = transform.right; Vector3 up = transform.up; Quaternion rotation = Quaternion.identity; flamethrowerObject = GameObject.Instantiate(flamethrowerPrefab); flamethrowerScript = flamethrowerObject.GetComponent <FireBaseScript>(); // temporary effect, like a fireball if (flamethrowerScript.IsProjectile) { rotation = transform.rotation; pos = transform.position; } else { pos = transform.position + (forwardY * 10.0f); } FireProjectileScript projectileScript = flamethrowerObject.GetComponentInChildren <FireProjectileScript>(); if (projectileScript != null) { // make sure we don't collide with other friendly layers projectileScript.ProjectileCollisionLayers &= (~UnityEngine.LayerMask.NameToLayer("FriendlyLayer")); } flamethrowerObject.transform.position = pos; flamethrowerObject.transform.rotation = rotation; }
void throwFire() { if (fireTimer < timeBetweenFireFire) { return; } fireTimer = 0.0f; Vector3 pos; Vector3 forward = transform.forward; Vector3 right = transform.right; Vector3 up = (transform.up * 0.8f); Quaternion rotation = Quaternion.identity; GameObject currentPrefabObject; FireBaseScript currentPrefabScript; currentPrefabObject = GameObject.Instantiate(fireEffect); currentPrefabScript = currentPrefabObject.GetComponent <FireConstantBaseScript>(); // temporary effect, like a fireball currentPrefabScript = currentPrefabObject.GetComponent <FireBaseScript>(); currentPrefabScript.ForceAmount = 0; currentPrefabScript.ForceRadius = 0; // set the start point near the player rotation = transform.rotation; pos = transform.position + forward + up; FireProjectileScript projectileScript = currentPrefabObject.GetComponentInChildren <FireProjectileScript>(); projectileScript.ProjectileExplosionForce = 1000; // make sure we don't collide with other friendly layers projectileScript.ProjectileCollisionLayers &= (~UnityEngine.LayerMask.NameToLayer("FriendlyLayer")); currentPrefabObject.transform.position = pos; currentPrefabObject.transform.rotation = rotation; }
//below for magician void AttackByFire(int skillNum) { if (skillNum == 1) { if (!pa.ConsumeMP(20)) { return; } } else if (skillNum == 2) { if (!pa.ConsumeMP(50)) { return; } } Vector3 pos; float yRot = transform.rotation.eulerAngles.y; Vector3 forwardY = Quaternion.Euler(0.0f, yRot, 0.0f) * Vector3.forward; Vector3 forward = transform.forward; Vector3 right = transform.right; Vector3 up = transform.up; Quaternion rotation = Quaternion.identity; currentPrefabObject = GameObject.Instantiate(Prefabs[skillNum]); currentPrefabScript = currentPrefabObject.GetComponent <FireConstantBaseScript>(); if (currentPrefabScript == null) { // temporary effect, like a fireball currentPrefabScript = currentPrefabObject.GetComponent <FireBaseScript>(); if (currentPrefabScript.IsProjectile) { // set the start point near the player rotation = transform.rotation; pos = transform.position + forward + right + up; } else { // set the start point in front of the player a ways pos = transform.position + (forwardY * 10.0f); } } else { // set the start point in front of the player a ways, rotated the same way as the player pos = transform.position + (forwardY * 5.0f); rotation = transform.rotation; pos.y = 0.0f; } FireProjectileScript projectileScript = currentPrefabObject.GetComponentInChildren <FireProjectileScript>(); if (projectileScript != null) { // make sure we don't collide with other fire layers projectileScript.ProjectileCollisionLayers &= (~UnityEngine.LayerMask.NameToLayer("FireLayer")); } currentPrefabObject.transform.position = pos; currentPrefabObject.transform.rotation = rotation; }