예제 #1
0
        public double ExecuteFrost(Fighter user, Fighter target)
        {
            user.SetMp(user.GetMp() - 3);

            Random rnd          = new Random();
            int    randomNumber = rnd.Next(1, 100);

            if (randomNumber <= (90 + user.GetAccuracy() - (target.GetSpeed() * 0.5)))
            {
                if (randomNumber <= user.GetLuck())
                {
                    double output = target.GetSpeed() * 0.4;
                    target.SetSpeed(target.GetSpeed() * 0.6);
                    target.SetHp(target.GetHp() - (target.GetHp() * 0.2));
                    return(output);
                }
                else
                {
                    double output = target.GetSpeed() * 0.2;
                    target.SetSpeed(target.GetSpeed() * 0.8);
                    target.SetHp(target.GetHp() - (target.GetHp() * 0.1));
                    return(output);
                }
            }
            else
            {
                return(999);
            }
        }
예제 #2
0
        public double ExecutePyro(Fighter user, Fighter target)
        {
            user.SetMp(user.GetMp() - 6);

            Random rnd          = new Random();
            int    randomNumber = rnd.Next(1, 100);

            if (randomNumber <= (80 + user.GetAccuracy() - (target.GetSpeed() * 0.5)))
            {
                if (randomNumber <= user.GetLuck())
                {
                    double output = target.GetAttack() * 0.3;;
                    target.SetAttack(target.GetAttack() * 0.7);
                    target.SetBurn(target.GetBurn() + 30);
                    return(output);
                }
                else
                {
                    double output = target.GetAttack() * 0.6;
                    target.SetAttack(target.GetAttack() * 0.4);
                    target.SetBurn(target.GetBurn() + 15);
                    return(output);
                }
            }
            else
            {
                return(999);
            }
        }
예제 #3
0
        public double ExecutePunch(Fighter user, Fighter target, Punch punch)
        {
            Random rnd          = new Random();
            int    randomNumber = rnd.Next(1, 100);

            if (randomNumber <= (punch.GetAccuracy() + user.GetAccuracy() - (target.GetSpeed() * 0.5)))
            {
                double damage = 0;

                if (randomNumber <= user.GetLuck())
                {
                    damage = 2 * (user.GetAttack() * punch.GetMultiplier());
                }
                else
                {
                    damage = user.GetAttack() * punch.GetMultiplier();
                }
                target.SetHp(target.GetHp() - (damage * target.GetDefense()));
                return(damage * target.GetDefense());
            }
            else
            {
                return(999);
            }
        }
예제 #4
0
        public List <double> ExecuteLockon(Fighter user)
        {
            user.SetMp(user.GetMp() - 2);

            Random rnd          = new Random();
            int    randomNumber = rnd.Next(1, 100);

            List <double> output = new List <double>();

            if (randomNumber <= user.GetLuck())
            {
                double output1 = user.GetAccuracy() * 0.4;
                output.Add(output1);
                user.SetAccuracy(user.GetAccuracy() + (user.GetAccuracy() * 0.4));

                double output2 = user.GetLuck() * 0.4;
                output.Add(output2);
                user.SetLuck(user.GetLuck() + (user.GetLuck() * 0.4));
                return(output);
            }
            else
            {
                double output1 = user.GetAccuracy() * 0.2;
                output.Add(output1);
                user.SetAccuracy(user.GetAccuracy() + (user.GetAccuracy() * 0.2));

                double output2 = user.GetLuck() * 0.2;
                output.Add(output2);
                user.SetLuck(user.GetLuck() + (user.GetLuck() * 0.2));
                return(output);
            }
        }
예제 #5
0
        public double ExecuteBlock(Fighter user)
        {
            Random rnd          = new Random();
            int    randomNumber = rnd.Next(1, 100);

            if (randomNumber <= user.GetLuck())
            {
                user.SetDefense(0.1);
                return(0.1);
            }
            else
            {
                user.SetDefense(0.65);
                return(0.65);
            }
        }
