コード例 #1
0
        // get primaries element of a particular element
        private static ChemicalElement[] InternalGetPrimariesOf(ChemicalElement e)
        {
            Type t = Type.GetType(typeof(ChemicalElementEntity).Namespace + "." + e.ToString());

            if (!t.IsSubclassOf(typeof(ChemicalElementMixEntity)))
            {
                return(new ChemicalElement[] { e });
            }

            ChemicalElementMixEntity ent = Activator.CreateInstance(t, ChemicalElementMixEntity.STANDARD_PARAMS) as ChemicalElementMixEntity;

            return(InteractiveEngine.instance.GetPrimariesOf(ent));
        }
コード例 #2
0
        // get weaknesses of a particular element
        private static ChemicalElement[] InternalGetWeaknessOf(ChemicalElement e)
        {
            Type t = Type.GetType(typeof(ChemicalElementEntity).Namespace + "." + e.ToString());

            if (!t.IsSubclassOf(typeof(ChemicalElementMixEntity)))
            {
                return(t.GetField("weakness", BindingFlags.NonPublic | BindingFlags.Static).GetValue(null) as ChemicalElement[]);
            }

            ChemicalElementMixEntity ent = Activator.CreateInstance(t, ChemicalElementMixEntity.STANDARD_PARAMS) as ChemicalElementMixEntity;

            return(InteractiveEngine.instance.GetWeaknessesOf(ent));
        }
コード例 #3
0
        /* ---------------------------------------------------------------------------------------------*/
        /* ---------------------------------------------------------------------------------------------*/
        /* ---------------------------------------------------------------------------------------------*/
        /* ---------------------------------------- * OPERATOR -----------------------------------------*/
        /* ---------------------------------------------------------------------------------------------*/
        /* ---------------------------------------------------------------------------------------------*/
        /* ---------------------------------------------------------------------------------------------*/
        // ELEMENT * ELEMENT
        public static ChemicalElementEntity operator *(ChemicalElementEntity a, ChemicalElementEntity b)
        {
            if (a.type == b.type)
            {
                a.intensity = b.intensity = a.intensity + b.intensity;
                return(a);
            }
            ChemicalElementEntity m = ChemicalElementMixEntity.MixTwoElement(a, b);

            if (m != null)
            {
                return(m);
            }
            return(ChemicalElementEntity.GetWinnerBetween(a, b));
        }
コード例 #4
0
        private static ChemicalElementMixEntity[] GetAllMixes()
        {
            Type t;

            Type[] ts;
            ChemicalElementMixEntity[] res;

            t   = typeof(ChemicalElementMixEntity);
            ts  = Assembly.GetAssembly(t).GetTypes().Where(myType => myType.IsSubclassOf(t) && myType.IsClass && !myType.IsAbstract).ToArray();
            res = new ChemicalElementMixEntity[ts.Length];

            for (int i = 0; i < ts.Length; ++i)
            {
                res[i] = Activator.CreateInstance(ts[i], ChemicalElementMixEntity.STANDARD_PARAMS) as ChemicalElementMixEntity;
            }

            return(res);
        }