add retrobar for dance and kb7, remove kb7's default-p2
|
After Width: | Height: | Size: 363 B |
|
After Width: | Height: | Size: 362 B |
|
After Width: | Height: | Size: 350 B |
|
After Width: | Height: | Size: 350 B |
@@ -0,0 +1,3 @@
|
||||
return LoadActor("_bar hold explosion bright")..{
|
||||
CheckpointHitCommand=cmd(diffusealpha,0);
|
||||
};
|
||||
|
After Width: | Height: | Size: 507 B |
|
After Width: | Height: | Size: 521 B |
|
After Width: | Height: | Size: 283 B |
|
After Width: | Height: | Size: 283 B |
@@ -0,0 +1,23 @@
|
||||
local t = Def.ActorFrame{
|
||||
-- normal
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_bar', 'receptor base' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'InitCommand');
|
||||
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
|
||||
PressCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'PressCommand');
|
||||
};
|
||||
-- flashpert
|
||||
Def.Sprite {
|
||||
Texture="_bar receptor tap";
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'InitCommand');
|
||||
PressCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'PressCommand');
|
||||
LiftCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'LiftCommand');
|
||||
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
|
||||
};
|
||||
};
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 503 B |
|
After Width: | Height: | Size: 505 B |
|
After Width: | Height: | Size: 408 B |
|
After Width: | Height: | Size: 406 B |
@@ -0,0 +1,3 @@
|
||||
return LoadActor("_bar hold explosion bright")..{
|
||||
CheckpointHitCommand=cmd(diffusealpha,0);
|
||||
};
|
||||
|
After Width: | Height: | Size: 572 B |
|
After Width: | Height: | Size: 569 B |
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,15 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_bar', 'mine' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
Frame0001=1;
|
||||
Delay0001=1;
|
||||
Frame0002=2;
|
||||
Delay0002=1;
|
||||
Frame0003=3;
|
||||
Delay0003=1;
|
||||
Frame0004=2;
|
||||
Delay0004=1;
|
||||
Frame0005=1;
|
||||
Delay0005=1;
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_bar', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 4, 1 );
|
||||
};
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1 @@
|
||||
Bar Tap explosion bright
|
||||
|
After Width: | Height: | Size: 750 B |
@@ -0,0 +1,86 @@
|
||||
-- from scratch, with various references.
|
||||
local Noteskin = ... or {};
|
||||
|
||||
-- element redirs
|
||||
Noteskin.ElementRedirs = {
|
||||
-- ["element"] = "redir_element";
|
||||
};
|
||||
|
||||
-- button redirs (since this is a bar noteskin, it's all the same)
|
||||
Noteskin.ButtonRedirs = {
|
||||
Left = "Bar";
|
||||
UpLeft = "Bar";
|
||||
Up = "Bar";
|
||||
Down = "Bar";
|
||||
UpRight = "Bar";
|
||||
Right = "Bar";
|
||||
};
|
||||
|
||||
-- things to blank out
|
||||
Noteskin.Hide = {
|
||||
-- ["element"] = true/false;
|
||||
};
|
||||
|
||||
-- rotations
|
||||
Noteskin.BaseRotX = {
|
||||
Left = 0;
|
||||
UpLeft = 0;
|
||||
Up = 0;
|
||||
Down = 0;
|
||||
UpRight = 0;
|
||||
Right = 0;
|
||||
};
|
||||
Noteskin.BaseRotY = {
|
||||
Left = 0;
|
||||
UpLeft = 0;
|
||||
Up = 0;
|
||||
Down = 0;
|
||||
UpRight = 0;
|
||||
Right = 0;
|
||||
};
|
||||
|
||||
local function NoteskinLoader()
|
||||
local Button = Var "Button"
|
||||
local Element = Var "Element"
|
||||
|
||||
if Noteskin.Hide[Element] then
|
||||
-- Return a blank element. If SpriteOnly is set, we need to return a
|
||||
-- sprite; otherwise just return a dummy actor.
|
||||
local t;
|
||||
if Var "SpriteOnly" then
|
||||
t = LoadActor( "_blank" );
|
||||
else
|
||||
t = Def.Actor {};
|
||||
end
|
||||
return t .. {
|
||||
cmd(visible,false);
|
||||
};
|
||||
end;
|
||||
|
||||
-- load element and button, using redirs
|
||||
local LoadElement = Noteskin.ElementRedirs[Element]
|
||||
if not LoadElement then
|
||||
LoadElement = Element;
|
||||
end;
|
||||
|
||||
local LoadButton = Noteskin.ButtonRedirs[Button]
|
||||
if not LoadButton then
|
||||
LoadButton = Button;
|
||||
end;
|
||||
|
||||
-- get path to thing
|
||||
local sPath = NOTESKIN:GetPath( LoadButton, LoadElement );
|
||||
|
||||
-- make actor
|
||||
local t = LoadActor( sPath );
|
||||
|
||||
-- apply rotation
|
||||
t.BaseRotationX=Noteskin.BaseRotX[sButton]
|
||||
t.BaseRotationY=Noteskin.BaseRotY[sButton]
|
||||
|
||||
return t;
|
||||
end
|
||||
|
||||
Noteskin.Load = NoteskinLoader;
|
||||
Noteskin.CommonLoad = NoteskinLoader;
|
||||
return Noteskin;
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 506 B |
|
After Width: | Height: | Size: 731 B |
|
After Width: | Height: | Size: 796 B |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
@@ -0,0 +1,16 @@
|
||||
[NoteDisplay]
|
||||
HoldLetGoGrayPercent=.8
|
||||
|
||||
[ReceptorArrow]
|
||||
InitCommand=effectclock,"beat";diffuseramp;effectcolor1,color(".8,.8,.8,1");effectcolor2,color("1,1,1,1");effecttiming,.2,0,.8,0;effectoffset,.05
|
||||
NoneCommand=finishtweening;zoom,.85;diffusealpha,.9;linear,.11;diffusealpha,1;zoom,1
|
||||
|
||||
[ReceptorOverlay]
|
||||
InitCommand=diffusealpha,0
|
||||
PressCommand=finishtweening;zoom,1;blend,"BlendMode_Add";diffusealpha,.8;decelerate,0.2;diffusealpha,0.4
|
||||
LiftCommand=stoptweening;decelerate,.2;diffusealpha,0;zoom,1.2
|
||||
|
||||
[HoldGhostArrow]
|
||||
HoldingOnCommand=diffusealpha,0.625;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,.7");effectperiod,.1
|
||||
HoldingOffCommand=diffusealpha,0
|
||||
InitCommand=finishtweening;playcommand,"HoldingOff"
|
||||
@@ -1,102 +0,0 @@
|
||||
local ret = ... or {};
|
||||
|
||||
ret.RedirTable =
|
||||
{
|
||||
Key1 = "Key",
|
||||
Key2 = "Key",
|
||||
Key3 = "Key",
|
||||
Key4 = "Space",
|
||||
Key5 = "Key",
|
||||
Key6 = "Key",
|
||||
Key7 = "Key",
|
||||
};
|
||||
|
||||
local OldRedir = ret.Redir;
|
||||
ret.Redir = function(sButton, sElement)
|
||||
sButton, sElement = OldRedir(sButton, sElement);
|
||||
|
||||
-- Instead of separate hold heads, use the tap note graphics.
|
||||
if sElement == "Hold Head Inactive" or
|
||||
sElement == "Hold Head Active" or
|
||||
sElement == "Roll Head Inactive" or
|
||||
sElement == "Roll Head Active"
|
||||
then
|
||||
sElement = "Tap Note";
|
||||
end
|
||||
|
||||
sButton = ret.RedirTable[sButton];
|
||||
|
||||
return sButton, sElement;
|
||||
end
|
||||
|
||||
-- To have separate graphics for each hold part:
|
||||
--[[
|
||||
local OldRedir = ret.Redir;
|
||||
ret.Redir = function(sButton, sElement)
|
||||
-- Redirect non-hold, non-roll parts.
|
||||
if string.find(sElement, "hold") then
|
||||
return sButton, sElement;
|
||||
end
|
||||
return OldRedir(sButton, sElement);
|
||||
end
|
||||
]]
|
||||
|
||||
local OldFunc = ret.Load;
|
||||
function ret.Load()
|
||||
local t = OldFunc();
|
||||
|
||||
-- The main "Explosion" part just loads other actors; don't rotate
|
||||
-- it. The "Hold Explosion" part should not be rotated.
|
||||
if Var "Element" == "Explosion" or
|
||||
Var "Element" == "Roll Explosion" or
|
||||
Var "Element" == "Hold Explosion" then
|
||||
t.BaseRotationZ = nil;
|
||||
end
|
||||
return t;
|
||||
end
|
||||
|
||||
ret.PartsToRotate =
|
||||
{
|
||||
["Go Receptor"] = true,
|
||||
["Ready Receptor"] = true,
|
||||
["Tap Explosion Bright"] = true,
|
||||
["Tap Explosion Dim"] = true,
|
||||
["Tap Note"] = true,
|
||||
["Hold Head Active"] = true,
|
||||
["Hold Head Inactive"] = true,
|
||||
["Roll Head Active"] = true,
|
||||
["Roll Head Inactive"] = true,
|
||||
};
|
||||
ret.Rotate =
|
||||
{
|
||||
Key1 = 0,
|
||||
Key2 = 0,
|
||||
Key3 = 0,
|
||||
Key4 = 0,
|
||||
Key5 = 0,
|
||||
Key6 = 0,
|
||||
Key7 = 0,
|
||||
};
|
||||
|
||||
--
|
||||
-- If a derived skin wants to have separate UpLeft graphics,
|
||||
-- use this:
|
||||
--
|
||||
-- ret.RedirTable.UpLeft = "UpLeft";
|
||||
-- ret.RedirTable.UpRight = "UpLeft";
|
||||
-- ret.Rotate.UpLeft = 0;
|
||||
-- ret.Rotate.UpRight = 90;
|
||||
--
|
||||
ret.Blank =
|
||||
{
|
||||
["Hold Topcap Active"] = true,
|
||||
["Hold Topcap Inactive"] = true,
|
||||
["Roll Topcap Active"] = true,
|
||||
["Roll Topcap Inactive"] = true,
|
||||
["Hold Tail Active"] = true,
|
||||
["Hold Tail Inactive"] = true,
|
||||
["Roll Tail Active"] = true,
|
||||
["Roll Tail Inactive"] = true,
|
||||
};
|
||||
|
||||
return ret;
|
||||
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 6.2 KiB |
@@ -1 +0,0 @@
|
||||
return Def.Actor {}
|
||||
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
Before Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
@@ -1,5 +0,0 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_space', 'tap note' );
|
||||
-- probably don't need this line
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
};
|
||||
|
Before Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 363 B |
|
After Width: | Height: | Size: 362 B |
|
After Width: | Height: | Size: 350 B |
|
After Width: | Height: | Size: 350 B |
@@ -0,0 +1,3 @@
|
||||
return LoadActor("_bar hold explosion bright")..{
|
||||
CheckpointHitCommand=cmd(diffusealpha,0);
|
||||
};
|
||||
|
After Width: | Height: | Size: 507 B |
|
After Width: | Height: | Size: 521 B |
|
After Width: | Height: | Size: 283 B |
|
After Width: | Height: | Size: 283 B |
@@ -0,0 +1,23 @@
|
||||
local t = Def.ActorFrame{
|
||||
-- normal
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_bar', 'receptor base' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'InitCommand');
|
||||
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
|
||||
PressCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'PressCommand');
|
||||
};
|
||||
-- flashpert
|
||||
Def.Sprite {
|
||||
Texture="_bar receptor tap";
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
InitCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'InitCommand');
|
||||
PressCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'PressCommand');
|
||||
LiftCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'LiftCommand');
|
||||
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
|
||||
};
|
||||
};
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 503 B |
|
After Width: | Height: | Size: 505 B |
|
After Width: | Height: | Size: 408 B |
|
After Width: | Height: | Size: 406 B |
@@ -0,0 +1,3 @@
|
||||
return LoadActor("_bar hold explosion bright")..{
|
||||
CheckpointHitCommand=cmd(diffusealpha,0);
|
||||
};
|
||||
|
After Width: | Height: | Size: 572 B |
|
After Width: | Height: | Size: 569 B |
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 1.5 KiB |
@@ -0,0 +1,15 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_bar', 'mine' );
|
||||
Frame0000=0;
|
||||
Delay0000=1;
|
||||
Frame0001=1;
|
||||
Delay0001=1;
|
||||
Frame0002=2;
|
||||
Delay0002=1;
|
||||
Frame0003=3;
|
||||
Delay0003=1;
|
||||
Frame0004=2;
|
||||
Delay0004=1;
|
||||
Frame0005=1;
|
||||
Delay0005=1;
|
||||
};
|
||||
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_bar', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 4, 1 );
|
||||
};
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -0,0 +1 @@
|
||||
Bar Tap explosion bright
|
||||
|
After Width: | Height: | Size: 750 B |
@@ -0,0 +1,93 @@
|
||||
-- from scratch, with various references.
|
||||
local Noteskin = ... or {};
|
||||
|
||||
-- element redirs
|
||||
Noteskin.ElementRedirs = {
|
||||
-- ["element"] = "redir_element";
|
||||
};
|
||||
|
||||
-- button redirs (since this is a bar noteskin, it's all the same)
|
||||
Noteskin.ButtonRedirs = {
|
||||
Left = "Bar";
|
||||
UpLeft = "Bar";
|
||||
Up = "Bar";
|
||||
Down = "Bar";
|
||||
UpRight = "Bar";
|
||||
Right = "Bar";
|
||||
Key1 = "Bar";
|
||||
Key2 = "Bar";
|
||||
Key3 = "Bar";
|
||||
Key4 = "Bar";
|
||||
Key5 = "Bar";
|
||||
Key6 = "Bar";
|
||||
Key7 = "Bar";
|
||||
};
|
||||
|
||||
-- things to blank out
|
||||
Noteskin.Hide = {
|
||||
-- ["element"] = true/false;
|
||||
};
|
||||
|
||||
-- rotations
|
||||
Noteskin.BaseRotX = {
|
||||
Left = 0;
|
||||
UpLeft = 0;
|
||||
Up = 0;
|
||||
Down = 0;
|
||||
UpRight = 0;
|
||||
Right = 0;
|
||||
};
|
||||
Noteskin.BaseRotY = {
|
||||
Left = 0;
|
||||
UpLeft = 0;
|
||||
Up = 0;
|
||||
Down = 0;
|
||||
UpRight = 0;
|
||||
Right = 0;
|
||||
};
|
||||
|
||||
local function NoteskinLoader()
|
||||
local Button = Var "Button"
|
||||
local Element = Var "Element"
|
||||
|
||||
if Noteskin.Hide[Element] then
|
||||
-- Return a blank element. If SpriteOnly is set, we need to return a
|
||||
-- sprite; otherwise just return a dummy actor.
|
||||
local t;
|
||||
if Var "SpriteOnly" then
|
||||
t = LoadActor( "_blank" );
|
||||
else
|
||||
t = Def.Actor {};
|
||||
end
|
||||
return t .. {
|
||||
cmd(visible,false);
|
||||
};
|
||||
end;
|
||||
|
||||
-- load element and button, using redirs
|
||||
local LoadElement = Noteskin.ElementRedirs[Element]
|
||||
if not LoadElement then
|
||||
LoadElement = Element;
|
||||
end;
|
||||
|
||||
local LoadButton = Noteskin.ButtonRedirs[Button]
|
||||
if not LoadButton then
|
||||
LoadButton = Button;
|
||||
end;
|
||||
|
||||
-- get path to thing
|
||||
local sPath = NOTESKIN:GetPath( LoadButton, LoadElement );
|
||||
|
||||
-- make actor
|
||||
local t = LoadActor( sPath );
|
||||
|
||||
-- apply rotation
|
||||
t.BaseRotationX=Noteskin.BaseRotX[sButton]
|
||||
t.BaseRotationY=Noteskin.BaseRotY[sButton]
|
||||
|
||||
return t;
|
||||
end
|
||||
|
||||
Noteskin.Load = NoteskinLoader;
|
||||
Noteskin.CommonLoad = NoteskinLoader;
|
||||
return Noteskin;
|
||||
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 506 B |
|
After Width: | Height: | Size: 731 B |
|
After Width: | Height: | Size: 796 B |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
@@ -0,0 +1,16 @@
|
||||
[NoteDisplay]
|
||||
HoldLetGoGrayPercent=.8
|
||||
|
||||
[ReceptorArrow]
|
||||
InitCommand=effectclock,"beat";diffuseramp;effectcolor1,color(".8,.8,.8,1");effectcolor2,color("1,1,1,1");effecttiming,.2,0,.8,0;effectoffset,.05
|
||||
NoneCommand=finishtweening;zoom,.85;diffusealpha,.9;linear,.11;diffusealpha,1;zoom,1
|
||||
|
||||
[ReceptorOverlay]
|
||||
InitCommand=diffusealpha,0
|
||||
PressCommand=finishtweening;zoom,1;blend,"BlendMode_Add";diffusealpha,.8;decelerate,0.2;diffusealpha,0.4
|
||||
LiftCommand=stoptweening;decelerate,.2;diffusealpha,0;zoom,1.2
|
||||
|
||||
[HoldGhostArrow]
|
||||
HoldingOnCommand=diffusealpha,0.625;glowshift;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,.7");effectperiod,.1
|
||||
HoldingOffCommand=diffusealpha,0
|
||||
InitCommand=finishtweening;playcommand,"HoldingOff"
|
||||