Beispiel #1
0
    public void TriggerEvent(GlobalEvents eventType)
    {
        int eventID = (int)eventType;

        foreach (var index in GuideXMLData.GetIDByEvent(eventID))
        {
            enqueueGuide(index);
        }
    }
Beispiel #2
0
    public void TriggerEvent <T>(GlobalEvents eventType, T arg1)
    {
        int        eventID = (int)eventType;
        List <int> result  = new List <int>();

        foreach (var index in GuideXMLData.GetIDByEvent(eventID))
        {
            var arg1_str_list = GuideXMLData.dataMap[index].event_arg1.Split(new char[] { ',' });
            foreach (var arg1_str in arg1_str_list)
            {
                int len        = arg1_str.Length;
                var arg1_opr   = arg1_str.Substring(len - 1, 1);
                T   arg1_value = (T)Utils.GetValue(arg1_str.Substring(0, len - 1), typeof(T));
                switch (arg1_opr)
                {
                case "+":
                    if (Comparer.Default.Compare(arg1, arg1_value) > 0)
                    {
                        result.Add(index);
                    }
                    break;

                case "-":
                    if (Comparer.Default.Compare(arg1, arg1_value) < 0)
                    {
                        result.Add(index);
                    }
                    break;

                case "=":
                    if (Comparer.Default.Compare(arg1, arg1_value) == 0)
                    {
                        result.Add(index);
                    }
                    break;

                default:
                    break;
                }
            }
        }
        foreach (var index in result.Distinct())
        {
            enqueueGuide(index);
        }
    }