Esempio n. 1
0
        static public BitArray AffinityBitsFromAffinity(Affinities a)
        {
            BitArray ret = new BitArray(2);

            switch (a)
            {
            case Affinities.complete:
                ret[0] = true;
                ret[1] = true;
                break;

            case Affinities.dontCare:
                ret[0] = false;
                ret[1] = false;
                break;

            case Affinities.first:
                ret[0] = true;
                ret[1] = false;
                break;

            case Affinities.last:
                ret[0] = false;
                ret[1] = true;
                break;
            }
            return(ret);
        }
Esempio n. 2
0
 public AttackSkill(string name, Affinities affinity, float power) : base(name, affinity, power)
 {
     if (power >= 1 && power <= 10)
     {
         Power = power;
     }
     else
     {
         Power = 1;
     }
 }
Esempio n. 3
0
 public Data_Actor(Data_Actor actor)
 {
     Id          = actor.Id;
     Name        = actor.Name;
     Description = actor.Description;
     ClassId     = actor.ClassId;
     Level       = actor.Level;
     BaseStats   = new List <int>(actor.BaseStats);
     Growths     = new List <int>(actor.Growths);
     WLvl        = new List <int>(actor.WLvl);
     Gender      = actor.Gender;
     Affinity    = actor.Affinity;
     Items       = new List <int[]>();
     foreach (int[] item_data in actor.Items)
     {
         int[] ary = new int[item_data.Length];
         Array.Copy(item_data, ary, item_data.Length);
         Items.Add(ary);
     }
     Supports = new List <string>(actor.Supports);
     Skills   = new List <int>(actor.Skills);
 }
Esempio n. 4
0
        /// <summary>
        /// Passes the reset on to the list of cells
        /// </summary>

        /// <summary>
        /// Implements the following table for affinities:
        /// Affinity table- Affinity A, B, result (new affinity, Chromosome, conj. Chromosome)
        ///        00 00 00 A and[not] B
        ///        00 01 01 A and[not] B
        ///        00 10 10 B and[not] A
        ///        00 11 Chromosomes laid out vertically
        ///        01 00 01 B and[not] A
        ///        01 01 Chromosomes laid out vertically
        ///        01 10 11 B and[not] A
        ///        01 11 Chromosomes laid out vertically
        ///        10 00 10 A and[not] B
        ///        10 01 11 A and[not] B
        ///        10 10 Chromosomes laid out vertically
        ///        10 11 Chromosomes laid out vertically
        ///        11 00 Chromosomes laid out vertically
        ///        11 01 Chromosomes laid out vertically
        ///        11 10 Chromosomes laid out vertically
        ///        11 11 Chromosomes laid out vertically
        /// </summary>
        /// <param name="a">Chromosome A(above)</param>
        /// <param name="b">Chromosome B(above)</param>
        /// <returns></returns>
        public static Chromosome[] Merge(Chromosome a, Chromosome b)
        {
            Affinities aAffinity = (Affinities)a.affinityBits.BitsToString().BinaryStringToInt();
            Affinities bAffinity = (Affinities)b.affinityBits.BitsToString().BinaryStringToInt();
            BitArray   result    = AffinityBitsFromAffinity(aAffinity | bAffinity);
            Affinities order     = aAffinity | bAffinity;

            Chromosome[] ret;
            if (aAffinity == Affinities.complete || bAffinity == Affinities.complete ||
                (aAffinity == bAffinity && bAffinity != Affinities.dontCare))
            {//if both are competing for the same position, vertical
                ret    = new Chromosome[2];
                ret[0] = a.deepCopy();

                ret[1] = b.deepCopy();
            }
            else if (bAffinity == Affinities.first || aAffinity == Affinities.last)
            {  //B and [not] A
                ret    = new Chromosome[1];
                ret[0] = new Chromosome(b.cells);
                ret[0] = JoinCells(ret[0], a);
                ret[0].affinityBits = AffinityBitsFromAffinity(bAffinity);
                ret[0].classBits    = b.classBits;
                ret[0].updateCellNum();
            }
            else
            {
                ret    = new Chromosome[1];
                ret[0] = new Chromosome(a.cells);
                ret[0] = JoinCells(ret[0], b);
                ret[0].affinityBits = AffinityBitsFromAffinity(aAffinity);
                ret[0].classBits    = a.classBits;
                ret[0].updateCellNum();
                //A and [not] B
            }

            return(ret);
        }
Esempio n. 5
0
        static public float Compare(Affinities player, Affinities enemy)
        {
            float affinityMultiplier = 1.0f;

            switch (player)
            {
            case  Affinities.fire:
            {
                switch (enemy)
                {
                case Affinities.fire:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }

                case Affinities.wind:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.water:
                {
                    affinityMultiplier = 2.0f;
                    return(affinityMultiplier);
                }

                case Affinities.earth:
                {
                    affinityMultiplier = 0.0f;
                    return(affinityMultiplier);
                }

                case Affinities.dark:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.light:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }
                }
                break;
            }

            case Affinities.wind:
            {
                switch (enemy)
                {
                case Affinities.fire:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.wind:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }

                case Affinities.water:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }

                case Affinities.earth:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }

                case Affinities.dark:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.light:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }
                }
                break;
            }

            case Affinities.water:
            {
                switch (enemy)
                {
                case Affinities.fire:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }

                case Affinities.wind:
                {
                    affinityMultiplier = 2.0f;
                    return(affinityMultiplier);
                }

                case Affinities.water:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }

                case Affinities.earth:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.dark:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.light:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }
                }
                break;
            }

            case Affinities.earth:
            {
                switch (enemy)
                {
                case Affinities.fire:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.wind:
                {
                    affinityMultiplier = 2.0f;
                    return(affinityMultiplier);
                }

                case Affinities.water:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.earth:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }

                case Affinities.dark:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.light:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }
                }
                break;
            }

            case Affinities.dark:
            {
                switch (enemy)
                {
                case Affinities.fire:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.wind:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.water:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.earth:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.dark:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }

                case Affinities.light:
                {
                    affinityMultiplier = 2.0f;
                    return(affinityMultiplier);
                }
                }
                break;
            }

            case Affinities.light:
            {
                switch (enemy)
                {
                case Affinities.fire:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.wind:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.water:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.earth:
                {
                    affinityMultiplier = 1.0f;
                    return(affinityMultiplier);
                }

                case Affinities.dark:
                {
                    affinityMultiplier = 2.0f;
                    return(affinityMultiplier);
                }

                case Affinities.light:
                {
                    affinityMultiplier = 0.5f;
                    return(affinityMultiplier);
                }
                }
                break;
            }
            }
            return(affinityMultiplier);
        }
Esempio n. 6
0
 protected Skill(string name, Affinities affinity, float power)
 {
     Name          = name;
     this.Affinity = affinity;
     Power         = power;
 }