// 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)); }
// 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)); }
/* ---------------------------------------------------------------------------------------------*/ /* ---------------------------------------------------------------------------------------------*/ /* ---------------------------------------------------------------------------------------------*/ /* ---------------------------------------- * 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)); }
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); }