/** * Regenerate each parts of the current Weapon */ void RandomizeWeapon() { Weapon weapon = Utility.GetWeapon(); for (int i = 1; i <= WeaponPart.GetPartTypeCount(); i++) { PartType partType = (PartType)i; WeaponPart part = GameController.Instance.GenerateRandomWeaponPart( partType ); weapon.SetPart(part); } }
void Start() { Assert.IsNotNull(visor); Assert.IsNotNull(muzzle); partHolders = gameObject.GetComponentsInChildren <WeaponPartHolder>(); Assert.IsNotNull(partHolders); Assert.IsTrue(partHolders.Length == WeaponPart.GetPartTypeCount()); barrelHolder = GetHolder(PartType.BARREL); stockHolder = GetHolder(PartType.STOCK); sightHolder = GetHolder(PartType.SIGHT); stringHolder = GetHolder(PartType.STRING); handleHolder = GetHolder(PartType.HANDLE); quiverHolder = GetHolder(PartType.QUIVER); Assert.IsTrue(shootSFX != ""); Assert.IsTrue(emptySFX != ""); Assert.IsTrue(reloadSFX != ""); Assert.IsNotNull(barrelHolder); Assert.IsNotNull(stockHolder); Assert.IsNotNull(sightHolder); Assert.IsNotNull(stringHolder); Assert.IsNotNull(handleHolder); Assert.IsNotNull(quiverHolder); MagazineClip = GetMagazineSize(); playerCamera = Camera.main; flippedScale = new Vector3( defaultScale.x, defaultScale.y * -1, defaultScale.z ); transform.rotation = Quaternion.Euler( 0.0f, 0.0f, 0.0f ); UpdateLayout(); }
public WeaponPart GenerateRandomWeaponPart( PartType forcePart = PartType.NONE ) { WeaponPart part = ScriptableObject.CreateInstance <WeaponPart>(); PartType partType = forcePart; if (partType == PartType.NONE) { partType = (PartType)(UnityEngine.Random.Range( 0, WeaponPart.GetPartTypeCount() ) + 1); } switch (partType) { case PartType.QUIVER: part.RandomizeQuiver(); break; case PartType.BARREL: part.RandomizeBarrel(); break; case PartType.STOCK: part.RandomizeStock(); break; case PartType.HANDLE: part.RandomizeHandle(); break; case PartType.SIGHT: part.RandomizeSight(); break; case PartType.STRING: part.RandomizeString(); break; } return(part); }