/// <summary>
        /// Removes an event handler from the list
        /// </summary>
        /// <param name="e">The event from which to remove the handler</param>
        /// <param name="del">The callback method to remove</param>
        public void RemoveHandler(DOLEvent e, DOLEventHandler del)
        {
            if (_lock.TryEnterWriteLock(LOCK_TIMEOUT))
            {
                try
                {
                    WeakMulticastDelegate deleg;

                    if (_events.TryGetValue(e, out deleg))
                    {
                        deleg = WeakMulticastDelegate.Remove(deleg, del);

                        if (deleg == null)
                        {
                            _events.Remove(e);
                        }
                        else
                        {
                            _events[e] = deleg;
                        }
                    }
                }
                finally
                {
                    _lock.ExitWriteLock();
                }
            }
        }
Example #2
0
		/// <summary>
		/// Bainshee Transform While Casting.
		/// </summary>
		/// <param name="player"></param>
		public override void Init(GamePlayer player)
		{
			base.Init(player);
			// Add Cast Listener.
			m_WraithTimerAction = new RegionTimerAction<GamePlayer>(Player, pl => { if (pl.CharacterClass is ClassBainshee) ((ClassBainshee)pl.CharacterClass).TurnOutOfWraith(); });
			m_WraithTriggerEvent = new DOLEventHandler(TriggerUnWraithForm);
			GameEventMgr.AddHandler(Player, GamePlayerEvent.CastFinished, new DOLEventHandler(TriggerWraithForm));
		}
Example #3
0
 /// <summary>
 /// Bainshee Transform While Casting.
 /// </summary>
 /// <param name="player"></param>
 public override void Init(GamePlayer player)
 {
     base.Init(player);
     // Add Cast Listener.
     m_WraithTimerAction = new RegionTimerAction <GamePlayer>(Player, pl => { if (pl.CharacterClass is ClassBainshee)
                                                                              {
                                                                                  ((ClassBainshee)pl.CharacterClass).TurnOutOfWraith();
                                                                              }
                                                              });
     m_WraithTriggerEvent = new DOLEventHandler(TriggerUnWraithForm);
     GameEventMgr.AddHandler(Player, GamePlayerEvent.CastFinished, new DOLEventHandler(TriggerWraithForm));
 }
Example #4
0
        /// <summary>
        /// Removes a global event handler.
        /// You need to have registered the event before being able to remove it.
        /// </summary>
        /// <param name="e">The event type from which to deregister</param>
        /// <param name="del">The event handler to deregister for this event type</param>
        /// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
        public static void RemoveHandler(DOLEvent e, DOLEventHandler del)
        {
            if (e == null)
            {
                throw new ArgumentNullException("e", "No event type given!");
            }

            if (del == null)
            {
                throw new ArgumentNullException("del", "No event handler given!");
            }

            m_globalHandlerCollection.RemoveHandler(e, del);
        }
        /// <summary>
        /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
        /// </summary>
        /// <param name="defaultNPC"></param>
        /// <param name="notifyHandler"></param>
        /// <param name="type">Triggertype</param>
        /// <param name="k">keyword (K), meaning depends on triggertype</param>
        /// <param name="i">variable (I), meaning depends on triggertype</param>
        public AbstractTrigger(GameLiving defaultNPC, DOLEventHandler notifyHandler, eTriggerType type, object k, object i) : this(defaultNPC, notifyHandler, type)
        {
            TriggerAttribute attr = BehaviourMgr.getTriggerAttribute(this.GetType());

            // handle parameter K
            object defaultValueK = GetDefaultValue(attr.DefaultValueK);

            this.k = (TypeK)BehaviourUtils.ConvertObject(k, defaultValueK, typeof(TypeK));
            CheckParameter(K, attr.IsNullableK, typeof(TypeK));

            // handle parameter I
            object defaultValueI = GetDefaultValue(attr.DefaultValueI);

            this.i = (TypeI)BehaviourUtils.ConvertObject(i, defaultValueI, typeof(TypeI));
            CheckParameter(I, attr.IsNullableI, typeof(TypeI));
        }
