public void TriggerRoom(Transform player) { var enemy = Instantiate(enemyDeck.GetNextCard(), new Vector2(player.position.x - offset, player.position.y + offset), Quaternion.identity); if (enemy.TryGetComponent <Combatant>(out var combatant)) { OnEnemySpawned?.Invoke(combatant); } // Move the player to the oposite corner of the room LeanTween.move(player.gameObject, new Vector2(player.position.x + offset, player.position.y - offset), timeToComplete) .setEaseOutSine() .setOnComplete(() => { OnPlayerMoved?.Invoke(); }); // Shuffle and Reset the deck; playingCardsDeck.ResetIndex(); DeckShuffler.Shuffle(playingCardsDeck.Cards); vcam.LookAt = m_transform; vcam.Follow = m_transform; spriteRenderer.sprite = null; }
private void EnemySpawned(WaveHandler handler, IEnemy obj) { EnemySpawnPoint spawnpoint = Pather.GetRandomSpawnPoint(); obj.Init(spawnpoint.transform.position, spawnpoint.GetPath(), handler); OnEnemySpawned?.Invoke(obj); }
public void Setup(EnemyObject enemy) { _baseEnemy = enemy; enemy.ParseAttackPattern(); _currentHealth = enemy.MaxHealth; _hurtThisBeat = false; OnEnemySpawned?.Invoke(); }
private void Spawner_OnSpawn(GameObject obj) { IEnemy enemy = obj.GetComponent <IEnemy>(); AddEnemy(enemy); OnEnemySpawned?.Invoke(this, enemy); enemy.OnKilled += Enemy_OnKilled; }
private void SpawnEnemy(Vector3 pos, EnemyInfo info) { var enemy = GameObject.Instantiate(info.Prefab, pos, Quaternion.identity, _enemiesParent). GetComponent <Enemy>(); enemy.SetStatsFromInfo(info); enemy.OnDeath += x => OnEnemyRemoved?.Invoke(x.transform); _enemies.Add(enemy); OnEnemySpawned?.Invoke(enemy.transform); }
public void SpawnEnemy() { Enemy currentEnemy = SetEnemyType(); currentEnemy = Instantiate(currentEnemy, spawnPoint.transform.position, Quaternion.identity); SetLevel(currentEnemy); currentEnemy.transform.SetParent(this.gameObject.transform); SpawnedEnemies.Add(currentEnemy); OnEnemySpawned?.Invoke(currentEnemy); }
public void SpawnEnemy(EnemySpawnData spawnData) { EnemyData data; if (!_enemyDataConfig.TryGetValue(spawnData.EnemyType, out data)) { CustomLogger.Error(nameof(EnemyManager), $"Could not retrieve {nameof(EnemyData)} from id {spawnData.EnemyType}"); return; } // Get a pooled enemy object PooledObject pooledObject; if (!PooledObjectManager.Instance.UsePooledObject(data.UnitPrefabId, out pooledObject)) { PooledObjectManager.Instance.RegisterPooledObject(data.UnitPrefabId, 1); CustomLogger.Log(nameof(EnemyManager), $"{data.UnitPrefabId} not yet registered with object pool. Registering now..."); SpawnEnemy(spawnData); return; } EnemyUnit unit = pooledObject as EnemyUnit; if (unit == null) { CustomLogger.Error(nameof(EnemyManager), $"Pooled Object was not of type {nameof(EnemyUnit)}"); return; } // prep unit unit.transform.position = spawnData.Position; UnitInitializationData initData = new UnitInitializationData() { OverrideUniqueId = spawnData.OverrideId, UnitData = data }; unit.Initialize(initData); unit.CombatController.SetWeapon(data.EquippedWeapon); AddUnitListeners(unit); unit.Spawn(); UnitsManager.Instance.RegisterUnit(unit); // add enemy controller to list and dictionary _enemyUnitsById.Add(unit.UnitId, new EnemyInfo(unit.UnitId, spawnData.PatrolLoopId, unit)); OnEnemySpawned?.Invoke(unit); }
private void Spawn() { if (!stageManager.NeedBoss) { float rand = UnityEngine.Random.Range(0.00f, 1.00f); if (rand <= gameJamChances) { projectHolder.GetProjectData(gameJam, true); } else { int randIndex = UnityEngine.Random.Range(0, simpleTasks.Length); projectHolder.GetProjectData(simpleTasks[randIndex]); } } else { int randIndex = UnityEngine.Random.Range(0, bossDatas.Length); projectHolder.GetProjectData(bossDatas[randIndex]); } OnEnemySpawned?.Invoke(); }
private void Start() { OnEnemySpawned?.Invoke(this); health.EnemyOnDie += HandleDie; }
public override void OnEnterState(EnemyNPC eNpc) { _eNpc = eNpc; EnemyPathSetter.OnTargetSpawnedForEnemy += HandleTargetSpawnedForEnemy; OnEnemySpawned?.Invoke(GetInstanceID()); }
public static void RaiseEnemySpawned(IEnemy enemy, Vector3 position) => OnEnemySpawned?.Invoke(enemy, position);
public void SpawnEnemy() { new GameObject().AddComponent <Enemy>(); OnEnemySpawned?.Invoke(); }