private void CalcEffects(PdxSublist effects, Dictionary <NationalIdea, float> weight, Dictionary <NationalIdea, float> level, float multiplier) { //ideas foreach (var ideaGroup in World.NationalIdeaGroups) { var groupWeight = GetFloatEffect(effects, $"idea_{ideaGroup.Name}_weight") * multiplier; var groupLevel = GetFloatEffect(effects, $"idea_{ideaGroup.Name}_level") * multiplier; foreach (var idea in ideaGroup.Ideas) { if (!weight.ContainsKey(idea)) { weight[idea] = 0; } if (!level.ContainsKey(idea)) { level[idea] = 0; } weight[idea] += GetFloatEffect(effects, $"idea_{idea.Name}_weight") * multiplier + groupWeight; level[idea] += GetFloatEffect(effects, $"idea_{idea.Name}_level") * multiplier + groupLevel; } } foreach (var gov in World.GovernmentTypes) { if (!GovernmentTypeWeights.ContainsKey(gov)) { GovernmentTypeWeights[gov] = 0; } GovernmentTypeWeights[gov] += GetFloatEffect(effects, $"gov_{gov}") * multiplier; } foreach (var reform in World.GovernmentReforms) { if (!GovernmentReformWeights.ContainsKey(reform)) { GovernmentReformWeights[reform] = 0; } GovernmentReformWeights[reform] += GetFloatEffect(effects, $"reform_{reform}") * multiplier; } VassalThreshhold += GetFloatEffect(effects, "vassal_threshhold") * multiplier; // renaissance RenaissanceFactor += GetFloatEffect(effects, "renaissance_factor") * multiplier; }
public Eu4Country(Eu4World world, CK2CharacterBase holder, string tag, string file, bool vanilla, CK2Title title = null) : base(world) { title = title ?? holder.PrimaryTitle; this.title = title; DisplayNoun = title.DisplayName; DisplayAdj = title.DisplayAdj; IsVanilla = vanilla; CountryTag = tag; World = world; FileName = file; Subjects = new List <string>(); this.holder = holder; GovernmentRank = (byte)((title.Rank == TitleRank.kingdom) ? 2 : (title.Rank == TitleRank.empire ? 3 : 1)); //if (world.TitleGovernmentMapper.ContainsKey(title.Name)) //{ // Government = world.TitleGovernmentMapper[title.Name]; //} //else //{ // //TODO: proper government flavour stuff ////world.GovernmentMapper // //Government = "feudal_monarchy"; //world.GovernmentMapper[holder.GovernmentType]; //} if (holder != null) { var prov = holder.Titles.Where(t => t.Rank == TitleRank.county).Select(t => t.Province).FirstOrDefault(); PrimaryCulture = holder.Culture == prov?.Culture ? World.MapCulture(prov).Name : World.MapCulture(holder.Culture).Name; Religion = World.MapReligion(holder.Religion)?.Name; } AcceptedCultures = new List <string>(); CalcEffects(); Government = GovernmentTypeWeights.OrderByDescending(w => w.Value).First().Key; Reforms = new List <string>(); Reforms.Add(GovernmentReformWeights.OrderByDescending(w => w.Value).First().Key); }