Example #6
0
        /// <summary>
        /// Registers a single global event handler.
        /// The global event handlers will be called for ALL events,
        /// so use them wisely, they might incure a big performance
        /// hit if used unwisely.
        /// </summary>
        /// <param name="e">The event type to register for</param>
        /// <param name="del">The event handler to register for this event type</param>
        /// <param name="unique">Flag wether event shall be added unique or not</param>
        /// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
        private static void AddHandler(DOLEvent e, DOLEventHandler del, bool unique)
        {
            if (e == null)
            {
                throw new ArgumentNullException("e", "No event type given!");
            }

            if (del == null)
            {
                throw new ArgumentNullException("del", "No event handler given!");
            }

            if (unique)
            {
                m_globalHandlerCollection.AddHandlerUnique(e, del);
            }
            else
            {
                m_globalHandlerCollection.AddHandler(e, del);
            }
        }
Example #7
0
        /// <summary>
        /// Removes a single event handler from an object.
        /// You need to have registered the event before being
        /// able to remove it.
        /// </summary>
        /// <param name="obj">The object that needs to be the sender of events</param>
        /// <param name="e">The event type from which to deregister</param>
        /// <param name="del">The event handler to deregister for this event type</param>
        /// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
        public static void RemoveHandler(object obj, DOLEvent e, DOLEventHandler del)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj", "No object given!");
            }

            if (e == null)
            {
                throw new ArgumentNullException("e", "No event type given!");
            }

            if (del == null)
            {
                throw new ArgumentNullException("del", "No event handler given!");
            }

            DOLEventHandlerCollection col = null;

            if (Lock.TryEnterReadLock(LOCK_TIMEOUT))
            {
                try
                {
                    m_gameObjectEventCollections.TryGetValue(obj, out col);
                }
                finally
                {
                    Lock.ExitReadLock();
                }
            }
            else
            {
                log.ErrorFormat("Timeout exceeded on attempt to RemoveHandler for object: {0}, event: {1}", obj.ToString(), e.Name);
            }

            if (col != null)
            {
                col.RemoveHandler(e, del);
            }
        }
        /// <summary>
        /// Adds an event handler to the list.
        /// </summary>
        /// <param name="e">The event from which we add a handler</param>
        /// <param name="del">The callback method</param>
        public void AddHandler(DOLEvent e, DOLEventHandler del)
        {
            if (_lock.TryEnterWriteLock(LOCK_TIMEOUT))
            {
                try
                {
                    WeakMulticastDelegate deleg;

                    if (!_events.TryGetValue(e, out deleg))
                    {
                        _events.Add(e, new WeakMulticastDelegate(del));
                    }
                    else
                    {
                        _events[e] = WeakMulticastDelegate.Combine(deleg, del);
                    }
                }
                finally
                {
                    _lock.ExitWriteLock();
                }
            }
        }
Example #9
0
		/// <summary>
		/// Adds an event handler to the list.
		/// </summary>
		/// <param name="e">The event from which we add a handler</param>
		/// <param name="del">The callback method</param>
		public void AddHandler(DOLEvent e, DOLEventHandler del)
		{
			if(_lock.TryEnterWriteLock(LOCK_TIMEOUT))
			{
				try
				{
					WeakMulticastDelegate deleg;

					if(!_events.TryGetValue(e, out deleg))
					{
						_events.Add(e, new WeakMulticastDelegate(del));
					}
					else
					{
						_events[e] = WeakMulticastDelegate.Combine(deleg, del);
					}
				}
				finally
				{
					_lock.ExitWriteLock();
				}
			}
		}
Example #10
0
		/// <summary>
		/// Registers a single global event handler.
		/// The global event handlers will be called for ALL events,
		/// so use them wisely, they might incure a big performance
		/// hit if used unwisely.
		/// If an equal handler has already been added, nothing will be done
		/// </summary>
		/// <param name="e">The event type to register for</param>
		/// <param name="del">The event handler to register for this event type</param>
		/// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
		public static void AddHandlerUnique(DOLEvent e, DOLEventHandler del)
		{
			AddHandler(e, del, true);
		}
