示例#1
0
        private int CountFood(FoodKind kind)
        {
            int num = 0;

            foreach (var food in _Game.Cages.SelectedCage.Food)
            {
                if (food.Kind == kind)
                {
                    ++num;
                }
            }
            return(num);
        }
示例#2
0
        /* // Serialization disabled for now
         * /// <summary>
         * /// Initializes a new instance of the <see cref="Jantu.Species"/> class
         * /// from serialized data.
         * /// </summary>
         * /// <param name='info'>
         * /// Info.
         * /// </param>
         * /// <param name='ctx'>
         * /// Context.
         * /// </param>
         *      public Species(SerializationInfo info, StreamingContext ctx)
         *      {
         *              _name = (string)info.GetValue("Name", typeof(string));
         *              _movingSpeed = (double)info.GetValue("MovingSpeed", typeof(double));
         *              _excrementRate = (double)info.GetValue("ExcrementRate", typeof(double));
         *              _foodRate = (double)info.GetValue("FoodRate", typeof(double));
         *              _mutationProbability = (double)info.GetValue("MutationProbability", typeof(double));
         *              _maxHealth = (int)info.GetValue("MaxHealth", typeof(int));
         *              _symbol = (char)info.GetValue("Symbol", typeof(char));
         *
         *  // During serialization we stored name strings instead of references (references
         *  // change between program invokations and thus can't be serialized). The ctx
         *  // argument is expected to provide a pre-initialized data manager, which we can use
         *  // to restore the references.
         *  DataManager data = ctx.Context as DataManager;
         *
         *  List<string> foodNames = (List<string>)info.GetValue("Food", typeof(List<string>));
         *  _food = new List<FoodKind>(foodNames.Count);
         *  foreach (string kindName in foodNames)
         *      _food.Add(data.FoodKinds.GetByName(kindName));
         *
         *  List<string> preyNames = (List<string>)info.GetValue("Preys", typeof(List<string>));
         *  _preys = new List<Species>(preyNames.Count);
         *  foreach (string preyName in preyNames)
         *      _preys.Add(data.Species.GetByName(preyName));
         *
         *  List<string> enemyNames = (List<string>)info.GetValue("Enemies", typeof(List<string>));
         *  _enemies = new List<Species>(enemyNames.Count);
         *  foreach (string enemyName in enemyNames)
         *      _enemies.Add(data.Species.GetByName(enemyName));
         *
         *  List<string> breedingPartnerNames = (List<string>)info.GetValue("BreedingPartners", typeof(List<string>));
         *  _breedingPartners = new List<Species>(breedingPartnerNames.Count);
         *  foreach (string breedingPartnerName in breedingPartnerNames)
         *      _breedingPartners.Add(data.Species.GetByName(breedingPartnerName));
         *      }
         *
         * /// <summary>
         * /// Serielizes the object.
         * /// </summary>
         * /// <param name='info'>
         * /// Info.
         * /// </param>
         * /// <param name='ctx'>
         * /// Context.
         * /// </param>
         *      public void GetObjectData(SerializationInfo info, StreamingContext ctx)
         *      {
         *              info.AddValue("Name", _name);
         *              info.AddValue("MovingSpeed", _movingSpeed);
         *              info.AddValue("ExcrementRate", _excrementRate);
         *              info.AddValue("FoodRate", _foodRate);
         *              info.AddValue("MutationProbability", _mutationProbability);
         *              info.AddValue("MaxHealth", _maxHealth);
         *              info.AddValue("Symbol", _symbol);
         *
         *  // We can't serialize references. Instead we write name strings and use these to
         *  // restore the references from the game data managers during deserialization.
         *              List<string> foodNames = new List<string>(_food.Count);
         *              foreach (FoodKind kind in _food)
         *                      foodNames.Add(kind.Name);
         *              info.AddValue("Food", foodNames);
         *
         *              List<string> preyNames = new List<string>(_preys.Count);
         *              foreach (Species prey in _preys)
         *                      preyNames.Add(prey.Name);
         *              info.AddValue("Preys", preyNames);
         *
         *  List<string> enemyNames = new List<string>(_enemies.Count);
         *  foreach (Species enemy in _enemies)
         *      enemyNames.Add(enemy.Name);
         *  info.AddValue("Enemies", enemyNames);
         *
         *  List<string> breedingPartnerNames = new List<string>(_breedingPartners.Count);
         *  foreach (Species breedingPartner in _breedingPartners)
         *      breedingPartnerNames.Add(breedingPartner.Name);
         *  info.AddValue("BreedingPartners", breedingPartnerNames);
         *      }
         */

        /// <summary>
        /// Returns whether animals of this species eat the given type of food.
        /// </summary>
        /// <param name='food'>
        /// Type of food.
        /// </param>
        public bool Eats(FoodKind food)
        {
            // The comparision by object identity is intentional!
            return(_food.Exists(k => k == food));
        }
示例#3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Jantu.FoodEntity"/> class.
 /// </summary>
 /// <param name='kind'>
 /// Kind.
 /// </param>
 public FoodEntity(FoodKind kind)
 {
     _kind = kind;
 }
示例#4
0
 /// <summary>
 /// Add the specified food kind.
 /// </summary>
 /// <param name='kind'>
 /// Kind.
 /// </param>
 public void Add(FoodKind kind)
 {
     _kinds.Add(kind.Name, kind);
 }