public string ReloadForest(Session session, string[] parms) { bool help = false; int capacity = 400; try { var p = new OptionSet { { "capacity=", v => capacity = int.Parse(v) }, { "?|help|h", v => help = true }, }; p.Parse(parms); } catch (Exception) { help = true; } if (help) { return("reloadforest --capacity=count"); } forestManager.ReloadForests(capacity); foreach (ICity city in cityManager.AllCities()) { locker.Lock(city).Do(() => { var lumbermill = city.FirstOrDefault(structure => objectTypeFactory.IsStructureType("Lumbermill", structure)); if (lumbermill == null) { return; } lumbermill.BeginUpdate(); lumbermill["Labor"] = formula.GetForestCampLaborerString(lumbermill); lumbermill.EndUpdate(); }); } return(string.Format("OK! All forests' capacities set to [{0}]", capacity)); }
private void SerializeCities(JsonWriter jw) { jw.WritePropertyName("cities"); jw.WriteStartArray(); foreach (var city in cityManager.AllCities().Where(c => c.Deleted == City.DeletedState.NotDeleted)) { jw.WriteStartObject(); jw.WritePropertyName("id"); jw.WriteValue(city.Id); jw.WritePropertyName("player_id"); var owner = city.Owner; jw.WriteValue(owner == null ? null : (uint?)owner.PlayerId); jw.WritePropertyName("name"); jw.WriteValue(city.Name); jw.WritePropertyName("x"); jw.WriteValue(city.PrimaryPosition.X); jw.WritePropertyName("y"); jw.WriteValue(city.PrimaryPosition.Y); jw.WritePropertyName("value"); jw.WriteValue(city.Value); jw.WritePropertyName("radius"); jw.WriteValue(city.Radius); jw.WritePropertyName("loot_stolen"); jw.WriteValue(city.LootStolen); jw.WritePropertyName("attack_points"); jw.WriteValue(city.AttackPoint); jw.WritePropertyName("defense_point"); jw.WriteValue(city.DefensePoint); jw.WritePropertyName("expense_value"); jw.WriteValue(city.ExpenseValue); jw.WritePropertyName("troops"); jw.WriteStartArray(); foreach (var troop in city.TroopObjects.Where(x => x.InWorld)) { jw.WriteStartObject(); jw.WritePropertyName("x"); jw.WriteValue(troop.PrimaryPosition.X); jw.WritePropertyName("y"); jw.WriteValue(troop.PrimaryPosition.Y); jw.WritePropertyName("state"); var stub = troop.Stub; jw.WriteValue(stub != null ? stub.State.ToString() : TroopState.Idle.ToString()); jw.WriteEndObject(); } jw.WriteEndArray(); jw.WriteEndObject(); } jw.WriteEndArray(); }