Example #11
0
 /// <summary>
 /// Creates a Behaviour for the given default npc.
 /// </summary>        
 /// <param name="npc">NPC associated with his behaviour typically NPC talking to or mob killing, etc...</param>                
 public BaseBehaviour(GameNPC npc)
 {            
     this.NPC = npc;
     NotifyHandler = new DOLEventHandler(this.Notify);
 }
Example #12
0
		/// <summary>
		/// Registers a single object event handler.
		/// The global event handlers will be called for ALL events,
		/// so use them wisely, they might incure a big performance
		/// hit if used unwisely.
		/// If an equal handler has already been added, nothing will be done
		/// </summary>
		/// <param name="e">The event type to register for</param>
		/// <param name="del">The event handler to register for this event type</param>
		/// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
		public static void AddHandlerUnique(object obj, DOLEvent e, DOLEventHandler del)
		{
			AddHandler(obj, e, del, true);
		}
Example #13
0
 public void UnRegisterPlayerEnter(DOLEventHandler callback)
 {
     GameEventMgr.RemoveHandler(this, AreaEvent.PlayerEnter, callback);
 }
Example #14
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defautNpc"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="questType"></param>
 public AcceptQuestTrigger(GameNPC defautNpc, DOLEventHandler notifyHandler, Type questType)
     : this(defautNpc, notifyHandler, null, questType)
 {
 }
Example #15
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="questType"></param>
 public AbortQuestTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, Type questType)
     : this(defaultNPC, notifyHandler, (object)null, (object)questType)
 {
 }
Example #16
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 /// <param name="i"></param>
 public EnemyDyingTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, string k, GameLiving i)
     : this(defaultNPC, notifyHandler, (object)k, (object)i)
 {
 }
Example #17
0
		/// <summary>
		/// Removes a single event handler from an object.
		/// You need to have registered the event before being
		/// able to remove it.
		/// </summary>
		/// <param name="obj">The object that needs to be the sender of events</param>
		/// <param name="e">The event type from which to deregister</param>
		/// <param name="del">The event handler to deregister for this event type</param>
		/// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
		public static void RemoveHandler(object obj, DOLEvent e, DOLEventHandler del)
		{
			if(obj == null)
				throw new ArgumentNullException("obj", "No object given!");

			if(e == null)
				throw new ArgumentNullException("e", "No event type given!");

			if(del == null)
				throw new ArgumentNullException("del", "No event handler given!");

			DOLEventHandlerCollection col = null;

			if (Lock.TryEnterReadLock(LOCK_TIMEOUT))
			{
				try
				{
					m_gameObjectEventCollections.TryGetValue(obj, out col);
				}
				finally
				{
					Lock.ExitReadLock();
				}
			}
			else
			{
				log.ErrorFormat("Timeout exceeded on attempt to RemoveHandler for object: {0}, event: {1}", obj.ToString(), e.Name);
			}

			if (col != null)
			{
				col.RemoveHandler(e, del);
			}
		}
Example #18
0
		/// <summary>
		/// Registers a single local event handler.
		/// Local event handlers will only be called if the
		/// "sender" parameter in the Notify method equals
		/// the object for which a local event handler was
		/// registered.
		/// </summary>
		/// <remarks>
		/// Certain events will never have a local event handler.
		/// This happens if the Notify method is called without
		/// a sender parameter for example!
		/// </remarks>
		/// <param name="obj">The object that needs to be the sender of events</param>
		/// <param name="e">The event type to register for</param>
		/// <param name="del">The event handler to register for this event type</param>
		/// <param name="unique">Flag wether event shall be added unique or not</param>
		/// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
		private static void AddHandler(object obj, DOLEvent e, DOLEventHandler del, bool unique)
		{
			if(obj == null)
				throw new ArgumentNullException("obj", "No object given!");

			if(e == null)
				throw new ArgumentNullException("e", "No event type given!");

			if(del == null)
				throw new ArgumentNullException("del", "No event handler given!");

			if(!e.IsValidFor(obj))
				throw new ArgumentException("Object is not valid for this event type", "obj");

			if(Lock.TryEnterUpgradeableReadLock(LOCK_TIMEOUT))
			{
				try
				{
					DOLEventHandlerCollection col;

					if(!m_gameObjectEventCollections.TryGetValue(obj, out col))
					{
						col = new DOLEventHandlerCollection();

						if (Lock.TryEnterWriteLock(LOCK_TIMEOUT))
						{
							try
							{
								m_gameObjectEventCollections.Add(obj, col);
							}
							finally
							{
								Lock.ExitWriteLock();
							}
						}
						else
						{
							log.ErrorFormat("Timeout exceeded on attempt to AddHandler for object: {0}, event: {1}", obj.ToString(), e.Name);
						}
					}

					if(unique)
					{
						col.AddHandlerUnique(e, del);
					}
					else
					{
						col.AddHandler(e, del);
					}
				}
				finally
				{
					Lock.ExitUpgradeableReadLock();
				}
			}
		}
