var relative : boolean; var rot : Vector3; var apagavel : boolean; var sangue : boolean; var exposure : float; var pancada : float; var HitPlayer : boolean; var HitEnemy : boolean; var explosion : Transform; var force : float; var radius : float; var timeOut = 2.0; var inflamavel : boolean; var rotateBullet : boolean; var rotateR : float; var rotateF : float; var rotateU : float; var pai : Transform; var hitJustPlayer : boolean; private var pipoco : Transform; private var pcount : explosionMeelee; private var contact : ContactPoint; private var rotation : Quaternion; var seletiva : boolean; var timexplode : float = 20; var tx : float; var canexplode : boolean = true; var imi : boolean; function Start () { Invoke("Kill", timeOut); Invoke ("explode", timexplode); tx = Time.time + timexplode; if(timexplode < 0.2){ imi = true; } } function Update(){ if(Time.time > tx){ explode(); } if(pai){ transform.position = pai.position; if(!rotateBullet){ transform.rotation = pai.rotation; } } if(rotateBullet){ transform.Rotate(Vector3.right * Time.deltaTime*rotateR); transform.Rotate(Vector3.forward * Time.deltaTime*rotateF); transform.Rotate(Vector3.up * Time.deltaTime*rotateU, Space.World); } } function OnCollisionEnter (other : Collision) { if(!imi){ if(hitJustPlayer){ if(other.gameObject.tag == "Player"){ canexplode = false; gameObject.transform.collider.isTrigger = true; contact = other.contacts[0]; rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); yield WaitForSeconds (0.1); rot = rigidbody.velocity; pipoco = Instantiate (explosion, contact.point, rotation); pcount = pipoco.GetComponent(explosionMeelee); pcount.dano = pancada; pcount.explosionPower = force; pcount.explosionRadius = radius; pcount.inflamavel = inflamavel; pcount.HitPlayer = true; pcount.HitEnemy = false; pcount.sangue = sangue; pcount.relative = relative; pcount.rot = rot; Kill (); } } if(!hitJustPlayer){ if(seletiva){ if(other.gameObject.tag == "pegavelE"){ canexplode = false; gameObject.transform.collider.isTrigger = true; contact = other.contacts[0]; rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); yield WaitForSeconds (0.1); rot = rigidbody.velocity; pipoco = Instantiate (explosion, contact.point, rotation); pcount = pipoco.GetComponent(explosionMeelee); pcount.dano = pancada; pcount.explosionPower = force; pcount.explosionRadius = radius; pcount.inflamavel = inflamavel; pcount.HitPlayer = HitPlayer; pcount.HitEnemy = HitEnemy; pcount.sangue = sangue; pcount.relative = relative; pcount.rot = rot; Kill (); } if(other.gameObject.tag == "meelee"){ canexplode = false; gameObject.transform.collider.isTrigger = true; contact = other.contacts[0]; rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); yield WaitForSeconds (0.1); rot = rigidbody.velocity; pipoco = Instantiate (explosion, contact.point, rotation); pcount = pipoco.GetComponent(explosionMeelee); pcount.dano = pancada; pcount.explosionPower = force; pcount.explosionRadius = radius; pcount.inflamavel = inflamavel; pcount.HitPlayer = HitPlayer; pcount.HitEnemy = HitEnemy; pcount.sangue = sangue; pcount.relative = relative; pcount.rot = rot; Kill (); } if(other.gameObject.tag == "enemy"){ canexplode = false; gameObject.transform.collider.isTrigger = true; contact = other.contacts[0]; rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); yield WaitForSeconds (0.1); rot = rigidbody.velocity; pipoco = Instantiate (explosion, contact.point, rotation); pcount = pipoco.GetComponent(explosionMeelee); pcount.dano = pancada; pcount.explosionPower = force; pcount.explosionRadius = radius; pcount.inflamavel = inflamavel; pcount.HitPlayer = HitPlayer; pcount.HitEnemy = HitEnemy; pcount.sangue = sangue; pcount.relative = relative; pcount.rot = rot; Kill (); } } if(!seletiva){ if(other.gameObject){ canexplode = false; gameObject.transform.collider.isTrigger = true; contact = other.contacts[0]; rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); yield WaitForSeconds (0.1); rot = rigidbody.velocity; pipoco = Instantiate (explosion, contact.point, rotation); pcount = pipoco.GetComponent(explosionMeelee); pcount.dano = pancada; pcount.explosionPower = force; pcount.explosionRadius = radius; pcount.inflamavel = inflamavel; pcount.HitPlayer = HitPlayer; pcount.HitEnemy = HitEnemy; pcount.sangue = sangue; pcount.relative = relative; pcount.rot = rot; Kill (); } } } } } function OnTriggerEnter(other : Collider){ if(apagavel && other.gameObject.tag == "agua"){ Destroy(gameObject); } } function Kill (){ var emitter : ParticleEmitter= GetComponentInChildren(ParticleEmitter); if (emitter) emitter.emit = false; transform.DetachChildren(); Destroy(gameObject); } @script RequireComponent (Rigidbody) function explode(){ if(canexplode){ canexplode = false; var emitter : ParticleEmitter= GetComponentInChildren(ParticleEmitter); if(hitJustPlayer){ pipoco = Instantiate (explosion, pai.position, Quaternion.identity); pcount = pipoco.GetComponent(explosionMeelee); pcount.dano = pancada; pcount.explosionPower = force; pcount.explosionRadius = radius; pcount.inflamavel = inflamavel; pcount.HitPlayer = true; pcount.HitEnemy = false; pcount.sangue = sangue; pcount.relative = relative; pcount.rot = rot; if (emitter){ emitter.emit = false; transform.DetachChildren(); Destroy(gameObject); } return; } if(!hitJustPlayer){ //gameObject.transform.collider.isTrigger = true; //rotation = Quaternion.FromToRotation(Vector3.up, contact.normal); //yield WaitForSeconds (0.1); //rot = rigidbody.velocity; pipoco = Instantiate (explosion, pai.position, Quaternion.identity); pcount = pipoco.GetComponent(explosionMeelee); pcount.dano = pancada; pcount.explosionPower = force; pcount.explosionRadius = radius; pcount.inflamavel = inflamavel; pcount.HitPlayer = HitPlayer; pcount.HitEnemy = HitEnemy; pcount.sangue = sangue; pcount.relative = relative; pcount.rot = rot; if (emitter){ emitter.emit = false; transform.DetachChildren(); Destroy(gameObject); } return; } return; } }