190 lines
6.1 KiB
Lua
190 lines
6.1 KiB
Lua
|
|
-- steps.lua: rough rough draft. Please don't use until finalized.
|
||
|
|
-- ver 20100116
|
||
|
|
|
||
|
|
local MetaTags = {
|
||
|
|
Title = {"Dyamite Rave","(transliteration)"},
|
||
|
|
Subtitle = {"Down Bird Sota Mix","(transliteration)"},
|
||
|
|
Artist = {"NAOKI","(transliteration)"},
|
||
|
|
Genre = {"Scouse House","(transliteration)"},
|
||
|
|
License = "CC-BY-NC",
|
||
|
|
URL = "http://shakesoda.org/"
|
||
|
|
}
|
||
|
|
|
||
|
|
--[[
|
||
|
|
If an int is used in a field that expects a time of some sort, it is
|
||
|
|
assumed to use beats. If it's a float, it assumes seconds instead.
|
||
|
|
]]
|
||
|
|
|
||
|
|
local CacheData {
|
||
|
|
HasAttacks = true,
|
||
|
|
HasBanner = true,
|
||
|
|
HasBackground = true,
|
||
|
|
HasKeysounds = true,
|
||
|
|
HasLyrics = true,
|
||
|
|
HasMusic = true,
|
||
|
|
SongFileNames = "path/from/song/folder",
|
||
|
|
LongestChartLength = 220.000
|
||
|
|
}
|
||
|
|
|
||
|
|
local MetaData = {
|
||
|
|
Attacks = {
|
||
|
|
-- start = length, startup time, mod string
|
||
|
|
0 = { 10, 1.0, "mod,50% reverse" },
|
||
|
|
10 = { 5, 1.0, "mod,70% boost" }
|
||
|
|
},
|
||
|
|
BannerPath = { "banner.png" }, -- can be an image, video, or lua
|
||
|
|
Background = { -- background changes.
|
||
|
|
Path = "background.png",
|
||
|
|
Animation = { -- can have as many changes as needed
|
||
|
|
--[[
|
||
|
|
startTime = { path, rate, offset, commands }
|
||
|
|
Any ommitted arguments will default to nil, except for rate, which would use 1.0
|
||
|
|
]]
|
||
|
|
0 = {"path/to/bga", 1.0, 0.000, 0, cmd(rainbow) },
|
||
|
|
0 = {"path/to/bga2", 1.0, 0.000, 0, cmd(thump) }
|
||
|
|
},
|
||
|
|
},
|
||
|
|
--[[
|
||
|
|
-- #BGCHANGES2:32.000=flash=1.000=0=0=1=====,
|
||
|
|
BackgroundChanges2 = {
|
||
|
|
32.000 = { "flash", 1.000, 0, 0, 1, [unk], [unk], [unk], [unk], [unk] };
|
||
|
|
},
|
||
|
|
]]
|
||
|
|
BPMs = { 0.000 = 280.000 },
|
||
|
|
CDTitle = "",
|
||
|
|
DisplayBPM = { 150, 300 }, -- can be either an array of two values to cycle or 'Random'
|
||
|
|
FormatRevision = 1,
|
||
|
|
InstrumentTracks = {
|
||
|
|
-- todo: account for dj-hero style crossfading for an arbitrary amount of tracks (at least two)
|
||
|
|
InstrumentTrack_Guitar = "guitar.ogg",
|
||
|
|
InstrumentTrack_Rhythm = "rhythm.ogg",
|
||
|
|
InstrumentTrack_Bass = "bass.ogg"
|
||
|
|
},
|
||
|
|
Keysounds = {}, -- I forget exactly how the SM format does this, but it'll be similar here.
|
||
|
|
LeadOut = 3,
|
||
|
|
LyricsPath = "Dynamite Rave.lrc",
|
||
|
|
Offset = 0.014,
|
||
|
|
Overlay = {}, -- same as Background, but without path.
|
||
|
|
PreviewMusic = { 50.000, 60.000 },
|
||
|
|
Selectable = true,
|
||
|
|
Stops = { 156.000 = 0.540 },
|
||
|
|
TimeSignatures = { 0.000 = "4/4" }
|
||
|
|
}
|
||
|
|
|
||
|
|
local NoteCharts = {
|
||
|
|
{
|
||
|
|
ChartRevison = 20,
|
||
|
|
BPMs = { 0.000 = 140.000 }, -- override
|
||
|
|
Description = "Z. Nard", -- usually the chart author or "Copied from *"
|
||
|
|
Difficulty = 'Difficulty_Hard',
|
||
|
|
Meter = '100', -- value clamped between 1 and 100, scaled to whatever works theme-side.
|
||
|
|
RadarValues = {
|
||
|
|
-- may not be 100%; won't be commented/linebroken in actual file
|
||
|
|
0.931, -- Stream (0..1)
|
||
|
|
1.000, -- Voltage (0..1)
|
||
|
|
0.439, -- Air (0..1)
|
||
|
|
0.174, -- Freeze (0..1)
|
||
|
|
0.156, -- Chaos (0..1)
|
||
|
|
},
|
||
|
|
-- taps and holds, jumps, holds, mines, hands, rolls
|
||
|
|
Stats = { 645, 48, 19, 3, 0, 0 },
|
||
|
|
StepsType = 'StepsType_Dance_Single',
|
||
|
|
Stops = { 140.000 = 0.860 }, -- override
|
||
|
|
TimeSignatures = { 0.000 = "4/4" }, -- override
|
||
|
|
NoteData = {
|
||
|
|
{ -- measure 1
|
||
|
|
-- row level
|
||
|
|
--{ column level }, works like this:
|
||
|
|
{ 0,0,0,0 },
|
||
|
|
{ 0,0,0,0 },
|
||
|
|
{ 0,0,0,0 },
|
||
|
|
{ 0,0,0,1 = { SomeFunction(), 'TNS_GreaterThan', 'TapNoteScore_W5' } } -- example of assigning a function to a note.
|
||
|
|
},
|
||
|
|
{ -- measure 2
|
||
|
|
-- row level
|
||
|
|
--{ column level } or in other words
|
||
|
|
{ 0,0,0,0 },
|
||
|
|
{ 0,0,0,0 },
|
||
|
|
{ 0,0,0,0 },
|
||
|
|
{ 0,0,0,0 }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
-- second example chart
|
||
|
|
{
|
||
|
|
ChartRevison = 5,
|
||
|
|
BPMs = { 0.000 = 140.000 }, -- override
|
||
|
|
Description = "B. McLargeHuge", -- usually the chart author or "Copied from *"
|
||
|
|
Difficulty = 'Difficulty_Expert',
|
||
|
|
Meter = '60',
|
||
|
|
RadarValues = {
|
||
|
|
-- may not be 100%; won't be commented/linebroken in actual file
|
||
|
|
0.931, -- Stream (0..1)
|
||
|
|
1.000, -- Voltage (0..1)
|
||
|
|
0.439, -- Air (0..1)
|
||
|
|
0.174, -- Freeze (0..1)
|
||
|
|
0.156, -- Chaos (0..1)
|
||
|
|
},
|
||
|
|
-- taps and holds, jumps, holds, mines, hands, rolls
|
||
|
|
Stats = { 16, 0, 0, 16, 0, 0 },
|
||
|
|
StepsType = 'StepsType_Dance_Single',
|
||
|
|
-- usually last
|
||
|
|
NoteData = {
|
||
|
|
{ { 1,0,0,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,0,0,'m' }, },
|
||
|
|
{ { 0,1,0,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,0,'m',0 }, },
|
||
|
|
{ { 0,0,1,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,'m',0,0 }, },
|
||
|
|
{ { 0,0,0,1 }, { 0,0,0,0 }, { 0,0,0,0 }, { 'm',0,0,0 }, },
|
||
|
|
{ { 0,0,0,0 }, { 1,0,0,0 }, { 0,0,0,'m' }, { 0,0,0,0 }, },
|
||
|
|
{ { 0,0,0,0 }, { 0,1,0,0 }, { 0,0,'m',0 }, { 0,0,0,0 }, },
|
||
|
|
{ { 0,0,0,0 }, { 0,0,1,0 }, { 0,'m',0,0 }, { 0,0,0,0 }, },
|
||
|
|
{ { 0,0,0,0 }, { 0,0,0,1 }, { 'm',0,0,0 }, { 0,0,0,0 }, },
|
||
|
|
{ { 0,0,0,0 }, { 0,0,0,'m' }, { 1,0,0,0 }, { 0,0,0,0 }, },
|
||
|
|
{ { 0,0,0,0 }, { 0,0,'m',0 }, { 0,1,0,0 }, { 0,0,0,0 }, },
|
||
|
|
{ { 0,0,0,0 }, { 0,'m',0,0 }, { 0,0,1,0 }, { 0,0,0,0 }, },
|
||
|
|
{ { 0,0,0,0 }, { 'm',0,0,0 }, { 0,0,0,1 }, { 0,0,0,0 }, },
|
||
|
|
{ { 0,0,0,'m' }, { 0,0,0,0 }, { 0,0,0,0 }, { 1,0,0,0 }, },
|
||
|
|
{ { 0,0,'m',0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,1,0,0 }, },
|
||
|
|
{ { 0,'m',0,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,0,1,0 }, },
|
||
|
|
{ { 'm',0,0,0 }, { 0,0,0,0 }, { 0,0,0,0 }, { 0,0,0,1 }, }
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
local EditCharts = {
|
||
|
|
{
|
||
|
|
-- todo: uh..... (this is the internal version of the edits.)
|
||
|
|
-- should be like NoteData but with fewer available overrides.
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
-- this is a work in progress format. expect things to change as better ideas come about.
|
||
|
|
-- this isn't how steps currently work internally. that can be dealt with.
|
||
|
|
|
||
|
|
--[[
|
||
|
|
Below is a minimal example file.
|
||
|
|
Just about every value that can be calculated or defaulted to something
|
||
|
|
reasonable has been omitted, and much extra whitespace reduced.
|
||
|
|
]]
|
||
|
|
MetaTags = {
|
||
|
|
Title = {"Black Lawn Finale", "long wait FINALLY"},
|
||
|
|
Artist = {"The Flashbulb", "teh falshbald"}
|
||
|
|
}
|
||
|
|
MetaData = {
|
||
|
|
BannerPath = { "banner.png" },
|
||
|
|
Background = { Path = "background.png" },
|
||
|
|
BPMs = { 0.000 = 280.000 },
|
||
|
|
FormatRevision = 1,
|
||
|
|
Offset = 0.028
|
||
|
|
}
|
||
|
|
NoteCharts = {
|
||
|
|
{
|
||
|
|
Description = "S. Slabrock",
|
||
|
|
Difficulty = 'Difficulty_Medium',
|
||
|
|
Meter = '50',
|
||
|
|
StepsType = 'StepsType_Dance_Single',
|
||
|
|
NoteData = {
|
||
|
|
{{0,0,0,0},{0,0,1,0},{0,0,0,0},{0,0,0,1}}, -- measure of 4ths
|
||
|
|
{{0,1,0,0},{0,0,0,0},{0,1,0,0},{0,0,0,1},{0,0,0,0},{0,0,0,1},{0,0,0,0},{0,0,0,1}} -- measure of 8ths
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|