private TypeOfEnemy GetMutantData(string[] mutantStrings, GameObject enemyPrefab) { string mutantDataString = " " + mutantStrings[1]; TypeOfEnemy mutantData = GetMutationByName(mutantDataString, enemyPrefab); return(mutantData); }
private MutatedEnemy ConvertStringToMutatedEnemy(string mutatedEnemyToBeGenerated) { string[] mutantStrings = mutatedEnemyToBeGenerated.Split(null); GameObject enemyPrefab = GetEnemyPrefab(mutantStrings); TypeOfEnemy mutantData = GetMutantData(mutantStrings, enemyPrefab); return(new MutatedEnemy(enemyPrefab, mutantData)); }
public void SetEnemyType(TypeOfEnemy type) { typeOfEnemy = type; if (typeOfEnemy.GetEnemyTypeTag() != "target") { //InitializePerformanceCalculationMethod(); } }
private GameObject GenerateMutantEnemy() { MutatedEnemy mutatedEnemyData = mutationManager.GetRandomMutatedEnemy(); GameObject enemyToMutate = mutatedEnemyData.GetEnemyPrefab(); TypeOfEnemy mutatedEnemyInfo = mutatedEnemyData.GetMutantData(); GameObject mutatedEnemy = GenerateMutatedEnemy(new MutatedEnemy(enemyToMutate, mutatedEnemyInfo)); EnemyLibraryData.SetMutant(new MutatedEnemy(enemyToMutate, mutatedEnemyInfo)); return(mutatedEnemy); }
private TypeOfEnemy GetMutationByName(string mutationString, GameObject enemyToMutate) { TypeOfEnemy enemyToMutateInfo = enemyToMutate.GetComponent <EnemyData>().GetTypeOfEnemy(); var mutatedEnemyInfo = Instantiate(enemyToMutateInfo); foreach (Mutation mutation in possibleMutations) { if (string.Equals(mutation.GetMutatedStatString(), mutationString)) { mutatedEnemyInfo.MutateStat(mutation.GetMutatedStat()); } } return(mutatedEnemyInfo); }
private void ApplyCharacteristics(GameObject enemy, TypeOfEnemy typeOfEnemy) { var enemyTier = DungeonManager.instance.tierOfEnemies[typeOfEnemy]; string tierName = ""; //Convert 0,1,2,3,4,5 to default, Tier1, Tier2 as in the loaded json file if (enemyTier == 0 || enemyTier == 1) { tierName = "default"; } if (enemyTier == 2 || enemyTier == 3) { tierName = "Tier1"; } if (enemyTier == 4) { tierName = "Tier2"; } var mInfo = DungeonManager.instance.monstersInfo[enemy.name][tierName]; if (enemy.name == "iceZombieTest") { enemy.GetComponent <IceZombieController>().timeBetweenAttacksInSecs = mInfo.timeBetweenAttacks; enemy.GetComponent <IceZombiePhysicalAttack>().DurationOfAttackInSecs = mInfo.durationOfAttacks; enemy.GetComponent <IceZombiePhysicalAttack>().attackFlightSpeed = mInfo.attackSpeed; enemy.GetComponent <Thesis.Enemy.EnemyMovement>().stoppingDistanceToPlayer = mInfo.stoppingDistance; enemy.GetComponent <Thesis.Enemy.EnemyMovement>().movementSpeed = mInfo.movementSpeed; } else { var enemyCharac = enemy.GetComponentInChildren <BulletSpawner>(); enemyCharac.numberOfBullets = (int)mInfo.numberBullets; enemyCharac.bulletSpeed = (int)mInfo.bulletSpeed; enemyCharac.numberOfWaves = (int)mInfo.numberOfWaves; enemyCharac.secondsBetweenWaves = (int)mInfo.secBtwWaves; enemyCharac.secondsBetweenShots = mInfo.secBtwShots; enemyCharac.angleToShootInDegrees = mInfo.angleToShoot; enemy.GetComponent <Thesis.Enemy.EnemyController>().attackDistance = mInfo.attackDistance; enemy.GetComponent <Thesis.Enemy.EnemyMovement>().stoppingDistanceToPlayer = mInfo.stoppingDistance; enemy.GetComponent <Thesis.Enemy.EnemyMovement>().movementSpeed = mInfo.movementSpeed; enemy.GetComponentInChildren <Thesis.Enemy.EnemyShoot>().timeToWaitBeforeShootingAgain = mInfo.attackSpeed; } }
private void ApplyAuraEffect(GameObject enemy, TypeOfEnemy typeOfEnemy) { var enemyTier = DungeonManager.instance.tierOfEnemies[typeOfEnemy]; var effects = DungeonManager.instance.tierEffects; //Convert 0,1,2,3,4,5 to default, Tier1, Tier2 as in the loaded json file if (enemyTier == 0 || enemyTier == 1) { Instantiate(effects[0].particleSystem, enemy.transform.position, Quaternion.identity, enemy.transform); } if (enemyTier == 2 || enemyTier == 3) { Instantiate(effects[1].particleSystem, enemy.transform.position, Quaternion.identity, enemy.transform); } if (enemyTier == 4) { Instantiate(effects[2].particleSystem, enemy.transform.position, Quaternion.identity, enemy.transform); } }
private void InitializePossibleEnemies() { List <GameObject> enemiesToRemoveFromPrefab; enemiesToRemoveFromPrefab = new List <GameObject>(); foreach (GameObject enemyPrefab in enemyTypePrefabs) { if (enemyPrefab != null) { TypeOfEnemy enemyType = enemyPrefab.GetComponent <EnemyData>().GetTypeOfEnemy(); typeOfEnemyToPrefab.Add(enemyType, enemyPrefab); possibleEnemies.Add(enemyType); } else { enemiesToRemoveFromPrefab.Add(enemyPrefab); } } foreach (GameObject emptyEnemyToRemove in enemiesToRemoveFromPrefab) { enemyTypePrefabs.Remove(emptyEnemyToRemove); } }
public MutatedEnemy(GameObject enemyPrefab, TypeOfEnemy mutantData) { this.enemyPrefab = enemyPrefab; this.mutantData = mutantData; }
public GameObject GetEnemyTypePrefab(TypeOfEnemy toe) { return(typeOfEnemyToPrefab[toe]); }