Exemplo n.º 1
0
    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;
    }
Exemplo n.º 2
0
        private void EnemySpawned(WaveHandler handler, IEnemy obj)
        {
            EnemySpawnPoint spawnpoint = Pather.GetRandomSpawnPoint();

            obj.Init(spawnpoint.transform.position, spawnpoint.GetPath(), handler);
            OnEnemySpawned?.Invoke(obj);
        }
Exemplo n.º 3
0
 public void Setup(EnemyObject enemy)
 {
     _baseEnemy = enemy;
     enemy.ParseAttackPattern();
     _currentHealth = enemy.MaxHealth;
     _hurtThisBeat  = false;
     OnEnemySpawned?.Invoke();
 }
Exemplo n.º 4
0
        private void Spawner_OnSpawn(GameObject obj)
        {
            IEnemy enemy = obj.GetComponent <IEnemy>();

            AddEnemy(enemy);
            OnEnemySpawned?.Invoke(this, enemy);
            enemy.OnKilled += Enemy_OnKilled;
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
    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);
    }
Exemplo n.º 7
0
    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);
    }
Exemplo n.º 8
0
 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();
 }
Exemplo n.º 9
0
 private void Start()
 {
     OnEnemySpawned?.Invoke(this);
     health.EnemyOnDie += HandleDie;
 }
Exemplo n.º 10
0
 public override void OnEnterState(EnemyNPC eNpc)
 {
     _eNpc = eNpc;
     EnemyPathSetter.OnTargetSpawnedForEnemy += HandleTargetSpawnedForEnemy;
     OnEnemySpawned?.Invoke(GetInstanceID());
 }
Exemplo n.º 11
0
 public static void RaiseEnemySpawned(IEnemy enemy, Vector3 position) => OnEnemySpawned?.Invoke(enemy, position);
 public void SpawnEnemy()
 {
     new GameObject().AddComponent <Enemy>();
     OnEnemySpawned?.Invoke();
 }