public void Refactor() { allParts = null; weaponParts = null; allParts = GetComponentsInChildren <TankyHealth>(); numberOfWeapons = 0; foreach (TankyHealth indivPart in allParts) { if (indivPart.ownPart.partType == partTypes.Weapon) { numberOfWeapons++; } } weaponParts = new GameObject[numberOfWeapons]; numberOfWeapons = 0; foreach (TankyHealth indivPart in allParts) { switch (indivPart.ownPart.partType) { case (partTypes.Weapon): TankyWeapon weaponPart = (TankyWeapon)indivPart.ownPart; weaponParts[numberOfWeapons] = indivPart.gameObject; numberOfWeapons++; break; case (partTypes.Body): break; case (partTypes.Mobility): TankyMobility mobilityPart = (TankyMobility)indivPart.ownPart; accelSpeed = mobilityPart.accelSpeed; maxSpeed = mobilityPart.maxSpeed; turnSpeed = mobilityPart.turnSpeed; ownMoving.turnSpeed = turnSpeed; ownMoving.moveAccel = accelSpeed; ownMoving.maxSpeed = maxSpeed; ownMoving.maxReverse = maxSpeed * -1; ownNavMeshAgent.speed = 0; ownNavMeshAgent.angularSpeed = turnSpeed; ownNavMeshAgent.radius = 1; break; } } }
// Start is called before the first frame update void Start() { thisWeapon = (TankyWeapon)GetComponent <TankyHealth>().ownPart; fireOffset = thisWeapon.firingOffset; refireRate = thisWeapon.weaponRateoffire; fireObject = thisWeapon.fireResult; maxRange = thisWeapon.maxRange; barrageSize = thisWeapon.barrageSize; barrageDelay = thisWeapon.barrageDelay; barrageCount = thisWeapon.barrageCount; standardDamage = thisWeapon.standardDamage; weaponAccuracy = thisWeapon.weaponAccuracy; shotLifetime = thisWeapon.shotLifetime; shotVelocity = thisWeapon.shotVelocity; firingObject = thisWeapon.firingObject; fireScript = thisWeapon.fireScript; fireScriptType = fireScript.GetType(); sinceLastShot = 0; }
void GenerateWeapon(TankyWeapon partToSpawn) { newWeaponPart = newPart; newWeaponPart.AddComponent <WeaponFire>(); }