diff --git a/Assets/ES-base.unity b/Assets/ES-base.unity
index 738143ae..303b62ee 100644
Binary files a/Assets/ES-base.unity and b/Assets/ES-base.unity differ
diff --git a/Assets/code/Logic/Game.cs b/Assets/code/Logic/Game.cs
index 8de5ba50..3d54fef7 100644
--- a/Assets/code/Logic/Game.cs
+++ b/Assets/code/Logic/Game.cs
@@ -583,7 +583,8 @@ static void makeHelloMessage()
+ " \n\tbasic reforms (population can vote for reforms)"
+ "\n\tpopulation demotion \\ promotion to other classes \n\tmigration \\ immigration \\ assimilation"
+ "\n\tpolitical \\ culture \\ core map mode"
- + "\n\nYou play as " + Game.Player.getDescription() + " country yet there is no much gameplay for now. You can try to growth economy or conquer the world."
+ + "\n\nYou play as " + Game.Player.getDescription() + " yet there is no much gameplay for now. You can try to growth economy or conquer the world."
+ + "\nOr, You can give control to AI and watch it"
+ "\n\nTry arrows or WASD for scrolling map and mouse wheel for scale"
+ "\n'Enter' key to close top window, space - to pause \\ unpause"
, "Ok");
@@ -705,7 +706,7 @@ internal static void simulate()
pop.calcLoyalty();
- if (Game.Random.Next(10) == 1)
+ //if (Game.Random.Next(10) == 1)
{
pop.calcGrowth();
pop.calcPromotions();
diff --git a/Assets/code/Logic/Options.cs b/Assets/code/Logic/Options.cs
index c14d5db9..b0869113 100644
--- a/Assets/code/Logic/Options.cs
+++ b/Assets/code/Logic/Options.cs
@@ -55,7 +55,9 @@ public static class Options
public static readonly Procent PopDemotionSpeed = new Procent(0.01f);
/// promotion - when popUnit has chance to get better place in hierarchy
public static readonly Procent PopPromotionSpeed = new Procent(0.01f);
- public static readonly Procent PopAssimilationSpeed = new Procent(0.001f);
+ public static readonly Procent PopAssimilationSpeed = new Procent(0.002f);
+ public static readonly Procent PopAssimilationSpeedWithEquality = new Procent(0.001f);
+
public static readonly Procent PopMigrationSpeed = new Procent(0.01f);
public static readonly Procent PopImmigrationSpeed = new Procent(0.01f);
@@ -67,7 +69,7 @@ public static class Options
public static readonly int PopSizeConsolidationLimit = 100;
/// Time before which pop wouldn't be wipe out by Pop change methods like promote\ assimilate\migrate
- public static readonly int PopAgeLimitToWipeOut = 250;
+ public static readonly int PopAgeLimitToWipeOut = 50; //250;
internal static readonly float MaxMoralChangePerTic = 0.05f;
internal static readonly int PopRichStrataVotePower = 5;
diff --git a/Assets/code/Logic/PopUnit.cs b/Assets/code/Logic/PopUnit.cs
index 2f604433..614b5ae3 100644
--- a/Assets/code/Logic/PopUnit.cs
+++ b/Assets/code/Logic/PopUnit.cs
@@ -1168,13 +1168,17 @@ private void assimilate(Culture toWhom, int assimilationSize)
public int getAssimilationSize()
{
- if (province.isCoreFor(this) || getCountry().minorityPolicy.getValue() == MinorityPolicy.Equality)
+ if (province.isCoreFor(this))
return 0;
else
{
- int result = (int)(this.getPopulation() * Options.PopAssimilationSpeed.get());
- if (result > 0)
- return result;
+ int assimilationSpeed;
+ if (getCountry().minorityPolicy.getValue() == MinorityPolicy.Equality)
+ assimilationSpeed = (int)(this.getPopulation() * Options.PopAssimilationSpeedWithEquality.get() );
+ else
+ assimilationSpeed = (int)(this.getPopulation() * Options.PopAssimilationSpeed.get());
+ if (assimilationSpeed > 0)
+ return assimilationSpeed;
else
{
if (getAge() > Options.PopAgeLimitToWipeOut)
diff --git a/Assets/code/Logic/Reform.cs b/Assets/code/Logic/Reform.cs
index 23a1c6cd..444da2cc 100644
--- a/Assets/code/Logic/Reform.cs
+++ b/Assets/code/Logic/Reform.cs
@@ -1113,10 +1113,10 @@ protected override Procent howIsItGoodForPop(PopUnit pop)
public MinorityPolicy(Country country) : base("Minority Policy", "- Minority Policy", country)
{
if (Equality == null)
- Equality = new ReformValue("Equality for minorities", "- All cultures have same rights, assimilation is off", 2,
+ Equality = new ReformValue("Equality for minorities", "- All cultures have same rights, assimilation is slower", 2,
new ConditionsList(new List() { Invention.IndividualRightsInvented }));
if (Residency == null)
- Residency = new ReformValue("Restricted rights for minorities", "- Only state culture can vote, assimilation is on except alien cores", 1, new ConditionsList());
+ Residency = new ReformValue("Restricted rights for minorities", "- Only state culture can vote, assimilation is on except foreign core provinces", 1, new ConditionsList());
status = Residency;
//IsResidencyPop = new Condition(x => (x as PopUnit).province.getOwner().minorityPolicy.status == MinorityPolicy.Residency,
diff --git a/Assets/code/Panels/PopUnitPanel.cs b/Assets/code/Panels/PopUnitPanel.cs
index f0f06a43..b51fe2ff 100644
--- a/Assets/code/Panels/PopUnitPanel.cs
+++ b/Assets/code/Panels/PopUnitPanel.cs
@@ -29,43 +29,6 @@ public void refresh()
if (pop != null)
{
var sb = new StringBuilder();
- efficiencyText.text = "Efficiency: " + PopUnit.modEfficiency.getModifier(pop, out efficiencyText.GetComponentInChildren().tooltip);
-
- issues.GetComponentInChildren().setDynamicString(() => pop.getIssues().getString(" willing ", "\n"));
-
- string demotionText;
- var target = pop.getRichestDemotionTarget();
- if (pop.wantsToDemote() && target != null && pop.getDemotionSize() > 0)
- demotionText = target + " " + pop.getDemotionSize();
- else
- demotionText = "none";
-
- string promotionText;
- var targetPro = pop.getRichestPromotionTarget();
- if (pop.wantsToPromote() && targetPro != null && pop.getPromotionSize() > 0)
- promotionText = targetPro + " " + pop.getPromotionSize();
- else
- promotionText = "none";
-
- string migrationText;
- var targetM = pop.getRichestMigrationTarget();
- if (pop.wantsToMigrate() && targetM != null && pop.getMigrationSize() > 0)
- migrationText = targetM + " " + pop.getMigrationSize();
- else
- migrationText = "none";
-
- string immigrationText;
- var targetIM = pop.getRichestImmigrationTarget();
- if (pop.wantsToImmigrate() && targetIM != null && pop.getImmigrationSize() > 0)
- immigrationText = targetIM + " (" + targetIM.getCountry() + ") " + pop.getImmigrationSize();
- else
- immigrationText = "none";
-
- string assimilationText;
- if (pop.culture != pop.province.getCountry().getCulture() && pop.getAssimilationSize() > 0)
- assimilationText = pop.province.getCountry().getCulture() + " " + pop.getAssimilationSize();
- else
- assimilationText = "none";
sb.Append(pop);
sb.Append("\nPopulation: ").Append(pop.getPopulation());
@@ -75,11 +38,18 @@ public void refresh()
sb.Append("\nGain goods: ").Append(pop.gainGoodsThisTurn.ToString());
sb.Append("\nSent to market: ").Append(pop.sentToMarket); // hide it
- sb.Append("\nDemotion: ").Append(demotionText);
- sb.Append("\nPromotion: ").Append(promotionText);
- sb.Append("\nMigration: ").Append(migrationText);
- sb.Append("\nImmigration: ").Append(immigrationText);
- sb.Append("\nAssimilation: ").Append(assimilationText);
+ makeLine(sb, pop.getRichestDemotionTarget(), pop.getDemotionSize(), "Demotion: ", pop.wantsToDemote());
+ makeLine(sb, pop.getRichestPromotionTarget(), pop.getPromotionSize(), "Promotion: ", pop.wantsToPromote());
+
+ makeLine(sb, pop.getRichestMigrationTarget(), pop.getMigrationSize(), "Migration: ", pop.wantsToMigrate());
+ makeLine(sb, pop.getRichestImmigrationTarget(), pop.getImmigrationSize(), "Immigration: ", pop.wantsToImmigrate());
+
+ sb.Append("\nAssimilation: ");
+ if (pop.culture != pop.province.getCountry().getCulture() && pop.getAssimilationSize() > 0)
+ sb.Append(pop.province.getCountry().getCulture()).Append(" ").Append(pop.getAssimilationSize());
+ else
+ sb.Append("none");
+
sb.Append("\nGrowth: ").Append(pop.getGrowthSize());
sb.Append("\nUnemployment: ").Append(pop.getUnemployedProcent());
sb.Append("\nLoyalty: ").Append(pop.loyalty);
@@ -89,8 +59,6 @@ public void refresh()
if (pop.deposits.get() > 0f)
sb.Append("\nDeposit: ").Append(pop.deposits.ToString());// hide it
-
-
sb.Append("\nAge: ").Append(pop.getAge());
sb.Append("\nMobilized: ").Append(pop.getMobilized());
if (pop.getMovement() != null)
@@ -124,8 +92,30 @@ public void refresh()
money.GetComponentInChildren().setDynamicString(() => "Money income: " + pop.moneyIncomethisTurn
+ "\nIncome tax: " + pop.incomeTaxPayed
+ "\nConsumed cost: " + Game.market.getCost(pop.consumedTotal));
+
+ efficiencyText.text = "Efficiency: " + PopUnit.modEfficiency.getModifier(pop, out efficiencyText.GetComponentInChildren().tooltip);
+ issues.GetComponentInChildren().setDynamicString(() => pop.getIssues().getString(" willing ", "\n"));
}
}
+ private void makeLine(StringBuilder sb, PopType target, int size, string header, bool boolCheck)
+ {
+ //sb.Clear();
+ sb.Append("\n").Append(header);
+
+ if (boolCheck && target != null && size > 0)
+ sb.Append(target).Append(" ").Append(size);
+ else
+ sb.Append("none");
+ }
+ private void makeLine(StringBuilder sb, Province target, int size, string header, bool boolCheck)
+ {
+ //sb.Clear();
+ sb.Append("\n").Append(header);
+ if (boolCheck && target != null && size > 0)
+ sb.Append(target).Append(" ").Append(size);
+ else
+ sb.Append("none");
+ }
public void show(PopUnit ipopUnit)
{
gameObject.SetActive(true);
diff --git a/Assets/code/Panels/TopPanel.cs b/Assets/code/Panels/TopPanel.cs
index bc761e3f..e2766d24 100644
--- a/Assets/code/Panels/TopPanel.cs
+++ b/Assets/code/Panels/TopPanel.cs
@@ -13,8 +13,7 @@ void Start()
btnStep.onClick.AddListener(() => onbtnStepClick(btnPlay));
btnPlay.image.color = Color.grey;
MainCamera.topPanel = this;
- hide();
-
+ hide();
}
public void hide()
{
@@ -28,9 +27,9 @@ public void show()
}
public void refresh()
{
- generalText.text = "Economic Simulation v0.12.2 Date: " + Game.date.ToShortDateString() + " Country: " + Game.Player.getName()
+ generalText.text = "Economic Simulation v0.13.0 Date: " + Game.date.ToShortDateString() + " Country: " + Game.Player.getName()
+ "\nMoney: " + Game.Player.cash
- + " Science points: " + Game.Player.sciencePoints
+ + " Science points: " + Game.Player.sciencePoints.get().ToString("N0")
+ " Men: " + Game.Player.getMenPopulation()
+ " avg. loyalty: " + Game.Player.getAverageLoyalty();
}