Handle noteskin lua. Thanks to Jousway.

This commit is contained in:
Jason Felds
2013-07-06 21:51:12 -04:00
parent afd0dac0c1
commit 1532c4e5ab
108 changed files with 1940 additions and 1111 deletions
+14 -3
View File
@@ -1,10 +1,21 @@
return Def.ActorFrame {
-- We want this under the noteskin, so that we it looks like a laser (?)
LoadActor( NOTESKIN:GetPath("", "_Tap Receptor"), NOTESKIN:LoadActor( Var "Button", "KeypressBlock" ) ) .. {
InitCommand=cmd(vertalign,top;zoomx,0);
InitCommand=function(self)
self:vertalign(top);
self:zoomx(0);
end;
-- Press/Lift allows this to appear and disappear
PressCommand=cmd(zoomx,0;linear,0.02;zoomx,1);
LiftCommand=cmd(zoomx,1;linear,0.14;zoomx,0);
PressCommand=function(self)
self:zoomx(0);
self:linear(0.02);
self:zoomx(1);
end;
LiftCommand=function(self)
self:zoomx(1);
self:linear(0.14);
self:zoomx(0);
end;
};
-- Overlay the receptor.
LoadActor( NOTESKIN:GetPath("", "_Tap Receptor"), NOTESKIN:LoadActor( Var "Button", "Go Receptor" ) );
+47 -11
View File
@@ -1,29 +1,59 @@
local t = Def.ActorFrame { };
t[#t+1] = NOTESKIN:LoadActor( Var "Button", "Hold Explosion" ) .. {
HoldingOnCommand=cmd(visible,true);
HoldingOffCommand=cmd(visible,false);
InitCommand=cmd(visible,false;finishtweening;blend,"BlendMode_Add");
HoldingOnCommand=function(self)
self:visible(true);
end;
HoldingOffCommand=function(self)
self:visible(false);
end;
InitCommand=function(self)
self:visible(false);
self:finishtweening();
self:blend("BlendMode_Add");
end;
Frames = Sprite.LinearFrames(
NOTESKIN:GetMetricF( "GhostArrowDim", "HoldFrames" ),
NOTESKIN:GetMetricF( "GhostArrowDim", "HoldSeconds" ) );
};
t[#t+1] = NOTESKIN:LoadActor( Var "Button", "Roll Explosion" ) .. {
RollOnCommand=cmd(visible,true);
RollOffCommand=cmd(visible,false);
InitCommand=cmd(visible,false;finishtweening;blend,"BlendMode_Add");
RollOnCommand=function(self)
self:visible(true);
end;
RollOffCommand=function(self)
self:visible(false);
end;
InitCommand=function(self)
self:visible(false);
self:finishtweening();
self:blend("BlendMode_Add");
end;
Frames = Sprite.LinearFrames(
NOTESKIN:GetMetricF( "GhostArrowDim", "HoldFrames" ),
NOTESKIN:GetMetricF( "GhostArrowDim", "HoldSeconds" ) );
};
t[#t+1] = NOTESKIN:LoadActor( Var "Button", "Tap Explosion Dim" ) .. {
InitCommand=cmd(diffusealpha,0;blend,"BlendMode_Add");
HeldCommand=cmd(zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0);
InitCommand=function(self)
self:diffusealpha(0);
self:blend("BlendMode_Add");
end;
HeldCommand=function(self)
self:zoom(1);
self:linear(0.06);
self:zoom(1.1);
self:linear(0.06);
self:diffusealpha(0);
end;
ColumnJudgmentCommand=function(self, params)
if params.TapNoteScore == "TapNoteScore_HitMine" then return; end
(cmd(finishtweening;loop,0;diffusealpha,1;setstate,0;sleep,self:GetAnimationLengthSeconds()-0.001;diffusealpha,0))(self);
self:finishtweening();
self:loop(0);
self:diffusealpha(1);
self:setstate(0);
self:sleep(self:GetAnimationLengthSeconds()-0.001);
self:diffusealpha(0);
end;
Frames = Sprite.LinearFrames(
NOTESKIN:GetMetricF( "GhostArrowDim", "JudgmentFrames" ),
@@ -31,7 +61,9 @@ t[#t+1] = NOTESKIN:LoadActor( Var "Button", "Tap Explosion Dim" ) .. {
};
local mine = NOTESKIN:LoadActor( Var "Button", "HitMine Explosion" ) .. {
InitCommand=cmd(diffusealpha,0);
InitCommand=function(self)
self:diffusealpha(0);
end;
Frames = Sprite.LinearFrames(
NOTESKIN:GetMetricF( "GhostArrowDim", "MineFrames" ),
NOTESKIN:GetMetricF( "GhostArrowDim", "MineSeconds" ) );
@@ -47,7 +79,11 @@ t[#t+1] = Def.ActorFrame {
local c = self:GetChild(Next);
Next = Next == "1" and "2" or "1";
(cmd(stoptweening;setstate,0;diffusealpha,1;sleep,self:GetAnimationLengthSeconds()-0.001;diffusealpha,0))(c);
c:stoptweening();
c:setstate(0);
c:diffusealpha(1);
c:sleep(self:GetAnimationLengthSeconds()-0.001);
c:diffusealpha(0);
end;
};
@@ -4,18 +4,30 @@ return Def.ActorFrame {
Frame0000=0;
Delay0000=1;
InitCommand=cmd(playcommand, "Set");
GameplayLeadInChangedMessageCommand=cmd(playcommand,"Set");
SetCommand=cmd(visible,GAMESTATE:GetGameplayLeadIn());
InitCommand=function(self)
self:playcommand("Set");
end;
GameplayLeadInChangedMessageCommand=function(self)
self:playcommand("Set");
end;
SetCommand=function(self)
self:visible(GAMESTATE:GetGameplayLeadIn());
end;
};
LoadActor( "_Tap Receptor", NOTESKIN:LoadActor(Var "Button", "Go Receptor") ) .. {
Frame0000=0;
Delay0000=0;
InitCommand=cmd(playcommand, "Set");
GameplayLeadInChangedMessageCommand=cmd(playcommand,"Set");
SetCommand=cmd(visible,not GAMESTATE:GetGameplayLeadIn());
InitCommand=function(self)
self:playcommand("Set");
end;
GameplayLeadInChangedMessageCommand=function(self)
self:playcommand("Set");
end;
SetCommand=function(self)
self:visible(not GAMESTATE:GetGameplayLeadIn());
end;
};
}
}
@@ -1,4 +1,12 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath( '_center', 'explosion' );
InitCommand=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
return Def.Sprite {
Texture=NOTESKIN:GetPath( '_center', 'explosion' );
InitCommand=function(self)
self:blend("BlendMode_Add");
self:finishtweening();
self:diffusealpha(0.2);
self:zoom(0.6);
self:linear(0.1);
self:diffusealpha(0);
self:zoom(0.8);
end;
};
@@ -1,8 +1,48 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath( '_center', 'explosion' );
W1Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
W2Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
W3Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
W4Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
W5Command=cmd(blend,"BlendMode_Add";finishtweening;diffusealpha,0.2;zoom,0.6;linear,0.1;diffusealpha,0;zoom,0.8);
return Def.Sprite {
Texture=NOTESKIN:GetPath( '_center', 'explosion' );
W1Command=function(self)
self:blend("BlendMode_Add");
self:finishtweening();
self:diffusealpha(0.2);
self:zoom(0.6);
self:linear(0.1);
self:diffusealpha(0);
self:zoom(0.8);
end;
W2Command=function(self)
self:blend("BlendMode_Add");
self:finishtweening();
self:diffusealpha(0.2);
self:zoom(0.6);
self:linear(0.1);
self:diffusealpha(0);
self:zoom(0.8);
end;
W3Command=function(self)
self:blend("BlendMode_Add");
self:finishtweening();
self:diffusealpha(0.2);
self:zoom(0.6);
self:linear(0.1);
self:diffusealpha(0);
self:zoom(0.8);
end;
W4Command=function(self)
self:blend("BlendMode_Add");
self:finishtweening();
self:diffusealpha(0.2);
self:zoom(0.6);
self:linear(0.1);
self:diffusealpha(0);
self:zoom(0.8);
end;
W5Command=function(self)
self:blend("BlendMode_Add");
self:finishtweening();
self:diffusealpha(0.2);
self:zoom(0.6);
self:linear(0.1);
self:diffusealpha(0);
self:zoom(0.8);
end;
};
+27 -21
View File
@@ -1,21 +1,27 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( "_centerp1", "Tap Note" );
Frame0000=99;
Delay0000=1;
InitCommand=cmd(;glowblink;effectcolor1,0.4,0.4,0.4,0.4;effectcolor2,0.8,0.8,0.8,0.4;effectclock,'beat';effecttiming,0.2,0,0.8,0);
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
};
};
return t;
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( "_centerp1", "Tap Note" );
Frame0000=99;
Delay0000=1;
InitCommand=function(self)
self:glowblink();
self:effectcolor1(0.4, 0.4, 0.4, 0.4);
self:effectcolor2(0.8, 0.8, 0.8, 0.4);
self:effectclock('beat');
self:effecttiming(0.2, 0, 0.8, 0);
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
};
};
return t;
@@ -1,6 +1,12 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'explosion' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd(diffuseblink;effectcolor1,1,1,1,0.8;effectcolor2,1,1,1,1;effectclock,'beat';effectperiod,0.25);
return Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'explosion' );
Frame0000=0;
Delay0000=1;
InitCommand=function(self)
self:diffuseblink();
self:effectcolor1(1, 1, 1, 0.8);
self:effectcolor2(1, 1, 1, 1);
self:effectclock('beat');
self:effectperiod(0.25);
end;
};
+27 -21
View File
@@ -1,21 +1,27 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( "_Down", "Tap Note" );
Frame0000=69;
Delay0000=1;
InitCommand=cmd(;glowblink;effectcolor1,0.4,0.4,0.4,0.4;effectcolor2,0.8,0.8,0.8,0.4;effectclock,'beat';effecttiming,0.2,0,0.8,0);
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
};
};
return t;
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( "_Down", "Tap Note" );
Frame0000=69;
Delay0000=1;
InitCommand=function(self)
self:glowblink();
self:effectcolor1(0.4, 0.4, 0.4, 0.4);
self:effectcolor2(0.8, 0.8, 0.8, 0.4);
self:effectclock('beat');
self:effecttiming(0.2, 0, 0.8, 0);
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
};
};
return t;
+31 -18
View File
@@ -1,18 +1,31 @@
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap mine underlay' );
Frames = Sprite.LinearFrames( 1, 1 );
InitCommand=cmd(diffuseshift;effectcolor1,0.4,0,0,1;effectcolor2,1,0,0,1;effectclock,'beat');
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap mine base' );
Frames = Sprite.LinearFrames( 1, 1 );
InitCommand=cmd(spin;effectclock,'beat';effectmagnitude,0,0,80);
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap mine overlay' );
Frames = Sprite.LinearFrames( 1, 1 );
InitCommand=cmd(spin;effectclock,'beat';effectmagnitude,0,0,-40);
};
};
return t;
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap mine underlay' );
Frames = Sprite.LinearFrames( 1, 1 );
InitCommand=function(self)
self:diffuseshift();
self:effectcolor1(0.4, 0, 0, 1);
self:effectcolor2(1, 0, 0, 1);
self:effectclock('beat');
end;
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap mine base' );
Frames = Sprite.LinearFrames( 1, 1 );
InitCommand=function(self)
self:spin();
self:effectclock('beat');
self:effectmagnitude(0, 0, 80);
end;
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap mine overlay' );
Frames = Sprite.LinearFrames( 1, 1 );
InitCommand=function(self)
self:spin();
self:effectclock('beat');
self:effectmagnitude(0, 0, -40);
end;
};
};
return t;
@@ -1,21 +1,27 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( "_downleftp1", "Tap Note" );
Frame0000=99;
Delay0000=1;
InitCommand=cmd(;glowblink;effectcolor1,0.4,0.4,0.4,0.4;effectcolor2,0.8,0.8,0.8,0.4;effectclock,'beat';effecttiming,0.2,0,0.8,0);
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
};
};
return t;
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( "_downleftp1", "Tap Note" );
Frame0000=99;
Delay0000=1;
InitCommand=function(self)
self:glowblink();
self:effectcolor1(0.4, 0.4, 0.4, 0.4);
self:effectcolor2(0.8, 0.8, 0.8, 0.4);
self:effectclock('beat');
self:effecttiming(0.2, 0, 0.8, 0);
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
};
};
return t;
+235 -227
View File
@@ -1,227 +1,235 @@
--[[
USW Noteskin.lua Version V2
Made for Version Stepmania 5 Preview 4
I am the bone of my noteskin
Arrows are my body, and explosions are my blood
I have created over a thousand noteskins
Unknown to death
Nor known to life
Have withstood pain to create many noteskins
Yet these hands will never hold anything
So as I pray, Unlimited Stepman Works
If you want to know the list of lua commands you can use here is the main page for help http://kki.ajworld.net/lua/sm5/Lua.xml
--]]
local ret = ... or {};
--I always had the problem were I wrote var instead of Var, which really iritated me wondering why a code wouldnt work
--You can edit it out if you want, But I'm just gonna leave it here so incase a person wants to make a noteskin
--And gets the same problem as me were you use var instead of Var, atleast this should make it still work
--But its best to use Var, And make sure to check all your code for little mistakes while you write ;)
local var = Var;
--[[
This is the general redirect table, Not the general redirect code, We use this if we are lazy ;)
Or if we cant a directon of a noteskin use the exact same files as another direction
The most re used direction in this case is "Down"
You can add and remove values if you want, It works for every game type,
If you want an easy way to know how all directions are called go in to stepmaniaoptions and change gametype
Then if you go to key configure look at the names for the keys, They are the same names that are used in the noteskin.lua
--]]
ret.RedirTable =
{
Up = "Down",
Down = "Down",
Left = "Down",
Right = "Down",
Center = "Down",
DownLeft = "Down",
DownRight = "Down",
UpLeft = "Down",
UpRight = "Down",
};
--[[
This is the general redirect code, We use this if we want to redirect parts of noteskins to other parts
Because unlike the ret.RedirTable which redirects everything to the defined direction.
Here we can add redirects for seperate elements which means we can use separate images if we want
--]]
local OldRedir = ret.Redir;
ret.Redir = function(sButton, sElement)
sButton, sElement = OldRedir(sButton, sElement);
--This is were we call the ret.RedirTable and define it as sButton
--So it get called when we return sButton including the code under here
sButton = ret.RedirTable[sButton];
--We want to use custom hold/roll per direction, But keep global hold/roll heads and explosions.
if string.find(sElement, "Hold") or string.find(sElement, "Roll") then
if not string.find(sElement, "Head") and not string.find(sElement, "Explosion") then
if Var "Button" == "Left" then sButton = "Left"; end
if Var "Button" == "Right" then sButton = "Right"; end
if Var "Button" == "Down" then sButton = "Down"; end
if Var "Button" == "Up" then sButton = "Up"; end
if GAMESTATE:GetCurrentGame():GetName() == "dance" then
if Var "Button" == "UpLeft" then sButton = "UpLeft"; end
if Var "Button" == "UpRight" then sButton = "UpRight"; end
end
end
end
--Making Roll Head/Explosion fallback on Hold
if sElement == "Roll Head Inactive" then sElement = "Hold Head Inactive"; end
if sElement == "Roll Head Active" then sElement = "Hold Head Active"; end
if sElement == "Roll Explosion" then sElement = "Hold Explosion"; end
--Adding stuff for more directions for diffrent gametypes
if GAMESTATE:GetCurrentGame():GetName() == "dance" then
--Making the Upleft and Upright Hold/Roll body/BottomCap/TopCap but not Explosions use SoloUpLeft and SoloUpRight instead
--When the gametype is dance this way we can define diffrent images for diffrent gametypes
if string.find(sElement, "Hold") or string.find(sElement, "Roll") then
if Var "Button" == "UpLeft" and not string.find(sElement, "Explosion") then sButton = "SoloUpLeft"; end
if Var "Button" == "UpRight" and not string.find(sElement, "Explosion") then sButton = "SoloUpRight"; end
end
elseif GAMESTATE:GetCurrentGame():GetName() == "techno" then
-- See below for why two options.
if GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P1" then
if Var "Button" == "Center" then sButton = "Centerp1"; end
elseif GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P2" then
if Var "Button" == "Center" then sButton = "Centerp2"; end
end
if string.find(sButton, "Center") then
if string.find(sElement, "Bottomcap") then sButton = "Center"; end
if string.find(sElement, "Topcap") then sButton = "Center"; end
if string.find(sElement, "Body") then sButton = "Center"; end
end
if string.find(sElement, "Explosion") then sButton = "Center"; end
if sElement == "Tap Explosion Dim" then sElement = "Tap Explosion Bright"; end
--]]
elseif GAMESTATE:GetCurrentGame():GetName() == "pump" then
--Making Pump it up be rythm color based, Only problem is that in sm player 1 and player 2 noteskins are both defined as player 1
--Need a way to get the parent but atm it ends up as nil because of no parent
--So Player 1 and 2 both use Player 1 images for now
--We also let every direction aside from Center use DownLeftp1
if GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P1" then
if Var "Button" == "UpLeft" then sButton = "DownLeftp1"; end
if Var "Button" == "UpRight" then sButton = "DownLeftp1"; end
if Var "Button" == "DownLeft" then sButton = "DownLeftp1"; end
if Var "Button" == "DownRight" then sButton = "DownLeftp1"; end
if Var "Button" == "Center" then sButton = "Centerp1"; end
elseif GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P2" then
if Var "Button" == "UpLeft" then sButton = "Downleftp2"; end
if Var "Button" == "UpRight" then sButton = "Downleftp2"; end
if Var "Button" == "DownLeft" then sButton = "DownLeftp2"; end
if Var "Button" == "DownRight" then sButton = "DownLeftp2"; end
if Var "Button" == "Center" then sButton = "Centerp2"; end
end
--We already defined everything for diffrent players above
--But we want to use the same Center hold images for every direction and player
if string.find(sElement, "Bottomcap") then sButton = "Center"; end
if string.find(sElement, "Topcap") then sButton = "Center"; end
if string.find(sElement, "Body") then sButton = "Center"; end
--Lets also add explosion as Center
if string.find(sElement, "Explosion") then sButton = "Center"; end
if sElement == "Tap Explosion Dim" then sElement = "Tap Explosion Bright"; end
end
--Define that every direction uses Tap Mine from Down
if Var "Element" == "Tap Mine" then sButton = "Down"; end
return sButton, sElement;
end
--[[
This is the general function code
In here we can define how we want the stuff to act
Which basicly means instead of using a load of lua files for just some effect
We can just use code in here so we need to use less files
Which is nice if you want to save up space ;)
Only problem is that the Hold/Roll parts are written down in the code as sprite files
Which is the original old 3.9 code, Which basicly means that their code doesnt work in here
Also unlike the general redirect code which has sElement and sButton defined in the common noteskin
They need to be defined here manualy which can be done with
local sElement = Var "Element";
local sButton = Var "Button";
To make it easier for everyone I already added them
The reason we use local to define the stuff is for when a code doesnt accept the full code
Like for example if we did string.find(Var "Element", "Down") it wouldnt work
--]]
local OldFunc = ret.Load;
function ret.Load()
local t = OldFunc();
local sElement = Var "Element";
local sButton = Var "Button";
--Explosion should not be rotated; it calls other actors.
if Var "Element" == "Explosion" then
t.BaseRotationZ = nil;
end
if GAMESTATE:GetCurrentGame():GetName() == "dance" then
--We define that we dont want the hold heads for UpLeft and UpRight to be rotated because we rotate them in a lua file
if Var "Button" == "UpLeft" and string.find(sElement, "Head") then t.BaseRotationZ = nil; end
if Var "Button" == "UpRight" and string.find(sElement, "Head") then t.BaseRotationZ = nil; end
elseif GAMESTATE:GetCurrentGame():GetName() == "techno" then
if Var "Element" == "Tap Mine" then t.InitCommand=cmd(zoom,-0.8); end
elseif GAMESTATE:GetCurrentGame():GetName() == "pump" then
--Because the images for Pump it up are using the DownLeft for every direction aside from center, We let it be rotated here
--Because the rotate table is set up for dance and these are for PIU
if Var "Button" == "UpLeft" then t.BaseRotationZ = 90; end
if Var "Button" == "UpRight" then t.BaseRotationZ = 180; end
if Var "Button" == "DownLeft" then t.BaseRotationZ = nil; end
if Var "Button" == "DownRight" then t.BaseRotationZ = -90; end
if Var "Element" == "Tap Mine" then t.InitCommand=cmd(zoom,-0.8); end
end
return t;
end
-- >
--Define which parts of noteskins which we want to rotate
ret.PartsToRotate =
{
["Receptor"] = true,
["Tap Explosion Bright"] = true,
["Tap Explosion Dim"] = true,
["Tap Note"] = true,
["Tap Fake"] = true,
["Tap Lift"] = true,
["Tap Addition"] = true,
["Hold Explosion"] = true,
["Hold Head Active"] = true,
["Hold Head Inactive"] = true,
["Roll Explosion"] = true,
["Roll Head Active"] = true,
["Roll Head Inactive"] = true,
};
--Defined the parts to be rotated at which degree
ret.Rotate =
{
Up = 180,
Down = 0,
Left = 90,
Right = -90,
UpLeft = 135,
UpRight = -135,
Center = 0,
DownLeft = 45,
DownRight = -45,
};
--Parts that should be Redirected to _Blank.png
--you can add/remove stuff if you want
ret.Blank =
{
["Hold Tail Active"] = true,
["Hold Tail Inactive"] = true,
["Roll Tail Active"] = true,
["Roll Tail Inactive"] = true,
};
--dont forget to close the ret cuz else it wont work ;>
return ret;
--[[
USW Noteskin.lua Version V2
Made for Version Stepmania 5 Preview 4
I am the bone of my noteskin
Arrows are my body, and explosions are my blood
I have created over a thousand noteskins
Unknown to death
Nor known to life
Have withstood pain to create many noteskins
Yet these hands will never hold anything
So as I pray, Unlimited Stepman Works
If you want to know the list of lua commands you can use here is the main page for help http://kki.ajworld.net/lua/sm5/Lua.xml
--]]
local ret = ... or {};
--I always had the problem were I wrote var instead of Var, which really iritated me wondering why a code wouldnt work
--You can edit it out if you want, But I'm just gonna leave it here so incase a person wants to make a noteskin
--And gets the same problem as me were you use var instead of Var, atleast this should make it still work
--But its best to use Var, And make sure to check all your code for little mistakes while you write ;)
local var = Var;
--[[
This is the general redirect table, Not the general redirect code, We use this if we are lazy ;)
Or if we cant a directon of a noteskin use the exact same files as another direction
The most re used direction in this case is "Down"
You can add and remove values if you want, It works for every game type,
If you want an easy way to know how all directions are called go in to stepmaniaoptions and change gametype
Then if you go to key configure look at the names for the keys, They are the same names that are used in the noteskin.lua
--]]
ret.RedirTable =
{
Up = "Down",
Down = "Down",
Left = "Down",
Right = "Down",
Center = "Down",
DownLeft = "Down",
DownRight = "Down",
UpLeft = "Down",
UpRight = "Down",
};
--[[
This is the general redirect code, We use this if we want to redirect parts of noteskins to other parts
Because unlike the ret.RedirTable which redirects everything to the defined direction.
Here we can add redirects for seperate elements which means we can use separate images if we want
--]]
local OldRedir = ret.Redir;
ret.Redir = function(sButton, sElement)
sButton, sElement = OldRedir(sButton, sElement);
--This is were we call the ret.RedirTable and define it as sButton
--So it get called when we return sButton including the code under here
sButton = ret.RedirTable[sButton];
--We want to use custom hold/roll per direction, But keep global hold/roll heads and explosions.
if string.find(sElement, "Hold") or string.find(sElement, "Roll") then
if not string.find(sElement, "Head") and not string.find(sElement, "Explosion") then
if Var "Button" == "Left" then sButton = "Left"; end
if Var "Button" == "Right" then sButton = "Right"; end
if Var "Button" == "Down" then sButton = "Down"; end
if Var "Button" == "Up" then sButton = "Up"; end
if GAMESTATE:GetCurrentGame():GetName() == "dance" then
if Var "Button" == "UpLeft" then sButton = "UpLeft"; end
if Var "Button" == "UpRight" then sButton = "UpRight"; end
end
end
end
--Making Roll Head/Explosion fallback on Hold
if sElement == "Roll Head Inactive" then sElement = "Hold Head Inactive"; end
if sElement == "Roll Head Active" then sElement = "Hold Head Active"; end
if sElement == "Roll Explosion" then sElement = "Hold Explosion"; end
--Adding stuff for more directions for diffrent gametypes
if GAMESTATE:GetCurrentGame():GetName() == "dance" then
--Making the Upleft and Upright Hold/Roll body/BottomCap/TopCap but not Explosions use SoloUpLeft and SoloUpRight instead
--When the gametype is dance this way we can define diffrent images for diffrent gametypes
if string.find(sElement, "Hold") or string.find(sElement, "Roll") then
if Var "Button" == "UpLeft" and not string.find(sElement, "Explosion") then sButton = "SoloUpLeft"; end
if Var "Button" == "UpRight" and not string.find(sElement, "Explosion") then sButton = "SoloUpRight"; end
end
elseif GAMESTATE:GetCurrentGame():GetName() == "techno" then
-- See below for why two options.
if GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P1" then
if Var "Button" == "Center" then sButton = "Centerp1"; end
elseif GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P2" then
if Var "Button" == "Center" then sButton = "Centerp2"; end
end
if string.find(sButton, "Center") then
if string.find(sElement, "Bottomcap") then sButton = "Center"; end
if string.find(sElement, "Topcap") then sButton = "Center"; end
if string.find(sElement, "Body") then sButton = "Center"; end
end
if string.find(sElement, "Explosion") then sButton = "Center"; end
if sElement == "Tap Explosion Dim" then sElement = "Tap Explosion Bright"; end
--]]
elseif GAMESTATE:GetCurrentGame():GetName() == "pump" then
--Making Pump it up be rythm color based, Only problem is that in sm player 1 and player 2 noteskins are both defined as player 1
--Need a way to get the parent but atm it ends up as nil because of no parent
--So Player 1 and 2 both use Player 1 images for now
--We also let every direction aside from Center use DownLeftp1
if GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P1" then
if Var "Button" == "UpLeft" then sButton = "DownLeftp1"; end
if Var "Button" == "UpRight" then sButton = "DownLeftp1"; end
if Var "Button" == "DownLeft" then sButton = "DownLeftp1"; end
if Var "Button" == "DownRight" then sButton = "DownLeftp1"; end
if Var "Button" == "Center" then sButton = "Centerp1"; end
elseif GAMESTATE:GetMasterPlayerNumber() == "PlayerNumber_P2" then
if Var "Button" == "UpLeft" then sButton = "Downleftp2"; end
if Var "Button" == "UpRight" then sButton = "Downleftp2"; end
if Var "Button" == "DownLeft" then sButton = "DownLeftp2"; end
if Var "Button" == "DownRight" then sButton = "DownLeftp2"; end
if Var "Button" == "Center" then sButton = "Centerp2"; end
end
--We already defined everything for diffrent players above
--But we want to use the same Center hold images for every direction and player
if string.find(sElement, "Bottomcap") then sButton = "Center"; end
if string.find(sElement, "Topcap") then sButton = "Center"; end
if string.find(sElement, "Body") then sButton = "Center"; end
--Lets also add explosion as Center
if string.find(sElement, "Explosion") then sButton = "Center"; end
if sElement == "Tap Explosion Dim" then sElement = "Tap Explosion Bright"; end
end
--Define that every direction uses Tap Mine from Down
if Var "Element" == "Tap Mine" then sButton = "Down"; end
return sButton, sElement;
end
--[[
This is the general function code
In here we can define how we want the stuff to act
Which basicly means instead of using a load of lua files for just some effect
We can just use code in here so we need to use less files
Which is nice if you want to save up space ;)
Only problem is that the Hold/Roll parts are written down in the code as sprite files
Which is the original old 3.9 code, Which basicly means that their code doesnt work in here
Also unlike the general redirect code which has sElement and sButton defined in the common noteskin
They need to be defined here manualy which can be done with
local sElement = Var "Element";
local sButton = Var "Button";
To make it easier for everyone I already added them
The reason we use local to define the stuff is for when a code doesnt accept the full code
Like for example if we did string.find(Var "Element", "Down") it wouldnt work
--]]
local OldFunc = ret.Load;
function ret.Load()
local t = OldFunc();
local sElement = Var "Element";
local sButton = Var "Button";
--Explosion should not be rotated; it calls other actors.
if Var "Element" == "Explosion" then
t.BaseRotationZ = nil;
end
if GAMESTATE:GetCurrentGame():GetName() == "dance" then
--We define that we dont want the hold heads for UpLeft and UpRight to be rotated because we rotate them in a lua file
if Var "Button" == "UpLeft" and string.find(sElement, "Head") then t.BaseRotationZ = nil; end
if Var "Button" == "UpRight" and string.find(sElement, "Head") then t.BaseRotationZ = nil; end
elseif GAMESTATE:GetCurrentGame():GetName() == "techno" then
if Var "Element" == "Tap Mine" then
t.InitCommand=function(self)
self:zoom(-0.8);
end;
end
elseif GAMESTATE:GetCurrentGame():GetName() == "pump" then
--Because the images for Pump it up are using the DownLeft for every direction aside from center, We let it be rotated here
--Because the rotate table is set up for dance and these are for PIU
if Var "Button" == "UpLeft" then t.BaseRotationZ = 90; end
if Var "Button" == "UpRight" then t.BaseRotationZ = 180; end
if Var "Button" == "DownLeft" then t.BaseRotationZ = nil; end
if Var "Button" == "DownRight" then t.BaseRotationZ = -90; end
if Var "Element" == "Tap Mine" then
t.InitCommand=function(self)
self:zoom(-0.8);
end;
end
end
return t;
end
-- >
--Define which parts of noteskins which we want to rotate
ret.PartsToRotate =
{
["Receptor"] = true,
["Tap Explosion Bright"] = true,
["Tap Explosion Dim"] = true,
["Tap Note"] = true,
["Tap Fake"] = true,
["Tap Lift"] = true,
["Tap Addition"] = true,
["Hold Explosion"] = true,
["Hold Head Active"] = true,
["Hold Head Inactive"] = true,
["Roll Explosion"] = true,
["Roll Head Active"] = true,
["Roll Head Inactive"] = true,
};
--Defined the parts to be rotated at which degree
ret.Rotate =
{
Up = 180,
Down = 0,
Left = 90,
Right = -90,
UpLeft = 135,
UpRight = -135,
Center = 0,
DownLeft = 45,
DownRight = -45,
};
--Parts that should be Redirected to _Blank.png
--you can add/remove stuff if you want
ret.Blank =
{
["Hold Tail Active"] = true,
["Hold Tail Inactive"] = true,
["Roll Tail Active"] = true,
["Roll Tail Inactive"] = true,
};
--dont forget to close the ret cuz else it wont work ;>
return ret;
@@ -1,15 +1,17 @@
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd();
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd(rotationz,135);
};
};
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
Frame0000=0;
Delay0000=1;
InitCommand=function(self) end;
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frame0000=0;
Delay0000=1;
InitCommand=function(self)
self:rotationz(135);
end;
};
};
return t;
@@ -1,15 +1,17 @@
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd();
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frame0000=1;
Delay0000=1;
InitCommand=cmd(rotationz,135);
};
};
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
Frame0000=0;
Delay0000=1;
InitCommand=function(self) end;
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frame0000=1;
Delay0000=1;
InitCommand=function(self)
self:rotationz(135);
end;
};
};
return t;
@@ -1,15 +1,19 @@
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd(zoomx,-1);
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd(rotationz,-135);
};
};
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
Frame0000=0;
Delay0000=1;
InitCommand=function(self)
self:zoomx(-1);
end;
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frame0000=0;
Delay0000=1;
InitCommand=function(self)
self:rotationz(-135);
end;
};
};
return t;
@@ -1,15 +1,19 @@
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd(zoomx,-1);
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frame0000=1;
Delay0000=1;
InitCommand=cmd(rotationz,-135);
};
};
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_upleftsolo', 'underlay' );
Frame0000=0;
Delay0000=1;
InitCommand=function(self)
self:zoomx(-1);
end;
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frame0000=1;
Delay0000=1;
InitCommand=function(self)
self:rotationz(-135);
end;
};
};
return t;
+36 -11
View File
@@ -2,39 +2,64 @@ local t = Def.ActorFrame {
NOTESKIN:LoadActor( Var "Button", "Hold Explosion" ) .. {
HoldingOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOnCommand");
HoldingOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "HoldingOffCommand");
InitCommand=cmd(playcommand,"HoldingOff";finishtweening);
InitCommand=function(self)
self:playcommand("HoldingOff");
self:finishtweening();
end;
};
NOTESKIN:LoadActor( Var "Button", "Roll Explosion" ) .. {
RollOnCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "RollOnCommand");
RollOffCommand=NOTESKIN:GetMetricA("HoldGhostArrow", "RollOffCommand");
InitCommand=cmd(playcommand,"RollOff";finishtweening);
InitCommand=function(self)
self:playcommand("RollOff");
self:finishtweening();
end;
};
NOTESKIN:LoadActor( Var "Button", "Tap Explosion Dim" ) .. {
InitCommand=cmd(diffusealpha,0);
InitCommand=function(self)
self:diffusealpha(0);
end;
W5Command=NOTESKIN:GetMetricA("GhostArrowDim", "W5Command");
W4Command=NOTESKIN:GetMetricA("GhostArrowDim", "W4Command");
W3Command=NOTESKIN:GetMetricA("GhostArrowDim", "W3Command");
W2Command=NOTESKIN:GetMetricA("GhostArrowDim", "W2Command");
W1Command=NOTESKIN:GetMetricA("GhostArrowDim", "W1Command");
HeldCommand=NOTESKIN:GetMetricA("GhostArrowDim", "HeldCommand");
JudgmentCommand=cmd(finishtweening);
BrightCommand=cmd(visible,false);
DimCommand=cmd(visible,true);
JudgmentCommand=function(self)
self:finishtweening();
end;
BrightCommand=function(self)
self:visible(false);
end;
DimCommand=function(self)
self:visible(true);
end;
};
NOTESKIN:LoadActor( Var "Button", "Tap Explosion Bright" ) .. {
InitCommand=cmd(diffusealpha,0);
InitCommand=function(self)
self:diffusealpha(0);
end;
W5Command=NOTESKIN:GetMetricA("GhostArrowBright", "W5Command");
W4Command=NOTESKIN:GetMetricA("GhostArrowBright", "W4Command");
W3Command=NOTESKIN:GetMetricA("GhostArrowBright", "W3Command");
W2Command=NOTESKIN:GetMetricA("GhostArrowBright", "W2Command");
W1Command=NOTESKIN:GetMetricA("GhostArrowBright", "W1Command");
HeldCommand=NOTESKIN:GetMetricA("GhostArrowBright", "HeldCommand");
JudgmentCommand=cmd(finishtweening);
BrightCommand=cmd(visible,true);
DimCommand=cmd(visible,false);
JudgmentCommand=function(self)
self:finishtweening();
end;
BrightCommand=function(self)
self:visible(true);
end;
DimCommand=function(self)
self:visible(false);
end;
};
NOTESKIN:LoadActor( Var "Button", "HitMine Explosion" ) .. {
InitCommand=cmd(blend,"BlendMode_Add";diffusealpha,0);
InitCommand=function(self)
self:blend("BlendMode_Add");
self:diffusealpha(0);
end;
HitMineCommand=NOTESKIN:GetMetricA("GhostArrowBright", "HitMineCommand");
};
}
+3 -1
View File
@@ -35,7 +35,9 @@ local function func()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end
@@ -4,9 +4,15 @@ return Def.ActorFrame {
{ Frame = 2; Delay = 1; };
};
InitCommand=cmd(playcommand, "Set");
GameplayLeadInChangedMessageCommand=cmd(playcommand,"Set");
SetCommand=cmd(visible,GAMESTATE:GetGameplayLeadIn());
InitCommand=function(self)
self:playcommand("Set");
end;
GameplayLeadInChangedMessageCommand=function(self)
self:playcommand("Set");
end;
SetCommand=function(self)
self:visible(GAMESTATE:GetGameplayLeadIn());
end;
};
LoadActor( "_Tap Receptor", NOTESKIN:LoadActor(Var "Button", "Go Receptor") ) .. {
@@ -16,8 +22,14 @@ return Def.ActorFrame {
{ Frame = 2; };
};
InitCommand=cmd(playcommand, "Set");
GameplayLeadInChangedMessageCommand=cmd(playcommand,"Set");
SetCommand=cmd(visible,not GAMESTATE:GetGameplayLeadIn());
InitCommand=function(self)
self:playcommand("Set");
end;
GameplayLeadInChangedMessageCommand=function(self)
self:playcommand("Set");
end;
SetCommand=function(self)
self:visible(not GAMESTATE:GetGameplayLeadIn());
end;
};
}
+3 -1
View File
@@ -1,7 +1,9 @@
local File = ...;
return LoadActor( File ) .. {
InitCommand=cmd(playcommand,"Lift");
InitCommand=function(self)
self:playcommand("Lift");
end;
ReverseOnCommand=NOTESKIN:GetMetricA("Press", "ReverseOnCommand");
ReverseOffCommand=NOTESKIN:GetMetricA("Press", "ReverseOffCommand");
PressCommand=NOTESKIN:GetMetricA("Press", "PressCommand");
+6 -1
View File
@@ -3,7 +3,12 @@ local t = Def.ActorFrame {
Texture="_arrow";
Frame0000=7;
Delay0000=1;
InitCommand=cmd(animate,false;pulse;effectclock,"beat";effectmagnitude,0.9,1,1);
InitCommand=function(self)
self:animate(false);
self:pulse();
self:effectclock("beat");
self:effectmagnitude(0.9, 1, 1);
end;
};
};
return t;
+32 -4
View File
@@ -8,25 +8,53 @@ local t = Def.ActorFrame {
Texture="_circle";
Frame0000=0;
Delay0000=1;
InitCommand=cmd(y,15;effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.35");effectoffset,0);
InitCommand=function(self)
self:y(15);
self:effectclock("beat");
self:diffuseramp();
self:effectcolor1(color("1,1,1,0"));
self:effectcolor2(color("1,1,1,0.35"));
self:effectoffset(0);
end;
};
Def.Sprite {
Texture="_circle";
Frame0000=0;
Delay0000=1;
InitCommand=cmd(y,5;effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.35");effectoffset,0.25);
InitCommand=function(self)
self:y(5);
self:effectclock("beat");
self:diffuseramp();
self:effectcolor1(color("1,1,1,0"));
self:effectcolor2(color("1,1,1,0.35"));
self:effectoffset(0.25);
end;
};
Def.Sprite {
Texture="_circle";
Frame0000=0;
Delay0000=1;
InitCommand=cmd(y,-5;effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.35");effectoffset,0.5);
InitCommand=function(self)
self:y(-5);
self:effectclock("beat");
self:diffuseramp();
self:effectcolor1(color("1,1,1,0"));
self:effectcolor2(color("1,1,1,0.35"));
self:effectoffset(0.5);
end;
};
Def.Sprite {
Texture="_circle";
Frame0000=0;
Delay0000=1;
InitCommand=cmd(y,-15;effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,0.35");effectoffset,0.75);
InitCommand=function(self)
self:y(-15);
self:effectclock("beat");
self:diffuseramp();
self:effectcolor1(color("1,1,1,0"));
self:effectcolor2(color("1,1,1,0.35"));
self:effectoffset(0.75);
end;
};
};
return t;
+4 -2
View File
@@ -1,11 +1,13 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath("_Center", "Go Receptor" );
InitCommand=cmd(effectclock,"beat");
InitCommand=function(self)
self:effectclock("beat");
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
+4 -2
View File
@@ -1,11 +1,13 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath("_Down", "Go Receptor" );
InitCommand=cmd(effectclock,"beat");
InitCommand=function(self)
self:effectclock("beat");
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
+4 -2
View File
@@ -1,11 +1,13 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath("_DownLeft", "Go Receptor" );
InitCommand=cmd(effectclock,"beat");
InitCommand=function(self)
self:effectclock("beat");
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
+4 -2
View File
@@ -1,11 +1,13 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath("_Center", "Go Receptor" );
InitCommand=cmd(effectclock,"beat");
InitCommand=function(self)
self:effectclock("beat");
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
+4 -2
View File
@@ -1,11 +1,13 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath("_Down", "Go Receptor" );
InitCommand=cmd(effectclock,"beat");
InitCommand=function(self)
self:effectclock("beat");
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
@@ -1,11 +1,13 @@
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use function(self) end; to define command.
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath("_DownLeft", "Go Receptor" );
InitCommand=cmd(effectclock,"beat");
InitCommand=function(self)
self:effectclock("beat");
end;
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Down','Hold Head Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,1"));
return Def.Sprite {
Texture=NOTESKIN:GetPath('Down','Hold Head Active');
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,1"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Down','Roll Head Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,1"));
return Def.Sprite {
Texture=NOTESKIN:GetPath('Down','Roll Head Active');
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,1"));
end;
};
+13 -9
View File
@@ -1,9 +1,13 @@
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap mine' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd(spin;effectclock,'beat';effectmagnitude,0,0,-180);
};
};
return t;
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap mine' );
Frame0000=0;
Delay0000=1;
InitCommand=function(self)
self:spin();
self:effectclock('beat');
self:effectmagnitude(0, 0, -180);
end;
};
};
return t;
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Left','Hold BottomCap Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
return Def.Sprite {
Texture=NOTESKIN:GetPath('Left','Hold BottomCap Active');
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,0.5"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Left','Roll BottomCap Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
return Def.Sprite {
Texture=NOTESKIN:GetPath('Left','Roll BottomCap Active');
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,0.5"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Up','Hold BottomCap Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
return Def.Sprite {
Texture=NOTESKIN:GetPath('Up','Hold BottomCap Active');
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,0.5"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Up','Roll BottomCap Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
return Def.Sprite {
Texture=NOTESKIN:GetPath('Up','Roll BottomCap Active');
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,0.5"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Down','Hold Head Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,1"));
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,1"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Down','Roll Head Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,1"));
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,1"));
end;
};
+5 -1
View File
@@ -3,7 +3,11 @@ local t = Def.ActorFrame {
Texture=NOTESKIN:GetPath( '_down', 'tap mine' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd(spin;effectclock,'beat';effectmagnitude,0,0,-180);
InitCommand=function(self)
self:spin();
self:effectclock('beat');
self:effectmagnitude(0, 0, -180);
end;
};
};
return t;
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Left','Hold BottomCap Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,0.5"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Left','Roll BottomCap Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,0.5"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Up','Hold BottomCap Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,0.5"));
end;
};
@@ -1,4 +1,6 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath('Up','Roll BottomCap Active');
InitCommand=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
InitCommand=function(self)
self:diffuse(color("0.5,0.5,0.5,0.5"));
end;
};
+5 -1
View File
@@ -3,7 +3,11 @@ local t = Def.ActorFrame {
Texture=NOTESKIN:GetPath( '_down', 'tap mine' );
Frame0000=0;
Delay0000=1;
InitCommand=cmd(spin;effectclock,'beat';effectmagnitude,0,0,-180);
InitCommand=function(self)
self:spin();
self:effectclock('beat');
self:effectmagnitude(0, 0, -180);
end;
};
};
return t;
+3 -1
View File
@@ -1,7 +1,9 @@
return Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
Frames = Sprite.LinearFrames( 8, 1 );
InitCommand=cmd(setstate,2);
InitCommand=function(self)
self:setstate(2);
end;
DrawTapNoteMessageCommand=function(self,parent)
parent:spin();
end;
@@ -1,3 +1,5 @@
return LoadActor("Down Tap Explosion Bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("UpLeft Tap Explosion Bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -61,7 +61,9 @@ local function NoteskinLoader()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end;
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
+3 -1
View File
@@ -66,7 +66,9 @@ local function NoteskinLoader()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end;
+3 -1
View File
@@ -74,7 +74,9 @@ local function NoteskinLoader()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end;
+3 -1
View File
@@ -75,7 +75,9 @@ local function NoteskinLoader()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end;
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
+3 -1
View File
@@ -75,7 +75,9 @@ local function NoteskinLoader()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end;
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
+3 -1
View File
@@ -66,7 +66,9 @@ local function NoteskinLoader()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end;
+3 -1
View File
@@ -69,7 +69,9 @@ local function NoteskinLoader()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end;
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
@@ -1,3 +1,5 @@
return LoadActor("_bar hold explosion bright")..{
CheckpointHitCommand=cmd(diffusealpha,0);
CheckpointHitCommand=function(self)
self:diffusealpha(0);
end;
};
+3 -1
View File
@@ -66,7 +66,9 @@ local function NoteskinLoader()
t = Def.Actor {};
end
return t .. {
cmd(visible,false);
function(self)
self:visible(false);
end;
};
end;
+4 -1
View File
@@ -1,3 +1,6 @@
return NOTESKIN:LoadActor("Center","Tap Note")..{
InitCommand=cmd(effectclock,"beat";effectmagnitude,0.5,1,0);
InitCommand=function(self)
self:effectclock("beat");
self:effectmagnitude(0.5, 1, 0);
end;
};
+4 -1
View File
@@ -1,3 +1,6 @@
return NOTESKIN:LoadActor("DownLeft","Tap Note")..{
InitCommand=cmd(effectclock,"beat";effectmagnitude,0.5,1,0)
InitCommand=function(self)
self:effectclock("beat");
self:effectmagnitude(0.5, 1, 0);
end;
};
@@ -1,3 +1,6 @@
return NOTESKIN:LoadActor("DownRight","Tap Note")..{
InitCommand=cmd(effectclock,"beat";effectmagnitude,0.5,1,0)
InitCommand=function(self)
self:effectclock("beat");
self:effectmagnitude(0.5, 1, 0);
end;
};
+5 -1
View File
@@ -119,7 +119,11 @@ local function func()
end
if sElement == "Tap Lift" then
t.InitCommand=cmd(pulse;effectclock,"beat";effectmagnitude,1,0.75,0);
t.InitCommand=function(self)
self:pulse();
self:effectclock("beat");
self:effectmagnitude(1, 0.75, 0);
end;
end
return t
+108 -42
View File
@@ -1,43 +1,109 @@
return Def.ActorFrame {
--note graphic
NOTESKIN:LoadActor(Var "Button", "Tap Note") .. {
InitCommand=cmd(blend,"BlendMode_Add";playcommand,"Glow");
W1Command=cmd(playcommand,"Glow");
W2Command=cmd(playcommand,"Glow");
W3Command=cmd(playcommand,"Glow");
W4Command=cmd();
W5Command=cmd();
HitMineCommand=cmd(playcommand,"Glow");
GlowCommand=cmd(setstate,0;finishtweening;diffusealpha,1.0;zoom,1.0;linear,0.15;diffusealpha,0.9;zoom,1.15;linear,0.15;diffusealpha,0.0;zoom,1.3);
HeldCommand=cmd(playcommand,"Glow");
};
--tap
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Tap";
--Frames = { { Frame = 2 ; Delay = 1 } };
TapCommand=cmd(finishtweening;diffusealpha,1;zoom,1;linear,0.2;diffusealpha,0;zoom,1.2);
InitCommand=cmd(pause;setstate,2;playcommand,"Tap");
HeldCommand=cmd(playcommand,"Tap");
ColumnJudgmentMessageCommand=cmd(playcommand,"Tap");
--TapNoneCommand=cmd(playcommand,"Tap");
};
--explosion
LoadActor("_flash")..{
InitCommand=cmd(blend,"BlendMode_Add";playcommand,"Glow");
W1Command=cmd(playcommand,"Glow");
W2Command=cmd(playcommand,"Glow");
W3Command=cmd(playcommand,"Glow");
W4Command=cmd();
W5Command=cmd();
--HoldingOnCommand=cmd(playcommand,"Glow");
HitMineCommand=cmd(playcommand,"Glow");
HeldCommand=cmd(playcommand,"Glow");
GlowCommand=cmd(setstate,0;finishtweening;diffusealpha,1;zoom,1;linear,0.2;diffusealpha,0;zoom,1.2);
};
--thing...
Def.Quad {
InitCommand=cmd(zoomto,50,5000;diffusealpha,0);
HitMineCommand=cmd(finishtweening;diffusealpha,1;linear,0.3;diffusealpha,0);
};
return Def.ActorFrame {
--note graphic
NOTESKIN:LoadActor(Var "Button", "Tap Note") .. {
InitCommand=function(self)
self:blend("BlendMode_Add");
self:playcommand("Glow");
end;
W1Command=function(self)
self:playcommand("Glow");
end;
W2Command=function(self)
self:playcommand("Glow");
end;
W3Command=function(self)
self:playcommand("Glow");
end;
W4Command=function(self) end;
W5Command=function(self) end;
HitMineCommand=function(self)
self:playcommand("Glow");
end;
HeldCommand=function(self)
self:playcommand("Glow");
end;
GlowCommand=function(self)
self:setstate(0);
self:finishtweening();
self:diffusealpha(1.0);
self:zoom(1.0);
self:linear(0.15);
self:diffusealpha(0.9);
self:zoom(1.15);
self:linear(0.15);
self:diffusealpha(0.0);
self:zoom(1.3);
end;
};
--tap
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Tap";
--Frames = { { Frame = 2 ; Delay = 1 } };
TapCommand=function(self)
self:finishtweening();
self:diffusealpha(1);
self:zoom(1);
self:linear(0.2);
self:diffusealpha(0);
self:zoom(1.2);
end;
InitCommand=function(self)
self:pause();
self:setstate(2);
self:playcommand("Tap");
end;
HeldCommand=function(self)
self:playcommand("Tap");
end;
ColumnJudgmentMessageCommand=function(self)
self:playcommand("Tap");
end;
};
--explosion
LoadActor("_flash")..{
InitCommand=function(self)
self:blend("BlendMode_Add");
self:playcommand("Glow");
end;
W1Command=function(self)
self:playcommand("Glow");
end;
W2Command=function(self)
self:playcommand("Glow");
end;
W3Command=function(self)
self:playcommand("Glow");
end;
W4Command=function(self) end;
W5Command=function(self) end;
HitMineCommand=function(self)
self:playcommand("Glow");
end;
HeldCommand=function(self)
self:playcommand("Glow");
end;
GlowCommand=function(self)
self:setstate(0);
self:finishtweening();
self:diffusealpha(1);
self:zoom(1);
self:linear(0.2);
self:diffusealpha(0);
self:zoom(1.2);
end;
};
--thing...
Def.Quad {
InitCommand=function(self)
self:zoomto(50, 5000);
self:diffusealpha(0);
end;
HitMineCommand=function(self)
self:finishtweening();
self:diffusealpha(1);
self:linear(0.3);
self:diffusealpha(0);
end;
};
}
+65 -63
View File
@@ -1,64 +1,66 @@
local player = Var "Player" or GAMESTATE:GetMasterPlayerNumber()
local function Beat(self)
-- too many locals
local this = self:GetChildren()
local playerstate = GAMESTATE:GetPlayerState( player )
local songposition = playerstate:GetSongPosition() -- GAMESTATE:GetSongPosition()
local beat = songposition:GetSongBeat() -- GAMESTATE:GetSongBeat()
local part = beat%1
part = clamp(part,0,0.5)
local eff = scale(part,0,0.5,1,0)
if (songposition:GetDelay() or false) and part == 0 then eff = 0 end
if beat < 0 then
eff = 0
end
this.Glow:diffusealpha(eff);
end
return Def.ActorFrame {
-- COMMANDS --
InitCommand=cmd(SetUpdateFunction,Beat);
-- LAYERS --
NOTESKIN:LoadActor("Center", "Outline Receptor")..{
Name="Outline Full";
Condition=Var "Button" == "Center" and GAMESTATE:GetCurrentStyle():GetStepsType() ~= 'StepsType_Pump_Halfdouble';
--InitCommand=cmd(x,96);
};
NOTESKIN:LoadActor("DownLeft", "Outline Receptor")..{
Name="Outline Half";
Condition=Var "Button" == "DownLeft" and GAMESTATE:GetCurrentStyle():GetStepsType() == 'StepsType_Pump_Halfdouble';
--InitCommand=cmd(x,96);
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Base";
Frames={
{ Frame = 0, Delay = 0 }
};
PressCommand=cmd(finishtweening;linear,0.05;zoom,0.9;linear,0.1;zoom,1);
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Glow";
Frames= {
{ Frame = 1, Delay = 0 }
};
InitCommand=cmd(blend,'BlendMode_Add');
PressCommand=cmd(finishtweening;linear,0.05;zoom,0.9;linear,0.1;zoom,1);
};
--[[
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Tap";
Frames = { Frame = 2 };
InitCommand=cmd(zoom,1;diffusealpha,0;glow,1,1,1,0);
--NOTESKIN:GetMetricA(Var "Button", "TapInitCommand");
--
PressCommand=cmd(finishtweening;glow,1,1,1,1;zoom,1;linear,0.2;glow,1,1,1,0;zoom,1.2);
--NOTESKIN:GetMetricA(Var "Button", "TapHeldCommand");
--
};
--]]
local player = Var "Player" or GAMESTATE:GetMasterPlayerNumber()
local function Beat(self)
-- too many locals
local this = self:GetChildren()
local playerstate = GAMESTATE:GetPlayerState( player )
local songposition = playerstate:GetSongPosition() -- GAMESTATE:GetSongPosition()
local beat = songposition:GetSongBeat() -- GAMESTATE:GetSongBeat()
local part = beat%1
part = clamp(part,0,0.5)
local eff = scale(part,0,0.5,1,0)
if (songposition:GetDelay() or false) and part == 0 then eff = 0 end
if beat < 0 then
eff = 0
end
this.Glow:diffusealpha(eff);
end
return Def.ActorFrame {
-- COMMANDS --
InitCommand=function(self)
self:SetUpdateFunction(Beat);
end;
-- LAYERS --
NOTESKIN:LoadActor("Center", "Outline Receptor")..{
Name="Outline Full";
Condition=Var "Button" == "Center" and GAMESTATE:GetCurrentStyle():GetStepsType() ~= 'StepsType_Pump_Halfdouble';
};
NOTESKIN:LoadActor("DownLeft", "Outline Receptor")..{
Name="Outline Half";
Condition=Var "Button" == "DownLeft" and GAMESTATE:GetCurrentStyle():GetStepsType() == 'StepsType_Pump_Halfdouble';
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Base";
Frames={
{ Frame = 0, Delay = 0 }
};
PressCommand=function(self)
self:finishtweening();
self:linear(0.05);
self:zoom(0.9);
self:linear(0.1);
self:zoom(1);
end;
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Glow";
Frames= {
{ Frame = 1, Delay = 0 }
};
InitCommand=function(self)
self:blend('BlendMode_Add');
end;
PressCommand=function(self)
self:finishtweening();
self:linear(0.05);
self:zoom(0.9);
self:linear(0.1);
self:zoom(1);
end;
};
}
+4 -1
View File
@@ -1,3 +1,6 @@
return NOTESKIN:LoadActor("UpLeft","Tap Note")..{
InitCommand=cmd(effectclock,"beat";effectmagnitude,0.5,1,0)
InitCommand=function(self)
self:effectclock("beat");
self:effectmagnitude(0.5, 1, 0);
end;
};
+4 -1
View File
@@ -1,3 +1,6 @@
return NOTESKIN:LoadActor("UpRight","Tap Note")..{
InitCommand=cmd(effectclock,"beat";effectmagnitude,0.5,1,0)
InitCommand=function(self)
self:effectclock("beat");
self:effectmagnitude(0.5,1,0);
end;
};
+5 -2
View File
@@ -1,3 +1,6 @@
return LoadActor("_CenterHit")..{
InitCommand=cmd(x,2;y,2);
return LoadActor("_CenterHit")..{
InitCommand=function(self)
self:x(2);
self:y(2);
end;
}
@@ -1,3 +1,6 @@
return LoadActor("_DownLeftHit")..{
InitCommand=cmd(y,5;x,2);
return LoadActor("_DownLeftHit")..{
InitCommand=fnction(self)
self:y(5);
self:x(2);
end;
}
@@ -1,3 +1,6 @@
return NOTESKIN:LoadActor("DownLeft","NoteHit")..{
OnCommand=cmd(x,-2;zoomx,-1);
return NOTESKIN:LoadActor("DownLeft","NoteHit")..{
OnCommand=function(self)
self:x(-2);
self:zoomx(-1);
end;
}
@@ -1,8 +1,7 @@
return NOTESKIN:LoadActor("DownLeft", "Ready Receptor")..{
Frames = {
{ Frame = 0 };
{ Frame = 1 };
{ Frame = 2 };
};
--InitCommand=cmd(rotationy,180);
return NOTESKIN:LoadActor("DownLeft", "Ready Receptor")..{
Frames = {
{ Frame = 0 };
{ Frame = 1 };
{ Frame = 2 };
};
};
@@ -1,3 +1,2 @@
return NOTESKIN:LoadActor("DownLeft","Tap Note")..{
--InitCommand=cmd(rotationy,180);
return NOTESKIN:LoadActor("DownLeft","Tap Note")..{
};
+112 -39
View File
@@ -1,40 +1,113 @@
return Def.ActorFrame {
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=cmd(animate,0;blend,Blend.Add;diffusealpha,0);
NoneCommand=cmd(playcommand,"Glow");
PressCommand=cmd(playcommand,"Glow");
W1Command=cmd(setstate,0;playcommand,"W2");
W2Command=cmd(setstate,0;playcommand,"Glow");
W3Command=cmd(setstate,1;playcommand,"Glow");
W4Command=cmd(setstate,2;playcommand,"Glow");
W5Command=cmd();
HitMineCommand=cmd(playcommand,"Glow");
HeldCommand=cmd(setstate,0;playcommand,"Glow");
GlowCommand=cmd(stoptweening,zoom,1.05;diffusealpha,1;linear,0.25;zoom,1.1;diffusealpha,0);
};
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=cmd(animate,0;blend,Blend.Add;diffusealpha,0);
NoneCommand=cmd(playcommand,"Glow");
PressCommand=cmd(playcommand,"Glow");
W1Command=cmd(setstate,0;playcommand,"W2");
W2Command=cmd(setstate,0;playcommand,"Glow");
W3Command=cmd(setstate,1;playcommand,"Glow");
W4Command=cmd(setstate,2;playcommand,"Glow");
W5Command=cmd();
HitMineCommand=cmd(playcommand,"Glow");
HeldCommand=cmd(setstate,0;playcommand,"Glow");
GlowCommand=cmd(stoptweening,zoom,1;diffusealpha,0.4;linear,0.3;zoom,1.2;diffusealpha,0);
};
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=cmd(animate,0;zoom,1.1;blend,Blend.Add;visible,false);
HoldingOnCommand=cmd(visible,true);
HoldingOffCommand=cmd(visible,false);
};
return Def.ActorFrame {
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=function(self)
self:animate(0);
self:blend(Blend.Add);
self:diffusealpha(0);
end;
NoneCommand=function(self)
self:playcommand("Glow");
end;
PressCommand=function(self)
self:playcommand("Glow");
end;
W1Command=function(self)
self:setstate(0);
self:playcommand("W2");
end;
W2Command=function(self)
self:setstate(0);
self:playcommand("Glow");
end;
W3Command=function(self)
self:setstate(1);
self:playcommand("Glow");
end;
W4Command=function(self)
self:setstate(2);
self:playcommand("Glow");
end;
W5Command=function(self) end;
HitMineCommand=function(self)
self:playcommand("Glow");
end;
HeldCommand=function(self)
self:setstate(0);
self:playcommand("Glow");
end;
GlowCommand=function(self)
self:stoptweening();
self:zoom(1.05);
self:diffusealpha(1);
self:linear(0.25);
self:zoom(1.1);
self:diffusealpha(0);
end;
};
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=function(self)
self:animate(0);
self:blend(Blend.Add);
self:diffusealpha(0);
end;
NoneCommand=function(self)
self:playcommand("Glow");
end;
PressCommand=function(self)
self:playcommand("Glow");
end;
W1Command=function(self)
self:setstate(0);
self:playcommand("W2");
end;
W2Command=function(self)
self:setstate(0);
self:playcommand("Glow");
end;
W3Command=function(self)
self:setstate(1);
self:playcommand("Glow");
end;
W4Command=function(self)
self:setstate(2);
self:playcommand("Glow");
end;
W5Command=function(self) end;
HitMineCommand=function(self)
self:playcommand("Glow");
end;
HeldCommand=function(self)
self:setstate(0);
self:playcommand("Glow");
end;
GlowCommand=function(self)
self:stoptweening();
self:zoom(1);
self:diffusealpha(0.4);
self:linear(0.3);
self:zoom(1.2);
self:diffusealpha(0);
end;
};
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=function(self)
self:animate(0);
self:zoom(1.1);
self:blend(Blend.Add);
self:visible(false);
end;
HoldingOnCommand=function(self)
self:visible(true);
end;
HoldingOffCommand=function(self)
self:visible(false);
end;
};
}
+8 -3
View File
@@ -1,3 +1,8 @@
return NOTESKIN:LoadActor("DownLeft","NoteHit")..{
InitCommand=cmd(rotationy,180;rotationz,180;y,-6;x,2);
}
return NOTESKIN:LoadActor("DownLeft","NoteHit")..{
InitCommand=function(self)
self:rotationy(180);
self:rotationz(180);
self:y(-6);
self:x(2);
end;
}
+53 -22
View File
@@ -1,22 +1,53 @@
return Def.ActorFrame {
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Base";
InitCommand=cmd(animate,0;setstate,0);
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Glow";
InitCommand=cmd(animate,0;setstate,1);
OnCommand=cmd(effectclock,"bgm";diffuseshift;effectcolor1,color("#FFFFFFFF");effectcolor2,color("#FFFFFF00");effecttiming,1,0,0,0);
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Tap";
InitCommand=cmd(animate,0;setstate,2;zoom,1;diffusealpha,0;blend,'BlendMode_Add');
PressCommand=cmd(diffuse,color("#FFFFAA");stoptweening;zoom,1.1;linear,0.1;diffusealpha,0.6;zoom,1);
LiftCommand=cmd(diffuse,color("#FFFFAA");stoptweening;diffusealpha,0.6;zoom,1;linear,0.15;zoom,1.2;diffusealpha,0);
};
}
--Vin.il was here... =)
return Def.ActorFrame {
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Base";
InitCommand=function(self)
self:animate(0);
self:setstate(0);
end;
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Glow";
InitCommand=function(self)
self:animate(0);
self:setstate(1);
end;
OnCommand=function(self)
self:effectclock("bgm");
self:diffuseshift();
self:effectcolor1(color("#FFFFFFFF"));
self:effectcolor2(color("#FFFFFF00"));
self:effecttiming(1, 0, 0, 0);
end;
};
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
Name="Tap";
InitCommand=function(self)
self:animate(0);
self:setstate(2);
self:zoom(1);
self:diffusealpha(0);
self:blend('BlendMode_Add');
end;
PressCommand=function(self)
self:diffuse(color("#FFFFAA"));
self:stoptweening();
self:zoom(1.1);
self:linear(0.1);
self:diffusealpha(0.6);
self:zoom(1);
end;
LiftCommand=function(self)
self:diffuse(color("#FFFFAA"));
self:stoptweening();
self:diffusealpha(0.6);
self:zoom(1);
self:linear(0.15);
self:zoom(1.2);
self:diffusealpha(0);
end;
};
}
+49 -25
View File
@@ -1,26 +1,50 @@
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("Mine_Base");
t[#t+1] = LoadActor("Mine_Fill")..{
InitCommand=cmd(diffuseshift;effectcolor1,color("#FFFFFFFF");effectcolor2,color("#FFFFFF22");effectclock,"bgm";effectperiod,2);
}
t[#t+1] = LoadActor("Mine_Fill")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#FFFFFFFF");effectcolor2,color("#FFFFFF22");effectclock,"bgm";effectperiod,2);
}
t[#t+1] = LoadActor("Mine_Border")..{
InitCommand=cmd(spin;effectmagnitude,0,0,36);
}
t[#t+1] = LoadActor("Mine_Overlay");
t[#t+1] = LoadActor("Mine_Light")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#FFFFFF55");effectcolor2,color("#FFFFFF00");effectclock,"bgm";zoom,1.15;effectperiod,2);
}
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("Mine_Base");
t[#t+1] = LoadActor("Mine_Fill")..{
InitCommand=function(self)
self:diffuseshift();
self:effectcolor1(color("#FFFFFFFF"));
self:effectcolor2(color("#FFFFFF22"));
self:effectclock("bgm");
self:effectperiod(2);
end;
}
t[#t+1] = LoadActor("Mine_Fill")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#FFFFFFFF"));
self:effectcolor2(color("#FFFFFF22"));
self:effectclock("bgm");
self:effectperiod(2);
end;
}
t[#t+1] = LoadActor("Mine_Border")..{
InitCommand=function(self)
self:spin();
self:effectmagnitude(0, 0, 36);
end;
}
t[#t+1] = LoadActor("Mine_Overlay");
t[#t+1] = LoadActor("Mine_Light")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#FFFFFF55"));
self:effectcolor2(color("#FFFFFF00"));
self:effectclock("bgm");
self:zoom(1.15);
self:effectperiod(2);
end;
}
return t
@@ -1,3 +1,8 @@
return NOTESKIN:LoadActor("DownLeft","NoteHit")..{
InitCommand=cmd(rotationy,180;rotationz,180;y,-6;x,-2);
return NOTESKIN:LoadActor("DownLeft","NoteHit")..{
InitCommand=function(self)
self:rotationy(180);
self:rotationz(180);
self:y(-6);
self:x(-2);
end;
}
@@ -1,8 +1,7 @@
return NOTESKIN:LoadActor("UpLeft", "Ready Receptor")..{
Frames = {
{ Frame = 0 };
{ Frame = 1 };
{ Frame = 2 };
};
--InitCommand=cmd(rotationy,180);
return NOTESKIN:LoadActor("UpLeft", "Ready Receptor")..{
Frames = {
{ Frame = 0 };
{ Frame = 1 };
{ Frame = 2 };
};
};
@@ -1,4 +1,2 @@
return NOTESKIN:LoadActor("UpLeft","Tap Note")..{
--InitCommand=cmd(rotationy,180);
--BaseRotationY=180;
return NOTESKIN:LoadActor("UpLeft","Tap Note")..{
};
+43 -23
View File
@@ -1,24 +1,44 @@
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=cmd(diffuseshift;effectcolor1,color("#9b8737FF");effectcolor2,color("#9b8737FF");fadetop,0.5);
}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#ccb752FF");effectcolor2,color("#ccb75233");effectclock,"bgm";effecttiming,1,0,0,0;);
}
t[#t+1] = LoadActor("Center_fill")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#ccb752FF");effectcolor2,color("#ccb752FF"));
}
t[#t+1] = LoadActor("Center_feet")..{
InitCommand=cmd(blend,Blend.Add;diffusealpha,0.6);
}
t[#t+1] = LoadActor("Center border");
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=function(self)
self:diffuseshift();
self:effectcolor1(color("#9b8737FF"));
self:effectcolor2(color("#9b8737FF"));
self:fadetop(0.5);
end;
}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#ccb752FF"));
self:effectcolor2(color("#ccb75233"));
self:effectclock("bgm");
self:effecttiming(1, 0, 0, 0);
end;
}
t[#t+1] = LoadActor("Center_fill")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#ccb752FF"));
self:effectcolor2(color("#ccb752FF"));
end;
}
t[#t+1] = LoadActor("Center_feet")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffusealpha(0.6);
end;
}
t[#t+1] = LoadActor("Center border");
return t
+5 -2
View File
@@ -1,3 +1,6 @@
return LoadActor("_CenterHit")..{
InitCommand=cmd(x,2;y,2);
return LoadActor("_CenterHit")..{
InitCommand=function(self)
self:x(2);
self:y(2);
end;
}
+51 -27
View File
@@ -1,28 +1,52 @@
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=cmd(diffuseshift;effectcolor1,color("#9b873766");effectcolor2,color("#9b873766"));
}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#ccb752FF");effectcolor2,color("#ccb75266");effectclock,"bgm";effecttiming,1,0,0,0;);
}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=cmd(diffuseshift;effectcolor1,color("#ccb752FF");effectcolor2,color("#ccb752FF");fadetop,1);
}
t[#t+1] = LoadActor("Center_fill")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#ccb752FF");effectcolor2,color("#ccb752FF"));
}
t[#t+1] = LoadActor("Center_feet")..{
InitCommand=cmd(blend,Blend.Add;diffusealpha,0.6);
}
t[#t+1] = LoadActor("Center border");
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=function(self)
self:diffuseshift();
self:effectcolor1(color("#9b873766"));
self:effectcolor2(color("#9b873766"));
end;
}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#ccb752FF"));
self:effectcolor2(color("#ccb75266"));
self:effectclock("bgm");
self:effecttiming(1, 0, 0, 0);
end;
}
t[#t+1] = LoadActor("Center_blend")..{
InitCommand=function(self)
self:diffuseshift();
self:effectcolor1(color("#ccb752FF"));
self:effectcolor2(color("#ccb752FF"));
self:fadetop(1);
end;
}
t[#t+1] = LoadActor("Center_fill")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#ccb752FF"));
self:effectcolor2(color("#ccb752FF"));
end;
}
t[#t+1] = LoadActor("Center_feet")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffusealpha(0.6);
end;
}
t[#t+1] = LoadActor("Center border");
return t
+36 -19
View File
@@ -1,20 +1,37 @@
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=cmd(diffuseshift;effectcolor1,color("#376f9bFF");effectcolor2,color("#376f9bFF");fadetop,0.5);
}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#5899ccFF");effectcolor2,color("#5899cc33");effectclock,"bgm";effecttiming,1,0,0,0;);
}
t[#t+1] = LoadActor("DownLeft_fill")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#5899ccFF");effectcolor2,color("#5899ccFF"));
}
t[#t+1] = LoadActor("DownLeft border");
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=function(self)
self:diffuseshift();
self:effectcolor1(color("#376f9bFF"));
self:effectcolor2(color("#376f9bFF"));
self:fadetop(0.5);
end;
}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#5899ccFF"));
self:effectcolor2(color("#5899cc33"));
self:effectclock("bgm");
self:effecttiming(1, 0, 0, 0);
end;
}
t[#t+1] = LoadActor("DownLeft_fill")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#5899ccFF"));
self:effectcolor2(color("#5899ccFF"));
end;
}
t[#t+1] = LoadActor("DownLeft border");
return t
+5 -2
View File
@@ -1,3 +1,6 @@
return LoadActor("_DownLeftHit")..{
InitCommand=cmd(y,5;x,2);
return LoadActor("_DownLeftHit")..{
InitCommand=fnction(self)
self:y(5);
self:x(2);
end;
}
+44 -23
View File
@@ -1,24 +1,45 @@
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=cmd(diffuseshift;effectcolor1,color("#376f9b66");effectcolor2,color("#376f9b66"));
}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#5899ccFF");effectcolor2,color("#5899cc66");effectclock,"bgm";effecttiming,1,0,0,0;);
}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=cmd(diffuseshift;effectcolor1,color("#5899ccFF");effectcolor2,color("#5899ccFF");fadetop,1);
}
t[#t+1] = LoadActor("DownLeft_fill")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#5899ccFF");effectcolor2,color("#5899ccFF"));
}
t[#t+1] = LoadActor("DownLeft border");
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=fnction(self)
self:diffuseshift();
self:effectcolor1(color("#376f9b66"));
self:effectcolor2(color("#376f9b66"));
end;
}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#5899ccFF"));
self:effectcolor2(color("#5899cc66"));
self:effectclock("bgm");
self:effecttiming(1, 0, 0, 0);
end;
}
t[#t+1] = LoadActor("DownLeft_blend")..{
InitCommand=function(self)
self:diffuseshift();
self:effectcolor1(color("#5899ccFF"));
self:effectcolor2(color("#5899ccFF"));
self:fadetop(1);
end;
}
t[#t+1] = LoadActor("DownLeft_fill")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#5899ccFF"));
self:effectcolor2(color("#5899ccFF"));
end;
}
t[#t+1] = LoadActor("DownLeft border");
return t
+2 -2
View File
@@ -1,3 +1,3 @@
return NOTESKIN:LoadActor("DownLeft","Hold Head")..{
--InitCommand=cmd(rotationy,180);
return NOTESKIN:LoadActor("DownLeft","Hold Head")..{
};
+5 -2
View File
@@ -1,3 +1,6 @@
return NOTESKIN:LoadActor("DownLeft","NoteHit")..{
OnCommand=cmd(x,-2;zoomx,-1);
return NOTESKIN:LoadActor("DownLeft","NoteHit")..{
OnCommand=function(self)
self:x(-2);
self:zoomx(-1);
end;
}
@@ -1,8 +1,7 @@
return NOTESKIN:LoadActor("DownLeft", "Ready Receptor")..{
Frames = {
{ Frame = 0 };
{ Frame = 1 };
{ Frame = 2 };
};
--InitCommand=cmd(rotationy,180);
return NOTESKIN:LoadActor("DownLeft", "Ready Receptor")..{
Frames = {
{ Frame = 0 };
{ Frame = 1 };
{ Frame = 2 };
};
};
+1 -2
View File
@@ -1,3 +1,2 @@
return NOTESKIN:LoadActor("DownLeft","Tap Note")..{
--InitCommand=cmd(rotationy,180);
return NOTESKIN:LoadActor("DownLeft","Tap Note")..{
};
+134 -130
View File
@@ -1,131 +1,135 @@
local Noteskin = {}
--bBlanks:
Noteskin.bBlanks = {
--["element"] = true|false;
["Hold Tail Active"] = true;
["Hold Tail Active"] = true;
["Roll Tail Inactive"] = true;
["Roll Tail Inactive"] = true;
}
Noteskin.PartsToRotate = {
--["elemenu"] = true|false;
["Roll Head Active"] = false;
["Roll Head Inactive"] = false;
}
Noteskin.ElementRedirs = {
--["element"] = "redirected_element";
["Hold Head Active"] = "Tap Note";
["Hold Head Inactive"] = "Tap Note";
["Roll Head Active"] = "Roll Head Active";
["Roll Head Inactive"] = "Roll Head Active";
["Tap Fake"] = "Tap Note";
["Tap Lift"] = "Tap Note";
--
["Hold Topcap Inactive"] = "Hold Topcap Active";
["Hold Body Inactive"] = "Hold Body Active";
["Hold Bottomcap Inactive"] = "Hold Bottomcap Active";
["Hold Tail Inactive"] = "Hold Tail Active";
--
["Roll Topcap Active"] = "Hold Topcap Active";
["Roll Body Active"] = "Hold Body Active";
["Roll Bottomcap Active"] = "Hold Bottomcap Active";
["Roll Tail Active"] = "Hold Tail Active";
--
["Roll Topcap Inactive"] = "Hold Topcap Active";
["Roll Body Inactive"] = "Hold Body Active";
["Roll Bottomcap Inactive"] = "Hold Bottomcap Active";
["Roll Tail Inactive"] = "Hold Tail Active";
}
-- explicit, n/w
--[[Noteskin.ButtonRedirs = {
Center = "Center";
UpLeft = "UpLeft";
UpRight = "UpRight";
DownLeft = "DownLeft";
DownRight = "DownRight";
}]]
Noteskin.BaseRotX = {
Center = 0;
UpLeft = 0;
UpRight = 0;
DownLeft = 0;
DownRight = 0;
}
Noteskin.BaseRotY = {
Center = 0;
UpLeft = 0;
UpRight = 180;
DownLeft = 0;
DownRight = 180;
}
Noteskin.BaseRotZ = {
Center = 0;
UpLeft = 0;
UpRight = 0;
DownLeft = 0;
DownRight = 0;
}
--[[--------------------------------------------------------------------------
DONT EDIT THE FUNCTION, DON'T COPY AND PASTE THE WHOLE NOTESKIN.LUA
JUST MAKE A NEW ONE AND GRAB WHATEVER IS USEFUL FOR YOUR NOTESKIN.
phew~
See cmd-routine-p* noteskin.lua for a simple and clear example on
how to do this properly, notice how the rest of the noteskins just
have graphics and at least a metrics.ini with few things
--]]--------------------------------------------------------------------------
local function func()
local sButton = Var "Button"
local sElement = Var "Element"
if Noteskin.bBlanks[sElement] then
local t = Def.Actor {};
if Var "SpriteOnly" then
t = LoadActor( "_blank" );
end
return t
end
--local ButtonToLoad = Noteskin.ButtonRedirs[sButton]
local ElementToLoad = Noteskin.ElementRedirs[sElement]
if not ElementToLoad then
ElementToLoad = sElement
end
if sElement == "Explosion"
or sElement == "Tap Mine"
or sElement == "Receptor"
then
sButton = "UpLeft"
end
local path = NOTESKIN:GetPath(sButton,ElementToLoad)
if ( string.find(sElement,"Hold") or string.find(sElement,"Roll") )
and not ( string.find(sElement,"Head") or string.find(sElement,"Tail") )
then
path = NOTESKIN:GetPath(sButton,ElementToLoad)
end
local t = LoadActor(path)
local bRotate = Noteskin.PartsToRotate[ElementToLoad]
--rotate by default
if bRotate == nil then bRotate = true end
if bRotate then
t.BaseRotationX=Noteskin.BaseRotX[sButton]
t.BaseRotationY=Noteskin.BaseRotY[sButton]
t.BaseRotationZ=Noteskin.BaseRotZ[sButton]
end
if sElement == "Tap Lift" then
t.InitCommand=cmd(pulse;effectclock,"beat";effectmagnitude,1,0.75,0);
end
return t
end
Noteskin.Load = func
Noteskin.CommonLoad = func
local Noteskin = {}
--bBlanks:
Noteskin.bBlanks = {
--["element"] = true|false;
["Hold Tail Active"] = true;
["Hold Tail Active"] = true;
["Roll Tail Inactive"] = true;
["Roll Tail Inactive"] = true;
}
Noteskin.PartsToRotate = {
--["elemenu"] = true|false;
["Roll Head Active"] = false;
["Roll Head Inactive"] = false;
}
Noteskin.ElementRedirs = {
--["element"] = "redirected_element";
["Hold Head Active"] = "Tap Note";
["Hold Head Inactive"] = "Tap Note";
["Roll Head Active"] = "Roll Head Active";
["Roll Head Inactive"] = "Roll Head Active";
["Tap Fake"] = "Tap Note";
["Tap Lift"] = "Tap Note";
--
["Hold Topcap Inactive"] = "Hold Topcap Active";
["Hold Body Inactive"] = "Hold Body Active";
["Hold Bottomcap Inactive"] = "Hold Bottomcap Active";
["Hold Tail Inactive"] = "Hold Tail Active";
--
["Roll Topcap Active"] = "Hold Topcap Active";
["Roll Body Active"] = "Hold Body Active";
["Roll Bottomcap Active"] = "Hold Bottomcap Active";
["Roll Tail Active"] = "Hold Tail Active";
--
["Roll Topcap Inactive"] = "Hold Topcap Active";
["Roll Body Inactive"] = "Hold Body Active";
["Roll Bottomcap Inactive"] = "Hold Bottomcap Active";
["Roll Tail Inactive"] = "Hold Tail Active";
}
-- explicit, n/w
--[[Noteskin.ButtonRedirs = {
Center = "Center";
UpLeft = "UpLeft";
UpRight = "UpRight";
DownLeft = "DownLeft";
DownRight = "DownRight";
}]]
Noteskin.BaseRotX = {
Center = 0;
UpLeft = 0;
UpRight = 0;
DownLeft = 0;
DownRight = 0;
}
Noteskin.BaseRotY = {
Center = 0;
UpLeft = 0;
UpRight = 180;
DownLeft = 0;
DownRight = 180;
}
Noteskin.BaseRotZ = {
Center = 0;
UpLeft = 0;
UpRight = 0;
DownLeft = 0;
DownRight = 0;
}
--[[--------------------------------------------------------------------------
DONT EDIT THE FUNCTION, DON'T COPY AND PASTE THE WHOLE NOTESKIN.LUA
JUST MAKE A NEW ONE AND GRAB WHATEVER IS USEFUL FOR YOUR NOTESKIN.
phew~
See cmd-routine-p* noteskin.lua for a simple and clear example on
how to do this properly, notice how the rest of the noteskins just
have graphics and at least a metrics.ini with few things
--]]--------------------------------------------------------------------------
local function func()
local sButton = Var "Button"
local sElement = Var "Element"
if Noteskin.bBlanks[sElement] then
local t = Def.Actor {};
if Var "SpriteOnly" then
t = LoadActor( "_blank" );
end
return t
end
--local ButtonToLoad = Noteskin.ButtonRedirs[sButton]
local ElementToLoad = Noteskin.ElementRedirs[sElement]
if not ElementToLoad then
ElementToLoad = sElement
end
if sElement == "Explosion"
or sElement == "Tap Mine"
or sElement == "Receptor"
then
sButton = "UpLeft"
end
local path = NOTESKIN:GetPath(sButton,ElementToLoad)
if ( string.find(sElement,"Hold") or string.find(sElement,"Roll") )
and not ( string.find(sElement,"Head") or string.find(sElement,"Tail") )
then
path = NOTESKIN:GetPath(sButton,ElementToLoad)
end
local t = LoadActor(path)
local bRotate = Noteskin.PartsToRotate[ElementToLoad]
--rotate by default
if bRotate == nil then bRotate = true end
if bRotate then
t.BaseRotationX=Noteskin.BaseRotX[sButton]
t.BaseRotationY=Noteskin.BaseRotY[sButton]
t.BaseRotationZ=Noteskin.BaseRotZ[sButton]
end
if sElement == "Tap Lift" then
t.InitCommand=function(self)
self:pulse();
self:effectclock("beat");
self:effectmagnitude(1, 0.75, 0);
end;
end
return t
end
Noteskin.Load = func
Noteskin.CommonLoad = func
return Noteskin
+112 -39
View File
@@ -1,40 +1,113 @@
return Def.ActorFrame {
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=cmd(animate,0;blend,Blend.Add;diffusealpha,0);
NoneCommand=cmd(playcommand,"Glow");
PressCommand=cmd(playcommand,"Glow");
W1Command=cmd(setstate,0;playcommand,"W2");
W2Command=cmd(setstate,0;playcommand,"Glow");
W3Command=cmd(setstate,1;playcommand,"Glow");
W4Command=cmd(setstate,2;playcommand,"Glow");
W5Command=cmd();
HitMineCommand=cmd(playcommand,"Glow");
HeldCommand=cmd(setstate,0;playcommand,"Glow");
GlowCommand=cmd(stoptweening,zoom,1.05;diffusealpha,1;linear,0.25;zoom,1.1;diffusealpha,0);
};
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=cmd(animate,0;blend,Blend.Add;diffusealpha,0);
NoneCommand=cmd(playcommand,"Glow");
PressCommand=cmd(playcommand,"Glow");
W1Command=cmd(setstate,0;playcommand,"W2");
W2Command=cmd(setstate,0;playcommand,"Glow");
W3Command=cmd(setstate,1;playcommand,"Glow");
W4Command=cmd(setstate,2;playcommand,"Glow");
W5Command=cmd();
HitMineCommand=cmd(playcommand,"Glow");
HeldCommand=cmd(setstate,0;playcommand,"Glow");
GlowCommand=cmd(stoptweening,zoom,1;diffusealpha,0.4;linear,0.3;zoom,1.2;diffusealpha,0);
};
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=cmd(animate,0;zoom,1.1;blend,Blend.Add;visible,false);
HoldingOnCommand=cmd(visible,true);
HoldingOffCommand=cmd(visible,false);
};
return Def.ActorFrame {
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=function(self)
self:animate(0);
self:blend(Blend.Add);
self:diffusealpha(0);
end;
NoneCommand=function(self)
self:playcommand("Glow");
end;
PressCommand=function(self)
self:playcommand("Glow");
end;
W1Command=function(self)
self:setstate(0);
self:playcommand("W2");
end;
W2Command=function(self)
self:setstate(0);
self:playcommand("Glow");
end;
W3Command=function(self)
self:setstate(1);
self:playcommand("Glow");
end;
W4Command=function(self)
self:setstate(2);
self:playcommand("Glow");
end;
W5Command=function(self) end;
HitMineCommand=function(self)
self:playcommand("Glow");
end;
HeldCommand=function(self)
self:setstate(0);
self:playcommand("Glow");
end;
GlowCommand=function(self)
self:stoptweening();
self:zoom(1.05);
self:diffusealpha(1);
self:linear(0.25);
self:zoom(1.1);
self:diffusealpha(0);
end;
};
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=function(self)
self:animate(0);
self:blend(Blend.Add);
self:diffusealpha(0);
end;
NoneCommand=function(self)
self:playcommand("Glow");
end;
PressCommand=function(self)
self:playcommand("Glow");
end;
W1Command=function(self)
self:setstate(0);
self:playcommand("W2");
end;
W2Command=function(self)
self:setstate(0);
self:playcommand("Glow");
end;
W3Command=function(self)
self:setstate(1);
self:playcommand("Glow");
end;
W4Command=function(self)
self:setstate(2);
self:playcommand("Glow");
end;
W5Command=function(self) end;
HitMineCommand=function(self)
self:playcommand("Glow");
end;
HeldCommand=function(self)
self:setstate(0);
self:playcommand("Glow");
end;
GlowCommand=function(self)
self:stoptweening();
self:zoom(1);
self:diffusealpha(0.4);
self:linear(0.3);
self:zoom(1.2);
self:diffusealpha(0);
end;
};
NOTESKIN:LoadActor(Var "Button","NoteHit") .. {
InitCommand=function(self)
self:animate(0);
self:zoom(1.1);
self:blend(Blend.Add);
self:visible(false);
end;
HoldingOnCommand=function(self)
self:visible(true);
end;
HoldingOffCommand=function(self)
self:visible(false);
end;
};
}
+37 -20
View File
@@ -1,21 +1,38 @@
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("UpLeft_blend")..{
InitCommand=cmd(diffuseshift;effectcolor1,color("#9b376dFF");effectcolor2,color("#9b376dFF");fadetop,0.5);
}
t[#t+1] = LoadActor("UpLeft_blend")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#cc5176FF");effectcolor2,color("#cc517633");effectclock,"bgm";effecttiming,1,0,0,0;);
}
t[#t+1] = LoadActor("UpLeft_fill")..{
InitCommand=cmd(blend,Blend.Add;diffuseshift;effectcolor1,color("#cc5176FF");effectcolor2,color("#cc5176FF"));
}
t[#t+1] = LoadActor("UpLeft border");
local t = Def.ActorFrame{}
t[#t+1] = LoadActor("UpLeft_blend")..{
InitCommand=function(self)
self:diffuseshift();
self:effectcolor1(color("#9b376dFF"));
self:effectcolor2(color("#9b376dFF"));
self:fadetop(0.5);
end;
}
t[#t+1] = LoadActor("UpLeft_blend")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#cc5176FF"));
self:effectcolor2(color("#cc517633"));
self:effectclock("bgm");
self:effecttiming(1, 0, 0, 0);
end;
}
t[#t+1] = LoadActor("UpLeft_fill")..{
InitCommand=function(self)
self:blend(Blend.Add);
self:diffuseshift();
self:effectcolor1(color("#cc5176FF"));
self:effectcolor2(color("#cc5176FF"));
end;
}
t[#t+1] = LoadActor("UpLeft border");
return t

Some files were not shown because too many files have changed in this diff Show More