Esempio n. 1
0
        /*
         * "TECH_MATHEMATICS"	    "MATHEMATICS_ADJUST_SEA_MOVEMENT"
         * "TECH_CARTOGRAPHY"	    "CARTOGRAPHY_GRANT_OCEAN_NAVIGATION"
         * "TECH_CARTOGRAPHY"	    "CARTOGRAPHY_ADJUST_EMBARKED_MOVEMENT"
         * "TECH_STEAM_POWER"	    "STEAM_POWER_ADJUST_EMBARKED_MOVEMENT"
         * "TECH_COMBUSTION"	    "COMBUSTION_ADJUST_EMBARKED_MOVEMENT"
         * "TECH_PRINTING"	        "PRINTING_ADD_DIPLO_VISIBILITY"
         * "TECH_COMPUTERS"	    "TECH_GRANT_SPY"
         * "TECH_PRINTING"	        "PRINTING_BOOST_WRITING_TOURISM"
         * "TECH_COMPUTERS"	    "COMPUTERS_BOOST_ALL_TOURISM"
         *
         *
         *
         *
         *
         *
         */

        public string GetModifierTextForResource(Resource resource)
        {
            StringBuilder           output            = new StringBuilder();
            List <ModifierArgument> resourceArguments = ModifierArgumentList.Where(x => x.Value == "RESOURCE_" + resource.ReferenceName).ToList();

            if (resourceArguments.Count != 0)
            {
                //Get Modifiers
                foreach (ModifierArgument argument in resourceArguments)
                {
                    Modifier modifier = ModifierList.First(x => x.ModifierId == argument.ModifierId);
                    {
                        if (modifier != null)
                        {
                            if (modifier.ModifierType == "MODIFIER_PLAYER_ADJUST_FREE_RESOURCE_IMPORT")
                            {
                                //Granted by trade with city states
                                string text = "A free resource import can be gained from the City State of " + modifier.ModifierId.Split('_')[2];
                                if (modifier.SubjectRequirementSetId != null)
                                {
                                    text += ", provided that " + modifier.SubjectRequirementSetId.ToTitleCase();
                                }
                                output.AppendLine(text);
                            }
                            if (modifier.ModifierType == "MODIFIER_PLAYER_OWNED_BONUS_RESOURCE_EXTRA_AMENITIES")
                            {
                                //Granted by trade with city states
                                string text = "Extra amenities can be gained from the City State of " + modifier.ModifierId.Split('_')[2];
                                if (modifier.SubjectRequirementSetId != null)
                                {
                                    text += ", provided that " + modifier.SubjectRequirementSetId.ToTitleCase();
                                }
                                output.AppendLine(text);
                            }


                            if (modifier.ModifierType == "MODIFIER_SINGLE_CITY_GRANT_RESOURCE_IN_CITY")
                            {
                                //Granted by Great Person
                                List <GreatPersonIndividualActionModifier> actionModifiers = GreatPersonActionModifiers.Where(x => x.ModifierId == modifier.ModifierId).ToList();
                                foreach (GreatPersonIndividualActionModifier actionMod in actionModifiers)
                                {
                                    resource.GrantedByGreatPerson.Add(actionMod.GreatPersonIndividual);

                                    string text = "A free resource can be gained from the Great Person " + actionMod.GreatPersonIndividual.html_Goto_URL_Link;
                                    if (modifier.SubjectRequirementSetId != null)
                                    {
                                        text += ", provided that " + modifier.SubjectRequirementSetId.ToTitleCase();
                                    }
                                    output.AppendLine(text);
                                }
                            }
                            if (modifier.ModifierType == "MODIFIER_PLAYER_GRANT_FREE_RESOURCE_VISIBILITY")
                            {
                                //Made Visible by Great Person
                                List <GreatPersonIndividualActionModifier> actionModifiers = GreatPersonActionModifiers.Where(x => x.ModifierId == modifier.ModifierId).ToList();
                                foreach (GreatPersonIndividualActionModifier actionMod in actionModifiers)
                                {
                                    resource.MadeVisibleByGreatPerson.Add(actionMod.GreatPersonIndividual);

                                    string text = "The resource can be found by the Great Person " + actionMod.GreatPersonIndividual.html_Goto_URL_Link;
                                    if (modifier.SubjectRequirementSetId != null)
                                    {
                                        text += ", provided that " + modifier.SubjectRequirementSetId.ToTitleCase();
                                    }
                                    output.AppendLine(text);
                                }
                            }
                            if (modifier.ModifierType == "MODIFIER_PLAYER_GRANT_FREE_RESOURCE_FROM_UNIT_PLOT")
                            {
                                //Made Visible by Great Person
                                List <GreatPersonIndividualActionModifier> actionModifiers = GreatPersonActionModifiers.Where(x => x.ModifierId == modifier.ModifierId).ToList();
                                foreach (GreatPersonIndividualActionModifier actionMod in actionModifiers)
                                {
                                    resource.GrantFreeResourceFromUnitPlotByGreatPerson.Add(actionMod.GreatPersonIndividual);

                                    string text = "Additional resource can be granted from from a plot by the Great Person " + actionMod.GreatPersonIndividual.html_Goto_URL_Link;
                                    if (modifier.SubjectRequirementSetId != null)
                                    {
                                        text += ", provided that " + modifier.SubjectRequirementSetId.ToTitleCase();
                                    }
                                    output.AppendLine(text);
                                }
                            }
                        }
                    }
                }
                return(output.ToString());
            }
            else
            {
                return("");
            }
        }