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); }
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)); }
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); } } }
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); }
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); }
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); }
public static Type GetTypeForTriggerType(eTriggerType triggerType) { return (Type)m_behaviourTriggerMap[triggerType]; }
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); }
/// <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); } }
/// <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> /// 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; }
public static Type GetTypeForTriggerType(eTriggerType triggerType) { return((Type)m_behaviourTriggerMap[triggerType]); }
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; } }