Umm...we added this already. HG!!!

This commit is contained in:
Jason Felds
2011-04-05 15:10:00 -04:00
parent 79aa3939f0
commit 82846084c8
14 changed files with 1331 additions and 1331 deletions
+82 -82
View File
@@ -1,83 +1,83 @@
Complete Course Template
[[ Header Content ]]
-- Header Content is comprimised with any course-defining data such as the
-- title, banner and other parameters.
#COURSE:My Course!;
-- The title of the course.
#COURSETRANSLIT:My Course, Translated!;
-- The title of the course, translated into english.
#REPEAT:YES;
-- If this is present, the course does not end. Useful for endless & workout
-- courses.
#LIVES:4;
-- The maximum(?) number of lives attainable in the course. Enabling this will
-- automatically force your course into an Oni course.
#BANNER:My Banner.png;
-- A banner for your course.
#BACKGROUND:My Background.png;
-- A background for your course. Currently only available in SM-SSC.
#STYLE:SINGLE,VERSUS;
-- Denote which styles may be played on this course. This is useful in
-- particular to clone courses for doubles and single courses.
#METER:Beginner:3;
-- A custom-set meter for that course difficulty. You may set the difficulty
-- for Beginner, Easy, Medium, Hard, Challenge and Edit difficulties.
[[ Song Content ]]
-- Song Content is comprimised with any song-changing data such as modifiers,
-- followed by an actual song for teh game to play.
-- Modifiers can be assigned in a variety of formats, the most effective three being the following:
1.) Repeated Modifier Block w/ Length:
#MODS:TIME:0.500:LEN:0.500:MODS:2x;
#MODS:TIME:1.500:LEN:0.500:MODS:0.5x;
2.) Nested Modifier Block w/ Length:
#MODS:
TIME:0.500:LEN:0.500:MODS:2x;
TIME:1.500:LEN:0.500:MODS:0.5x;
3.) Nested Modifier Block w/ Ends:
#MODS:
TIME:0.500:END:1.000:MODS:2x;
TIME:1.500:END:1.500:MODS:0.5x;
#SONG:*:Medium:2x;
-- #SONG can take quite a variety of parameters, of which may be useful to you
-- for testing or randomocity purpose.
-- * is a wildcard item, meaning that StepMania will always pick a random song
-- for this part of the course.
-- You can also replace with BEST*,WORST*,GRADEBEST*, or GRADEWORST*, where *
-- is a number to retrive the first of each category above.
#SONG:BEST1:Medium:2x;
-- As well as that, you may also do Group Random, like such:
#SONG:Dance Dance Revolution 8th Mix/*:Medium:2x;
-- If the above is not applicable, StepMania will search for the song title as best it can, depending on what you give it:
#SONG:Xepher:Medium:2x;
-- Will simply search the title of the song.
#SONG:DDR Supernova/Xepher:Medium:2x;
-- Will search for the exact directory.
-- #SONG can also apply different effects on each entry in the course by adding
-- special modifiers to the modifiers segment:
#SONG:*:Medium:showcourse;
-- For example, forces the course to never be hidden, noshowcourse being the
-- reverse of such.
-- nodifficult also exists to disable a player from changing difficulties,
-- barring the player from making it easier or harder ( Gauntlets & Survivals
-- do not allow you to change difficulties ).
-- Finally, award*, where * is a number, allows you to control how many lives
-- the player gains from successfully completing a course in Oni mode.
Finally, here's an example course:
#COURSE:My Awesome Course - The Revenge;
#METER:Medium:8;
#MODS:
TIME:1.00:END:50.00:MODS:C150;
#SONG:In The Groove/Dawn:Overhead;
#SONG:In The Groove/Mouth:;
#SONG:In The Groove 2/Funk Factory:;
Complete Course Template
[[ Header Content ]]
-- Header Content is comprimised with any course-defining data such as the
-- title, banner and other parameters.
#COURSE:My Course!;
-- The title of the course.
#COURSETRANSLIT:My Course, Translated!;
-- The title of the course, translated into english.
#REPEAT:YES;
-- If this is present, the course does not end. Useful for endless & workout
-- courses.
#LIVES:4;
-- The maximum(?) number of lives attainable in the course. Enabling this will
-- automatically force your course into an Oni course.
#BANNER:My Banner.png;
-- A banner for your course.
#BACKGROUND:My Background.png;
-- A background for your course. Currently only available in SM-SSC.
#STYLE:SINGLE,VERSUS;
-- Denote which styles may be played on this course. This is useful in
-- particular to clone courses for doubles and single courses.
#METER:Beginner:3;
-- A custom-set meter for that course difficulty. You may set the difficulty
-- for Beginner, Easy, Medium, Hard, Challenge and Edit difficulties.
[[ Song Content ]]
-- Song Content is comprimised with any song-changing data such as modifiers,
-- followed by an actual song for teh game to play.
-- Modifiers can be assigned in a variety of formats, the most effective three being the following:
1.) Repeated Modifier Block w/ Length:
#MODS:TIME:0.500:LEN:0.500:MODS:2x;
#MODS:TIME:1.500:LEN:0.500:MODS:0.5x;
2.) Nested Modifier Block w/ Length:
#MODS:
TIME:0.500:LEN:0.500:MODS:2x;
TIME:1.500:LEN:0.500:MODS:0.5x;
3.) Nested Modifier Block w/ Ends:
#MODS:
TIME:0.500:END:1.000:MODS:2x;
TIME:1.500:END:1.500:MODS:0.5x;
#SONG:*:Medium:2x;
-- #SONG can take quite a variety of parameters, of which may be useful to you
-- for testing or randomocity purpose.
-- * is a wildcard item, meaning that StepMania will always pick a random song
-- for this part of the course.
-- You can also replace with BEST*,WORST*,GRADEBEST*, or GRADEWORST*, where *
-- is a number to retrive the first of each category above.
#SONG:BEST1:Medium:2x;
-- As well as that, you may also do Group Random, like such:
#SONG:Dance Dance Revolution 8th Mix/*:Medium:2x;
-- If the above is not applicable, StepMania will search for the song title as best it can, depending on what you give it:
#SONG:Xepher:Medium:2x;
-- Will simply search the title of the song.
#SONG:DDR Supernova/Xepher:Medium:2x;
-- Will search for the exact directory.
-- #SONG can also apply different effects on each entry in the course by adding
-- special modifiers to the modifiers segment:
#SONG:*:Medium:showcourse;
-- For example, forces the course to never be hidden, noshowcourse being the
-- reverse of such.
-- nodifficult also exists to disable a player from changing difficulties,
-- barring the player from making it easier or harder ( Gauntlets & Survivals
-- do not allow you to change difficulties ).
-- Finally, award*, where * is a number, allows you to control how many lives
-- the player gains from successfully completing a course in Oni mode.
Finally, here's an example course:
#COURSE:My Awesome Course - The Revenge;
#METER:Medium:8;
#MODS:
TIME:1.00:END:50.00:MODS:C150;
#SONG:In The Groove/Dawn:Overhead;
#SONG:In The Groove/Mouth:;
#SONG:In The Groove 2/Funk Factory:;
#SONG:In The Groove 3/Disconnected Zeo:;
@@ -1,4 +1,4 @@
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=cmd(diffuse,color("0.5,0.5,0.5,1"));
};
+26 -26
View File
@@ -1,26 +1,26 @@
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap Receptor' );
Frame0000=0;
Delay0000=1;
InitCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'InitCommand');
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap Receptor' );
Frame0000=0;
Delay0000=1;
InitCommand=NOTESKIN:GetMetricA('ReceptorArrowOverlay', 'InitCommand');
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrowOverlay', 'NoneCommand');
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap Flash' );
Frame0000=0;
Delay0000=1;
InitCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'InitCommand');
PressCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'PressCommand');
LiftCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'LiftCommand');
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
};
};
return t;
local t = Def.ActorFrame {
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap Receptor' );
Frame0000=0;
Delay0000=1;
InitCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'InitCommand');
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap Receptor' );
Frame0000=0;
Delay0000=1;
InitCommand=NOTESKIN:GetMetricA('ReceptorArrowOverlay', 'InitCommand');
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrowOverlay', 'NoneCommand');
};
Def.Sprite {
Texture=NOTESKIN:GetPath( '_down', 'tap Flash' );
Frame0000=0;
Delay0000=1;
InitCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'InitCommand');
PressCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'PressCommand');
LiftCommand=NOTESKIN:GetMetricA('ReceptorOverlay', 'LiftCommand');
NoneCommand=NOTESKIN:GetMetricA('ReceptorArrow', 'NoneCommand');
};
};
return t;
@@ -1,4 +1,4 @@
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=cmd(diffuse,color("0.5,0.5,0.5,1"));
};
@@ -1,9 +1,9 @@
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=cmd(spin;effectclock,'beat';effectmagnitude,0,0,-180);
};
};
return t;
@@ -1,7 +1,7 @@
local t = Def.Model {
Meshes=NOTESKIN:GetPath('_down','tap note meshes');
Materials=NOTESKIN:GetPath('_down','tap note materials');
Bones=NOTESKIN:GetPath('_down','tap bones');
};
return t;
local t = Def.Model {
Meshes=NOTESKIN:GetPath('_down','tap note meshes');
Materials=NOTESKIN:GetPath('_down','tap note materials');
Bones=NOTESKIN:GetPath('_down','tap bones');
};
return t;
@@ -1,4 +1,4 @@
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=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
};
@@ -1,4 +1,4 @@
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=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
};
+128 -128
View File
@@ -1,128 +1,128 @@
-- Haggen Daze
local ret = ... or {};
ret.RedirTable =
{
Up = "Down",
Down = "Down",
Left = "Down",
Right = "Down",
UpLeft = "Down",
UpRight = "Down",
};
local OldRedir = ret.Redir;
ret.Redir = function(sButton, sElement)
-- sButton, sElement = OldRedir(sButton, sElement);
-- Instead of separate hold heads, use the tap note graphics.
if sElement == "Hold Head Active" or
sElement == "Roll Head Active"
then
sElement = "StreamHead Active";
end
-- Test
if sElement == "Hold Head Inactive" or
sElement == "Roll Head Inactive" or
then
sElement = "StreamHead Inactive";
end
sButton = ret.RedirTable[sButton];
return sButton, sElement;
end
-- local OldRedir = ret.Redir;
-- ret.Redir = function(sButton, sElement)
-- sButton = ret.RedirTable[sButton];
-- return sButton, sElement;
-- end
-- To have separate graphics for each hold part:
local OldRedir = ret.Redir;
ret.Redir = function(sButton, sElement)
-- Redirect non-hold, non-roll parts.
if string.find(sElement, "hold") or string.find(sElement, "roll") then
return sButton, sElement;
end
return OldRedir(sButton, sElement);
end
--[[
local OldFunc = ret.Load;
function ret.Load()
local t = OldFunc();
-- The main "Explosion" part just loads other actors; don't rotate
-- it. The "Hold Explosion" part should not be rotated.
if Var "Element" == "Explosion" or
Var "Element" == "Roll Explosion" then
t.BaseRotationZ = nil;
end
return t;
end
]]
local OldFunc = ret.Load;
function ret.Load()
local t = OldFunc();
--Explosion should not be rotated; it calls other actors.
if Var "Element" == "Explosion" then
t.BaseRotationZ = nil;
end
return t;
end
ret.PartsToRotate =
{
["Receptor"] = true,
["Go Receptor"] = true,
["Ready Receptor"] = true,
["Tap Explosion Bright"] = true,
["Tap Explosion Dim"] = true,
["Tap Note"] = true,
["Tap Lift"] = true,
["Hold Head Active"] = true,
["Hold Head Inactive"] = true,
["Roll Head Active"] = true,
["Roll Head Inactive"] = true,
["Hold Explosion"] = true,
["Roll Explosion"] = true,
};
ret.Rotate =
{
Up = 180,
Down = 0,
Left = 90,
Right = -90,
UpLeft = 135,
UpRight = 225,
};
--
-- If a derived skin wants to have separate UpLeft graphics,
-- use this:
--
-- ret.RedirTable.UpLeft = "UpLeft";
-- ret.RedirTable.UpRight = "UpLeft";
-- ret.Rotate.UpLeft = 0;
-- ret.Rotate.UpRight = 90;
--
ret.Blank =
{
["Hold Topcap Active"] = true,
["Hold Topcap Inactive"] = true,
["Roll Topcap Active"] = true,
["Roll Topcap Inactive"] = true,
["Hold Tail Active"] = true,
["Hold Tail Inactive"] = true,
["Roll Tail Active"] = true,
["Roll Tail Inactive"] = true,
["Roll Explosion"] = true,
};
return ret;
-- Haggen Daze
local ret = ... or {};
ret.RedirTable =
{
Up = "Down",
Down = "Down",
Left = "Down",
Right = "Down",
UpLeft = "Down",
UpRight = "Down",
};
local OldRedir = ret.Redir;
ret.Redir = function(sButton, sElement)
-- sButton, sElement = OldRedir(sButton, sElement);
-- Instead of separate hold heads, use the tap note graphics.
if sElement == "Hold Head Active" or
sElement == "Roll Head Active"
then
sElement = "StreamHead Active";
end
-- Test
if sElement == "Hold Head Inactive" or
sElement == "Roll Head Inactive" or
then
sElement = "StreamHead Inactive";
end
sButton = ret.RedirTable[sButton];
return sButton, sElement;
end
-- local OldRedir = ret.Redir;
-- ret.Redir = function(sButton, sElement)
-- sButton = ret.RedirTable[sButton];
-- return sButton, sElement;
-- end
-- To have separate graphics for each hold part:
local OldRedir = ret.Redir;
ret.Redir = function(sButton, sElement)
-- Redirect non-hold, non-roll parts.
if string.find(sElement, "hold") or string.find(sElement, "roll") then
return sButton, sElement;
end
return OldRedir(sButton, sElement);
end
--[[
local OldFunc = ret.Load;
function ret.Load()
local t = OldFunc();
-- The main "Explosion" part just loads other actors; don't rotate
-- it. The "Hold Explosion" part should not be rotated.
if Var "Element" == "Explosion" or
Var "Element" == "Roll Explosion" then
t.BaseRotationZ = nil;
end
return t;
end
]]
local OldFunc = ret.Load;
function ret.Load()
local t = OldFunc();
--Explosion should not be rotated; it calls other actors.
if Var "Element" == "Explosion" then
t.BaseRotationZ = nil;
end
return t;
end
ret.PartsToRotate =
{
["Receptor"] = true,
["Go Receptor"] = true,
["Ready Receptor"] = true,
["Tap Explosion Bright"] = true,
["Tap Explosion Dim"] = true,
["Tap Note"] = true,
["Tap Lift"] = true,
["Hold Head Active"] = true,
["Hold Head Inactive"] = true,
["Roll Head Active"] = true,
["Roll Head Inactive"] = true,
["Hold Explosion"] = true,
["Roll Explosion"] = true,
};
ret.Rotate =
{
Up = 180,
Down = 0,
Left = 90,
Right = -90,
UpLeft = 135,
UpRight = 225,
};
--
-- If a derived skin wants to have separate UpLeft graphics,
-- use this:
--
-- ret.RedirTable.UpLeft = "UpLeft";
-- ret.RedirTable.UpRight = "UpLeft";
-- ret.Rotate.UpLeft = 0;
-- ret.Rotate.UpRight = 90;
--
ret.Blank =
{
["Hold Topcap Active"] = true,
["Hold Topcap Inactive"] = true,
["Roll Topcap Active"] = true,
["Roll Topcap Inactive"] = true,
["Hold Tail Active"] = true,
["Hold Tail Inactive"] = true,
["Roll Tail Active"] = true,
["Roll Tail Inactive"] = true,
["Roll Explosion"] = true,
};
return ret;
@@ -1,4 +1,4 @@
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=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
};
@@ -1,4 +1,4 @@
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=cmd(diffuse,color("0.5,0.5,0.5,0.5"));
};
@@ -1,28 +1,28 @@
Materials: 3
"cells"
0.588235 0.588235 0.588235 1.000000
0.588235 0.588235 0.588235 1.000000
0.898039 0.898039 0.898039 1.000000
0.000000 0.000000 0.000000 1.000000
0.000000
1.000000
"tex\black.png"
""
"1 - Default"
0.588235 0.588235 0.588235 1.000000
0.588235 0.588235 0.588235 1.000000
0.898039 0.898039 0.898039 1.000000
0.000000 0.000000 0.000000 1.000000
0.000000
1.000000
"tex\color.ini"
""
"2 - Inside"
0.588235 0.588235 0.588235 1.000000
0.588235 0.588235 0.588235 1.000000
0.898039 0.898039 0.898039 1.000000
0.000000 0.000000 0.000000 1.000000
0.000000
1.000000
"tex\color in.jpg"
""
Materials: 3
"cells"
0.588235 0.588235 0.588235 1.000000
0.588235 0.588235 0.588235 1.000000
0.898039 0.898039 0.898039 1.000000
0.000000 0.000000 0.000000 1.000000
0.000000
1.000000
"tex\black.png"
""
"1 - Default"
0.588235 0.588235 0.588235 1.000000
0.588235 0.588235 0.588235 1.000000
0.898039 0.898039 0.898039 1.000000
0.000000 0.000000 0.000000 1.000000
0.000000
1.000000
"tex\color.ini"
""
"2 - Inside"
0.588235 0.588235 0.588235 1.000000
0.588235 0.588235 0.588235 1.000000
0.898039 0.898039 0.898039 1.000000
0.000000 0.000000 0.000000 1.000000
0.000000
1.000000
"tex\color in.jpg"
""
File diff suppressed because it is too large Load Diff
+84 -84
View File
@@ -1,85 +1,85 @@
[Global]
FallbackNoteSkin=default
[NoteDisplay]
TapNoteAnimationIsVivid=0
DrawHoldHeadForTapsOnSameRow=1
TapNoteAnimationLength=4
TapAdditionAnimationLength=4
TapMineAnimationLength=1
TapLiftAnimationLength=4
HoldHeadAnimationLength=4 // doesn't matter. Only 1 frame anyway.
HoldTopCapAnimationLength=4 // doesn't matter. Only 1 frame anyway.
HoldBottomCapAnimationLength=4 // doesn't matter. Only 1 frame anyway.
HoldBodyAnimationLength=4 // doesn't matter. Only 1 frame anyway.
HoldTailAnimationLength=4 // doesn't matter. Only 1 frame anyway.
StartDrawingHoldBodyOffsetFromHead=0
StopDrawingHoldBodyOffsetFromTail=0
HoldLetGoGrayPercent=0.125
ReverseDrawOrder=1101
HoldHeadIsAboveWavyParts=1
HoldTailIsAboveWavyParts=1
TapNoteAdditionTextureCoordOffsetX=0
TapNoteAdditionTextureCoordOffsetY=0
FlipHeadAndTailWhenReverse=1
FlipHoldBodyWhenReverse=1
TopHoldAnchorWhenReverse=1
TapNoteNoteColorTextureCoordSpacingX=0.12
TapNoteNoteColorTextureCoordSpacingY=0
TapFakeNoteColorTextureCoordSpacingX=0.12
TapFakeNoteColorTextureCoordSpacingY=0
HoldHeadNoteColorTextureCoordSpacingX=0.12
HoldHeadNoteColorTextureCoordSpacingY=0
[GhostArrowDim]
NoneCommand=
HitMineCommand=blend,'BlendMode_Add';diffuse,1,1,1,0.875;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0
MissCommand=blend,'BlendMode_Add';
W5Command=blend,'BlendMode_Add';diffuse,0.8,0.0,0.6,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W4Command=blend,'BlendMode_Add';diffuse,0.3,0.8,1.0,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W3Command=blend,'BlendMode_Add';diffuse,0.0,1.0,0.4,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W2Command=blend,'BlendMode_Add';diffuse,1.0,1.0,0.3,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W1Command=blend,'BlendMode_Add';diffuse,1.0,1.0,1.0,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
LetGoCommand=blend,'BlendMode_Add';
HeldCommand=blend,'BlendMode_Add';diffuse,1.0,1.0,0.3,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[GhostArrowBright]
NoneCommand=blend,'BlendMode_Add';
HitMineCommand=blend,'BlendMode_Add';diffuse,1,1,1,0.875;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0
MissCommand=blend,'BlendMode_Add';
W5Command=blend,'BlendMode_Add';diffuse,0.8,0.0,0.6,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W4Command=blend,'BlendMode_Add';diffuse,0.3,0.8,1.0,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W3Command=blend,'BlendMode_Add';diffuse,0.0,1.0,0.4,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W2Command=blend,'BlendMode_Add';diffuse,1.0,1.0,0.3,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W1Command=blend,'BlendMode_Add';diffuse,1.0,1.0,1.0,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
LetGoCommand=blend,'BlendMode_Add';
HeldCommand=blend,'BlendMode_Add';diffuse,1.0,1.0,0.3,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[HoldGhostArrow]
HoldingOnCommand=visible,true
HoldingOffCommand=visible,false
[ReceptorArrow]
W3Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
W2Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
W1Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
InitCommand=
NoneCommand=stoptweening;zoom,0.85;linear,0.12;zoom,1
PressCommand=stoptweening;zoom,0.85;linear,0.12;zoom,1
[ReceptorArrowOverlay]
W3Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
W2Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
W1Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
InitCommand=blend,"BlendMode_Add";effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,1");effecttiming,.2,0,.8,0;effectoffset,.05
NoneCommand=stoptweening;zoom,0.85;linear,0.12;zoom,1
PressCommand=stoptweening;zoom,0.85;linear,0.12;zoom,1
[ReceptorOverlay]
InitCommand=diffusealpha,0;blend,"BlendMode_Add"
PressCommand=finishtweening;zoom,0.85;decelerate,0.12;zoom,1;diffusealpha,0.6;
[Global]
FallbackNoteSkin=default
[NoteDisplay]
TapNoteAnimationIsVivid=0
DrawHoldHeadForTapsOnSameRow=1
TapNoteAnimationLength=4
TapAdditionAnimationLength=4
TapMineAnimationLength=1
TapLiftAnimationLength=4
HoldHeadAnimationLength=4 // doesn't matter. Only 1 frame anyway.
HoldTopCapAnimationLength=4 // doesn't matter. Only 1 frame anyway.
HoldBottomCapAnimationLength=4 // doesn't matter. Only 1 frame anyway.
HoldBodyAnimationLength=4 // doesn't matter. Only 1 frame anyway.
HoldTailAnimationLength=4 // doesn't matter. Only 1 frame anyway.
StartDrawingHoldBodyOffsetFromHead=0
StopDrawingHoldBodyOffsetFromTail=0
HoldLetGoGrayPercent=0.125
ReverseDrawOrder=1101
HoldHeadIsAboveWavyParts=1
HoldTailIsAboveWavyParts=1
TapNoteAdditionTextureCoordOffsetX=0
TapNoteAdditionTextureCoordOffsetY=0
FlipHeadAndTailWhenReverse=1
FlipHoldBodyWhenReverse=1
TopHoldAnchorWhenReverse=1
TapNoteNoteColorTextureCoordSpacingX=0.12
TapNoteNoteColorTextureCoordSpacingY=0
TapFakeNoteColorTextureCoordSpacingX=0.12
TapFakeNoteColorTextureCoordSpacingY=0
HoldHeadNoteColorTextureCoordSpacingX=0.12
HoldHeadNoteColorTextureCoordSpacingY=0
[GhostArrowDim]
NoneCommand=
HitMineCommand=blend,'BlendMode_Add';diffuse,1,1,1,0.875;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0
MissCommand=blend,'BlendMode_Add';
W5Command=blend,'BlendMode_Add';diffuse,0.8,0.0,0.6,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W4Command=blend,'BlendMode_Add';diffuse,0.3,0.8,1.0,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W3Command=blend,'BlendMode_Add';diffuse,0.0,1.0,0.4,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W2Command=blend,'BlendMode_Add';diffuse,1.0,1.0,0.3,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W1Command=blend,'BlendMode_Add';diffuse,1.0,1.0,1.0,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
LetGoCommand=blend,'BlendMode_Add';
HeldCommand=blend,'BlendMode_Add';diffuse,1.0,1.0,0.3,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[GhostArrowBright]
NoneCommand=blend,'BlendMode_Add';
HitMineCommand=blend,'BlendMode_Add';diffuse,1,1,1,0.875;zoom,1;rotationz,0;linear,0.3;rotationz,90;linear,0.3;rotationz,180;diffusealpha,0
MissCommand=blend,'BlendMode_Add';
W5Command=blend,'BlendMode_Add';diffuse,0.8,0.0,0.6,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W4Command=blend,'BlendMode_Add';diffuse,0.3,0.8,1.0,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W3Command=blend,'BlendMode_Add';diffuse,0.0,1.0,0.4,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W2Command=blend,'BlendMode_Add';diffuse,1.0,1.0,0.3,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
W1Command=blend,'BlendMode_Add';diffuse,1.0,1.0,1.0,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
LetGoCommand=blend,'BlendMode_Add';
HeldCommand=blend,'BlendMode_Add';diffuse,1.0,1.0,0.3,0.875;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
[HoldGhostArrow]
HoldingOnCommand=visible,true
HoldingOffCommand=visible,false
[ReceptorArrow]
W3Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
W2Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
W1Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
InitCommand=
NoneCommand=stoptweening;zoom,0.85;linear,0.12;zoom,1
PressCommand=stoptweening;zoom,0.85;linear,0.12;zoom,1
[ReceptorArrowOverlay]
W3Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
W2Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
W1Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
InitCommand=blend,"BlendMode_Add";effectclock,"beat";diffuseramp;effectcolor1,color("1,1,1,0");effectcolor2,color("1,1,1,1");effecttiming,.2,0,.8,0;effectoffset,.05
NoneCommand=stoptweening;zoom,0.85;linear,0.12;zoom,1
PressCommand=stoptweening;zoom,0.85;linear,0.12;zoom,1
[ReceptorOverlay]
InitCommand=diffusealpha,0;blend,"BlendMode_Add"
PressCommand=finishtweening;zoom,0.85;decelerate,0.12;zoom,1;diffusealpha,0.6;
LiftCommand=finishtweening;accelerate,0.12;diffusealpha,0;zoom,1.2