void spawnExplosions() { // Spawn explosion effect if (!isServer) { return; } // Spawn AOE stuff GameObject AOE = Instantiate(AOEDamager); AOE.transform.position = transform.position; AreaOfEffectDamage a = AOE.GetComponent <AreaOfEffectDamage>(); a.duration = 0.5f; a.damage = 420; a.radius = 10; a.mapRadius = 10; a.damageGunners = true; Debug.Log("Playing AOE"); NetworkServer.Destroy(gameObject); }
public override void attack() { if (!isServer) { return; } //Explosion effect CmdExplosionFX(); GameObject AOE = (GameObject)Instantiate <UnityEngine.Object>(AOEDamage); AOE.transform.position = transform.position; AreaOfEffectDamage a = AOE.GetComponent <AreaOfEffectDamage>(); a.duration = 2; a.damage = damage; a.radius = playerBlastRadius; a.mapRadius = mapBlastRadius; a.damageMagicians = true; ////all items in blast radius //RaycastHit[] colliders = Physics.SphereCastAll(transform.position, blastRadius, transform.position, 0, mask, QueryTriggerInteraction.UseGlobal); ////loop through every item in blast radius //foreach (RaycastHit nearbyObject in colliders) //{ // if (nearbyObject.collider.tag == PLAYER_TAG) // { // if (nearbyObject.distance >= 0 && nearbyObject.distance < 1) // { // CmdPlayerAttacked(nearbyObject.collider.name, damage); // } // else // { // CmdPlayerAttacked(nearbyObject.collider.name, damage / nearbyObject.distance); // } // } // if (nearbyObject.collider.tag == VOXEL_TAG) // { // //adjust damage so that the further away something is from grenade the less damage it does // if (nearbyObject.distance >= 0 && nearbyObject.distance < 1) // { // CmdVoxelDamaged(nearbyObject.collider.gameObject, envDamage); // weapontype.envDamage? // } // else // { // CmdVoxelDamaged(nearbyObject.collider.gameObject, envDamage / nearbyObject.distance); // weapontype.envDamage? // } // if (nearbyObject.collider.GetComponent<NetHealth>().getHealth() <= damage) // { // //commenting out for now...spawning it on nearbyObject spawns it in the sky for some reason // //CmdVoxelDestructionEffect(nearbyObject.point, nearbyObject.normal); // } // } //} ////destroy grenade when finished exploding //Destroy(gameObject); //------------------------------------ OLD CODE (JUST IN CASE) //all items in blast radius //Collider[] colliders = Physics.OverlapSphere(transform.position, blastRadius); //foreach (Collider nearbyObject in colliders) //{ // float distance = Vector3.Distance(transform.position, nearbyObject.transform.position); // if (nearbyObject.tag == PLAYER_TAG) // CmdPlayerAttacked(nearbyObject.name, damage); // if (nearbyObject.tag == VOXEL_TAG) // { // //adjust damage so that the further away something is from grenade the less damage it does // if (distance >= 0 && distance < 1) // { // CmdVoxelDamaged(nearbyObject.gameObject, damage); // weapontype.envDamage? // } // else // { // CmdVoxelDamaged(nearbyObject.gameObject, damage/distance); // weapontype.envDamage? // } // if (nearbyObject.GetComponent<NetHealth>().getHealth() <= damage) // { // //spawning on grenade for now...spawning it on nearbyObject spawns it in the sky for some reason // CmdVoxelDestructionEffect(transform.position, transform.position.normalized); // } // } //} //------------------------------------------- }