Example #19
0
		/// <summary>
		/// Registers a single global event handler.
		/// The global event handlers will be called for ALL events,
		/// so use them wisely, they might incure a big performance
		/// hit if used unwisely.
		/// </summary>
		/// <param name="e">The event type to register for</param>
		/// <param name="del">The event handler to register for this event type</param>
		/// <param name="unique">Flag wether event shall be added unique or not</param>
		/// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
		private static void AddHandler(DOLEvent e, DOLEventHandler del, bool unique)
		{
			if(e == null)
				throw new ArgumentNullException("e", "No event type given!");

			if(del == null)
				throw new ArgumentNullException("del", "No event handler given!");

			if(unique)
			{
				m_globalHandlerCollection.AddHandlerUnique(e, del);
			}
			else
			{
				m_globalHandlerCollection.AddHandler(e, del);
			}
		}
Example #20
0
        /// <summary>
        /// Registers a single local event handler.
        /// Local event handlers will only be called if the
        /// "sender" parameter in the Notify method equals
        /// the object for which a local event handler was
        /// registered.
        /// </summary>
        /// <remarks>
        /// Certain events will never have a local event handler.
        /// This happens if the Notify method is called without
        /// a sender parameter for example!
        /// </remarks>
        /// <param name="obj">The object that needs to be the sender of events</param>
        /// <param name="e">The event type to register for</param>
        /// <param name="del">The event handler to register for this event type</param>
        /// <param name="unique">Flag wether event shall be added unique or not</param>
        /// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
        private static void AddHandler(object obj, DOLEvent e, DOLEventHandler del, bool unique)
        {
            if (obj == null)
            {
                throw new ArgumentNullException("obj", "No object given!");
            }

            if (e == null)
            {
                throw new ArgumentNullException("e", "No event type given!");
            }

            if (del == null)
            {
                throw new ArgumentNullException("del", "No event handler given!");
            }

            if (!e.IsValidFor(obj))
            {
                throw new ArgumentException("Object is not valid for this event type", "obj");
            }

            if (Lock.TryEnterUpgradeableReadLock(LOCK_TIMEOUT))
            {
                try
                {
                    DOLEventHandlerCollection col;

                    if (!m_gameObjectEventCollections.TryGetValue(obj, out col))
                    {
                        col = new DOLEventHandlerCollection();

                        if (Lock.TryEnterWriteLock(LOCK_TIMEOUT))
                        {
                            try
                            {
                                m_gameObjectEventCollections.Add(obj, col);
                            }
                            finally
                            {
                                Lock.ExitWriteLock();
                            }
                        }
                        else
                        {
                            log.ErrorFormat("Timeout exceeded on attempt to AddHandler for object: {0}, event: {1}", obj.ToString(), e.Name);
                        }
                    }

                    if (unique)
                    {
                        col.AddHandlerUnique(e, del);
                    }
                    else
                    {
                        col.AddHandler(e, del);
                    }
                }
                finally
                {
                    Lock.ExitUpgradeableReadLock();
                }
            }
        }
Example #21
0
 /// <summary>
 /// Registers a single local event handler.
 /// Local event handlers will only be called if the
 /// "sender" parameter in the Notify method equals
 /// the object for which a local event handler was
 /// registered.
 /// </summary>
 /// <remarks>
 /// Certain events will never have a local event handler.
 /// This happens if the Notify method is called without
 /// a sender parameter for example!
 /// </remarks>
 /// <param name="obj">The object that needs to be the sender of events</param>
 /// <param name="e">The event type to register for</param>
 /// <param name="del">The event handler to register for this event type</param>
 /// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
 public static void AddHandler(object obj, DOLEvent e, DOLEventHandler del)
 {
     AddHandler(obj, e, del, false);
 }
