コード例 #1
0
        public void ShouldGetExpectedLedgeIntangibility()
        {
            var data = new LedgeIntangiblityProblemData
            {
                AirborneFrames = 50,
                CharacterPercentage = 70
            };

            var result = _calculator.LedgeIntangibility(data);
            Assert.That(result, Is.EqualTo(48));
        }
コード例 #2
0
        public void ShouldThrowExceptionForCharacterPercentageOver120()
        {
            var data = new LedgeIntangiblityProblemData
            {
                AirborneFrames = 30,
                CharacterPercentage = 121
            };

            Assert.Throws<Exception>(() => _calculator.LedgeIntangibility(data));
        }
コード例 #3
0
ファイル: Calculator.cs プロジェクト: Frannsoft/FrannHammer
        ///// <summary>
        ///// Returns the calculated Hitlag.
        ///// </summary>
        ///// <param name="data"></param>
        ///// <returns></returns>
        //public double HitlagRaw(HitlagProblemData data)
        //{
        //    var retVal = (data.Damage / 2.6 + 5) *
        //       data.ElectricModifier.GetModifierValue() *
        //       data.HitlagMultiplier *
        //       data.CrouchingModifier.GetModifierValue() - 1;

        //    if (retVal > 30)
        //    {
        //        retVal = 30;
        //    }

        //    return retVal;
        //}

        /// <summary>
        /// Returns the calculated LedgeIntangibility.
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public int LedgeIntangibility(LedgeIntangiblityProblemData data)
        {
            if (data.AirborneFrames > 300)
            { throw new Exception($"{nameof(data.AirborneFrames)} cannot be higher than 300."); }

            if (data.CharacterPercentage > 120)
            { throw new Exception($"{nameof(data.CharacterPercentage)} cannot be higher than 120."); }

            var result = (int)Math.Floor(data.AirborneFrames * 0.2 + 64 - data.CharacterPercentage * 44 / 120.0);

            if (result < 24)
            { result = 24; }

            if (result > 124)
            { result = 124; }

            return result;
        }