Esempio n. 1
0
            public DBEFFECT GetNew(params object[] args)
            {
                DBEFFECT dbe = (DBEFFECT)this.GetType().InvokeMember(null,
                                                                     BindingFlags.Public | BindingFlags.DeclaredOnly |
                                                                     BindingFlags.Instance | BindingFlags.CreateInstance,
                                                                     null, null, args);

                return(dbe);
            }
Esempio n. 2
0
            public static void CollectDbEffects()
            {
                Module m = Assembly.GetExecutingAssembly().GetModules(false)[0];

                Type[] types = m.FindTypes(new TypeFilter(SearchCriteria), "DotaHIT.DatabaseModel.Upgrades");

                NameEffectPairs = new Dictionary <string, DBEFFECT>(types.Length,
                                                                    (IEqualityComparer <string>)StringComparer.OrdinalIgnoreCase);

                foreach (Type type in types)
                {
                    DBEFFECT e = (DBEFFECT)type.InvokeMember(null,
                                                             BindingFlags.Public | BindingFlags.DeclaredOnly |
                                                             BindingFlags.Instance | BindingFlags.CreateInstance,
                                                             null, null, null);

                    if (!string.IsNullOrEmpty(e.codeID))
                    {
                        NameEffectPairs.Add(e.codeID, e);
                    }
                }
            }
Esempio n. 3
0
            internal DBUPGRADE(HabProperties hps)
            {
                hpsInitialData = hps.GetCopy();

                ////////////////////////
                //  get alias
                ////////////////////////

                this.name = hps.name;

                ////////////////////////
                //  get max level
                ////////////////////////

                this.max_level = hpsInitialData.GetIntValue("maxlevel");

                ////////////////////////
                //  get effects
                ////////////////////////

                effects = new List <DBEFFECT>(4);

                string effectID;

                for (int i = 1; i <= 4; i++)
                {
                    if ((effectID = hps.GetStringValue("effect" + i)) != "_")
                    {
                        DBEFFECT e = DBEFFECT.InitProperEffect(effectID,
                                                               hps.GetDoubleValue("base" + i),
                                                               hps.GetDoubleValue("mod" + i));

                        if (e != null)
                        {
                            effects.Add(e);
                        }
                    }
                }
            }