void Update() { if (weapon != null) { if (weapon.GetComponent <UnfinishedWeaponData> () != null) { UnfinishedWeaponData data = weapon.GetComponent <UnfinishedWeaponData> (); if (data.crossguard != null && data.grip != null && data.pommel != null) { for (int i = 0; i < database.weaponItems.Count; i++) { if (database.weaponItems [i].GetComponent <WeaponData> ().itemName == data.itemName) { GameObject createdWeapon = GameObject.Instantiate(database.weaponItems [i], spawnLoc.position, Quaternion.identity); for (int x = 0; x < database.parts.Count; x++) { if (database.parts [x].GetComponent <ItemData> ().itemName == data.crossguard.GetComponent <ItemData> ().itemName) { GameObject newGuard = Instantiate(database.parts [x], createdWeapon.transform); Destroy(newGuard.GetComponent <Rigidbody> ()); Destroy(newGuard.GetComponent <BoxCollider> ()); Destroy(newGuard.GetComponent <MeshCollider> ()); createdWeapon.GetComponent <WeaponData> ().crossguard = newGuard; createdWeapon.GetComponent <WeaponData> ().crossguard.transform.localPosition = weapon.GetComponent <UnfinishedWeaponData> ().crossguardPos.localPosition; createdWeapon.GetComponent <WeaponData> ().crossguard.transform.localRotation = Quaternion.identity; } if (database.parts [x].GetComponent <ItemData> ().itemName == data.grip.GetComponent <ItemData> ().itemName) { GameObject newGrip = Instantiate(database.parts [x], createdWeapon.transform); Destroy(newGrip.GetComponent <Rigidbody> ()); Destroy(newGrip.GetComponent <BoxCollider> ()); Destroy(newGrip.GetComponent <MeshCollider> ()); createdWeapon.GetComponent <WeaponData> ().grip = newGrip; createdWeapon.GetComponent <WeaponData> ().grip.transform.localPosition = weapon.GetComponent <UnfinishedWeaponData> ().gripPos.localPosition; createdWeapon.GetComponent <WeaponData> ().grip.transform.localRotation = Quaternion.identity; } if (database.parts [x].GetComponent <ItemData> ().itemName == data.pommel.GetComponent <ItemData> ().itemName) { GameObject newPommel = Instantiate(database.parts [x], createdWeapon.transform); Destroy(newPommel.GetComponent <Rigidbody> ()); Destroy(newPommel.GetComponent <BoxCollider> ()); Destroy(newPommel.GetComponent <MeshCollider> ()); createdWeapon.GetComponent <WeaponData> ().pommel = newPommel; createdWeapon.GetComponent <WeaponData> ().pommel.transform.localPosition = weapon.GetComponent <UnfinishedWeaponData> ().pommelPos.localPosition; createdWeapon.GetComponent <WeaponData> ().pommel.transform.localRotation = Quaternion.identity; } } } } Destroy(weapon); } } } }
public void DoInteraction(ItemData Weapon) { if (weapon == null) { if (Weapon.GetComponent <ItemData> ().itemName == "Iron Curved Blade" || Weapon.GetComponent <ItemData> ().itemName == "Iron Straight Blade" || Weapon.GetComponent <ItemData> ().itemName == "Iron Square Blade" || Weapon.GetComponent <ItemData> ().itemName == "Adamantium Curved Blade" || Weapon.GetComponent <ItemData> ().itemName == "Adamantium Straight Blade" || Weapon.GetComponent <ItemData> ().itemName == "Adamantium Square Blade") { for (int i = 0; i < database.parts.Count; i++) { if (database.parts [i].GetComponent <ItemData> ().itemName == Weapon.itemName) { GameObject newWeapon = Instantiate(database.parts [i], this.gameObject.transform); newWeapon.transform.localPosition = itemLoc.localPosition; newWeapon.transform.rotation = itemLoc.rotation; newWeapon.AddComponent <UnfinishedWeaponData> (); UnfinishedWeaponData data = newWeapon.GetComponent <UnfinishedWeaponData> (); data.itemName = Weapon.itemName; data.price = Weapon.price; data.weight = Weapon.weight; data.rarity = Weapon.rarity; data.itemType = "Weapon"; data.stackSize = 1; Destroy(newWeapon.GetComponent <ItemData> ()); Destroy(newWeapon.GetComponent <Rigidbody> ()); weapon = newWeapon; } } } } if (weapon != null) { if (Weapon.GetComponent <ItemData> ().itemName == "H Crossguard" || Weapon.GetComponent <ItemData> ().itemName == "W Crossguard" || Weapon.GetComponent <ItemData> ().itemName == "M Crossguard") { for (int i = 0; i < database.parts.Count; i++) { if (database.parts [i].GetComponent <ItemData> ().itemName == Weapon.itemName) { GameObject newGuard = Instantiate(database.parts [i], weapon.transform); Destroy(newGuard.GetComponent <Rigidbody> ()); Destroy(newGuard.GetComponent <BoxCollider> ()); Destroy(newGuard.GetComponent <MeshCollider> ()); weapon.GetComponent <UnfinishedWeaponData> ().crossguard = newGuard; weapon.GetComponent <UnfinishedWeaponData> ().crossguard.transform.localPosition = weapon.GetComponent <UnfinishedWeaponData> ().crossguardPos.localPosition; weapon.GetComponent <UnfinishedWeaponData> ().crossguard.transform.localRotation = Quaternion.identity; } } } if (Weapon.GetComponent <ItemData> ().itemName == "Ball Grip" || Weapon.GetComponent <ItemData> ().itemName == "Round Grip" || Weapon.GetComponent <ItemData> ().itemName == "Segment Grip") { for (int i = 0; i < database.parts.Count; i++) { if (database.parts [i].GetComponent <ItemData> ().itemName == Weapon.itemName) { GameObject newGrip = Instantiate(database.parts [i], weapon.transform); Destroy(newGrip.GetComponent <Rigidbody> ()); Destroy(newGrip.GetComponent <BoxCollider> ()); Destroy(newGrip.GetComponent <MeshCollider> ()); weapon.GetComponent <UnfinishedWeaponData> ().grip = newGrip; weapon.GetComponent <UnfinishedWeaponData> ().grip.transform.localPosition = weapon.GetComponent <UnfinishedWeaponData> ().gripPos.localPosition; weapon.GetComponent <UnfinishedWeaponData> ().grip.transform.localRotation = Quaternion.identity; } } } if (Weapon.GetComponent <ItemData> ().itemName == "Gem Pommel" || Weapon.GetComponent <ItemData> ().itemName == "Pointed Pommel" || Weapon.GetComponent <ItemData> ().itemName == "Round Pommel") { for (int i = 0; i < database.parts.Count; i++) { if (database.parts [i].GetComponent <ItemData> ().itemName == Weapon.itemName) { GameObject newPommel = Instantiate(database.parts [i], weapon.transform); Destroy(newPommel.GetComponent <Rigidbody> ()); Destroy(newPommel.GetComponent <BoxCollider> ()); Destroy(newPommel.GetComponent <MeshCollider> ()); weapon.GetComponent <UnfinishedWeaponData> ().pommel = newPommel; weapon.GetComponent <UnfinishedWeaponData> ().pommel.transform.localPosition = weapon.GetComponent <UnfinishedWeaponData> ().pommelPos.localPosition; weapon.GetComponent <UnfinishedWeaponData> ().pommel.transform.localRotation = Quaternion.identity; } } } player.RemoveWeaponFromInventory(1); Destroy(player.weapon); } }