public static void join(PopUnit pop) { if (pop.getMovement() == null) { var goal = pop.getMostImportantIssue(); if (!goal.Equals(default(KeyValuePair <AbstractReform, AbstractReformValue>))) { //find reasonable goal and join var found = pop.getCountry().movements.Find(x => x.getGoal() == goal.Value); if (found == null) { pop.setMovement(new Movement(goal.Key, goal.Value, pop, pop.getCountry())); } else { found.add(pop); pop.setMovement(found); } } } else // change movement if (Game.Random.Next(Options.PopChangeMovementRate) == 1) { leave(pop); join(pop); } }
public static void leave(PopUnit pop) { if (pop.getMovement() != null) { pop.getMovement().demobilize(x => x.getPopUnit() == pop); pop.getMovement().members.Remove(pop); if (pop.getMovement().members.Count == 0) { pop.getMovement().demobilize(); pop.getCountry().movements.Remove(pop.getMovement()); } pop.setMovement(null); } }
public override void Refresh() { if (pop != null) { var sb = new StringBuilder(); caption.text = pop.ToString(); //sb.Append(pop); sb.Append("Population: ").Append(pop.getPopulation()); //if (Game.devMode) sb.Append("\nStorage: ").Append(pop.storage.ToString()); Artisans isArtisan = pop as Artisans; if (isArtisan != null) { sb.Append(", input products: ").Append(isArtisan.getInputProducts()); sb.Append("\nProducing: "); if (isArtisan.getType() == null) { sb.Append("nothing"); } else { sb.Append(isArtisan.getType().basicProduction.getProduct()); } } sb.Append("\nGain goods: ").Append(pop.getGainGoodsThisTurn().ToString()); sb.Append("\nSent to market: ").Append(pop.getSentToMarket()); // hide it makeLine(sb, pop.getRichestPromotionTarget(), pop.getPromotionSize(), "Promotion: ", pop.wantsToPromote()); if (pop.getLastEscapeSize() != 0) { makeLineNew(sb, pop.getLastEscapeTarget(), pop.getLastEscapeSize()); } else { sb.Append("\nNo demotions\\migrations\\immigrations"); } sb.Append("\nAssimilation: "); if (pop.culture != pop.getCountry().getCulture() && pop.getAssimilationSize() > 0) { sb.Append(pop.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); if (pop.loans.get() > 0f) { sb.Append("\nLoan: ").Append(pop.loans.ToString());// hide it } 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) { sb.Append("\nMember of ").Append(pop.getMovement()); } sb.Append("\nConsumed: ").Append(pop.getConsumed()); //if (Game.devMode) // sb.Append("\nConsumedLT: ").Append(pop.getConsumedLastTurn()).Append(" cost: ").Append(Game.market.getCost(pop.getConsumedLastTurn()) // ).Append("\nConsumedIM: ").Append(pop.getConsumedInMarket()).Append(" cost: ").Append(Game.market.getCost(pop.getConsumedInMarket())); generaltext.text = sb.ToString(); sb.Clear(); sb.Append("Life needs: ").Append(pop.getLifeNeedsFullfilling().ToString()).Append(" fulfilled"); lifeNeedsText.GetComponent <ToolTipHandler>().SetDynamicString(() => " Life needs wants:\n" + pop.getRealLifeNeeds().getString("\n")); lifeNeedsText.text = sb.ToString(); sb.Clear(); sb.Append("Everyday needs: ").Append(pop.getEveryDayNeedsFullfilling().ToString()).Append(" fulfilled"); everyDayNeedsText.GetComponent <ToolTipHandler>().SetDynamicString(() => "Everyday needs wants:\n" + pop.getRealEveryDayNeeds().getString("\n")); everyDayNeedsText.text = sb.ToString(); sb.Clear(); sb.Append("Luxury needs: ").Append(pop.getLuxuryNeedsFullfilling().ToString()).Append(" fulfilled"); luxuryNeedsText.GetComponent <ToolTipHandler>().SetDynamicString(() => "Luxury needs wants:\n" + pop.getRealLuxuryNeeds().getString("\n")); luxuryNeedsText.text = sb.ToString(); sb.Clear(); sb.Append("Cash: ").Append(pop.cash.ToString()); money.text = sb.ToString(); money.GetComponent <ToolTipHandler>().SetDynamicString(() => "Money income: " + pop.moneyIncomethisTurn + "\nIncome tax: " + pop.incomeTaxPayed + "\nConsumed cost: " + Game.market.getCost(pop.getConsumed())); if (pop.popType.isProducer()) { efficiencyText.enabled = true; efficiencyText.text = "Efficiency: " + PopUnit.modEfficiency.getModifier(pop); efficiencyText.GetComponent <ToolTipHandler>().SetDynamicString(() => PopUnit.modEfficiency.GetDescription(pop)); } else { efficiencyText.enabled = false; //efficiencyText.GetComponent<ToolTipHandler>().SetText("");//it's disabled anyway } issues.GetComponent <ToolTipHandler>().SetDynamicString( delegate() { var items = from pair in pop.getIssues() orderby pair.Value descending select pair; return(items.getString(" willing ", "\n")); } ); } }