Commit Graph

419 Commits

Author SHA1 Message Date
ad3bc99e7c Fix hit event position offset not being set 2020-06-19 20:49:05 +09:00
eab00ec9d9 Move hit events to the ScoreProcessor 2020-06-19 19:58:35 +09:00
e98f51923a Add timing distribution to OsuScoreProcessor 2020-06-02 23:38:24 +09:00
a7f8c5935d Expose LowestSuccessfulHitResult() 2020-06-02 23:36:56 +09:00
848a3fb6d7 Take hitobject start/end times into account in drain 2020-05-11 19:06:36 +02:00
1d999bb634 Integrate PeriodTracker changes 2020-05-10 18:32:38 +02:00
ee2ff77b89 Merge branch 'master' into fix-draining-in-between-break-sections 2020-05-10 17:57:44 +02:00
6d3a24ff01 Reorder tick hit results 2020-05-04 15:55:42 +09:00
f42be7a6d7 Merge branch 'master' into sorcerer-catch-changes 2020-05-04 15:25:09 +09:00
6f233917b1 Centralize updating HasCompleted bindable logic 2020-04-20 06:40:51 +03:00
fc6c245de5 Replace all judged event logic with HasCompleted bindable 2020-04-19 05:36:04 +03:00
ae210d567d Add temporary solution for tick hit/miss count 2020-04-16 18:16:08 +09:00
13c81db0cf Fix incorrect classic score formula
Upon closer inspection the classic score formula was subtly wrong. The
version given in the wiki is:

	Score = Hit Value + (Hit Value * ((Combo multiplier * Difficulty
	multiplier * Mod multiplier) / 25))

The code previously used:

	bonusScore + baseScore * ((1 + Math.Max(0, HighestCombo.Value - 1)
	* scoreMultiplier) / 25);

which is not equivalent to the version on the wiki. The error is in the 1
factor, as in the above version it is being divided by 25, while it should
be outside the division to keep parity with the previous formula.

The tests attached in the previous commit demonstrate that this change
causes a single hit without combo to increase total score by its exact
numeric value.
2020-04-14 01:09:58 +02:00
7fab07670e Remove no longer necessary usage of IsBreakTime 2020-04-05 21:35:09 +03:00
e71a9668a5 Disallow draining in non-draining sections 2020-04-05 21:34:53 +03:00
401bf1c928 Remove unnecessary checks on NotNull attributes 2020-02-23 14:30:08 +09:00
a6124ae499 fix typo on ScoreProcessor xmldoc 2020-01-27 08:24:15 +08:00
91735ff367 Update MathUtils namespace usages 2020-01-09 13:43:44 +09:00
b330aec03e Drain starting at the first hitobject, not gameplay start 2019-12-27 16:16:30 +09:00
c22744de2c Better define minimum health targets 2019-12-27 12:46:35 +09:00
fbbd16b4f0 Remove healthIncreases nullability 2019-12-27 12:39:25 +09:00
35f64d9aae More comments 2019-12-26 17:54:31 +09:00
f5dbd57d55 Refactor drain calculation for resiliency 2019-12-26 17:36:40 +09:00
662ec2d812 Refactor gameplay-time drain limitation 2019-12-26 15:46:07 +09:00
e0c1072ab2 Add xmldocs 2019-12-26 15:01:19 +09:00
eba6371526 Re-implement taiko's accumulating health processor 2019-12-26 15:01:19 +09:00
0454c5022d Fix some maps potentially starting with 0 health 2019-12-26 15:00:59 +09:00
90a0569660 Tweak drain values 2019-12-26 15:00:58 +09:00
522847987b Implement break/gameplay start times 2019-12-26 15:00:58 +09:00
b348abcd07 Only drain health in non-break times 2019-12-26 14:59:49 +09:00
977fb3d1bf Make processors and break overlay frame-stable 2019-12-26 14:59:49 +09:00
85c44b5a5a Disable list additions during gameplay 2019-12-26 14:59:49 +09:00
bd74d086fb Remove adjustment factor 2019-12-26 14:59:49 +09:00
70d2d8a2fa Add adjustable target percentage 2019-12-26 14:59:49 +09:00
a4b1c79e18 Initial implementation of HP drain 2019-12-26 14:59:49 +09:00
985277da79 Add time elapsation to judgement simulation 2019-12-26 14:59:49 +09:00
90cb9d9162 Simplify scoreprocesor/healthprocessor implementations 2019-12-26 14:59:49 +09:00
00546787c8 Remove unused method 2019-12-24 16:52:49 +09:00
50fa6c5f77 Update score on reverts 2019-12-19 20:18:23 +09:00
04c3a6f8a4 Move more properties to the base class 2019-12-19 20:18:17 +09:00
76f2fb378f Separate score and health parts of ScoreProcessor 2019-12-19 20:03:14 +09:00
1da8cc8690 Encapsulate common logic of ScoreProcessor 2019-12-19 19:03:27 +09:00
d5994ed484 CA2208: create exceptions correctly. 2019-12-17 13:00:10 +08:00
48f1dad4aa Remove abstract ScoreProcessor class 2019-12-11 17:25:06 +09:00
4e273fc628 Return correct allowed value for Perfect
Co-Authored-By: Salman Ahmed <slmanarendo1950@gmail.com>
2019-10-09 19:50:05 +09:00
9f2a648432 Add full asserts 2019-10-09 19:23:37 +09:00
51bf600ea7 Use empty hitwindows instead of null 2019-10-09 19:08:31 +09:00
07fce8397b Move reset call to ctor 2019-09-09 14:24:17 +09:00
be803fa921 Reset score processor before starting the simulation 2019-09-07 18:15:49 +03:00
55b2bc1ed5 Set Health default value to 1 2019-09-07 18:03:04 +03:00