private static float GetMaxAttributeValueForMarketGroup(string[] Group, MODULE_ATTRIBUTES_DB Attribute, NpgsqlConnection conn) { int marketGroupID = GetMarketGroupID(Group, conn); NpgsqlCommand cmd = new NpgsqlCommand( String.Format("SELECT \"valueInt\", \"valueFloat\" FROM \"dgmTypeAttributes\" JOIN \"invTypes\" USING (\"typeID\") WHERE \"marketGroupID\" = {0} AND \"attributeID\" = {1} ORDER BY \"valueFloat\" DESC", marketGroupID, (int)Attribute), conn ); float value = 0.0f; using (NpgsqlDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { double ddd = 0.0; if (Double.TryParse(dr["valueFloat"].ToString(), out ddd)) { if (value < ((float)ddd)) { value = (float)ddd; } } else { int iii = Int32.Parse(dr["valueInt"].ToString()); if (value < ((float)iii)) { value = (float)iii; } } } } return(value); }
private static ModuleDescription CreateAbyssalModule(string ModuleName, string[] MarketGroups, MODULE_ATTRIBUTES_DB dbAttribute, float bonus, MODULE_ATTRIBUTES attribute, MODULE_SLOT slot, NpgsqlConnection conn) { int typeID = GetTypeIDByName(ModuleName, conn); float value = GetMaxAttributeValueForMarketGroup(MarketGroups, dbAttribute, conn); Dictionary <MODULE_ATTRIBUTES, Dictionary <MODULE_ACTIVE, Tuple <float, int> > > attributes = new Dictionary <MODULE_ATTRIBUTES, Dictionary <MODULE_ACTIVE, Tuple <float, int> > >(); attributes.Add( attribute, new Dictionary <MODULE_ACTIVE, Tuple <float, int> > { { MODULE_ACTIVE.PASSIVE, new Tuple <float, int>(value * bonus, 1) } } ); ModuleDescription result = new ModuleDescription( ModuleName, typeID, slot, attributes, 0.0f, -1 ); return(result); }