mirror of
https://github.com/ppy/osu.git
synced 2025-02-13 15:03:13 +08:00
Comment, make code more readable, functions are now private
This commit is contained in:
parent
5c21a0330a
commit
7527ddbc68
@ -755,93 +755,80 @@ namespace osu.Game.Screens.Select
|
||||
|
||||
return false;
|
||||
}
|
||||
public void IncreaseSpeed()
|
||||
private void increaseSpeed()
|
||||
{
|
||||
// find way of grabbing all types of ModSpeedAdjust
|
||||
var rateAdjustStates = ModSelect.AllAvailableMods.Where(pair => pair.Mod.Acronym == "DT" || pair.Mod.Acronym == "NC" || pair.Mod.Acronym == "HT" || pair.Mod.Acronym == "DC");
|
||||
var stateDoubleTime = ModSelect.AllAvailableMods.First(pair => pair.Mod.Acronym == "DT");
|
||||
bool oneActive = false;
|
||||
double newRate = 1.05d;
|
||||
foreach (var state in rateAdjustStates)
|
||||
{
|
||||
ModRateAdjust mod = (ModRateAdjust)state.Mod;
|
||||
if (state.Active.Value)
|
||||
{
|
||||
oneActive = true;
|
||||
newRate = mod.SpeedChange.Value + 0.05d;
|
||||
if (mod.Acronym == "DT" || mod.Acronym == "NC")
|
||||
{
|
||||
mod.SpeedChange.Value = newRate;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (newRate == 1.0d)
|
||||
{
|
||||
state.Active.Value = false;
|
||||
}
|
||||
if (newRate > 1d)
|
||||
{
|
||||
state.Active.Value = false;
|
||||
stateDoubleTime.Active.Value = true;
|
||||
((ModDoubleTime)stateDoubleTime.Mod).SpeedChange.Value = newRate;
|
||||
return;
|
||||
}
|
||||
if (newRate < 1d)
|
||||
{
|
||||
mod.SpeedChange.Value = newRate;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!oneActive)
|
||||
var rateAdjustStates = ModSelect.AllAvailableMods.Where(pair => pair.Mod is ModRateAdjust);
|
||||
var stateDoubleTime = ModSelect.AllAvailableMods.First(pair => pair.Mod is ModDoubleTime);
|
||||
bool rateModActive = ModSelect.AllAvailableMods.Where(pair => pair.Mod is ModRateAdjust && pair.Active.Value).Count() > 0;
|
||||
double stepSize = 0.05d;
|
||||
double newRate = 1d + stepSize;
|
||||
// If no mod rateAdjust mod is currently active activate DoubleTime with speed newRate
|
||||
if (!rateModActive)
|
||||
{
|
||||
stateDoubleTime.Active.Value = true;
|
||||
((ModDoubleTime)stateDoubleTime.Mod).SpeedChange.Value = newRate;
|
||||
return;
|
||||
}
|
||||
}
|
||||
public void DecreaseSpeed()
|
||||
{
|
||||
var rateAdjustStates = ModSelect.AllAvailableMods.Where(pair => pair.Mod.Acronym == "DT" || pair.Mod.Acronym == "NC" || pair.Mod.Acronym == "HT" || pair.Mod.Acronym == "DC");
|
||||
var stateHalfTime = ModSelect.AllAvailableMods.First(pair => pair.Mod.Acronym == "HT");
|
||||
bool oneActive = false;
|
||||
double newRate = 0.95d;
|
||||
// Find current active rateAdjust mod and modify speed, enable DoubleTime if necessary
|
||||
foreach (var state in rateAdjustStates)
|
||||
{
|
||||
ModRateAdjust mod = (ModRateAdjust)state.Mod;
|
||||
if (state.Active.Value)
|
||||
if (!state.Active.Value) continue;
|
||||
newRate = mod.SpeedChange.Value + stepSize;
|
||||
if (mod.Acronym == "DT" || mod.Acronym == "NC")
|
||||
mod.SpeedChange.Value = newRate;
|
||||
else
|
||||
{
|
||||
oneActive = true;
|
||||
newRate = mod.SpeedChange.Value - 0.05d;
|
||||
if (mod.Acronym == "HT" || mod.Acronym == "DC")
|
||||
if (newRate == 1.0d)
|
||||
state.Active.Value = false;
|
||||
if (newRate > 1d)
|
||||
{
|
||||
state.Active.Value = false;
|
||||
stateDoubleTime.Active.Value = true;
|
||||
((ModDoubleTime)stateDoubleTime.Mod).SpeedChange.Value = newRate;
|
||||
break;
|
||||
}
|
||||
if (newRate < 1d)
|
||||
mod.SpeedChange.Value = newRate;
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (newRate == 1.0d)
|
||||
{
|
||||
state.Active.Value = false;
|
||||
}
|
||||
if (newRate < 1d)
|
||||
{
|
||||
state.Active.Value = false;
|
||||
stateHalfTime.Active.Value = true;
|
||||
((ModHalfTime)stateHalfTime.Mod).SpeedChange.Value = newRate;
|
||||
return;
|
||||
}
|
||||
if (newRate > 1d)
|
||||
{
|
||||
mod.SpeedChange.Value = newRate;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!oneActive)
|
||||
}
|
||||
private void decreaseSpeed()
|
||||
{
|
||||
var rateAdjustStates = ModSelect.AllAvailableMods.Where(pair => pair.Mod is ModRateAdjust);
|
||||
var stateHalfTime = ModSelect.AllAvailableMods.First(pair => pair.Mod is ModHalfTime);
|
||||
bool rateModActive = ModSelect.AllAvailableMods.Where(pair => pair.Mod is ModRateAdjust && pair.Active.Value).Count() > 0;
|
||||
double stepSize = 0.05d;
|
||||
double newRate = 1d - stepSize;
|
||||
// If no mod rateAdjust mod is currently active activate HalfTime with speed newRate
|
||||
if (!rateModActive)
|
||||
{
|
||||
stateHalfTime.Active.Value = true;
|
||||
((ModHalfTime)stateHalfTime.Mod).SpeedChange.Value = newRate;
|
||||
return;
|
||||
}
|
||||
// Find current active rateAdjust mod and modify speed, enable HalfTime if necessary
|
||||
foreach (var state in rateAdjustStates)
|
||||
{
|
||||
ModRateAdjust mod = (ModRateAdjust)state.Mod;
|
||||
if (!state.Active.Value) continue;
|
||||
newRate = mod.SpeedChange.Value - stepSize;
|
||||
if (mod.Acronym == "HT" || mod.Acronym == "DC")
|
||||
mod.SpeedChange.Value = newRate;
|
||||
else
|
||||
{
|
||||
if (newRate == 1.0d)
|
||||
state.Active.Value = false;
|
||||
if (newRate < 1d)
|
||||
{
|
||||
state.Active.Value = false;
|
||||
stateHalfTime.Active.Value = true;
|
||||
((ModHalfTime)stateHalfTime.Mod).SpeedChange.Value = newRate;
|
||||
break;
|
||||
}
|
||||
if (newRate > 1d)
|
||||
mod.SpeedChange.Value = newRate;
|
||||
}
|
||||
}
|
||||
}
|
||||
protected override void Dispose(bool isDisposing)
|
||||
@ -1049,10 +1036,10 @@ namespace osu.Game.Screens.Select
|
||||
FinaliseSelection();
|
||||
return true;
|
||||
case GlobalAction.IncreaseSpeed:
|
||||
IncreaseSpeed();
|
||||
increaseSpeed();
|
||||
return true;
|
||||
case GlobalAction.DecreaseSpeed:
|
||||
DecreaseSpeed();
|
||||
decreaseSpeed();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user