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);
 }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
 }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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);
        }
Beispiel #10
0
 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);
 }
Beispiel #11
0
        /// <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);
            }

            
		}
Beispiel #12
0
 /// <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);
 }
Beispiel #13
0
 /// <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 AbstractRequirement(GameNPC npc, eRequirementType type, eComparator comp)
 {
     defaultNPC = npc;
     this.type  = type;
     comparator = comp;
 }
Beispiel #15
0
        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;
            }
        }
Beispiel #16
0
 public static Type GetTypeForRequirementType(eRequirementType requirementType)
 {
     return (Type)m_behaviourRequirementMap[requirementType];
 }
Beispiel #17
0
 public static Type GetTypeForRequirementType(eRequirementType requirementType)
 {
     return((Type)m_behaviourRequirementMap[requirementType]);
 }
Beispiel #18
0
 /// <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);
 }