public static void RegisterBehaviourTrigger(eTriggerType triggerType, Type type)
 {
     if (m_behaviourTriggerMap.Contains(triggerType))
     {
         if (log.IsErrorEnabled)
         {
             log.Error(triggerType + " is already registered, only one Type can be declared for each TriggerType. Duplicate declaration found in :" + m_behaviourTriggerMap[triggerType] + " and " + type);
         }
         return;
     }
     m_behaviourTriggerMap.Add(triggerType, type);
 }
Exemplo n.º 2
0
        public static void AddTrigger(eTriggerType triggerType, int questPartID)
        {
            if (questPartID < 0)
            {
                return;
            }

            DataRow row = DB.TriggerTable.NewRow();

            row[DB.COL_QUESTPARTTRIGGER_QUESTPARTID] = questPartID;
            row[DB.COL_QUESTPARTTRIGGER_TYPE]        = triggerType;
            DB.TriggerTable.Rows.Add(row);
        }
        /// <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));
        }
Exemplo n.º 4
0
        public static string TriggerText(eTriggerType TriggerType, string K, string I)
        {
            string text = null;

            object[] formatParams = null;

            DataRow triggerRow = DB.GetTriggerTypeRowForID((int)TriggerType);

            if (triggerRow != null)
            {
                text = Convert.ToString(triggerRow[DB.COL_TRIGGERTYPE_TEXT]);
                string typeI = Convert.ToString(triggerRow[DB.COL_TRIGGERTYPE_I]);
                string typeK = Convert.ToString(triggerRow[DB.COL_TRIGGERTYPE_K]);


                int  startIndex = 0;
                int  index;
                int  i = 0;
                char param;
                formatParams = new object[2];
                while ((index = text.IndexOf('$', startIndex)) >= 0)
                {
                    param = Convert.ToChar(text.Substring(index + 1, 1));

                    if (param == Const.CODE_K)
                    {
                        formatParams[i++] = GenerateParameter(param, typeK, K);
                    }
                    else if (param == Const.CODE_I)
                    {
                        formatParams[i++] = GenerateParameter(param, typeI, I);
                    }

                    startIndex = index + 6;                     // skip ending $ of param clause
                }
            }

            if (!String.IsNullOrEmpty(text))
            {
                return(String.Format(text, formatParams));
            }
            else
            {
                Log.Warning("Triggertype unknown:" + TriggerType);
                return("Triggertype unknown:" + TriggerType);
            }
        }
        /// <summary>
        /// Adds a trigger to the questpart for details about parameters look at documentation of used triggertype
        /// </summary>
        /// <param name="triggerType">triggertype</param>
        /// <param name="keyword">keyword (K), meaning depends on triggertype</param>
        /// <param name="var">variable (I), meaning depends on triggertype</param>
        public void AddTrigger(eTriggerType triggerType, Object keyword, Object var)
        {
            IBehaviourTrigger trigger = null;

            Type type = BehaviourMgr.GetTypeForTriggerType(triggerType);

            if (type != null)
            {
                trigger = (IBehaviourTrigger)Activator.CreateInstance(type, new object[] { this.NPC, NotifyHandler, keyword, var });
                AddTrigger(trigger);
            }
            else
            {
                if (log.IsErrorEnabled)
                {
                    log.Error("No registered trigger found for TriggerType " + triggerType);
                }
            }
        }
