예제 #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 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);
            }
        }