Beispiel #1
0
        public void SpawnTribe(AnimalProperties properties)
        {
            Tribe tribe = new Tribe(_world, properties);

            tribe.TribeColor = new Color(255, 255, 255);
            AddTribe(tribe);
        }
Beispiel #2
0
        public void CreateRandomTribes(int numberOfTribes)
        {
            for (int i = 0; i != numberOfTribes; ++i)
            {
                AnimalProperties properties = new AnimalProperties();
                properties.Agility              = 1 + RandomGenerator.Random.Next(0, 2);
                properties.Stamina              = 1 + RandomGenerator.Random.Next(0, 3);
                properties.Strength             = 1 + RandomGenerator.Random.Next(0, 3);
                properties.Diet                 = AnimalProperties.DietType.CARNIVORE;
                properties.GroupBehaviour       = 1 + RandomGenerator.Random.Next(0, 6);;
                properties.PreferredAltitude    = 50 + RandomGenerator.Random.Next(-40, 40);;
                properties.PreferredTemperature = 300 + +RandomGenerator.Random.Next(-40 + 40);;
                properties.PreferredTerrain     = AnimalProperties.TerrainType.LAND;
                properties.NumberOfAnimals      = 10 + RandomGenerator.Random.Next(0, 20);

                Tribe tribe = new Tribe(_world, properties);

                tribe.PositionInTiles = RandomGenerator.GetRandomVector2iInRect(new IntRect(0, 0, _world.GetWorldProperties().WorldSizeInTiles.X, _world.GetWorldProperties().WorldSizeInTiles.Y));
                for (int j = 0; j != properties.NumberOfAnimals; ++j)
                {
                    tribe.SpawnAnimal();
                }
                _tribeList.Add(tribe);
            }
        }
Beispiel #3
0
    // Use this for initialization
    void Start()
    {
        animalProperty   = this.gameObject.GetComponent <AnimalProperties>();
        animalController = this.gameObject.GetComponent <AnimalController>();

        animalProperty.currentVel   = new Vector3(Random.Range(500.0F, 1000.0F), Random.Range(100.0F, 1000.0F), 0);
        animalProperty.currentVel   = Vector3.Normalize(animalProperty.currentVel) * animalProperty.maxSpeed * Time.deltaTime;
        animalProperty.acceleration = Vector3.zero;
    }
Beispiel #4
0
        private float _fuckDeadTime; // will also use MoveTimerMax



        public Animal(AnimalProperties properties, IWorld world, Tribe tribe, Vector2i initialPosition)
        {
            World           = world;
            Tribe           = tribe;
            _shape          = new CircleShape(TileSizeInPixels / 2.0f - 1.0f);
            PositionInTiles = initialPosition;

            CalculateAnimalParameters(properties);

            _intelligence = new AnimalAI(this);
        }
Beispiel #5
0
        public Tribe(IWorld world, AnimalProperties properties)
        {
            if (world == null)
            {
                throw new ArgumentNullException("IWorld world", "could not resolve world in Tribe Constructor.");
            }
            _world      = world;
            _animalList = new List <Animal>();
            Properties  = properties;

            PositionInTiles = new Vector2i(_world.GetWorldProperties().WorldSizeInTiles.X / 2, _world.GetWorldProperties().WorldSizeInTiles.Y / 2);
            TribeColor      = RandomGenerator.GetRandomColor();
        }
Beispiel #6
0
        private void CalculateAnimalParameters(AnimalProperties prop)
        {
            HealthMax          = 5 + prop.Stamina * 5 + prop.Strength * 3;
            HealthCurrent      = HealthMax;
            HealthRegeneration = prop.Stamina * 0.5f;

            MoveTimerMax = 1.0f / (prop.Agility + 1.0f);
            //Console.WriteLine("Move Timer is " + MoveTimerMax);

            Hunger = (prop.Strength + prop.Stamina) * 0.5f;

            PreferredAltitude    = prop.PreferredAltitude;
            PreferredTerrain     = prop.PreferredTerrain;
            PreferredTemperature = prop.PreferredTemperature;

            GroupBehaviour = prop.GroupBehaviour / 15.0f - 0.1f;
        }
 // Use this for initialization
 void Start()
 {
     animalProperties  = this.gameObject.GetComponent <AnimalProperties>();
     steeringBehaviour = this.gameObject.GetComponent <Steering>();
     renderer          = this.GetComponent <Renderer>();
 }
Beispiel #8
0
 // Use this for initialization
 void Start()
 {
     animalController = this.gameObject.GetComponent <AnimalController>();
     animalProperty   = this.gameObject.GetComponent <AnimalProperties>();
 }