-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDefaultScoreSystemProfiles.cs
More file actions
107 lines (100 loc) · 4.37 KB
/
DefaultScoreSystemProfiles.cs
File metadata and controls
107 lines (100 loc) · 4.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
using UnityEngine;
namespace SRXDScoreMod;
internal static class DefaultScoreSystemProfiles {
private static readonly CustomTimingAccuracy E_OKAY = new("Okay", "Okay", new Color(0.25f, 0.25f, 0.25f), NoteTimingAccuracy.Early);
private static readonly CustomTimingAccuracy E_GOOD = new("Good", "Good", Color.yellow, NoteTimingAccuracy.Early);
private static readonly CustomTimingAccuracy E_GREAT = new("Great", "Great", new Color(0f, 1f, 0.1f), NoteTimingAccuracy.Early);
private static readonly CustomTimingAccuracy PERFECT = new("Perfect", "Perfect", Color.cyan, NoteTimingAccuracy.Perfect);
private static readonly CustomTimingAccuracy L_GREAT = new("Great", "Great", new Color(0f, 1f, 0.1f), NoteTimingAccuracy.Late);
private static readonly CustomTimingAccuracy L_GOOD = new("Good", "Good", Color.yellow, NoteTimingAccuracy.Late);
private static readonly CustomTimingAccuracy L_OKAY = new("Okay", "Okay", new Color(0.25f, 0.25f, 0.25f), NoteTimingAccuracy.Late);
private static readonly TimingWindow[] PRESS_TIMING_WINDOWS = {
new(E_OKAY, 4, 0, -0.0667f),
new(E_GOOD, 8, 0, -0.05f),
new(E_GREAT, 14, 0, -0.0334f),
new(PERFECT, 16, 0, -0.0167f),
new(PERFECT, 16, 1, 0.0167f),
new(PERFECT, 16, 0, 0.0334f),
new(L_GREAT, 14, 0, 0.05f),
new(L_GOOD, 8, 0, 0.0667f),
new(L_OKAY, 4, 0, 0.15f)
};
private static readonly TimingWindow[] RELEASE_TIMING_WINDOWS = {
new(E_OKAY, 3, 0, -0.0834f),
new(E_GOOD, 6, 0, -0.0667f),
new(E_GREAT, 10, 0, -0.05f),
new(PERFECT, 12, 0, -0.0167f),
new(PERFECT, 12, 1, 0.0167f),
new(PERFECT, 12, 0, 0.05f),
new(L_GREAT, 10, 0, 0.0667f),
new(L_GOOD, 6, 0, 0.0834f),
new(L_OKAY, 3, 0, 0.15f)
};
private static readonly RankThreshold[] RANK_THRESHOLDS = {
new("S", 0.98f),
new("A+", 0.965f),
new("A", 0.95f),
new("B+", 0.925f),
new("B", 0.9f),
new("C+", 0.85f),
new("C", 0.8f),
new("D+", 0.75f),
new("D", 0f)
};
public static ScoreSystemProfile StandardPPM16 { get; } = new(
name: "Standard",
id: "fws16",
tapTimingWindows: PRESS_TIMING_WINDOWS,
beatTimingWindows: PRESS_TIMING_WINDOWS,
liftoffTimingWindows: RELEASE_TIMING_WINDOWS,
beatReleaseTimingWindows: RELEASE_TIMING_WINDOWS,
matchPointValue: 4,
spinStartPointValue: 16,
holdTickRate: 20,
beatHoldTickRate: 20,
spinTickRate: 20,
scratchTickRate: 20,
maxMultiplier: 4,
pointsPerMultiplier: new []{ 16 },
multiplierChangeForOverbeat: -3,
multiplierChangeForMissedMatch: -3,
multiplierChangeForMissedTapOrHold: -3,
multiplierChangeForMissedBeat: -3,
multiplierChangeForMissedLiftoff: 0,
multiplierChangeForMissedBeatRelease: 0,
multiplierChangeForMissedSpin: -3,
multiplierChangeForBrokenHold: 0,
multiplierChangeForBrokenBeatHold: 0,
multiplierChangeForBrokenSpin: 0,
multiplierChangeForBrokenScratch: -3,
greatSectionThreshold: 32,
sPlusThreshold: 96,
rankThresholds: RANK_THRESHOLDS);
// public static ScoreSystemProfile StandardPPM32 { get; } = new(
// name: "Standard (PPM 32)",
// tapTimingWindows: PRESS_TIMING_WINDOWS,
// beatTimingWindows: PRESS_TIMING_WINDOWS,
// liftoffTimingWindows: RELEASE_TIMING_WINDOWS,
// beatReleaseTimingWindows: RELEASE_TIMING_WINDOWS,
// matchPointValue: 4,
// spinStartPointValue: 16,
// holdTickRate: 20,
// beatHoldTickRate: 20,
// spinTickRate: 20,
// scratchTickRate: 20,
// maxMultiplier: 4,
// pointsPerMultiplier: new []{ 32 },
// multiplierChangeForOverbeat: -3,
// multiplierChangeForMissedMatch: -3,
// multiplierChangeForMissedTapOrHold: -3,
// multiplierChangeForMissedBeat: -3,
// multiplierChangeForMissedLiftoff: 0,
// multiplierChangeForMissedBeatRelease: 0,
// multiplierChangeForMissedSpin: -3,
// multiplierChangeForBrokenHold: 0,
// multiplierChangeForBrokenBeatHold: 0,
// multiplierChangeForBrokenSpin: 0,
// multiplierChangeForBrokenScratch: -3,
// sPlusThreshold: 96,
// rankThresholds: RANK_THRESHOLDS);
}