예제 #6
0
 public override bool Equals(System.Object otherFighter)
 {
     if (!(otherFighter is Fighter))
     {
         return(false);
     }
     else
     {
         Fighter newFighter       = (Fighter)otherFighter;
         bool    idEquality       = this.GetId() == newFighter.GetId();
         bool    nameEquality     = this.GetName() == newFighter.GetName();
         bool    imageEquality    = this.GetImageId() == newFighter.GetImageId();
         bool    hpEquality       = this.GetHp() == newFighter.GetHp();
         bool    mpEquality       = this.GetMp() == newFighter.GetMp();
         bool    attackEquality   = this.GetAttack() == newFighter.GetAttack();
         bool    speedEquality    = this.GetSpeed() == newFighter.GetSpeed();
         bool    accuracyEquality = this.GetAccuracy() == newFighter.GetAccuracy();
         bool    luckEquality     = this.GetLuck() == newFighter.GetLuck();
         bool    maxHpEquality    = this.GetMaxHp() == newFighter.GetMaxHp();
         bool    maxMpEquality    = this.GetMaxMp() == newFighter.GetMaxMp();
         return(idEquality && nameEquality && imageEquality && hpEquality && mpEquality && speedEquality && attackEquality && accuracyEquality && luckEquality && maxMpEquality && maxHpEquality);
     }
 }
예제 #7
0
        public string AIMove()
        {
            Fighter leftFighter  = GetLeftFighter();
            Fighter rightFighter = GetRightFighter();

            if ((rightFighter.GetMp() >= 5) && ((((rightFighter.GetAccuracy() - leftFighter.GetSpeed()) + 80) > 50)))
            {
                return("burn");
            }
            else if (((rightFighter.GetAccuracy() - leftFighter.GetSpeed()) < 30) && (rightFighter.GetMp() >= 2))
            {
                return("lockon");
            }
            else if ((leftFighter.GetSpeed() > 50) && (rightFighter.GetMp() >= 3))
            {
                return("frost");
            }
            else if ((((rightFighter.GetAccuracy() - leftFighter.GetSpeed()) + 100) <= 10) && (rightFighter.GetMp() < 2))
            {
                return("jab");
            }
            else if ((rightFighter.GetHp() >= (leftFighter.GetHp() * 2)) && ((rightFighter.GetAccuracy() - leftFighter.GetSpeed()) > 50))
            {
                return("hook");
            }
            else if ((leftFighter.GetHp() <= leftFighter.GetBurn()) && (rightFighter.GetSpeed() < leftFighter.GetSpeed()))
            {
                return("block");
            }
            else if ((rightFighter.GetMp() >= 1) && ((leftFighter.GetAccuracy() - rightFighter.GetSpeed()) > 60))
            {
                return("blind");
            }
            else if (((rightFighter.GetAccuracy() - leftFighter.GetSpeed()) + 30) >= 100)
            {
                return("uppercut");
            }
            else if ((rightFighter.GetLuck() >= 50) && (rightFighter.GetMp() >= 5) && ((((rightFighter.GetAccuracy() - leftFighter.GetSpeed()) + 80) > 30)))
            {
                return("burn");
            }
            else if (((rightFighter.GetAccuracy() - leftFighter.GetSpeed()) + 30) >= 100)
            {
                return("uppercut");
            }
            else if ((rightFighter.GetHp() >= (leftFighter.GetHp() * 2)) && ((rightFighter.GetAccuracy() - leftFighter.GetSpeed()) < 50))
            {
                return("jab");
            }
            else if ((rightFighter.GetHp() < leftFighter.GetAttack()) && (((leftFighter.GetAccuracy() - rightFighter.GetSpeed()) + 100) > 30))
            {
                return("uppercut");
            }
            else if ((rightFighter.GetHp() < rightFighter.GetMaxHp()) && (leftFighter.GetHp() > rightFighter.GetHp()) && ((rightFighter.GetAccuracy() - leftFighter.GetSpeed() + 65) > 40))
            {
                return("hook");
            }
            else if ((rightFighter.GetHp() <= (rightFighter.GetMaxHp() * 0.25) && rightFighter.GetLuck() >= 40 && (leftFighter.GetHp() >= (leftFighter.GetMaxHp() * 0.5))))
            {
                return("uppercut");
            }
            else
            {
                return("hook");
            }
        }