public void ShowEconomyOverlay(EconomyTrait t) { ShowOverlayLegend(EnumHelper.GetDescription(t)); foreach (Region r in Map.LandRegions.Where(x => Game.VisibleDistricts.ContainsKey(x))) { Policy policy = Game.LocalPlayerParty.GetPolicy(t); int policyImpact = Game.VisibleDistricts[r].GetBaseImpact(policy); Color impactColor = ColorManager.Singleton.GetImpactColor(policyImpact); r.SetColor(impactColor); } }
public District(Random.State seed, ElectionTacticsGame game, Region r, string name) { Seed = seed; Game = game; Region = r; Name = name; Random.state = seed; SetGeographyTraits(); Density = GetDensityForNewRegion(); AgeGroup = GetAgeGroupForNewRegion(); Language = GetLanguageForNewRegion(); Religion = GetReligionForNewRegion(); Economy1 = ElectionTacticsGame.GetRandomEconomyTrait(); Economy2 = ElectionTacticsGame.GetRandomEconomyTrait(); while (Economy2 == Economy1) { Economy2 = ElectionTacticsGame.GetRandomEconomyTrait(); } Economy3 = ElectionTacticsGame.GetRandomEconomyTrait(); while (Economy3 == Economy2 || Economy3 == Economy1) { Economy3 = ElectionTacticsGame.GetRandomEconomyTrait(); } int numMentalities = Random.Range(1, 4); while (Mentalities.Count < numMentalities) { Mentality m = Game.GetRandomAdoptableMentality(this); Mentalities.Add(m); MentalityTypes.Add(m.Type); } // Population calculation Population = (int)(Region.Area * 1000000); float populationModifier = 0f; if (Density == Density.Urban) { populationModifier = Random.Range(1.2f, 1.6f); } if (Density == Density.Mixed) { populationModifier = Random.Range(0.8f, 1.2f); } if (Density == Density.Rural) { populationModifier = Random.Range(0.4f, 0.8f); } Population = (int)(Population * populationModifier); Population = (Population / 1000) * 1000; // Seat calculation int tmpPop = Population; int tmpSeatRequirement = RequiredPopulationPerSeat; int tmpSeats = 0; while (tmpPop >= tmpSeatRequirement) { tmpSeats++; tmpPop -= tmpSeatRequirement; tmpSeatRequirement += RequirementIncreasePerSeat; } Seats = Mathf.Max(MinSeats, tmpSeats); // Voter calculation if (MentalityTypes.Contains(MentalityType.Predictable)) { Voters = Random.Range(NumVotersPredictableMin, NumVotersPredictableMax + 1); } else if (MentalityTypes.Contains(MentalityType.Unpredictable)) { Voters = Random.Range(NumVotersUnpredictableMin, NumVotersUnpredictableMax + 1); } else { Voters = Random.Range(NumVotersDefaultMin, NumVotersDefaultMax + 1); } // Voter turnour if (MentalityTypes.Contains(MentalityType.LowVoterTurnout)) { VoterTurnout = Random.Range(VoterTurnoutLowMin, VoterTurnoutLowMax); } else if (MentalityTypes.Contains(MentalityType.HighVoterTurnout)) { VoterTurnout = Random.Range(VoterTurnoutHighMin, VoterTurnoutHighMax); } else { VoterTurnout = Random.Range(VoterTurnoutDefaultMin, VoterTurnoutDefaultMax); } }
public void Init(UI_ElectionTactics ui, EconomyTrait et) { HoverAction = () => { UI.MapControls.ShowEconomyOverlay(et); }; Init(ui, EnumHelper.GetDescription(et), EnumHelper.GetDescription(et), "Economy sector"); }
public int GetPolicyValueFor(EconomyTrait t) { return(GetPolicy(t).Value); }
public Policy GetPolicy(EconomyTrait t) { return(Policies.OfType <EconomyPolicy>().First(x => x.Trait == t)); }
public EconomyPolicy(int id, Party p, EconomyTrait trait, int maxValue) : base(id, p, maxValue) { Trait = trait; Name = EnumHelper.GetDescription(trait); Type = PolicyType.Economy; }