Etterna 0.74.4
Loading...
Searching...
No Matches
UlbuSevenKey.h
1#pragma once
2
3#include "UlbuBase.h"
4
6{
8 : Bazoinkazoink(calc)
9 {
10
11 }
12
13 private:
14 const std::array<std::vector<int>, NUM_Skillset> pmods = { {
15 // Overall
16 {},
17
18 // Stream
19 {
20 GStream,
21 },
22
23 // Jumpstream
24 {
25 GChordStream,
26 },
27
28 // Handstream
29 {
30 GBracketing,
31 },
32
33 // Stamina
34 {},
35
36 // Jackspeed
37 {},
38
39 // Chordjack
40 {
41 CJ,
42 },
43
44 // Technical
45 {
46
47 },
48 } };
49
50 const std::array<float, NUM_Skillset> basescalers = {
51 0.F, 1.F, 1.F, 1.F, 0.93F, 1.F, 1.F, 1.F
52 };
53
54 public:
55 const std::array<std::vector<int>, NUM_Skillset>& get_pmods() const override
56 {
57 return pmods;
58 }
59 const std::array<float, NUM_Skillset>& get_basescalers() const override
60 {
61 return basescalers;
62 }
63 void adj_diff_func(
64 const size_t& itv,
65 const int& hand,
66 float*& adj_diff,
67 float*& stam_base,
68 const float& adj_npsbase,
69 const int& ss,
70 std::array<float, NUM_Skillset>& pmod_product_cur_interval) override
71 {
72 switch (ss) {
73 case Skill_Stream:
74 break;
75 case Skill_Jumpstream: {
76 auto a = *adj_diff;
77 auto b =
78 _calc.init_base_diff_vals.at(hand).at(NPSBase).at(itv) *
79 pmod_product_cur_interval[Skill_Handstream];
80 *stam_base = std::max<float>(a, b);
81 } break;
82 case Skill_Handstream: {
83 auto a = adj_npsbase;
84 auto b =
85 _calc.init_base_diff_vals.at(hand).at(NPSBase).at(itv) *
86 pmod_product_cur_interval[Skill_Jumpstream];
87 *stam_base = std::max<float>(a, b);
88 } break;
89 case Skill_JackSpeed:
90 break;
91 case Skill_Chordjack:
92 break;
93 case Skill_Technical:
94 *adj_diff =
95 _calc.init_base_diff_vals.at(hand).at(TechBase).at(itv) *
96 pmod_product_cur_interval.at(ss) * basescalers.at(ss);
97 break;
98 default:
99 break;
100 }
101 }
102
103#if !defined(STANDALONE_CALC) && !defined(PHPCALC)
104 const std::string get_calc_param_xml() const override
105 {
106 return "Save/CalcParams_7k.xml";
107 }
108#endif
109};
Main driver class for the difficulty calculator as a whole.
Definition MinaCalc.h:82
std::array< std::array< std::vector< float >, NUM_CalcDiffValue >, num_hands > init_base_diff_vals
Definition MinaCalc.h:187
Definition UlbuBase.h:15
Definition UlbuSevenKey.h:6