Example #1
0
 void CreateAttacks()
 {
     avTacks = new AttackTypes(this.Dominant);
 }
Example #2
0
        /// <summary>
        /// Generates a creature based on seed value.
        /// </summary>
        /// <param name="Seed">Seed value.</param>
        public Creature(int Seed, Texture2D texture, Vector2 position2D, float moveSpeed, int frameWidth, int frameHeight, int millisecondsBetweenFrame)
            : base(texture, position2D, moveSpeed, frameWidth, frameWidth, millisecondsBetweenFrame)
        {
            _seed = Seed;

            int[] Points = new int[2];
            int[] BDMax = new int[2];
            int[] TUMax = new int[2];

            ushort[,] Stats = new ushort[2, 7];
            ushort[,] BD = new ushort[2, 7];

            StatsBool[,] Toggles = new StatsBool[2, 5];

            Random rand = new Random(Seed);
            for (int y = 0; y < 2; y++)
            {
                Points[y] = 800;
                BDMax[y] = 32;
                TUMax[y] = 32;

                //stats
                for (int i = 0; i < 7; i++)
                {
                    Stats[y, i] = (ushort)rand.Next(Points[y] / (7 - (i)));
                    Points[y] -= Stats[y, i];

                    BD[y, i] = (ushort)rand.Next(BDMax[y] / (7 - (i)));
                    BDMax[y] -= BD[y, i];
                }

                //left over points get allocated
                int looper = 0;
                while (Points[y] != 0)
                {
                    int value = (ushort)rand.Next(1, Points[y]);
                    Stats[y, looper] += (ushort)value;
                    Points[y] -= value;
                    looper = (looper + 1) % 7;
                }

                while (BDMax[y] != 0)
                {
                    int value = (ushort)rand.Next(1, BDMax[y]);
                    BD[y, looper] += (ushort)value;
                    BDMax[y] -= value;
                    looper = (looper + 1) % 7;
                }

                for (int i = 0; i < 5; i++)
                {

                    Toggles[y, i].Active = rand.Next(0, 2) == 0;
                    Toggles[y, i].Used = (ushort)rand.Next(TUMax[y] / (5 - (i)));
                    TUMax[y] -= BD[y, i];
                }

                while (TUMax[y] != 0)
                {
                    looper = (looper + 1) % 5;
                    int value = (ushort)rand.Next(1, TUMax[y]);
                    Toggles[y, looper].Used += value;
                    TUMax[y] -= value;
                }
            }

            StatsUShort[] Health = new StatsUShort[2];
            Health[0].Maximum = Stats[0, 0];
            Health[0].Used = BD[0, 0];
            Health[1].Maximum = Stats[1, 0];
            Health[1].Used = BD[1, 0];
            InitialValues(ref Health);
            StatsUShort[] Weight = new StatsUShort[2];
            Weight[0].Maximum = Stats[0, 1];
            Weight[0].Used = BD[0, 1];
            Weight[1].Maximum = Stats[1, 1];
            Weight[1].Used = BD[1, 1];
            InitialValues(ref Weight);
            StatsUShort[] Size = new StatsUShort[2];
            Size[0].Maximum = Stats[0, 2];
            Size[0].Used = BD[0, 2];
            Size[1].Maximum = Stats[1, 2];
            Size[1].Used = BD[1, 2];
            InitialValues(ref Size);
            StatsUShort[] Strength = new StatsUShort[2];
            Strength[0].Maximum = Stats[0, 3];
            Strength[0].Used = BD[0, 3];
            Strength[1].Maximum = Stats[1, 3];
            Strength[1].Used = BD[1, 3];
            InitialValues(ref Strength);
            StatsUShort[] Dexterity = new StatsUShort[2];
            Dexterity[0].Maximum = Stats[0, 4];
            Dexterity[0].Used = BD[0, 4];
            Dexterity[1].Maximum = Stats[1, 4];
            Dexterity[1].Used = BD[1, 4];
            InitialValues(ref Dexterity);
            StatsUShort[] Endurance = new StatsUShort[2];
            Endurance[0].Maximum = Stats[0, 5];
            Endurance[0].Used = BD[0, 5];
            Endurance[1].Maximum = Stats[1, 5];
            Endurance[1].Used = BD[1, 5];
            InitialValues(ref Endurance);
            StatsUShort[] Speed = new StatsUShort[2];
            Speed[0].Maximum = Stats[0, 6];
            Speed[0].Used = BD[0, 6];
            Speed[1].Maximum = Stats[1, 6];
            Speed[1].Used = BD[1, 6];
            InitialValues(ref Speed);

            Dominant.Health = Health[0];
            Recessive.Health = Health[1];
            Dominant.Weight = Weight[0];
            Recessive.Weight = Weight[1];
            Dominant.Size = Size[0];
            Recessive.Size = Size[1];
            Dominant.Strength = Strength[0];
            Recessive.Strength = Strength[1];
            Dominant.Dexterity = Dexterity[0];
            Recessive.Dexterity = Dexterity[1];
            Dominant.Endurance = Endurance[0];
            Recessive.Endurance = Endurance[1];
            Dominant.Speed = Speed[0];
            Recessive.Speed = Speed[1];

            Dominant.Head = Toggles[0, 0];
            Recessive.Head = Toggles[1, 0];
            Dominant.Legs = Toggles[0, 1];
            Recessive.Legs = Toggles[1, 1];
            Dominant.Arms = Toggles[0, 2];
            Recessive.Arms = Toggles[1, 2];
            Dominant.Wings = Toggles[0, 3];
            Recessive.Wings = Toggles[1, 3];
            Dominant.Claws = Toggles[0, 4];
            Recessive.Claws = Toggles[1, 4];

            this.Health = this.Dominant.Health.Level;

            //Not Yet Implimented
            Dominant.SpinalColumns.Maximum = 8;
            Dominant.TailColumns.Maximum = 4;

            avTacks = new AttackTypes(Dominant);
            CreateModel();
        }
