Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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();
        }