Ejemplo n.º 1
0
    //Activates a weapon and throws it to the ground
    public void DropRangedWeapon(RangedWeapon_Class rangedWeaponToDrop)
    {
        //RangedWeapons[EquippedRangedWeaponIndex].Refresh();
        if (RangedWeapons[EquippedRangedWeaponIndex] != null)
        {
            RangedWeapons[EquippedRangedWeaponIndex] = null;
        }
        rangedWeaponToDrop.transform.position = ItemDropPosition.position;
        rangedWeaponToDrop.transform.rotation = ItemDropPosition.rotation;
        rangedWeaponToDrop.transform.parent   = null;
        Rigidbody tempRB = rangedWeaponToDrop.gameObject.GetComponent <Rigidbody>();

        if (tempRB == null)
        {
            rangedWeaponToDrop.gameObject.AddComponent <Rigidbody>();
        }
        Rigidbody weaponToDrop = rangedWeaponToDrop.GetComponent <Rigidbody>();

        weaponToDrop.AddForce(weaponToDrop.transform.forward * WeaponDropForce);
        if (rangedWeaponToDrop.currentAmmo == 0 && rangedWeaponToDrop.reserveAmmo == 0)
        {
            Destroy(rangedWeaponToDrop.gameObject);
        }
        if (rangedWeaponToDrop != null)
        {
            rangedWeaponToDrop.TurnOnInteraction();
        }
    }
Ejemplo n.º 2
0
    //Activates the weapon we want and deactivates the rest
    public void SelectWeaponToEquip()
    {
        EquippedRangedWeaponScipt = null;

        int i = 0;

        foreach (RangedWeapon_Class weapon in RangedWeapons)
        {
            if (weapon != null)
            {
                weapon.TurnOffInteraction();

                if (i == EquippedRangedWeaponIndex)
                {
                    weapon.gameObject.SetActive(true);
                    EquippedRangedWeaponScipt = weapon;
                    EquippedRangedWeaponScipt.Refresh();
                }
                else
                {
                    weapon.gameObject.SetActive(false);
                }
            }

            i++;
        }

        if (RangedWeapons[EquippedRangedWeaponIndex] == null)
        {
            EquippedRangedWeaponScipt = null;
        }
    }
Ejemplo n.º 3
0
 void Start()
 {
     EquippedRangedWeapon = GetComponentInChildren<RangedWeapon_Class>();
     EquippedRangedWeapon.TurnOffInteraction();
     StartCoroutine(DetectAllEnemies());
     StartCoroutine(DetectAllLOSEnemies());
     StartCoroutine(DetectBestTarget());
     StartCoroutine(Aim());
     StartCoroutine(ShootAt());
 }
Ejemplo n.º 4
0
    public void SwapWeapon(MasterInventory_Class inventory)
    {
        RangedWeapon_Class WeaponToGive = EquippedRangedWeapon;
        RangedWeapon_Class WeaponToTake = inventory.EquippedRangedWeaponScipt;

        int x = 0;

        foreach (RangedWeapon_Class w in inventory.RangedWeapons)
        {
            if (w != null)
            {
                if (WeaponToGive.weaponName == w.weaponName)
                {
                    x++;
                }
            }
        }

        if (x > 0)
        {
            Debug.Log("hit case 1");
            //Do nothing
            //Make this destroy the weapon we dont want anymore later.
        }

        else
        {
            Debug.Log("hit case 2");


            //give old weapon to the player
            //move to position
            //equip new weapon
            //move to posiiton
            inventory.DropRangedWeapon(WeaponToTake);

            WeaponToGive.MoveToPosition(inventory.RangedWeaponPosition);
            inventory.EquipNewRangedWeapon(WeaponToGive);

            WeaponToTake.gameObject.SetActive(true);

            WeaponToTake.MoveToPosition(GunPosition);
            Debug.Log("Moved Weapon to correct spot");

            EquippedRangedWeapon = WeaponToTake;
            Debug.Log("Replaced old weapon");

            EquippedRangedWeapon.TurnOffInteraction();
        }
    }
