Combo colors, restore ProTiming, fix up strokes
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 104 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 67 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 68 KiB |
@@ -88,21 +88,24 @@ local t = Def.ActorFrame {
|
|||||||
if param.FullComboW1 then
|
if param.FullComboW1 then
|
||||||
c.Number:diffuse(color("#00aeef"));
|
c.Number:diffuse(color("#00aeef"));
|
||||||
c.Number:glowshift();
|
c.Number:glowshift();
|
||||||
|
(cmd(diffuse,color("#C7E5F0");diffusebottomedge,color("#00aeef");strokecolor,color("#0E3D53");))(c.Label);
|
||||||
elseif param.FullComboW2 then
|
elseif param.FullComboW2 then
|
||||||
c.Number:diffuse(color("#F3D58D"));
|
c.Number:diffuse(color("#F3D58D"));
|
||||||
c.Number:glowshift();
|
c.Number:glowshift();
|
||||||
|
(cmd(diffuse,color("#FAFAFA");diffusebottomedge,color("#F3D58D");strokecolor,color("#53450E");))(c.Label);
|
||||||
elseif param.FullComboW3 then
|
elseif param.FullComboW3 then
|
||||||
c.Number:diffuse(color("#94D658"));
|
c.Number:diffuse(color("#94D658"));
|
||||||
c.Number:stopeffect();
|
c.Number:stopeffect();
|
||||||
|
(cmd(diffuse,color("#CFE5BC");diffusebottomedge,color("#94D658");strokecolor,color("#12530E");))(c.Label);
|
||||||
elseif param.Combo then
|
elseif param.Combo then
|
||||||
c.Number:diffuse(color("#FBE9DD"));
|
c.Number:diffuse(color("#FBE9DD"));
|
||||||
-- c.Number:diffuse(PlayerColor(player));
|
-- c.Number:diffuse(PlayerColor(player));
|
||||||
c.Number:stopeffect();
|
c.Number:stopeffect();
|
||||||
(cmd(diffuse,color("#F5CB92");diffusebottomedge,color("#EFA97A");strokecolor,color("#965A47");))(c.Label);
|
(cmd(diffuse,color("#F5CB92");diffusebottomedge,color("#EFA97A");strokecolor,color("#602C1B");))(c.Label);
|
||||||
else
|
else
|
||||||
c.Number:diffuse(color("#FBE9DD"));
|
c.Number:diffuse(color("#FBE9DD"));
|
||||||
c.Number:stopeffect();
|
c.Number:stopeffect();
|
||||||
(cmd(diffuse,color("#F5CB92");diffusebottomedge,color("#EFA97A");strokecolor,color("#965A47");))(c.Label);
|
(cmd(diffuse,color("#F5CB92");diffusebottomedge,color("#EFA97A");strokecolor,color("#602C1B");))(c.Label);
|
||||||
end
|
end
|
||||||
-- Pulse
|
-- Pulse
|
||||||
Pulse( c.Number, param );
|
Pulse( c.Number, param );
|
||||||
|
|||||||
@@ -1,5 +1,21 @@
|
|||||||
local c;
|
local c;
|
||||||
local player = Var "Player";
|
local player = Var "Player";
|
||||||
|
local function ShowProtiming()
|
||||||
|
if GAMESTATE:IsDemonstration() then
|
||||||
|
return false
|
||||||
|
else
|
||||||
|
return GetUserPrefB("UserPrefProtiming" .. ToEnumShortString(player));
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
local bShowProtiming = ShowProtiming();
|
||||||
|
local ProtimingWidth = 240;
|
||||||
|
local function MakeAverage( t )
|
||||||
|
local sum = 0;
|
||||||
|
for i=1,#t do
|
||||||
|
sum = sum + t[i];
|
||||||
|
end
|
||||||
|
return sum / #t
|
||||||
|
end
|
||||||
|
|
||||||
local tTotalJudgments = {};
|
local tTotalJudgments = {};
|
||||||
|
|
||||||
@@ -12,6 +28,21 @@ local JudgeCmds = {
|
|||||||
TapNoteScore_Miss = THEME:GetMetric( "Judgment", "JudgmentMissCommand" );
|
TapNoteScore_Miss = THEME:GetMetric( "Judgment", "JudgmentMissCommand" );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
local ProtimingCmds = {
|
||||||
|
TapNoteScore_W1 = THEME:GetMetric( "Protiming", "ProtimingW1Command" );
|
||||||
|
TapNoteScore_W2 = THEME:GetMetric( "Protiming", "ProtimingW2Command" );
|
||||||
|
TapNoteScore_W3 = THEME:GetMetric( "Protiming", "ProtimingW3Command" );
|
||||||
|
TapNoteScore_W4 = THEME:GetMetric( "Protiming", "ProtimingW4Command" );
|
||||||
|
TapNoteScore_W5 = THEME:GetMetric( "Protiming", "ProtimingW5Command" );
|
||||||
|
TapNoteScore_Miss = THEME:GetMetric( "Protiming", "ProtimingMissCommand" );
|
||||||
|
};
|
||||||
|
|
||||||
|
local AverageCmds = {
|
||||||
|
Pulse = THEME:GetMetric( "Protiming", "AveragePulseCommand" );
|
||||||
|
};
|
||||||
|
local TextCmds = {
|
||||||
|
Pulse = THEME:GetMetric( "Protiming", "TextPulseCommand" );
|
||||||
|
};
|
||||||
|
|
||||||
local TNSFrames = {
|
local TNSFrames = {
|
||||||
TapNoteScore_W1 = 0;
|
TapNoteScore_W1 = 0;
|
||||||
@@ -21,22 +52,87 @@ local TNSFrames = {
|
|||||||
TapNoteScore_W5 = 4;
|
TapNoteScore_W5 = 4;
|
||||||
TapNoteScore_Miss = 5;
|
TapNoteScore_Miss = 5;
|
||||||
};
|
};
|
||||||
local frame = Def.ActorFrame {
|
local t = Def.ActorFrame {};
|
||||||
InitCommand = function(self)
|
t[#t+1] = Def.ActorFrame {
|
||||||
-- We'll have to deal with this later
|
|
||||||
--if player_config:get_data(player).JudgmentUnderField then
|
|
||||||
-- self:draworder(notefield_draw_order.under_field)
|
|
||||||
--else
|
|
||||||
-- self:draworder(notefield_draw_order.over_field)
|
|
||||||
--end
|
|
||||||
c = self:GetChildren();
|
|
||||||
end,
|
|
||||||
LoadActor(THEME:GetPathG("Judgment","Normal")) .. {
|
LoadActor(THEME:GetPathG("Judgment","Normal")) .. {
|
||||||
Name="Judgment";
|
Name="Judgment";
|
||||||
InitCommand=cmd(pause;visible,false);
|
InitCommand=cmd(pause;visible,false);
|
||||||
OnCommand=THEME:GetMetric("Judgment","JudgmentOnCommand");
|
OnCommand=THEME:GetMetric("Judgment","JudgmentOnCommand");
|
||||||
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
||||||
};
|
};
|
||||||
|
LoadFont("Combo Numbers") .. {
|
||||||
|
Name="ProtimingDisplay";
|
||||||
|
Text="";
|
||||||
|
InitCommand=cmd(visible,false);
|
||||||
|
OnCommand=THEME:GetMetric("Protiming","ProtimingOnCommand");
|
||||||
|
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
||||||
|
};
|
||||||
|
LoadFont("Common Condensed") .. {
|
||||||
|
Name="ProtimingAverage";
|
||||||
|
Text="";
|
||||||
|
InitCommand=cmd(visible,false);
|
||||||
|
OnCommand=THEME:GetMetric("Protiming","AverageOnCommand");
|
||||||
|
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
||||||
|
};
|
||||||
|
LoadFont("Common Condensed") .. {
|
||||||
|
Name="TextDisplay";
|
||||||
|
Text=THEME:GetString("Protiming","MS");
|
||||||
|
InitCommand=cmd(visible,false);
|
||||||
|
OnCommand=THEME:GetMetric("Protiming","TextOnCommand");
|
||||||
|
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
Name="ProtimingGraphBG";
|
||||||
|
InitCommand=cmd(visible,false;y,32;zoomto,ProtimingWidth,16);
|
||||||
|
ResetCommand=cmd(finishtweening;diffusealpha,0.8;visible,false);
|
||||||
|
OnCommand=cmd(diffuse,Color("Black");diffusetopedge,color("0.1,0.1,0.1,1");diffusealpha,0.8;shadowlength,2;);
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
Name="ProtimingGraphWindowW3";
|
||||||
|
InitCommand=cmd(visible,false;y,32;zoomto,ProtimingWidth-4,16-4);
|
||||||
|
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||||
|
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W3"];);
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
Name="ProtimingGraphWindowW2";
|
||||||
|
InitCommand=cmd(visible,false;y,32;zoomto,scale(PREFSMAN:GetPreference("TimingWindowSecondsW2"),0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),0,ProtimingWidth-4),16-4);
|
||||||
|
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||||
|
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W2"];);
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
Name="ProtimingGraphWindowW1";
|
||||||
|
InitCommand=cmd(visible,false;y,32;zoomto,scale(PREFSMAN:GetPreference("TimingWindowSecondsW1"),0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),0,ProtimingWidth-4),16-4);
|
||||||
|
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||||
|
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W1"];);
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
Name="ProtimingGraphUnderlay";
|
||||||
|
InitCommand=cmd(visible,false;y,32;zoomto,ProtimingWidth-4,16-4);
|
||||||
|
ResetCommand=cmd(finishtweening;diffusealpha,0.25;visible,false);
|
||||||
|
OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25);
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
Name="ProtimingGraphFill";
|
||||||
|
InitCommand=cmd(visible,false;y,32;zoomto,0,16-4;horizalign,left;);
|
||||||
|
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||||
|
OnCommand=cmd(diffuse,Color("Red"););
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
Name="ProtimingGraphAverage";
|
||||||
|
InitCommand=cmd(visible,false;y,32;zoomto,2,7;);
|
||||||
|
ResetCommand=cmd(finishtweening;diffusealpha,0.85;visible,false);
|
||||||
|
OnCommand=cmd(diffuse,Color("Orange");diffusealpha,0.85);
|
||||||
|
};
|
||||||
|
Def.Quad {
|
||||||
|
Name="ProtimingGraphCenter";
|
||||||
|
InitCommand=cmd(visible,false;y,32;zoomto,2,16-4;);
|
||||||
|
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
||||||
|
OnCommand=cmd(diffuse,Color("White");diffusealpha,1);
|
||||||
|
};
|
||||||
|
InitCommand = function(self)
|
||||||
|
c = self:GetChildren();
|
||||||
|
end;
|
||||||
|
|
||||||
JudgmentMessageCommand=function(self, param)
|
JudgmentMessageCommand=function(self, param)
|
||||||
-- Fix Player Combo animating when player successfully avoids a mine.
|
-- Fix Player Combo animating when player successfully avoids a mine.
|
||||||
local msgParam = param;
|
local msgParam = param;
|
||||||
@@ -84,8 +180,54 @@ local frame = Def.ActorFrame {
|
|||||||
c.Judgment:setstate( iFrame );
|
c.Judgment:setstate( iFrame );
|
||||||
JudgeCmds[param.TapNoteScore](c.Judgment);
|
JudgeCmds[param.TapNoteScore](c.Judgment);
|
||||||
|
|
||||||
|
c.ProtimingDisplay:visible( bShowProtiming );
|
||||||
|
c.ProtimingDisplay:settextf("%i",fTapNoteOffset * 1000);
|
||||||
|
ProtimingCmds[param.TapNoteScore](c.ProtimingDisplay);
|
||||||
|
|
||||||
|
c.ProtimingAverage:visible( bShowProtiming );
|
||||||
|
c.ProtimingAverage:settextf("%.2f%%",clamp(100 - MakeAverage( tTotalJudgments ) * 1000 ,0,100));
|
||||||
|
AverageCmds['Pulse'](c.ProtimingAverage);
|
||||||
|
|
||||||
|
c.TextDisplay:visible( bShowProtiming );
|
||||||
|
TextCmds['Pulse'](c.TextDisplay);
|
||||||
|
|
||||||
|
c.ProtimingGraphBG:visible( bShowProtiming );
|
||||||
|
c.ProtimingGraphUnderlay:visible( bShowProtiming );
|
||||||
|
c.ProtimingGraphWindowW3:visible( bShowProtiming );
|
||||||
|
c.ProtimingGraphWindowW2:visible( bShowProtiming );
|
||||||
|
c.ProtimingGraphWindowW1:visible( bShowProtiming );
|
||||||
|
c.ProtimingGraphFill:visible( bShowProtiming );
|
||||||
|
c.ProtimingGraphFill:finishtweening();
|
||||||
|
c.ProtimingGraphFill:decelerate(1/60);
|
||||||
|
-- c.ProtimingGraphFill:zoomtowidth( clamp(fTapNoteOffset * 188,-188/2,188/2) );
|
||||||
|
c.ProtimingGraphFill:zoomtowidth( clamp(
|
||||||
|
scale(
|
||||||
|
fTapNoteOffset,
|
||||||
|
0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),
|
||||||
|
0,(ProtimingWidth-4)/2),
|
||||||
|
-(ProtimingWidth-4)/2,(ProtimingWidth-4)/2)
|
||||||
|
);
|
||||||
|
c.ProtimingGraphAverage:visible( bShowProtiming );
|
||||||
|
c.ProtimingGraphAverage:zoomtowidth( clamp(
|
||||||
|
scale(
|
||||||
|
MakeAverage( tTotalJudgments ),
|
||||||
|
0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),
|
||||||
|
0,ProtimingWidth-4),
|
||||||
|
0,ProtimingWidth-4)
|
||||||
|
);
|
||||||
|
-- c.ProtimingGraphAverage:zoomtowidth( clamp(MakeAverage( tTotalJudgments ) * 1880,0,188) );
|
||||||
|
c.ProtimingGraphCenter:visible( bShowProtiming );
|
||||||
|
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphBG);
|
||||||
|
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphUnderlay);
|
||||||
|
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW3);
|
||||||
|
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW2);
|
||||||
|
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW1);
|
||||||
|
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphFill);
|
||||||
|
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphAverage);
|
||||||
|
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphCenter);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
}
|
};
|
||||||
|
|
||||||
return frame
|
|
||||||
|
return t;
|
||||||
@@ -202,7 +202,7 @@ Holds=Turn some tap notes into hold notes.
|
|||||||
Mines=Add or remove mine notes.
|
Mines=Add or remove mine notes.
|
||||||
PlayerAutoPlay=Have the notefield play by itself.
|
PlayerAutoPlay=Have the notefield play by itself.
|
||||||
ScoreDisplay=Change the way your score is shown.
|
ScoreDisplay=Change the way your score is shown.
|
||||||
ProTiming=Change the way your judgments are shown.
|
ProTiming=Display a detailed graph of step timings and judgments.
|
||||||
Scroll=Adjust the direction arrows flow to meet the targets.
|
Scroll=Adjust the direction arrows flow to meet the targets.
|
||||||
NoteSkins=Choose a different appearance for the arrows.
|
NoteSkins=Choose a different appearance for the arrows.
|
||||||
Handicap=Removes notes. Using these will invalidate a high score.
|
Handicap=Removes notes. Using these will invalidate a high score.
|
||||||
|
|||||||
@@ -909,19 +909,11 @@ RainbowColor5=color("0.82,0.95,0.88,1") -- sea green
|
|||||||
RainbowColor6=color("0.87,0.95,0.82,1") -- green
|
RainbowColor6=color("0.87,0.95,0.82,1") -- green
|
||||||
RainbowColor7=color("1.00,0.85,0.78,1") -- orange
|
RainbowColor7=color("1.00,0.85,0.78,1") -- orange
|
||||||
|
|
||||||
[ScreenNestyPlayerOptions]
|
|
||||||
Class="ScreenWithMenuElements"
|
|
||||||
Fallback="ScreenWithMenuElements"
|
|
||||||
NextScreen="ScreenStageInformation"
|
|
||||||
PrevScreen=Branch.BackOutOfPlayerOptions()
|
|
||||||
RepeatRate=10
|
|
||||||
RepeatDelay=.25
|
|
||||||
PlayMusic=false
|
|
||||||
WaitForChildrenBeforeTweeningOut=false
|
|
||||||
|
|
||||||
[ScreenPlayerOptions]
|
[ScreenPlayerOptions]
|
||||||
LineNames="1,8,14,2,3A,3B,4,5,6,R1,R2,7,9,10,11,12,13,SF,16"
|
LineNames="1,8,14,2,3A,3B,4,5,6,R1,R2,7,9,10,11,12,13,SF,17,16"
|
||||||
LineSF="lua,OptionRowScreenFilter()"
|
LineSF="lua,OptionRowScreenFilter()"
|
||||||
|
Line17="lua,OptionRowProTiming()"
|
||||||
|
Line18="list,Characters"
|
||||||
|
|
||||||
PlayerNameplateP1X=SCREEN_CENTER_X-270
|
PlayerNameplateP1X=SCREEN_CENTER_X-270
|
||||||
PlayerNameplateP1Y=SCREEN_CENTER_Y+190
|
PlayerNameplateP1Y=SCREEN_CENTER_Y+190
|
||||||
|
|||||||