Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    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);
            }
        }
    }