public float Get_Import_Price(Resource resource) { float multiplier = IMPORT_BASE_PRICE_MULTIPLIER; if (Unaccepted_Imports.Contains(resource)) { return(0.0f); } if (Preferred_Imports.Contains(resource)) { multiplier = IMPORT_PREFERRED_PRICE_MULTIPLIER; } else if (Disliked_Imports.Contains(resource)) { multiplier = IMPORT_DISLIKED_PRICE_MULTIPLIER; } return(resource.Value * multiplier); }
private void Initialize_Exports_And_Imports(List <Resource.ResourceTag> main_exports, List <Resource.ResourceTag> rare_exports, List <Resource.ResourceTag> never_export, List <Resource.ResourceTag> main_imports, List <Resource.ResourceTag> disliked_imports, List <Resource.ResourceTag> unacceped_imports) { foreach (Resource.ResourceTag tag in main_exports) { possible_exports.Add(tag); } foreach (Resource.ResourceTag tag in rare_exports) { possible_exports.Add(tag); } foreach (Resource.ResourceTag tag in never_export) { impossible_exports.Add(tag); } Initialize_Exports(main_exports, rare_exports, never_export); if (Exports.Count + Cheap_Exports.Count + Expensive_Exports.Count <= 1) { Initialize_Exports(main_exports, rare_exports, never_export); } foreach (Resource resource in Resource.All) { if (resource.Rarity == Resource.ResourceRarity.Non_Tradeable) { continue; } bool is_main_import = false; bool is_disliked_import = false; bool is_unacceped_import = false; foreach (Resource.ResourceTag tag in resource.Tags) { if (unacceped_imports.Contains(tag)) { is_unacceped_import = true; } if (disliked_imports.Contains(tag)) { is_disliked_import = true; } if (main_imports.Contains(tag)) { is_main_import = true; } } if (is_disliked_import) { is_main_import = false; } if (is_unacceped_import) { is_main_import = false; is_disliked_import = false; } if (is_unacceped_import) { //TODO: Allways unaccept? if (RNG.Instance.Next(0, 100) <= 97) { Unaccepted_Imports.Add(resource); } else { Disliked_Imports.Add(resource); } } else if (is_main_import) { if (RNG.Instance.Next(0, 100) <= 50) { Preferred_Imports.Add(resource); } } else if (is_disliked_import) { if (RNG.Instance.Next(0, 100) <= 65) { Disliked_Imports.Add(resource); } } } foreach (Resource export in Exports) { if (Preferred_Imports.Contains(export)) { Preferred_Imports.Remove(export); } } foreach (Resource export in Expensive_Exports) { if (Preferred_Imports.Contains(export)) { Preferred_Imports.Remove(export); } } foreach (Resource export in Cheap_Exports) { if (Preferred_Imports.Contains(export)) { Preferred_Imports.Remove(export); } } }