Exemplo n.º 6
0
        public void EditToData()
        {
            TriggerObject.Name   = txtTriggerName.Text.Trim();
            TriggerObject.Active = cbIsActive.Checked;

            eTriggerType typ = eTriggerType.none;

            string temp = rbBEFORE.Checked ? "BEFORE" : "AFTER";

            if (cbINSERT.Checked)
            {
                typ = (rbBEFORE.Checked) ? eTriggerType.beforeInsert : eTriggerType.afterInsert;
            }
            if (cbUPDATE.Checked)
            {
                if (typ == eTriggerType.none)
                {
                    typ = (rbBEFORE.Checked) ? eTriggerType.beforeUpdate : eTriggerType.afterUpdate;
                }
                else
                {
                    typ = (rbBEFORE.Checked) ? eTriggerType.beforeInsertOrUpdate : eTriggerType.afterInsertOrUpdate;
                }
            }
            if (cbDELETE.Checked)
            {
                if (typ == eTriggerType.none)
                {
                    typ = (rbBEFORE.Checked) ? eTriggerType.beforeDelete : eTriggerType.afterDelete;
                }
                else if ((typ == eTriggerType.beforeInsert) || (typ == eTriggerType.afterInsert))
                {
                    typ = (rbBEFORE.Checked) ? eTriggerType.beforeInsertOrDelete : eTriggerType.afterInsertOrDelete;
                }
                else if ((typ == eTriggerType.beforeInsertOrUpdate) || (typ == eTriggerType.afterInsertOrUpdate))
                {
                    typ = (rbBEFORE.Checked) ? eTriggerType.beforeInsertOrUpdateOrDelete : eTriggerType.afterInsertOrUpdateOrDelete;
                }
            }

            TriggerObject.Type     = typ;
            TriggerObject.Sequence = StaticFunctionsClass.ToIntDef(txtGenValue.Text, 0);
        }
Exemplo n.º 7
0
        public static string GetTriggerTypeStr(eTriggerType ct)
        {
            switch (ct)
            {
            case eTriggerType.afterInsert:
                return("AFTER INSERT");

            case eTriggerType.beforeInsert:
                return("BEFORE INSERT");

            case eTriggerType.afterUpdate:
                return("AFTER UPDATE");

            case eTriggerType.beforeUpdate:
                return("BEFORE UPDATE");

            case eTriggerType.afterDelete:
                return("AFTER DELETE");

            case eTriggerType.beforeDelete:
                return("BEFORE DELETE");

            case eTriggerType.afterInsertOrUpdate:
                return("AFTER INSERT OR UPDATE");

            case eTriggerType.beforeInsertOrUpdate:
                return("BEFORE INSERT OR UPDATE");

            case eTriggerType.afterInsertOrDelete:
                return("AFTER INSERT OR DELETE");

            case eTriggerType.beforeInsertOrDelete:
                return("BEFORE INSERT OR DELETE");

            case eTriggerType.afterInsertOrUpdateOrDelete:
                return("AFTER INSERT OR UPDATE OR DELETE");

            case eTriggerType.beforeInsertOrUpdateOrDelete:
                return("BEFORE INSERT OR UPDATE OR DELETE");
            }
            return(string.Empty);
        }
 /// <summary>
 /// Adds a trigger to the questpart for details about parameters look at documentation of used triggertype
 /// Variable I will be null
 /// </summary>
 /// <param name="triggerType">triggertype</param>
 /// <param name="keyword">keyword (K), meaning depends on triggertype</param>
 public void AddTrigger(eTriggerType triggerType, Object keyword)
 {
     AddTrigger(triggerType, keyword, null);
 }
 /// <summary>
 /// Adds a trigger to the questpart for details about parameters look at documentation of used triggertype
 /// Both keyword and variable will be null.
 /// </summary>
 /// <param name="triggerType"></param>
 public void AddTrigger(eTriggerType triggerType)
 {
     AddTrigger(triggerType, null, null);
 }
Exemplo n.º 10
0
        public static void AddTrigger(eTriggerType triggerType, int questPartID)
        {
            if (questPartID < 0)
                return;

            DataRow row = DB.TriggerTable.NewRow();
            row[DB.COL_QUESTPARTTRIGGER_QUESTPARTID] = questPartID;
            row[DB.COL_QUESTPARTTRIGGER_TYPE] = triggerType;
            DB.TriggerTable.Rows.Add(row);
        }
Exemplo n.º 11
0
 public static Type GetTypeForTriggerType(eTriggerType triggerType)
 {
     return (Type)m_behaviourTriggerMap[triggerType];
 }
