// Update is called once per frame public void setArrays() { if (!arraysSet) { mainTurrets = GameObject.FindGameObjectsWithTag("turret Main"); //turret = GameObject.FindGameObjectsWithTag("Turret"); TurretSubwaveStorage = mainTurrets[0].GetComponent <turretSubwaveStorage>(); // Array.Resize(ref turretStreams, turret.Length); // for (int i = 0; i < turret.Length; i++) // { // turretStreams[i] = turret[i].GetComponent<Turret>(); // } numOfSubwaves = TurretSubwaveStorage.SubwaveCount; numOfWaves = TurretSubwaveStorage.totalWaveCount; } }
IEnumerator loadBossTile() { spawnedTurret = Instantiate(turret, new Vector3(0, 0, 0), transform.rotation) as GameObject; save = new saveTurretSubwave(); JsonUtility.FromJsonOverwrite(lines[NumOfTurretsLeft], save); load = LoadSubwaveStorage(save); setAll(load, spawnedTurret.GetComponent <turretSubwaveStorage>(), spawnedTurret); spawnedTurret.transform.parent = boss.transform; spawnedTurret.transform.localPosition = spawnedTurret.GetComponent <turretSubwaveStorage>().turretLocation; NumOfTurrets = spawnedTurret.GetComponent <turretSubwaveStorage>().TotalNumberOfTurrets; //Debug.Log(spawnedTurret.GetComponent<turretSubwaveStorage>().spiralDirection[0, 0]); boss.transform.GetChild(0).GetComponent <bossWaveControl>().setArrays(); boss.transform.GetChild(0).GetComponent <bossWaveControl>().setValues(0); NumOfTurretsLeft++; if (NumOfTurretsLeft >= NumOfTurrets) { yield return(new WaitForEndOfFrame()); yield return(new WaitForEndOfFrame()); } else { yield return(new WaitForEndOfFrame()); yield return(new WaitForEndOfFrame()); StartCoroutine(loadBossTile()); } }
//sets all the values in the saveTurretSubwave script with the values in temp public saveTurretSubwave SaveSubwaveStorage(turretSubwaveStorage temp) { save = new saveTurretSubwave(); save.totalWaveCount = temp.totalWaveCount; save.SubwaveCount = temp.SubwaveCount; save.TotalNumberOfTurrets = temp.TotalNumberOfTurrets; save.turretLocation = temp.turretLocation; save.activeInWave = temp.activeInWave; save.isDestroyable = temp.isDestroyable; save.numberActiveStreams = temp.numberActiveStreams; save.subwaveDuration = temp.subwaveDuration; save.turretHealth = temp.turretHealth; //Loops int count = 0; //Debug.Log(""); for (int i = 0; i < 4; i++) { for (int j = 0; j < 16; j++) { //Debug.Log(count + " ," + i+ " ,"+j); save.streamEnabled[count] = temp.streamEnabled[j, i]; save.turretSavedOnce[count] = temp.turretSavedOnce[j, i]; save.fireType[count] = temp.fireType[j, i]; save.targetingType[count] = temp.targetingType[j, i]; save.rotateSpeed[count] = temp.rotateSpeed[j, i]; //public Vector4[] temp = new Vector4[16]; // Target player settings save.smoothTarget[count] = temp.smoothTarget[j, i]; save.smoothTargetSpeed[count] = temp.smoothTargetSpeed[j, i]; save.targetPlayerOffsetAmmount[count] = temp.targetPlayerOffsetAmmount[j, i]; // arc targetting settings save.rotateAngleDirection[count] = temp.rotateAngleDirection[j, i]; save.rotateAngleWidth[count] = temp.rotateAngleWidth[j, i]; // spiral targetting settings save.spiralDirection[count] = temp.spiralDirection[j, i]; //single direction settings save.singleDirDirection[count] = temp.singleDirDirection[j, i]; //Bullet fire variables save.bulletFormation[count] = temp.bulletFormation[j, i]; save.numOfBullets[count] = temp.numOfBullets[j, i]; //firerate determines the gap between each burst of shots save.firerate[count] = temp.firerate[j, i]; //bullet delay determins the gap between each individual bullet in a burst (if they are staggered) save.bulletDelay[count] = temp.bulletDelay[j, i]; save.bulletSpeedIncreaseAmmount[count] = temp.bulletSpeedIncreaseAmmount[j, i]; save.angleBetweenBullets[count] = temp.angleBetweenBullets[j, i]; save.bulletRandomRange[count] = temp.bulletRandomRange[j, i]; save.shotgunStraight[count] = temp.shotgunStraight[j, i]; save.bulletSpeedIncreaseCheck[count] = temp.bulletSpeedIncreaseCheck[j, i]; //individual bullet settings (what movement type they use their speed etc) save.bulletMovementType[count] = temp.bulletMovementType[j, i]; save.bulletBaseSpeed[count] = temp.bulletBaseSpeed[j, i]; //sin wave storage save.bulletAmplitude[count] = temp.bulletAmplitude[j, i]; save.bulletFrequency[count] = temp.bulletFrequency[j, i]; //variable speed storage save.bulletMaxSpeed[count] = temp.bulletMaxSpeed[j, i]; save.bulletMinSpeed[count] = temp.bulletMinSpeed[j, i]; save.bulletSpeedChangeFrequency[count] = temp.bulletSpeedChangeFrequency[j, i]; //travel then target storage save.timeUntilChange[count] = temp.timeUntilChange[j, i]; save.newTargetingType[count] = temp.newTargetingType[j, i]; save.speedAfterTarget[count] = temp.speedAfterTarget[j, i]; save.bulletType[count] = temp.bulletType[j, i]; count++; } //count++; } return(save); }
public void setAll(turretSubwaveStorage temp, turretSubwaveStorage turretToSet, GameObject turretBody) { turretToSet.totalWaveCount = temp.totalWaveCount; turretToSet.SubwaveCount = temp.SubwaveCount; turretToSet.TotalNumberOfTurrets = temp.TotalNumberOfTurrets; turretToSet.turretLocation = temp.turretLocation; turretToSet.activeInWave = temp.activeInWave; turretToSet.numberActiveStreams = temp.numberActiveStreams; turretToSet.subwaveDuration = temp.subwaveDuration; turretToSet.isDestroyable = temp.isDestroyable; turretToSet.turretHealth = temp.turretHealth; //Loops int count = 0; //Debug.Log(""); for (int i = 0; i < 4; i++) { for (int j = 0; j < 16; j++) { //Debug.Log(count + " ," + i+ " ,"+j); turretToSet.streamEnabled[j, i] = temp.streamEnabled[j, i]; turretToSet.turretSavedOnce[j, i] = temp.turretSavedOnce[j, i]; turretToSet.fireType[j, i] = temp.fireType[j, i]; turretToSet.targetingType[j, i] = temp.targetingType[j, i]; turretToSet.rotateSpeed[j, i] = temp.rotateSpeed[j, i]; //public Vector4[] temp = new Vector4[16]; // Target player settings turretToSet.smoothTarget[j, i] = temp.smoothTarget[j, i]; turretToSet.smoothTargetSpeed[j, i] = temp.smoothTargetSpeed[j, i]; turretToSet.targetPlayerOffsetAmmount[j, i] = temp.targetPlayerOffsetAmmount[j, i]; // arc targetting settings turretToSet.rotateAngleDirection[j, i] = temp.rotateAngleDirection[j, i]; turretToSet.rotateAngleWidth[j, i] = temp.rotateAngleWidth[j, i]; // spiral targetting settings turretToSet.spiralDirection[j, i] = temp.spiralDirection[j, i]; //single direction settings turretToSet.singleDirDirection[j, i] = temp.singleDirDirection[j, i]; //Bullet fire variables turretToSet.bulletFormation[j, i] = temp.bulletFormation[j, i]; turretToSet.numOfBullets[j, i] = temp.numOfBullets[j, i]; //firerate determines the gap between each burst of shots turretToSet.firerate[j, i] = temp.firerate[j, i]; //bullet delay determins the gap between each individual bullet in a burst (if they are staggered) turretToSet.bulletDelay[j, i] = temp.bulletDelay[j, i]; turretToSet.bulletSpeedIncreaseAmmount[j, i] = temp.bulletSpeedIncreaseAmmount[j, i]; turretToSet.angleBetweenBullets[j, i] = temp.angleBetweenBullets[j, i]; turretToSet.bulletRandomRange[j, i] = temp.bulletRandomRange[j, i]; turretToSet.shotgunStraight[j, i] = temp.shotgunStraight[j, i]; turretToSet.bulletSpeedIncreaseCheck[j, i] = temp.bulletSpeedIncreaseCheck[j, i]; //individual bullet settings (what movement type they use their speed etc) turretToSet.bulletMovementType[j, i] = temp.bulletMovementType[j, i]; turretToSet.bulletBaseSpeed[j, i] = temp.bulletBaseSpeed[j, i]; //sin wave storage turretToSet.bulletAmplitude[j, i] = temp.bulletAmplitude[j, i]; turretToSet.bulletFrequency[j, i] = temp.bulletFrequency[j, i]; //variable speed storage turretToSet.bulletMaxSpeed[j, i] = temp.bulletMaxSpeed[j, i]; turretToSet.bulletMinSpeed[j, i] = temp.bulletMinSpeed[j, i]; turretToSet.bulletSpeedChangeFrequency[j, i] = temp.bulletSpeedChangeFrequency[j, i]; //travel then target storage turretToSet.timeUntilChange[j, i] = temp.timeUntilChange[j, i]; turretToSet.newTargetingType[j, i] = temp.newTargetingType[j, i]; turretToSet.speedAfterTarget[j, i] = temp.speedAfterTarget[j, i]; turretToSet.bulletType[j, i] = temp.bulletType[j, i]; count++; } //count++; } Turret[] turrets = new Turret[4]; turrets[0] = turretBody.transform.GetChild(0).GetComponent <Turret>(); turrets[1] = turretBody.transform.GetChild(1).GetComponent <Turret>(); turrets[2] = turretBody.transform.GetChild(2).GetComponent <Turret>(); turrets[3] = turretBody.transform.GetChild(3).GetComponent <Turret>(); }
public void setValues(int subwaveNum) { //for each turret, checks if it is active/destroyable in current wave and sets its values to ones stored. for (int i = 0; i < mainTurrets.Length; i++) { mainTurrets[i].SetActive(mainTurrets[i].GetComponent <turretSubwaveStorage>().activeInWave[currentWave]); mainTurrets[i].GetComponent <BoxCollider2D>().enabled = mainTurrets[i].GetComponent <turretSubwaveStorage>().isDestroyable[currentWave]; mainTurrets[i].SetActive(!TurretSubwaveStorage.hasBeenDestroyed[currentWave]); // Debug.Log("should hitbox be off?" + mainTurrets[i].GetComponent<turretSubwaveStorage>().isDestroyable[currentWave]); } //for each turret for (int i = 0; i < mainTurrets.Length; i++) { //safety check if (mainTurrets[i].GetComponent <turretSubwaveStorage>() != null) { TurretSubwaveStorage = mainTurrets[i].GetComponent <turretSubwaveStorage>(); //if the turret hasnt been destroyed, if (TurretSubwaveStorage.hasBeenDestroyed[currentWave] == false) { //for each stream for (int j = 0; j < 4; j++) { //enable the stream (if stream was enabled) mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().streamEnabled = TurretSubwaveStorage.streamEnabled[subwaveNum, j]; if (TurretSubwaveStorage.streamEnabled[subwaveNum, j]) { //if stream is enabled, set it to be ready to fire. mainTurrets[i].transform.GetChild(j).gameObject.SetActive(true); mainTurrets[i].transform.GetChild(j).GetComponent <Turret_Fire>().enabled = true; mainTurrets[i].transform.GetChild(j).GetComponent <Turret_Fire>().fireTimer = 1000f; // mainTurrets[i].transform.GetChild(j).GetComponent<Turret_Fire>().readyToFire = true; mainTurrets[i].transform.GetChild(j).GetComponent <Turret_Targeting>().enabled = true; mainTurrets[i].transform.GetChild(j).GetComponent <Turret_BulletSetup>().enabled = true; } else { mainTurrets[i].transform.GetChild(j).gameObject.SetActive(false); mainTurrets[i].transform.GetChild(j).GetComponent <Turret_Fire>().enabled = false; mainTurrets[i].transform.GetChild(j).GetComponent <Turret_Targeting>().enabled = false; mainTurrets[i].transform.GetChild(j).GetComponent <Turret_BulletSetup>().enabled = false; } //set all values for the stream //turret firing style settings mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().turretHealth = TurretSubwaveStorage.turretHealth[currentWave]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().fireType = TurretSubwaveStorage.fireType[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().targetingType = TurretSubwaveStorage.targetingType[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().rotateSpeed = TurretSubwaveStorage.rotateSpeed[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().smoothTarget = TurretSubwaveStorage.smoothTarget[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().smoothTargetSpeed = TurretSubwaveStorage.smoothTargetSpeed[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().targetPlayerOffsetAmmount = TurretSubwaveStorage.targetPlayerOffsetAmmount[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().rotateAngleDirection = TurretSubwaveStorage.rotateAngleDirection[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().rotateAngleWidth = TurretSubwaveStorage.rotateAngleWidth[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().spiralDirection = TurretSubwaveStorage.spiralDirection[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().singleDirDirection = TurretSubwaveStorage.singleDirDirection[subwaveNum, j]; //bullet formation settings mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletFormation = TurretSubwaveStorage.bulletFormation[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().numOfBullets = TurretSubwaveStorage.numOfBullets[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().firerate = TurretSubwaveStorage.firerate[subwaveNum, j]; // mainTurrets[i].transform.GetChild(j).GetComponent<Turret>().bulletDelay = TurretSubwaveStorage.bulletDelay[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletSpeedIncreaseAmmount = TurretSubwaveStorage.bulletSpeedIncreaseAmmount[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().angleBetweenBullets = TurretSubwaveStorage.angleBetweenBullets[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletRandomRange = TurretSubwaveStorage.bulletRandomRange[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().shotgunStraight = TurretSubwaveStorage.shotgunStraight[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletSpeedIncreaseCheck = TurretSubwaveStorage.bulletSpeedIncreaseCheck[subwaveNum, j]; //individual bullet movement settings mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletMovementType = TurretSubwaveStorage.bulletMovementType[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletBaseSpeed = TurretSubwaveStorage.bulletBaseSpeed[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletAmplitude = TurretSubwaveStorage.bulletAmplitude[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletFrequency = TurretSubwaveStorage.bulletFrequency[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletMaxSpeed = TurretSubwaveStorage.bulletMaxSpeed[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletMinSpeed = TurretSubwaveStorage.bulletMinSpeed[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletSpeedChangeFrequency = TurretSubwaveStorage.bulletSpeedChangeFrequency[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletTimeUntilChange = TurretSubwaveStorage.timeUntilChange[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletNewTargetingType = TurretSubwaveStorage.newTargetingType[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletSpeedAfterTarget = TurretSubwaveStorage.speedAfterTarget[subwaveNum, j]; mainTurrets[i].transform.GetChild(j).GetComponent <Turret>().bulletType = TurretSubwaveStorage.bulletType[subwaveNum, j]; } } } } }