public int AddCreature(ICreatureType creatureType)
        {
            lastId++;
            creatures.Add(new Creature(lastId, creatureType));
            creatureType.AddCreature();

            return(creatures.Count);
        }
 public CreatureDTO(Creature source)
 {
     Id            = source.Id;
     Health        = source.Health;
     CreatureType  = source.CreatureType;
     FoodCollected = source.FoodCollected;
     NextStatus    = source.NextStatus;
     Position      = new Coordinate(source.Position);
 }
        public void UpdateCreatures()
        {
            foreach (Creature reproducingCreature in Creatures.FindAll(creature => creature.NextStatus == LifeStatus.Reproduce))
            {
                ICreatureType newbornCreatureType = CreatureTypes.Mutate(reproducingCreature.CreatureType, reproducingCreature.Id);
                AddCreature(newbornCreatureType);
            }

            Log.Information("");

            foreach (Creature dyingCreature in Creatures.FindAll(creature => creature.NextStatus == LifeStatus.Die))
            {
                RemoveCreature(dyingCreature);
            }
        }
Exemple #4
0
        public Creature(Creature source)
        {
            Id = source.Id;

            Health       = source.Health;
            AttackPower  = source.AttackPower;
            MaxSpeed     = source.MaxSpeed;
            Reach        = source.Reach;
            CreatureType = source.CreatureType;

            FoodCollected        = 0;
            FoodCollectedLastDay = 0;
            NextStatus           = LifeStatus.StayAlive;

            _randomGen = new Random(Guid.NewGuid().GetHashCode());

            Position = new Coordinate(source.Position);

            FoodInReachIds       = new List <int>(source.FoodInReachIds);
            CreaturesInReachIds  = new List <int>(source.CreaturesInReachIds);
            ReachingCreaturesIds = new List <int>(source.ReachingCreaturesIds);
        }
Exemple #5
0
        public Creature(int id, ICreatureType creatureType)
        {
            Id = id;

            CreatureType = creatureType;

            Health      = creatureType.Health;
            AttackPower = creatureType.AttackPower;
            MaxSpeed    = creatureType.MaxSpeed;
            Reach       = creatureType.Reach;
            Energy      = creatureType.Energy;

            FoodCollected        = 0;
            FoodCollectedLastDay = 0;
            NextStatus           = LifeStatus.StayAlive;

            _randomGen = new Random(Guid.NewGuid().GetHashCode());

            Position = new Coordinate(0.0, 0.0);

            FoodInReachIds       = new List <int>();
            CreaturesInReachIds  = new List <int>();
            ReachingCreaturesIds = new List <int>();
        }
 public void AddCreature(ICreatureType creatureType)
 {
     Creatures.AddCreature(creatureType);
 }