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); } }
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); }
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); }