예제 #1
0
        private void TryApplyDereBonus(Dere dere, ref double atk, ref double def, BodereBonus bodere)
        {
            if (dere == Dere.Bodere)
            {
                switch (bodere)
                {
                case BodereBonus.Minus:
                    atk -= atk / 10;
                    break;

                case BodereBonus.Plus:
                    atk += atk / 10;
                    break;

                default:
                    break;
                }
            }
            else if (Fun.TakeATry(5))
            {
                var tenAtk = atk / 10;
                var tenDef = def / 10;

                switch (dere)
                {
                case Dere.Yandere:
                    atk += tenAtk;
                    break;

                case Dere.Dandere:
                    def += tenDef;
                    break;

                case Dere.Kuudere:
                    atk -= tenAtk;
                    def += tenAtk;
                    break;

                case Dere.Mayadere:
                    def -= tenDef;
                    atk += tenDef;
                    break;

                default:
                    break;
                }
            }
        }
예제 #2
0
        public double GetFA(CardInfo target, CardInfo enemy, BodereBonus bodere)
        {
            double atk1 = target.Card.GetAttackWithBonus();
            double def1 = target.Card.GetDefenceWithBonus();

            if (!target.Info.HasImage)
            {
                atk1 -= atk1 * 20 / 100;
                def1 -= def1 * 20 / 100;
            }

            TryApplyDereBonus(target.Card.Dere, ref atk1, ref def1, bodere);
            if (atk1 < 1)
            {
                atk1 = 1;
            }
            if (def1 < 1)
            {
                def1 = 1;
            }

            double atk2 = enemy.Card.GetAttackWithBonus();
            double def2 = enemy.Card.GetDefenceWithBonus();

            if (!enemy.Info.HasImage)
            {
                atk2 -= atk2 * 20 / 100;
                def2 -= def2 * 20 / 100;
            }

            TryApplyDereBonus(enemy.Card.Dere, ref atk2, ref def2, bodere);
            if (atk2 < 1)
            {
                atk2 = 1;
            }
            if (def2 < 1)
            {
                def2 = 1;
            }
            if (def2 > 99)
            {
                def2 = 99;
            }

            return(atk1 * (100 - def2) / 100);
        }