/// <summary> /// Adds a modification. /// </summary> /// <param name="mod_type"></param> public void Add_Modification(string mod_type) { Modification mod = Modification_Prefab_Manager.GetInstance().SearchModification(mod_type).GetComponent <Modification>(); foreach (Modification_Base mBase in Modification_Bases.GetAllBases()) { if (mBase.AttachModification(mod)) { Send.SpawnMod(mod_type, ConnectionEnemyHandler.GetInstance().allExistingEnemies.FindIndex(x => x == gameObject)); Apply_Modification_Boosts(); foreach (GameObject player in Battle_Manager.GetInstance().GetBattle(gameObject).GetPlayers()) { /* * if (player.GetComponent<LockOnTarget>().targetedCreature.Equals(gameObject)) * { * player.GetComponent<LockOnTarget>().RefreshTargets(); * } */ } } } return; }
private void Update() { CoolDownTime(); if (executingAttack) { transform.position += transform.forward * enemyScript.max_movement_speed * 2 * Time.deltaTime; Send.MoveEnemy(transform.position, transform.rotation, ConnectionEnemyHandler.GetInstance().allExistingEnemies.FindIndex(x => x == gameObject)); } }
public override void Behaviour() { if (enemyScript.current_speed < enemyScript.max_movement_speed) { enemyScript.current_speed += enemyScript.max_movement_speed * 0.01f; } transform.LookAt(new Vector3(enemyScript.target.transform.position.x, gameObject.transform.position.y, enemyScript.target.transform.position.z)); transform.position += transform.forward * enemyScript.current_speed * Time.deltaTime; Send.MoveEnemy(transform.position, transform.rotation, ConnectionEnemyHandler.GetInstance().allExistingEnemies.FindIndex(x => x == gameObject)); }
private void Update() { if (enemyScript.target != null) { transform.rotation = Quaternion.LookRotation(enemyScript.target.transform.position - transform.position); Send.MoveEnemy(transform.position, transform.rotation, ConnectionEnemyHandler.GetInstance().allExistingEnemies.FindIndex(x => x == gameObject)); } CoolDownTime(); }
protected override void MovementBehaviour() { if (target != null) { if (Vector3.Distance(gameObject.transform.position, target.transform.position) < current_range * 0.8) { transform.position = Vector3.MoveTowards(gameObject.transform.position, target.transform.position, -1 * current_speed * Time.deltaTime); Send.MoveEnemy(transform.position, transform.rotation, ConnectionEnemyHandler.GetInstance().allExistingEnemies.FindIndex(x => x == gameObject)); } } }
public static void AskCombatEnemies(int fromClient, Packet packet) { int player_id = packet.ReadInt(); //ConnectionEnemyHandler.GetInstance().allExistingEnemies List <int> indexes = new List <int>(); foreach (GameObject enemy in Battle_Manager.GetInstance().GetBattle(Server.clients[fromClient].player.gameObject).GetEnemies()) { indexes.Add(ConnectionEnemyHandler.GetInstance().allExistingEnemies.FindIndex(x => x == enemy)); } Send.ReturnCombatEnemies(player_id, indexes.ToArray()); }
private void SpawnWave(int numberOfEnemies) { int spawnedEnemies = 0; while (spawnedEnemies < numberOfEnemies) { int index = UnityEngine.Random.Range(0, room.Instantiated_Tiles.Count - 1); Vector3 tileLocation = room.Instantiated_Tiles[index].transform.position; Vector3 center = new Vector3((tileLocation.x + (tileLocation.x + Tile.X_length)) / 2f, 2, (tileLocation.z + (tileLocation.z - Tile.Z_length)) / 2f); int melee_ranged = UnityEngine.Random.Range(0, 2); if (melee_ranged == 0) { GameObject enemy = UnityEngine.Object.Instantiate(Enemy_Prefab_Manager.GetInstance().GetMeleeEnemies()[0], center, new Quaternion()); enemy.GetComponent <Basic_Enemy>().battle = this; AddEnemy(enemy); ConnectionEnemyHandler.GetInstance().allExistingEnemies.Add(enemy); Send.SpawnEnemy(enemy.name, enemy.transform.position); for (int i = 0; i < enemy.GetComponent <Basic_Enemy>().Modification_Bases.GetAllBases().Count; i++) { enemy.GetComponent <Basic_Enemy>().Add_Modification(ModMaestro.GetInstance().ChooseMeleeModification()); } } else { GameObject enemy = UnityEngine.Object.Instantiate(Enemy_Prefab_Manager.GetInstance().GetRangedEnemies()[0], center, new Quaternion()); enemy.GetComponent <Basic_Enemy>().battle = this; AddEnemy(enemy); ConnectionEnemyHandler.GetInstance().allExistingEnemies.Add(enemy); Send.SpawnEnemy(enemy.name, enemy.transform.position); for (int i = 0; i < enemy.GetComponent <Basic_Enemy>().Modification_Bases.GetAllBases().Count; i++) { enemy.GetComponent <Basic_Enemy>().Add_Modification(ModMaestro.GetInstance().ChooseRangedModification()); } } spawnedEnemies++; } }
ConnectionEnemyHandler() { instance = this; allExistingEnemies = new List <GameObject>(); }