Ejemplo n.º 5
0
    public void DropEverything()
    {
        foreach (RangedWeapon_Class x in RangedWeapons)
        {
            if (x != null)
            {
                //RangedWeapons[EquippedRangedWeaponIndex].Refresh();
                //RangedWeapons[EquippedRangedWeaponIndex] = null;
                x.gameObject.SetActive(true);
                x.transform.position = ItemDropPosition.position;
                x.transform.rotation = ItemDropPosition.rotation;
                x.transform.parent   = null;
                x.gameObject.AddComponent <Rigidbody>();
                Rigidbody weaponToDrop = x.GetComponent <Rigidbody>();
                weaponToDrop.AddForce(weaponToDrop.transform.forward * WeaponDropForce);
                if (x.currentAmmo == 0 && x.reserveAmmo == 0)
                {
                    Destroy(x.gameObject);
                }
                if (x != null)
                {
                    x.TurnOnInteraction();
                }
            }
        }

        for (int i = 0; i < RangedWeapons.Count; i++)
        {
            RangedWeapons[i] = null;
        }

        if (EquippedRangedWeaponScipt != null)
        {
            DropRangedWeapon(EquippedRangedWeaponScipt);
        }

        EquippedRangedWeaponScipt = null;

        EquippedRangedWeaponIndex = 0;

        if (EquippedThrowableScript != null)
        {
            DropThrowable(EquippedThrowableScript);
            EquippedThrowableScript = null;
        }
    }
Ejemplo n.º 6
0
    //Allows a new weapon to enter the inventory, if the inventory is full, a weapon is dropped
    public void EquipNewRangedWeapon(RangedWeapon_Class WeaponToPickUp)
    {
        readyToEquip = false;

        int WeaponCount = 0;
        RangedWeapon_Class DuplicateWeaponAlreadyHeld = null;
        int WeaponSlotToFill = 0;

        foreach (RangedWeapon_Class i in RangedWeapons)
        {
            if (i != null && i.weaponName == WeaponToPickUp.weaponName)
            {
                DuplicateWeaponAlreadyHeld = i;
            }
        }

        if (DuplicateWeaponAlreadyHeld != null && DuplicateWeaponAlreadyHeld != WeaponToPickUp)
        {
            DuplicateWeaponAlreadyHeld.AddAmmo(WeaponToPickUp.currentAmmo + WeaponToPickUp.reserveAmmo);
            Destroy(WeaponToPickUp.gameObject);

            StartCoroutine(EquipCoolDown());
        }

        else
        {
            foreach (RangedWeapon_Class i in RangedWeapons)
            {
                if (i != null)
                {
                    WeaponCount++;
                }
            }

            if (WeaponCount == RangedWeapons.Count)
            {
                DropRangedWeapon(EquippedRangedWeaponScipt);
            }

            foreach (RangedWeapon_Class weapon in RangedWeapons)
            {
                if (weapon == null)
                {
                    WeaponSlotToFill = RangedWeapons.IndexOf(weapon);
                }
            }

            //WeaponToPickUp.MoveToPosition(RangedWeaponPosition);

            RangedWeapons[WeaponSlotToFill] = WeaponToPickUp;

            EquippedRangedWeaponScipt = WeaponToPickUp;

            //EquippedRangedWeaponScipt.transform.localScale = new Vector3 (1,1,1);

            //EquippedRangedWeaponIndex = RangedWeapons.IndexOf(EquippedRangedWeaponScipt);

            SelectWeaponToEquip();

            StartCoroutine(EquipCoolDown());
        }
    }
Ejemplo n.º 7
0
 //Fires the weapon
 public void Shoot(RangedWeapon_Class Weapon)
 {
     Weapon.Fire();
 }