Beispiel #1
0
        //Event Method
        private void PublishEnemyKilledEvent()
        {
            EnemyKilledEvent?.Invoke(this);

            // (this) keyword refers to the current instant
            // the (?) is the  null check operator
        }
    private void OnEnemyKilled(EnemyKilledEvent e)
    {
        if (calculateScore)
        {
            score += scoreIncrementForEnemyKill;

            GameEventManager.Instance.TriggerAsyncEvent(new UpdateScoreEvent(score));
        }
    }
 void _OnEnemyKilled(EnemyKilledEvent e)
 {
     --enemyCount;
     if (enemyCount <= 0 && waveNum == 5)
     {
         EventBus.Publish <GameOverEvent>(new GameOverEvent());
         Destroy(this);
     }
 }
    private void OnEnemyKilled(EnemyKilledEvent e)
    {
        currentXP += xpForEnemyKill;

        if (currentLevel < xpPerLevel.Length)
        {
            GameEventManager.Instance.TriggerAsyncEvent(new UpdateXPEvent(currentXP, xpPerLevel[currentLevel]));
        }

        CheckForLevelUp();
    }
    /*    private void EnemyKilled(GameObject obj)
     * {
     *  enemiesToDestroy.Add(obj);
     *  score++;
     *  scoreText.text = score.ToString();
     *  if (--enemyLeft <= 0)
     *  {
     *      waveCleared = true;
     *  }
     * }*/

    private void EnemyKilled(EnemyKilledEvent myEvent)
    {
        enemiesToDestroy.Add(myEvent.enemyToDestroy);
        if (enemies.Count - enemiesToDestroy.Count <= 0 && enemiesWaitingCounts == 0)
        {
            waveCleared = true;
            if (myEvent.enemyToDestroy.CompareTag("Boss"))
            {
                Services.EventManagerNew.Fire(new ExitBossEvent());
            }
        }

        score         += myEvent.score;
        scoreText.text = score.ToString();
    }
Beispiel #6
0
    //获取指定事件对象(如果不存在就进行添加(注册事件))
    public IGameEvent getGameEvent(ENUM_GameEvent emGameEvent)
    {
        if (m_gameEvents.ContainsKey(emGameEvent))
        {
            return(m_gameEvents[emGameEvent]);
        }

        switch (emGameEvent)
        {
        case ENUM_GameEvent.EnemyKilled:
            m_gameEvents[emGameEvent] = new EnemyKilledEvent();
            break;

        case ENUM_GameEvent.EnemyCount:
            m_gameEvents[emGameEvent] = new EnemyCountEvent();
            break;

        default:
            Debug.Log("没有名为[" + emGameEvent + "]的游戏事件");
            return(null);
        }
        return(m_gameEvents[emGameEvent]);
    }
Beispiel #7
0
 // Update is called once per frame
 public void Cast(Transform targetTransform)
 {
     _targetTransform = targetTransform;
     EnemyKilledEv    = new EnemyKilledEvent();
 }
 private void AddScore()
 {
     EnemyKilledEvent?.Invoke();
 }
 protected virtual void Die()
 {
     EnemyKilledEvent?.Invoke(this);
     Destroy(gameObject);
 }
Beispiel #10
0
 void _OnEnemyKilled(EnemyKilledEvent e)
 {
     SpawnManager.Instance.SpawnTutorialUpgrades();
     EventBus.Unsubscribe(enemy_killed_subscription);
 }