示例#1
0
        public int UpdateV3(AvatarState avatarState, ArenaInfo enemyInfo, BattleLog.Result result)
        {
            switch (result)
            {
            case BattleLog.Result.Win:
                ArenaRecord.Win++;
                break;

            case BattleLog.Result.Lose:
                ArenaRecord.Lose++;
                break;

            case BattleLog.Result.TimeOver:
                ArenaRecord.Draw++;
                return(0);

            default:
                throw new ArgumentOutOfRangeException(nameof(result), result, null);
            }

            var score      = ArenaScoreHelper.GetScoreV1(Score, enemyInfo.Score, result);
            var calculated = Score + score;
            var current    = Score;

            Score = Math.Max(1000, calculated);
            DailyChallengeCount--;
            ArmorId = avatarState.GetArmorId();
            Level   = avatarState.level;
            return(Score - current);
        }
示例#2
0
        public void GetScoreV1()
        {
            const int challengerRating = 10000;
            var       defenderRating   = challengerRating + Math.Abs(ArenaScoreHelper.DifferLowerLimit);
            var       score            = ArenaScoreHelper.GetScoreV1(challengerRating, defenderRating, Result.Win);

            Assert.Equal(ArenaScoreHelper.WinScoreMax, score);
            score = ArenaScoreHelper.GetScoreV1(challengerRating, defenderRating, Result.Lose);
            Assert.Equal(ArenaScoreHelper.LoseScoreMin, score);
            defenderRating++;
            score = ArenaScoreHelper.GetScoreV1(challengerRating, defenderRating, Result.Win);
            Assert.Equal(ArenaScoreHelper.WinScoreMax, score);
            score = ArenaScoreHelper.GetScoreV1(challengerRating, defenderRating, Result.Lose);
            Assert.Equal(ArenaScoreHelper.LoseScoreMin, score);

            defenderRating = challengerRating - Math.Abs(ArenaScoreHelper.DifferUpperLimit);
            score          = ArenaScoreHelper.GetScoreV1(challengerRating, defenderRating, Result.Win);
            Assert.Equal(ArenaScoreHelper.WinScoreMin, score);
            score = ArenaScoreHelper.GetScoreV1(challengerRating, defenderRating, Result.Lose);
            Assert.Equal(ArenaScoreHelper.LoseScoreMax, score);
            defenderRating--;
            score = ArenaScoreHelper.GetScoreV1(challengerRating, defenderRating, Result.Win);
            Assert.Equal(ArenaScoreHelper.WinScoreMin, score);
            score = ArenaScoreHelper.GetScoreV1(challengerRating, defenderRating, Result.Lose);
            Assert.Equal(ArenaScoreHelper.LoseScoreMax, score);
        }