Exemplo n.º 12
0
 public static void RegisterBehaviourTrigger(eTriggerType triggerType, Type type)
 {
     if (m_behaviourTriggerMap.Contains(triggerType))
     {
         if (log.IsErrorEnabled)
             log.Error(triggerType + " is already registered, only one Type can be declared for each TriggerType. Duplicate declaration found in :" + m_behaviourTriggerMap[triggerType] + " and " + type);
         return;
     }
     m_behaviourTriggerMap.Add(triggerType, type);
 }
Exemplo n.º 13
0
        /// <summary>
        /// Adds a trigger to the questpart for details about parameters look at documentation of used triggertype
        /// </summary>
        /// <param name="triggerType">triggertype</param>
        /// <param name="keyword">keyword (K), meaning depends on triggertype</param>
        /// <param name="var">variable (I), meaning depends on triggertype</param>
        public void AddTrigger(eTriggerType triggerType, Object keyword , Object var)
        {
            IBehaviourTrigger trigger = null;

            Type type = BehaviourMgr.GetTypeForTriggerType(triggerType);
            if (type != null)
            {
                trigger = (IBehaviourTrigger)Activator.CreateInstance(type, new object[] { this.NPC, NotifyHandler, keyword, var });
                AddTrigger(trigger);
            }
            else
            {
                if (log.IsErrorEnabled)
                    log.Error("No registered trigger found for TriggerType " + triggerType);
            }            
        }
Exemplo n.º 14
0
 /// <summary>
 /// Adds a trigger to the questpart for details about parameters look at documentation of used triggertype
 /// Variable I will be null
 /// </summary>
 /// <param name="triggerType">triggertype</param>
 /// <param name="keyword">keyword (K), meaning depends on triggertype</param>
 public void AddTrigger(eTriggerType triggerType, Object keyword)
 {
     AddTrigger(triggerType, keyword,null);
 }
Exemplo n.º 15
0
 /// <summary>
 /// Adds a trigger to the questpart for details about parameters look at documentation of used triggertype
 /// Both keyword and variable will be null.
 /// </summary>
 /// <param name="triggerType"></param>
 public void AddTrigger(eTriggerType triggerType)
 {
     AddTrigger(triggerType, null, null);
 }
 /// <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;
 }
Exemplo n.º 17
0
 public static Type GetTypeForTriggerType(eTriggerType triggerType)
 {
     return((Type)m_behaviourTriggerMap[triggerType]);
 }
Exemplo n.º 18
0
        public static string TriggerText(eTriggerType TriggerType, string K, string I)
        {
            string text = null;
            object[] formatParams = null;

            DataRow triggerRow = DB.GetTriggerTypeRowForID((int)TriggerType);

            if (triggerRow != null)
            {
                text = Convert.ToString(triggerRow[DB.COL_TRIGGERTYPE_TEXT]);
                string typeI = Convert.ToString(triggerRow[DB.COL_TRIGGERTYPE_I]);
                string typeK = Convert.ToString(triggerRow[DB.COL_TRIGGERTYPE_K]);

                int startIndex = 0;
                int index;
                int i = 0;
                char param;
                formatParams = new object[2];
                while ((index = text.IndexOf('$', startIndex)) >= 0)
                {
                    param = Convert.ToChar(text.Substring(index + 1, 1));

                    if (param == Const.CODE_K)
                        formatParams[i++] = GenerateParameter(param, typeK, K);
                    else if (param == Const.CODE_I)
                        formatParams[i++] = GenerateParameter(param, typeI, I);

                    startIndex = index + 6; // skip ending $ of param clause
                }
            }

            if (!String.IsNullOrEmpty(text))
            {
                return String.Format(text, formatParams);
            }
            else
            {
                Log.Warning("Triggertype unknown:" + TriggerType);
                return "Triggertype unknown:" + TriggerType;
            }
        }