Example #1
0
    void Start()
    {
        dataItem     = database.GetComponent <ItemData>();
        gun          = GetComponent <GunTrigger>();
        originalRect = windowRect;
        SetEquipmentStatus();
        if (autoAssignWeapon)
        {
            //yield return new WaitForSeconds(0.2f);
            if (cancelAssign)
            {
                return;
            }
            int e = primaryEquip;
            if (e > 0)
            {
                EquipItem(e, equipment.Length + 5);
                gun.primaryWeapon.ammo = dataItem.equipment[e].maxAmmo;
            }

            e = secondaryEquip;
            if (e > 0)
            {
                EquipItem(e, equipment.Length + 5);
                gun.secondaryWeapon.ammo = dataItem.equipment[e].maxAmmo;
            }

            e = meleeEquip;
            if (e > 0)
            {
                EquipItem(e, equipment.Length + 5);
            }
        }
    }
Example #2
0
    void  Equip(GameObject other)
    {
        database = other.GetComponent <Inventory>().database;
        dataItem = database.GetComponent <ItemData>();
        GunTrigger gun           = other.GetComponent <GunTrigger>();
        Inventory  inven         = other.GetComponent <Inventory>();
        int        tempEquipment = 0;
        int        tempAmmo      = 0;

        if (dataItem.equipment[equipmentId].equipmentType == EqType.PrimaryWeapon)
        {
            tempEquipment = inven.primaryEquip;
            tempAmmo      = gun.primaryWeapon.ammo;

            inven.EquipItem(equipmentId, inven.equipment.Length + 5);
            gun.primaryWeapon.ammo = ammo;
            if (forceSwap && gun.weaponEquip != 0)
            {
                gun.ForceSwap();
            }
        }
        else if (dataItem.equipment[equipmentId].equipmentType == EqType.SecondaryWeapon)
        {
            tempEquipment = inven.secondaryEquip;
            tempAmmo      = gun.secondaryWeapon.ammo;

            inven.EquipItem(equipmentId, inven.equipment.Length + 5);
            gun.secondaryWeapon.ammo = ammo;
            if (forceSwap && gun.weaponEquip != 1)
            {
                gun.ForceSwap();
            }
        }
        else if (dataItem.equipment[equipmentId].equipmentType == EqType.MeleeWeapon)
        {
            tempEquipment = inven.meleeEquip;
            inven.EquipItem(equipmentId, inven.equipment.Length + 5);
        }
        else
        {
            tempEquipment = inven.armorEquip;
            inven.EquipItem(equipmentId, inven.equipment.Length + 5);
        }
        inven.AddEquipment(tempEquipment, tempAmmo);

        master = transform.root;
        Destroy(master.gameObject);
    }
