public static void RegisterBehaviourRequirement(eRequirementType requirementType, Type type) { if (m_behaviourRequirementMap.Contains(requirementType)) { if (log.IsErrorEnabled) { log.Error(requirementType + " is already registered, only one Type can be declared for each Requirement. Duplicate declaration found in :" + m_behaviourRequirementMap[requirementType] + " and " + type); } return; } m_behaviourRequirementMap.Add(requirementType, type); }
public static void AddRequirement(eRequirementType requirementType, int questPartID) { if (questPartID < 0) { return; } DataRow row = DB.RequirementTable.NewRow(); row[DB.COL_QUESTPARTREQUIREMENT_QUESTPARTID] = questPartID; row[DB.COL_QUESTPARTREQUIREMENT_TYPE] = requirementType; DB.RequirementTable.Rows.Add(row); }
public static string RequirementText(eRequirementType Type, string N, string V, eComparator comp) { string text = null; object[] formatParams = null; DataRow requirementRow = DB.GetRequirementTypeRowForID((int)Type); if (requirementRow != null) { text = Convert.ToString(requirementRow[DB.COL_REQUIREMENTTYPE_TEXT]); string typeN = Convert.ToString(requirementRow[DB.COL_REQUIREMENTTYPE_N]); string typeV = Convert.ToString(requirementRow[DB.COL_REQUIREMENTTYPE_V]); string comparatorType = Convert.ToString(requirementRow[DB.COL_REQUIREMENTTYPE_COMPARATOR]); int startIndex = 0; int index; int i = 0; char param; formatParams = new object[3]; while ((index = text.IndexOf('$', startIndex)) >= 0) { param = Convert.ToChar(text.Substring(index + 1, 1)); if (param == Const.CODE_N) { formatParams[i++] = GenerateParameter(param, typeN, N); } else if (param == Const.CODE_V) { formatParams[i++] = GenerateParameter(param, typeV, V); } else if (param == Const.CODE_COMPARATOR) { formatParams[i++] = GenerateParameter(param, comp, comparatorType); } startIndex = index + 6; // skip ending $ of param clause } } if (!String.IsNullOrEmpty(text)) { return(String.Format(text, formatParams)); } else { Log.Warning("RequirementType unknown:" + Type); return("RequirementType unknown:" + Type); } }
/// <summary> /// Creates a new QuestRequirement and does some basich compativilite checks for the parameters /// </summary> /// <param name="defaultNPC"></param> /// <param name="type"></param> /// <param name="n"></param> /// <param name="v"></param> /// <param name="comp"></param> public AbstractRequirement(GameNPC defaultNPC, eRequirementType type, Object n, Object v, eComparator comp) : this(defaultNPC, type, comp) { RequirementAttribute attr = BehaviourMgr.getRequirementAttribute(this.GetType()); // handle parameter N object defaultValueN = GetDefaultValue(attr.DefaultValueN); this.N = (TypeN)BehaviourUtils.ConvertObject(n, defaultValueN, typeof(TypeN)); CheckParameter(this.N, attr.IsNullableN, typeof(TypeN)); // handle parameter V object defaultValueV = GetDefaultValue(attr.DefaultValueV); this.v = (TypeV)BehaviourUtils.ConvertObject(v, defaultValueV, typeof(TypeV)); CheckParameter(this.V, attr.IsNullableV, typeof(TypeV)); }
/// <summary> /// Adds a new Requirement to the QuestPart. /// </summary> /// <param name="requirementType">RequirementType</param> /// <param name="requirementN">First Requirement Variable, meaning depends on RequirementType</param> /// <param name="requirementV">Second Requirement Variable, meaning depends on RequirementType</param> /// <param name="requirementComparator">Comparator used if some values are veeing compared</param> public void AddRequirement(eRequirementType requirementType, Object requirementN, Object requirementV, eComparator requirementComparator) { IBehaviourRequirement requ = null; Type type = BehaviourMgr.GetTypeForRequirementType(requirementType); if (type != null) { requ = (IBehaviourRequirement)Activator.CreateInstance(type, new object[] { this.NPC, requirementN, requirementV, requirementComparator }); AddRequirement(requ); } else { if (log.IsErrorEnabled) { log.Error("No registered requirement found for RequirementType " + requirementType); } } }
/// <summary> /// Adds a new Requirement to the QuestPart. /// V will be null /// </summary> /// <param name="requirementType"></param> /// <param name="requirementN">First Requirement Variable, meaning depends on RequirementType</param> /// <param name="requirementComparator">Comparator used if some values are veeing compared</param> public void AddRequirement(eRequirementType requirementType, Object requirementN, eComparator requirementComparator) { AddRequirement(requirementType, requirementN, null, requirementComparator); }
/// <summary> /// Adds a new Requirement to the QuestPart. /// Comparator will be eComparator.None /// </summary> /// <param name="requirementType">RequirementType</param> /// <param name="requirementN">First Requirement Variable, meaning depends on RequirementType</param> /// <param name="requirmentV">Second Requirement Variable, meaning depends on RequirementType</param> public void AddRequirement(eRequirementType requirementType, Object requirementN, Object requirmentV) { AddRequirement(requirementType, requirementN, requirmentV, eComparator.None); }
public static void AddRequirement(eRequirementType requirementType, int questPartID, eComparator comp) { if (questPartID < 0) return; DataRow row = DB.RequirementTable.NewRow(); row[DB.COL_QUESTPARTREQUIREMENT_QUESTPARTID] = questPartID; row[DB.COL_QUESTPARTREQUIREMENT_TYPE] = requirementType; row[DB.COL_QUESTPARTREQUIREMENT_COMPARATOR] = (int)comp; DB.RequirementTable.Rows.Add(row); }
public static void AddRequirement(eRequirementType requirementType, int questPartID) { if (questPartID < 0) return; DataRow row = DB.RequirementTable.NewRow(); row[DB.COL_QUESTPARTREQUIREMENT_QUESTPARTID] = questPartID; row[DB.COL_QUESTPARTREQUIREMENT_TYPE] = requirementType; DB.RequirementTable.Rows.Add(row); }
public static void RegisterBehaviourRequirement(eRequirementType requirementType, Type type) { if (m_behaviourRequirementMap.Contains(requirementType)) { if (log.IsErrorEnabled) log.Error(requirementType + " is already registered, only one Type can be declared for each Requirement. Duplicate declaration found in :" + m_behaviourRequirementMap[requirementType] + " and " + type); return; } m_behaviourRequirementMap.Add(requirementType, type); }
/// <summary> /// Adds a new Requirement to the QuestPart. /// </summary> /// <param name="requirementType">RequirementType</param> /// <param name="requirementN">First Requirement Variable, meaning depends on RequirementType</param> /// <param name="requirementV">Second Requirement Variable, meaning depends on RequirementType</param> /// <param name="requirementComparator">Comparator used if some values are veeing compared</param> public void AddRequirement(eRequirementType requirementType, Object requirementN, Object requirementV,eComparator requirementComparator) { IBehaviourRequirement requ = null; Type type = BehaviourMgr.GetTypeForRequirementType(requirementType); if (type != null) { requ = (IBehaviourRequirement)Activator.CreateInstance(type, new object[] { this.NPC, requirementN, requirementV, requirementComparator }); AddRequirement(requ); } else { if (log.IsErrorEnabled) log.Error("No registered requirement found for RequirementType " + requirementType); } }
public AbstractRequirement(GameNPC npc, eRequirementType type, eComparator comp) { defaultNPC = npc; this.type = type; comparator = comp; }
public static string RequirementText(eRequirementType Type, string N, string V, eComparator comp) { string text = null; object[] formatParams = null; DataRow requirementRow = DB.GetRequirementTypeRowForID((int)Type); if (requirementRow != null) { text = Convert.ToString(requirementRow[DB.COL_REQUIREMENTTYPE_TEXT]); string typeN = Convert.ToString(requirementRow[DB.COL_REQUIREMENTTYPE_N]); string typeV = Convert.ToString(requirementRow[DB.COL_REQUIREMENTTYPE_V]); string comparatorType = Convert.ToString(requirementRow[DB.COL_REQUIREMENTTYPE_COMPARATOR]); int startIndex = 0; int index; int i = 0; char param; formatParams = new object[3]; while ((index = text.IndexOf('$', startIndex)) >= 0) { param = Convert.ToChar(text.Substring(index + 1, 1)); if (param == Const.CODE_N) formatParams[i++] = GenerateParameter(param, typeN, N); else if (param == Const.CODE_V) formatParams[i++] = GenerateParameter(param, typeV, V); else if (param == Const.CODE_COMPARATOR) formatParams[i++] = GenerateParameter(param, comp, comparatorType); startIndex = index + 6; // skip ending $ of param clause } } if (!String.IsNullOrEmpty(text)) { return String.Format(text, formatParams); } else { Log.Warning("RequirementType unknown:" + Type); return "RequirementType unknown:" + Type; } }
public static Type GetTypeForRequirementType(eRequirementType requirementType) { return (Type)m_behaviourRequirementMap[requirementType]; }
public static Type GetTypeForRequirementType(eRequirementType requirementType) { return((Type)m_behaviourRequirementMap[requirementType]); }
/// <summary> /// Adds a new Requirement to the QuestPart. /// V will be null and Comparator will be eComparator.None /// </summary> /// <param name="requirementType">RequirementType</param> /// <param name="requirementN">First Requirement Variable, meaning depends on RequirementType</param> public void AddRequirement(eRequirementType requirementType, object requirementN) { AddRequirement(requirementType, requirementN, null, eComparator.None); }