Example #22
0
 /// <summary>
 /// Registers a single global event handler.
 /// The global event handlers will be called for ALL events,
 /// so use them wisely, they might incure a big performance
 /// hit if used unwisely.
 /// </summary>
 /// <param name="e">The event type to register for</param>
 /// <param name="del">The event handler to register for this event type</param>
 /// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
 public static void AddHandler(DOLEvent e, DOLEventHandler del)
 {
     AddHandler(e, del, false);
 }
Example #23
0
 /// <summary>
 /// Registers a single object event handler.
 /// The global event handlers will be called for ALL events,
 /// so use them wisely, they might incure a big performance
 /// hit if used unwisely.
 /// If an equal handler has already been added, nothing will be done
 /// </summary>
 /// <param name="e">The event type to register for</param>
 /// <param name="del">The event handler to register for this event type</param>
 /// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
 public static void AddHandlerUnique(object obj, DOLEvent e, DOLEventHandler del)
 {
     AddHandler(obj, e, del, true);
 }
Example #24
0
 /// <summary>
 /// Registers a single global event handler.
 /// The global event handlers will be called for ALL events,
 /// so use them wisely, they might incure a big performance
 /// hit if used unwisely.
 /// If an equal handler has already been added, nothing will be done
 /// </summary>
 /// <param name="e">The event type to register for</param>
 /// <param name="del">The event handler to register for this event type</param>
 /// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
 public static void AddHandlerUnique(DOLEvent e, DOLEventHandler del)
 {
     AddHandler(e, del, true);
 }
Example #25
0
		/// <summary>
		/// Registers a single local event handler.
		/// Local event handlers will only be called if the
		/// "sender" parameter in the Notify method equals
		/// the object for which a local event handler was
		/// registered.
		/// </summary>
		/// <remarks>
		/// Certain events will never have a local event handler.
		/// This happens if the Notify method is called without
		/// a sender parameter for example!
		/// </remarks>
		/// <param name="obj">The object that needs to be the sender of events</param>
		/// <param name="e">The event type to register for</param>
		/// <param name="del">The event handler to register for this event type</param>
		/// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
		public static void AddHandler(object obj, DOLEvent e, DOLEventHandler del)
		{
			AddHandler(obj, e, del, false);
		}
Example #26
0
		/// <summary>
		/// Removes an event handler from the list
		/// </summary>
		/// <param name="e">The event from which to remove the handler</param>
		/// <param name="del">The callback method to remove</param>
		public void RemoveHandler(DOLEvent e, DOLEventHandler del)
		{
			if(_lock.TryEnterWriteLock(LOCK_TIMEOUT))
			{
				try
				{
					WeakMulticastDelegate deleg;

					if(_events.TryGetValue(e, out deleg))
					{
						deleg = WeakMulticastDelegate.Remove(deleg, del);

						if(deleg == null)
						{
							_events.Remove(e);
						}
						else
						{
							_events[e] = deleg;
						}
					}
				}
				finally
				{
					_lock.ExitWriteLock();
				}
			}
		}
Example #27
0
		/// <summary>
		/// Removes a global event handler.
		/// You need to have registered the event before being able to remove it.
		/// </summary>
		/// <param name="e">The event type from which to deregister</param>
		/// <param name="del">The event handler to deregister for this event type</param>
		/// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
		public static void RemoveHandler(DOLEvent e, DOLEventHandler del)
		{
			if(e == null)
				throw new ArgumentNullException("e", "No event type given!");

			if(del == null)
				throw new ArgumentNullException("del", "No event handler given!");

			m_globalHandlerCollection.RemoveHandler(e, del);
		}
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 /// <param name="i"></param>
 public InteractTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, Object k, Object i)
     : base(defaultNPC, notifyHandler, eTriggerType.Interact, k, i)
 {
 }
