rendered paste bodyvar 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;
}
}