Example #3
0
        /// <summary>
        /// Breeds two creatures together.
        /// </summary>
        /// <param name="A">Parent No1</param>
        /// <param name="B">Parent No2</param>
        public Creature(Creature A, Creature B, Texture2D texture, Vector2 position2D, float moveSpeed, int frameWidth, int frameHeight, int millisecondsBetweenFrame)
            : base(texture, position2D, moveSpeed, frameWidth, frameWidth, millisecondsBetweenFrame)
        {
            StatsUShort[] Health = IntMethod(A.Dominant.Health, B.Dominant.Health, A.Recessive.Health, B.Recessive.Health);
            Dominant.Health = Health[0];
            Recessive.Health = Health[1];

            StatsUShort[] Weight = IntMethod(A.Dominant.Weight, B.Dominant.Weight, A.Recessive.Weight, B.Recessive.Weight);
            Dominant.Weight = Weight[0];
            Recessive.Weight = Weight[1];

            StatsUShort[] Size = IntMethod(A.Dominant.Size, B.Dominant.Size, A.Recessive.Size, B.Recessive.Size);
            Dominant.Size = Size[0];
            Recessive.Size = Size[1];

            StatsUShort[] Strength = IntMethod(A.Dominant.Strength, B.Dominant.Strength, A.Recessive.Strength, B.Recessive.Strength);
            Dominant.Strength = Strength[0];
            Recessive.Strength = Strength[1];

            StatsUShort[] Dexterity = IntMethod(A.Dominant.Dexterity, B.Dominant.Dexterity, A.Recessive.Dexterity, B.Recessive.Dexterity);
            Dominant.Dexterity = Dexterity[0];
            Recessive.Dexterity = Dexterity[1];

            StatsUShort[] Endurance = IntMethod(A.Dominant.Endurance, B.Dominant.Endurance, A.Recessive.Endurance, B.Recessive.Endurance);
            Dominant.Endurance = Endurance[0];
            Recessive.Endurance = Endurance[1];

            StatsUShort[] Speed = IntMethod(A.Dominant.Speed, B.Dominant.Speed, A.Recessive.Speed, B.Recessive.Speed);
            Dominant.Speed = Speed[0];
            Recessive.Speed = Speed[1];

            float AvgRecUsed = (A.RecessiveGenesBoolUsedAvg + B.RecessiveGenesBoolUsedAvg) / 2;

            StatsBool[] Head = BoolMethod(A.Dominant.Head, B.Dominant.Head, A.Recessive.Head, B.Recessive.Head, AvgRecUsed);
            Dominant.Head = Head[0];
            Recessive.Head = Head[1];
            StatsBool[] Legs = BoolMethod(A.Dominant.Legs, B.Dominant.Legs, A.Recessive.Legs, B.Recessive.Legs, AvgRecUsed);
            Dominant.Legs = Legs[0];
            Recessive.Legs = Legs[1];
            StatsBool[] Arms = BoolMethod(A.Dominant.Arms, B.Dominant.Arms, A.Recessive.Arms, B.Recessive.Arms, AvgRecUsed);
            Dominant.Arms = Arms[0];
            Recessive.Arms = Arms[1];
            StatsBool[] Wings = BoolMethod(A.Dominant.Wings, B.Dominant.Wings, A.Recessive.Wings, B.Recessive.Wings, AvgRecUsed);
            Dominant.Wings = Wings[0];
            Recessive.Wings = Wings[1];
            StatsBool[] Claws = BoolMethod(A.Dominant.Claws, B.Dominant.Claws, A.Recessive.Claws, B.Recessive.Claws, AvgRecUsed);
            Dominant.Claws = Claws[0];
            Recessive.Claws = Claws[1];

            // Reset Used on breed creature.
            if (Dominant.Head.Active)
                Dominant.Head.Used = 0;
            if (Dominant.Legs.Active)
                Dominant.Legs.Used = 0;
            if (Dominant.Arms.Active)
                Dominant.Arms.Used = 0;
            if (Dominant.Wings.Active)
                Dominant.Wings.Used = 0;
            if (Dominant.Claws.Active)
                Dominant.Claws.Used = 0;

            avTacks = new AttackTypes(Dominant);
            CreateModel();
        }