Example #1
0
    void meleAttack()
    {
        meleWeap = pStats.meleWeaponSlot.GetComponent<MeleWeapon>();
        maxHitDistance = meleWeap.range;
        damage = meleWeap.damage;

        RaycastHit hit;
        if (Physics.SphereCast(hitColliderOrigin, hitColliderRadius, hitDirection, out hit, maxHitDistance, hitColliderMask, QueryTriggerInteraction.UseGlobal))
        {
            hitObj = hit.collider.gameObject;
            currentHitDistance = hit.distance;
            if (hitObj.GetComponent<Stats>())
            {
            enemyStats = hitObj.GetComponent<Stats>();
            if (enemyStats.characterType == Stats.CharacterType.zombie)
            {
                enemyStats.TakeDamage(damage,pStats);
                hitObj.GetComponent<ZombieControl>().KnockBack(damage,hitDirection);
                Debug.Log( hitObj.name +" got hit for " + damage + " damage.");
            }
           }

        }
        else
        {
            currentHitDistance = maxHitDistance;
        }
    }
    void weaponPickUp()
    {
        // Dropping Previous weapon of that type if we have one
        if (pStats.meleWeaponSlot != null && weaponPrefab.GetComponent <MeleWeapon>())
        {
            GameObject newDrop = Instantiate(pStats.meleWeaponSlot.GetComponent <MeleWeapon>().pickUp, transform.position, transform.rotation);
        }
        else if ((pStats.rangedWeaponSlot != null && weaponPrefab.GetComponent <RangedWeapon>()))
        {
            GameObject   newDrop = Instantiate(pStats.rangedWeaponSlot.GetComponent <RangedWeapon>().pickUp, transform.position, transform.rotation);
            PickUpScript pScript = newDrop.GetComponent <PickUpScript>();
            pScript.Value = pStats.rangedWeaponSlot.GetComponent <RangedWeapon>().ammo;
        }



        if (weaponPrefab.GetComponent <MeleWeapon>())
        {
            if (pStats.selectedWeapon.GetComponent <MeleWeapon>())
            {
                Destroy(pStats.meleWeaponSlot);
                GameObject weap = Instantiate(weaponPrefab, pStats.equippedWeaponPos);
                weap.transform.position = pStats.equippedWeaponPos.position;
                MeleWeapon meleWeaponScript = weap.GetComponent <MeleWeapon>();
                pStats.meleWeaponSlot = weap;
                pStats.selectedWeapon = pStats.meleWeaponSlot;
                meleWeaponScript.pickedUp(player, this);
            }
            else
            {
                Destroy(pStats.meleWeaponSlot);
                GameObject weap = Instantiate(weaponPrefab, pStats.unequippedMeleWeaponPos);
                weap.transform.position = pStats.unequippedMeleWeaponPos.position;
                MeleWeapon meleWeaponScript = weap.GetComponent <MeleWeapon>();
                meleWeaponScript.pickedUp(player, this);
                pStats.meleWeaponSlot = weap;
            }
        }
        else
        {
            if (pStats.selectedWeapon.GetComponent <RangedWeapon>())
            {
                Destroy(pStats.rangedWeaponSlot);
                GameObject weap = Instantiate(weaponPrefab, pStats.equippedWeaponPos);
                weap.transform.position = pStats.equippedWeaponPos.position;
                RangedWeapon rangedWeaponScript = weap.GetComponent <RangedWeapon>();
                rangedWeaponScript.pickedUp(player, this);
                rangedWeaponScript.ammo = Value;
                pStats.rangedWeaponSlot = weap;
                pStats.selectedWeapon   = pStats.rangedWeaponSlot;
            }
            else
            {
                Destroy(pStats.rangedWeaponSlot);
                GameObject weap = Instantiate(weaponPrefab, pStats.unequippedRangedWeaponPos);
                weap.transform.position = pStats.unequippedRangedWeaponPos.position;
                RangedWeapon rangedWeaponScript = weap.GetComponent <RangedWeapon>();
                rangedWeaponScript.pickedUp(player, this);
                rangedWeaponScript.ammo = Value;
                pStats.rangedWeaponSlot = weap;
            }
        }

        Destroy(gameObject);
    }