Example #3
0
    public void EquipItem(int id, int slot)
    {
        if (id == 0)
        {
            return;
        }
        dataItem = database.GetComponent <ItemData>();
        gun      = GetComponent <GunTrigger>();
        //Backup Your Current Equipment before Unequip
        int tempEquipment = 0;
        int tempAmmo      = 0;

        if (dataItem.equipment[id].equipmentType == EqType.PrimaryWeapon)
        {
            //Primary Weapon
            tempEquipment = primaryEquip;
            tempAmmo      = gun.primaryWeapon.ammo;
            primaryEquip  = id;
            if (slot <= equipment.Length)
            {
                gun.primaryWeapon.ammo = equipAmmo[slot];
            }
            if (dataItem.equipment[id].attackPrefab)
            {
                gun.primaryWeapon.bulletPrefab = dataItem.equipment[id].attackPrefab;
            }
            //Change Weapon Mesh
            if (dataItem.equipment[id].model && gun.weaponPosition)
            {
                //gun.primaryWeaponModel.SetActive(true);
                GameObject wea = Instantiate(dataItem.equipment[id].model, gun.weaponPosition.position, gun.weaponPosition.rotation) as GameObject;
                wea.transform.parent = gun.weaponPosition;

                //Set new Attack Point.
                if (wea.GetComponent <WeaponAttackPoint>())
                {
                    //Get Attack Point from WeaponAttackPoint of new weapon's model
                    gun.primaryWeapon.weaponAtkPoint = wea.GetComponent <WeaponAttackPoint>().attackPoint;
                }
                else
                {
                    GameObject n = new GameObject();
                    n.transform.parent = wea.transform;
                    gun.primaryWeapon.weaponAtkPoint = n.transform;
                }
                if (gun.primaryWeaponModel)
                {
                    Destroy(gun.primaryWeaponModel.gameObject);
                }
                gun.primaryWeaponModel = wea;
            }
        }
        else if (dataItem.equipment[id].equipmentType == EqType.SecondaryWeapon)
        {
            //Secondary Weapon
            if (dataItem.equipment[id].attackPrefab)
            {
                gun.secondaryWeapon.bulletPrefab = dataItem.equipment[id].attackPrefab;
            }
            tempEquipment  = secondaryEquip;
            tempAmmo       = gun.secondaryWeapon.ammo;
            secondaryEquip = id;
            if (slot <= equipment.Length)
            {
                gun.secondaryWeapon.ammo = equipAmmo[slot];
            }
            //Change Weapon Mesh
            if (dataItem.equipment[id].model && gun.weaponPosition)
            {
                //gun.secondaryWeaponModel.SetActive(true);
                GameObject wea = Instantiate(dataItem.equipment[id].model, gun.weaponPosition.position, gun.weaponPosition.rotation) as GameObject;
                wea.transform.parent = gun.weaponPosition;

                //Set new Attack Point.
                if (wea.GetComponent <WeaponAttackPoint>())
                {
                    //Get Attack Point from WeaponAttackPoint of new weapon's model
                    gun.secondaryWeapon.weaponAtkPoint = wea.GetComponent <WeaponAttackPoint>().attackPoint;
                }
                else
                {
                    GameObject n = new GameObject();
                    n.transform.parent = wea.transform;
                    gun.secondaryWeapon.weaponAtkPoint = n.transform;
                }

                if (gun.secondaryWeaponModel)
                {
                    Destroy(gun.secondaryWeaponModel.gameObject);
                }
                gun.secondaryWeaponModel = wea;
            }
        }
        else if (dataItem.equipment[id].equipmentType == EqType.MeleeWeapon)
        {
            //Melee Weapon
            if (dataItem.equipment[id].attackPrefab)
            {
                gun.meleeAttack.meleePrefab = dataItem.equipment[id].attackPrefab;
            }
            tempEquipment = meleeEquip;
            meleeEquip    = id;
            //Change Weapon Mesh
            if (dataItem.equipment[id].model && gun.weaponPosition)
            {
                GameObject wea = Instantiate(dataItem.equipment[id].model, gun.weaponPosition.transform.position, gun.weaponPosition.transform.rotation) as GameObject;
                wea.transform.parent = gun.weaponPosition;
                if (gun.meleeWeaponModel)
                {
                    Destroy(gun.meleeWeaponModel.gameObject);
                }
                gun.meleeWeaponModel = wea;
                gun.meleeWeaponModel.SetActive(false);
            }
        }
        else
        {
            //Armor
            tempEquipment = armorEquip;
            armorEquip    = id;
        }

        if (slot <= equipment.Length)
        {
            equipment[slot] = 0;
            equipAmmo[slot] = 0;
            AddEquipment(tempEquipment, tempAmmo);
        }
        //Assign Weapon Value from Database to GunTrigger
        SetWeaponValue(id);
        //Assign Weapon Animation to PlayerLegacyAnimation Script
        AssignWeaponAnimation(id);
        //Reset Power of Current Weapon & Armor
        SetEquipmentStatus();
        GetComponent <GunTrigger>().SettingWeapon();

        AutoSortEquipment();
        //AddEquipment(tempEquipment , tempAmmo);
    }