예제 #1
0
    public void RegisterObserverByEventType(GameEventType e, GameEventObserver ob)
    {
        GameEventSubject sub = GetGameEventType(e);

        sub.RegisterObserver(ob);
        ob.SetSubject(sub);
    }
예제 #2
0
 public void registerObserver(GameEventObserver observer)
 {
     if (!observers.Contains(observer))
     {
         observers.Add(observer);
     }
 }
 public void registerObserver(GameEventObserver observer)
 {
     if (!observers.Contains(observer))
     {
         observers.Add(observer);
     }
 }
    private void OnDamageTaken(uint amount)
    {
        if (currentHealth == 1 || currentHealth == 0)
        {
            currentHealth = 0;
        }
        else
        {
            currentHealth -= amount;
        }

        GameEventObserver.FireHUDHealthEvent(currentHealth);
    }
 // Update is called once per frame
 void Update()
 {
     if (agent.pathStatus == NavMeshPathStatus.PathComplete && agent.remainingDistance <= agent.stoppingDistance)
     {
         if (currentWayPoint < waypoints.Length)
         {
             SetNextPoint();
         }
         else
         {
             GameEventObserver.FireOnDamageTakenEvent(currentStats.damageToPlayer);
             PoolManager.AddToPool(this);
         }
     }
 }
        /// <summary>
        /// This function will process the events that the observer has seen and will make the observer "react" to those events.
        /// </summary>
        /// <param name="observer">The GameEventObserver that will "react" to GameEvents it has seen.</param>
        /// <param name="gw">The GameWorld the GameEventObserver is in.</param>
        public static void processEvents(GameEventObserver observer, GameWorld gw)
        {
            // Does the observer have GameEvents to process>
            if (observer.getEventList().Count > 0)
            {
                // Check if observer is a Unit.
                if (observer.GetType().Name.Equals("Unit"))
                {
                    Unit unit = (Unit)observer.getEntity();
                    handleEventsForUnit(unit, gw);
                }

                // Clear the event list.
                observer.getEventList().Clear();
            }
        }
        /// <summary>
        /// This function will process the events that the observer has seen and will make the observer "react" to those events.
        /// </summary>
        /// <param name="observer">The GameEventObserver that will "react" to GameEvents it has seen.</param>
        /// <param name="gw">The GameWorld the GameEventObserver is in.</param>
        public static void processEvents(GameEventObserver observer, GameWorld gw)
        {
            // Does the observer have GameEvents to process>
            if (observer.getEventList().Count > 0)
            {
                // Check if observer is a Unit.
                if (observer.GetType().Name.Equals("Unit"))
                {
                    Unit unit = (Unit)observer.getEntity();
                    handleEventsForUnit(unit, gw);
                }



                // Clear the event list.
                observer.getEventList().Clear();
            }
        }
    void Start()
    {
        currentHealth = defaultHealth;
        GameEventObserver.FireHUDHealthEvent(currentHealth);
        GameEventObserver.FireHUDMaxWaveEvent((uint)waves.Length);

        PoolManager.Initialize();

        for (int index = 0; index < poolableObjects.Length; index++)
        {
            var poolableObject = poolableObjects[index];
            PoolManager.AddToPool(poolableObject);
        }

        GameEventObserver.AddOnDamageTakenListener(OnDamageTaken);

        StartCoroutine(SpawnCoroutine());
        GameEventObserver.FireHUDHealthEvent(currentHealth);
    }
 private void OnDeath()
 {
     OnKill?.Invoke(this);
     GameEventObserver.FireEnemyKillEvent(this);
     PoolManager.AddToPool(this);
 }
예제 #10
0
 public void RemoveObserver(GameEventObserver ob)
 {
     m_observers.Remove(ob);
 }
예제 #11
0
 public void unregisterObserver(GameEventObserver observer)
 {
     observers.Remove(observer);
 }
예제 #12
0
 public void RegisterObserver(GameEventObserver ob)
 {
     m_observers.Add(ob);
 }
예제 #13
0
 public void RemoveObserverByEventType(GameEventType e, GameEventObserver ob)
 {
     GetGameEventType(e).RemoveObserver(ob);
     ob.SetSubject(null);
 }
 public void unregisterObserver(GameEventObserver observer)
 {
     observers.Remove(observer);
 }
예제 #15
0
 private void Awake()
 {
     GameEventObserver.AddHUDHealthEventListener(HUDHealthEvent);
     GameEventObserver.AddOnMOneyChangedListener(OnMoneyChanged);
     GameEventObserver.AddHUDMaxWaveEventListener(OnMaxWaveChanged);
 }
예제 #16
0
 public void RemoveListener(GameEventObserver observer)
 {
     observers.Remove(observer);
 }
예제 #17
0
 public void AddListener(GameEventObserver observer)
 {
     observers.Add(observer);
 }