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); } } }
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); }
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); }