Beispiel #1
0
    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);
    }
Beispiel #2
0
    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);
        //        }
        //    }
        //}
        //-------------------------------------------
    }