public static string ApplyCondition(IndividualStatBlock_Combat TargetStatBlock, OnGoingCondition Condition)
        {
            Assembly a = null;

            try
            {
                a = Assembly.Load("Conditions");
            }
            catch (FileNotFoundException ex)
            {
            }

            Type       cond = a.GetType("Conditions.ApplyCondition"); //null if not found
            object     obj  = Activator.CreateInstance(cond);
            MethodInfo mi   = cond.GetMethod(Condition.ConditionType.ToString());

            ParameterInfo[] ParamInfos = mi.GetParameters();
            object[]        args       = new object[ParamInfos.Count()];
            int             cnt        = 0;

            foreach (ParameterInfo pi in ParamInfos)
            {
                switch (pi.Name)
                {
                case "target":
                    args[cnt] = TargetStatBlock;
                    break;

                case "Condition":
                    args[cnt] = Condition;
                    break;
                }
                cnt++;
            }
            if (ParamInfos.Any())
            {
                return((string)mi.Invoke(obj, args));
            }
            else
            {
                return((string)mi.Invoke(obj, null));
            }
        }
Esempio n. 2
0
 public void AddOnGoingCondition(OnGoingCondition Condition)
 {
     OnGoingConditions.Add(Condition);
     SetCondition(Condition.ConditionType, true);
     ConditionReflectionWrapper.ApplyCondition(this, Condition);
 }