Example #29
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 /// <param name="i"></param>
 public EnemyDyingTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, Object k, Object i)
     : base(defaultNPC, notifyHandler, eTriggerType.EnemyDying, k, i)
 {
 }
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="i"></param>
 public InteractTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, GameNPC i)
     : this(defaultNPC, notifyHandler, (object)null, (object)i)
 {
 }
Example #31
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 /// <param name="i"></param>
 public AbortQuestTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, Object k, Object i)
     : base(defaultNPC, notifyHandler, eTriggerType.AbortQuest, k, i)
 {
 }
Example #32
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k">keyword (K), meaning depends on triggertype</param>
 /// <param name="i">variable (I), meaning depends on triggertype</param>
 public EnterAreaTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, Object k, Object i)
     : base(defaultNPC, notifyHandler, eTriggerType.EnterArea, k, i)
 {
 }
Example #33
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNpc"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 /// <param name="i"></param>
 public AcceptQuestTrigger(GameNPC defaultNpc, DOLEventHandler notifyHandler, object k, object i)
     : base(defaultNpc, notifyHandler, eTriggerType.AcceptQuest, k, i)
 {
 }
Example #34
0
 public void UnRegisterPlayerEnter(DOLEventHandler callback)
 {
     GameEventMgr.RemoveHandler(this, AreaEvent.PlayerEnter, callback);
 }
 /// <summary>
 /// Creates a Behaviour for the given default npc.
 /// </summary>
 /// <param name="npc">NPC associated with his behaviour typically NPC talking to or mob killing, etc...</param>
 public BaseBehaviour(GameNPC npc)
 {
     this.NPC      = npc;
     NotifyHandler = new DOLEventHandler(this.Notify);
 }
Example #36
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 /// <param name="i"></param>
 public WhisperTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, Object k, Object i)
     : base(defaultNPC, notifyHandler, eTriggerType.Whisper, k, i)
 {
 }
Example #37
0
 public void RegisterPlayerLeave(DOLEventHandler callback)
 {
     GameEventMgr.AddHandler(this, AreaEvent.PlayerLeave, callback);
 }
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 public TimerTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, string k)
     : this(defaultNPC, notifyHandler, (object)k, (object)null)
 {
 }
Example #39
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="i">variable (I), meaning depends on triggertype</param>
 public EnterAreaTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, IArea i)
     : this(defaultNPC, notifyHandler, (object)null, (object)i)
 {
 }
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="type"></param>
 public AbstractTrigger(GameLiving defaultNPC, DOLEventHandler notifyHandler, eTriggerType type)
 {
     this.defaultNPC    = defaultNPC;
     this.notifyHandler = notifyHandler;
     this.triggerType   = type;
 }
Example #41
0
 public void RegisterPlayerLeave(DOLEventHandler callback)
 {
     GameEventMgr.AddHandler(this, AreaEvent.PlayerLeave, callback);
 }
Example #42
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 /// <param name="i"></param>
 public EnemyKilledTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, object k, object i)
     : base(defaultNPC, notifyHandler, eTriggerType.EnemyKilled, k, i)
 {
 }
Example #43
0
 /// <summary>
 /// Creates a new questtrigger and does some simple triggertype parameter compatibility checking
 /// </summary>
 /// <param name="defaultNPC"></param>
 /// <param name="notifyHandler"></param>
 /// <param name="k"></param>
 /// <param name="i"></param>
 public WhisperTrigger(GameNPC defaultNPC, DOLEventHandler notifyHandler, string k, GameNPC i)
     : this(defaultNPC, notifyHandler, (object)k, (object)i)
 {
 }
Example #44
0
		/// <summary>
		/// Registers a single global event handler.
		/// The global event handlers will be called for ALL events,
		/// so use them wisely, they might incure a big performance
		/// hit if used unwisely.
		/// </summary>
		/// <param name="e">The event type to register for</param>
		/// <param name="del">The event handler to register for this event type</param>
		/// <exception cref="ArgumentNullException">If one of the parameters is null</exception>
		public static void AddHandler(DOLEvent e, DOLEventHandler del)
		{
			AddHandler(e, del, false);
		}