[default -> Xcode4] Lion is approaching.
@@ -0,0 +1,8 @@
|
|||||||
|
#COURSE:Jupiter;
|
||||||
|
#SCRIPTER:Midiman;
|
||||||
|
|
||||||
|
#GAINSECONDS:120;
|
||||||
|
#SONG:*:Hard;
|
||||||
|
|
||||||
|
#GAINSECONDS:25;
|
||||||
|
#SONG:*:Hard;
|
||||||
@@ -39,17 +39,17 @@ WeightW2=30
|
|||||||
WeightW1=50
|
WeightW1=50
|
||||||
|
|
||||||
[Skill5]
|
[Skill5]
|
||||||
WeightMiss=
|
WeightMiss=2
|
||||||
WeightW5=1
|
WeightW5=3
|
||||||
WeightW4=1
|
WeightW4=5
|
||||||
WeightW3=5
|
WeightW3=5
|
||||||
WeightW2=30
|
WeightW2=30
|
||||||
WeightW1=55
|
WeightW1=55
|
||||||
|
|
||||||
[Skill6]
|
[Skill6]
|
||||||
WeightMiss=
|
WeightMiss=2
|
||||||
WeightW5=
|
WeightW5=3
|
||||||
WeightW4=
|
WeightW4=5
|
||||||
WeightW3=5
|
WeightW3=5
|
||||||
WeightW2=30
|
WeightW2=30
|
||||||
WeightW1=70
|
WeightW1=55
|
||||||
|
|||||||
@@ -9,6 +9,34 @@ change to JSON, but it is unsure if this will be done.
|
|||||||
Implement .ssc at your own risk.
|
Implement .ssc at your own risk.
|
||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
|
|
||||||
|
[v0.77] - Wolfman2000
|
||||||
|
* Add the cache tag #STEPFILENAME to gain access to the proper #NOTES when
|
||||||
|
required.
|
||||||
|
|
||||||
|
[v0.76] - Wolfman2000
|
||||||
|
* Expand the #COMBOS tag to allow for Miss Combos. Anyone that is crazy enough
|
||||||
|
to put in a 51 miss combo in their tags should be...oh wait: it's already
|
||||||
|
been done.
|
||||||
|
|
||||||
|
[v0.75] - Wolfman2000
|
||||||
|
* Add Step based #DISPLAYBPM for those songs that have...very varied syncing.
|
||||||
|
|
||||||
|
[v0.74] - Wolfman2000
|
||||||
|
* Add #CHARTNAME tag for the title of the chart.
|
||||||
|
* Older files will have their #DESCRIPTION tag content copied to #CHARTNAME
|
||||||
|
on load.
|
||||||
|
|
||||||
|
[v0.73] - Wolfman2000
|
||||||
|
* Use #FIRSTSECOND, #LASTSECOND, and #LASTSECONDHINT instead of the BEAT
|
||||||
|
equivalents.
|
||||||
|
* Move #LASTSECONDHINT to after the Timing tags.
|
||||||
|
|
||||||
|
[v0.72] - Wolfman2000
|
||||||
|
* Have #OFFSET come before #ATTACKS in the Step data.
|
||||||
|
|
||||||
|
[v0.71] - Wolfman2000
|
||||||
|
* Have #ATTACKS work per step as well.
|
||||||
|
|
||||||
[v0.7] - theDtTvB, Wolfman2000
|
[v0.7] - theDtTvB, Wolfman2000
|
||||||
* Split Timing officially implemented.
|
* Split Timing officially implemented.
|
||||||
* #SPEEDS tag for modified scroll speeds.
|
* #SPEEDS tag for modified scroll speeds.
|
||||||
|
|||||||
@@ -5,9 +5,255 @@ from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
|
|||||||
________________________________________________________________________________
|
________________________________________________________________________________
|
||||||
|
|
||||||
================================================================================
|
================================================================================
|
||||||
StepMania 5.0 Preview 2 | 20110???
|
StepMania 5.0 ????????? | 20110???
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
2011/07/19
|
||||||
|
----------
|
||||||
|
* [LoadingWindow] Added the ability for themes to have custom splash banners.
|
||||||
|
(Currently Windows-only.) [AJ]
|
||||||
|
|
||||||
|
2011/07/17
|
||||||
|
----------
|
||||||
|
* [Cache] No longer store #NOTES in the cache. This should speed things up
|
||||||
|
on the first load if there is not much to write. (General note: this was
|
||||||
|
taken from another branch, but results at that point were great.)
|
||||||
|
[Wolfman2000]
|
||||||
|
|
||||||
|
2011/07/13
|
||||||
|
----------
|
||||||
|
* [Difficulty] Allow ALL StepsTypes to use CustomDifficulty properly.
|
||||||
|
There was some unfair targeting of Couple and Routine. [Wolfman2000]
|
||||||
|
* [Steps] Calculate accurate radar values for Couple charts. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Display more accurate chart data for Couple and Routine charts
|
||||||
|
for the future. No more having (almost) every row as a jump! [Wolfman2000]
|
||||||
|
|
||||||
|
2011/07/12
|
||||||
|
----------
|
||||||
|
* [OptionRowHandler] Add a new metric to ScreenOptionsMaster:
|
||||||
|
StepsUseChartName. Use this if you want your charts to have a unique name
|
||||||
|
in the options menu. If there is no #CHARTNAME or it is "Blank", it reverts
|
||||||
|
to the original behavior. This metric is false by default. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Fixed a bug involving #ATTACKS. Now when you set an attack,
|
||||||
|
the mods are reverted back to how they were prior to the attack being set.
|
||||||
|
[Wolfman2000]
|
||||||
|
|
||||||
|
2011/07/09
|
||||||
|
----------
|
||||||
|
* [NotesTheUsual] Update the #COMBOS tag to allow for a Miss Combo attribute.
|
||||||
|
Any files that only use the Combo attribute will have that value copied to
|
||||||
|
miss combo on next launch. [Wolfman2000]
|
||||||
|
* [ScoreKeeperNormal] Better match #COMBOS with eval. Scoring formulas should
|
||||||
|
not be affected, but it may require more testing. [Wolfman2000]
|
||||||
|
* [Metrics] Have Pump mode lump the checkpoint judgments with Flawless and
|
||||||
|
Miss judgments on eval. Of course, this goes down to Perfect and Miss if
|
||||||
|
that is disabled. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/07/07
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Fix the NoMines transformation bug, issue 363. [Wolfman2000]
|
||||||
|
* [CourseLoaderCRS] Don't load BEST# and WORST# where # is greater than the
|
||||||
|
number of songs installed. Fixes issue 373. [AJ]
|
||||||
|
* [NotesAllSSC] Add the #CHARTNAME tag to the Steps. #DESCRIPTION is now for
|
||||||
|
more detailed descriptions, or perhaps some short hand lingo. All files
|
||||||
|
that used #DESCRIPTION will have their values moved to #CHARTNAME on
|
||||||
|
load. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Add a Steps Data menu for getting numerical step data on the
|
||||||
|
chart. This is a read only menu. Edit Steps Information contains writable
|
||||||
|
information. [Wolfman2000]
|
||||||
|
* [NotesAllSSC] Add the Steps version of #DISPLAYBPM. The Song version is
|
||||||
|
still there, so themes should not have to worry about breakage.
|
||||||
|
[Wolfman2000]
|
||||||
|
|
||||||
|
2011/07/06
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Fix the bug where hitting Enter during playing wouldn't take
|
||||||
|
the user back to the editor. [Wolfman2000]
|
||||||
|
* [Gameplay] Fix Fail mods being dishonored. [Midiman]
|
||||||
|
|
||||||
|
2011/07/05
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Restore dance-couple and pump-couple for editing purposes.
|
||||||
|
Saving should still work, but this was never tested yet. [Wolfman2000]
|
||||||
|
* [ScreenOptions] Mini is now ITG Mini, and Tiny is now Pump Pro Mini.
|
||||||
|
This will prevent many prior courses from breaking. [sharksoda, Wolfman2000]
|
||||||
|
* [CharacterManager] Add a lua function to check how many characters you have.
|
||||||
|
For an example of how this is used, check the default theme's scripts
|
||||||
|
folder, specifically 03 ThemePrefs.lua. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/07/04
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Add a function to switch the notes the routine players have to
|
||||||
|
hit. In simple terms, Player 1's notes are now Player 2's and vice~versa.
|
||||||
|
Check it out in the Alter Menu. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Add two routine mirroring functions. Now you can build sections
|
||||||
|
of a chart for one player, and mirror the effect for the other player when
|
||||||
|
finished. For Pump players, it is not a straight mirror, but is more akin
|
||||||
|
to what is found via normal routine charts. In other words, you'll be happy.
|
||||||
|
Check it out in the Alter Menu. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/07/03
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Fix a crash if one tries to remove an attack that doesn't
|
||||||
|
exist at that time. [Wolfman2000]
|
||||||
|
|
||||||
|
================================================================================
|
||||||
|
StepMania 5.0 Preview 2 | 20110703
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
2011/07/03
|
||||||
|
----------
|
||||||
|
* [Player] Bring mMods from OpenITG over. Also, a metric was added,
|
||||||
|
"MModHighCap", to cap the speed mod if required for playing songs like
|
||||||
|
Tsuhsuixamush. Set the metric to 0 or less to remove the cap. [AJ, sharksoda,
|
||||||
|
Wolfman2000]
|
||||||
|
|
||||||
|
2011/07/02
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Fixed a crash when hitting Enter in the F1 help menu. [AJ]
|
||||||
|
|
||||||
|
2011/06/30
|
||||||
|
----------
|
||||||
|
* [NotesAll] Use #FIRSTSECOND, #LASTSECOND, and #LASTSECONDHINT instead of the
|
||||||
|
former BEAT equivalents. Split Timing has made this a necessity thanks to
|
||||||
|
certain files that abuse Stops/Delays more than usual. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Add a function in the Area Menu to designate the current beat
|
||||||
|
as the last second of the song. Please try to be smart and not use this too
|
||||||
|
early. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/28
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Add a function to copy/paste the TimingData of a player's
|
||||||
|
choice. Remember to be in the appropriate mode when copying and pasting.
|
||||||
|
By default, the song timing is already located in the clipboard, ready for
|
||||||
|
use. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/27
|
||||||
|
----------
|
||||||
|
* [Steps] Make sure #ATTACKS are copied when requested. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Have Step Author up front instead of Chart Style. This is
|
||||||
|
probably going to be better overall. [Wolfman2000]
|
||||||
|
* [TimingData] Preserve the length of time for Speed Segment scaling when using
|
||||||
|
beats. [Wolfman2000]
|
||||||
|
* [NotesLoader/WriterSSC] #OFFSET is to be before #ATTACKS. This is required if
|
||||||
|
we pursue beat based attacks and not just second based. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/26
|
||||||
|
----------
|
||||||
|
* [UnlockManager] New metric: AutoLockEditSteps. Use this to hide bonus charts
|
||||||
|
until the Expert steps are beaten. No guarantee that this works with no
|
||||||
|
challenge steps in the song. This defaults to false. [Wolfman2000]
|
||||||
|
* [UnlockManager] New metric: SongsNotAdditional. Set to true to keep the
|
||||||
|
default behavior, false to have the AdditionalSongs folder contain
|
||||||
|
unlockable material. This is set to true to start. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Allow jumping between all segments, not just Label segments.
|
||||||
|
You still use Ctrl + ,/. to jump, but now you use Ctrl + N/M to cycle the
|
||||||
|
segments. By default, it starts with Label. [Wolfman2000]
|
||||||
|
* [PlayerOptions] No longer display StepAttacks in the player's list.
|
||||||
|
Instead, show NoAttacks if attacks are disabled. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/24
|
||||||
|
----------
|
||||||
|
* [Actor] Implement compound(length,tweens) in _fallback/02 Actor.lua. [AJ]
|
||||||
|
* [UnlockManager] Add a new unlock reward: StepsType. This is similar to
|
||||||
|
unlocking Steps, but it is targeted for one step in one stepstype rather
|
||||||
|
than one step in all stepstypes. This needs testing. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Add the option to convert delays to beats. Just find a better
|
||||||
|
song to use this on besides Uprock. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Fix a crash if you don't save any steps on a new song.
|
||||||
|
[Wolfman2000]
|
||||||
|
* [NotesLoader/WriterSSC] Add support for Step #ATTACKS. Furthermore, Song
|
||||||
|
Attacks (or rather, Step Attacks as it should be called now) are turned on
|
||||||
|
by default instead of off. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/19
|
||||||
|
----------
|
||||||
|
* [EditMenu] Allow all songs to work in Practice Mode, regardless of folder
|
||||||
|
location. This fixes a crash if everyone had songs in AdditionalSongs.
|
||||||
|
[Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/17
|
||||||
|
----------
|
||||||
|
* [LifeMeterBattery] Fixed a bug where MinesSubtractLives was not being honored.
|
||||||
|
Also added LifeChanged message to changing of life on holds. [AJ]
|
||||||
|
|
||||||
|
2011/06/15
|
||||||
|
----------
|
||||||
|
* [TimingData] Added many lua bindings for the other timing segments. GetWarps,
|
||||||
|
GetCombos, GetTimeSignatures, GetTickcounts, GetFakes, GetScrolls, GetSpeeds.
|
||||||
|
This should cover all of them now. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/13
|
||||||
|
----------
|
||||||
|
* [InputHandler_DirectInput] Fixed MouseWheel input not resetting. [AJ]
|
||||||
|
* [ScreenTextEntry] Make it so only the keyboard's Enter key can finish the
|
||||||
|
screen. Should fix issues with buttons whose secondary function is MenuStart. [AJ]
|
||||||
|
* [InputMapper] Modify default mappings. Use the Hyphen key instead of the
|
||||||
|
Numlock key for Player 2's GAME_BUTTON_BACK. This should address some
|
||||||
|
issues with Player 2 being unable to back out if they use a laptop.
|
||||||
|
[Wolfman2000]
|
||||||
|
* [NoteDisplay] Add two new metrics.
|
||||||
|
* DrawRollHeadForTapsOnSameRow: bool, similar to DrawHoldHeadForTapsOnSameRow
|
||||||
|
* TapHoldRollOnRowMeansHold: bool, true means hold and false means roll
|
||||||
|
* No noteskins should require updating, as these were placed in common/common
|
||||||
|
for ease of use. [Wolfman2000]
|
||||||
|
* [LifeMeterBattery] Added ChangeLives(int) Lua binding. [AJ]
|
||||||
|
* [LifeMeterBattery] Added DangerThreshold metric. [AJ]
|
||||||
|
* [LifeMeterBattery] Added some important metrics. [AJ]
|
||||||
|
* MinScoreToKeepLife='TapNoteScore_*' - any score below this = loss of life.
|
||||||
|
* SubtractLives=1 - how many lives are lost when going below MinScoreToKeepLife.
|
||||||
|
* MinesSubtractLives=1 - how many lives are lost when hitting a mine.
|
||||||
|
* HeldAddLives=0 - how many lives are gained when a hold is completed.
|
||||||
|
* LetGoSubtractLives=1 - how many lives are lost on a dropped hold.
|
||||||
|
|
||||||
|
2011/06/12
|
||||||
|
----------
|
||||||
|
* [ScreenNetSelectMusic] Add PlayerOptionsScreen metric. [AJ]
|
||||||
|
* [ScreenEdit] Restore the old PageUp/PageDown behavior, added Control +
|
||||||
|
PageUp/PageDown to use recent time signature behavior. Laptop users, that
|
||||||
|
includes you guys too: semicolon and apostrophe are still good. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/11
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Allow setting the Music Preview via the Alter Menu. Just select
|
||||||
|
your area, enter the menu, and choose "Designate as Music Preview". No more
|
||||||
|
math calculations needed! [Wolfman2000]
|
||||||
|
* [SongUtil] Added GetPlayableSteps(Song) Lua binding. [AJ]
|
||||||
|
* [Steps] Allow 255 characters for all chart descriptions, including edits.
|
||||||
|
We are no longer bound by In The Groove I think. [Wolfman2000]
|
||||||
|
* [Player] Add GetPlayerTimingData() Lua binding. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/10
|
||||||
|
----------
|
||||||
|
* [ScreenEdit] Split the Area Menu into the Area Menu and Alter Menu. Use the
|
||||||
|
"A" key to enter the Alter Menu when a selection of notes/rows are
|
||||||
|
highlighted. Use the Enter key to enter the old Area Menu for the options that
|
||||||
|
do not depend on selecting NoteData. [Wolfman2000]
|
||||||
|
* [ScreenEdit] Allow converting selections to Delays, Warps, or Fakes as well
|
||||||
|
as Stops. Remember, use the Alter Menu for this. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/09
|
||||||
|
----------
|
||||||
|
* [ScreenSyncOverlay] Ensure that F11 / F12 work with all charts due to Split
|
||||||
|
Timing. [Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/08
|
||||||
|
----------
|
||||||
|
* Any notes in a fake segment or warp segment are completely ignored for
|
||||||
|
scoring purposes. Now you can get 100% on your warping goodness!
|
||||||
|
[Wolfman2000]
|
||||||
|
|
||||||
|
2011/06/06
|
||||||
|
----------
|
||||||
|
* [PlayerOptions] Removed the ScoreDisplay mod choices. Use lua to make your
|
||||||
|
own scoring formulas that work in reverse instead. [Wolfman2000]
|
||||||
|
* [ScreenGameplay] Fix an assist tick bug if there was no Player 1. Note that
|
||||||
|
this changes the behavior slightly: it is the first enabled player, or
|
||||||
|
master player, that gets the ticks now. A better solution will be looked at
|
||||||
|
in the future. [Wolfman2000]
|
||||||
|
* [NoteDataUtil] Fix a radar issue involving hands. Unfortunately, this means
|
||||||
|
yet another cache reload for accuracy purposes. [Wolfman2000]
|
||||||
|
|
||||||
2011/06/04
|
2011/06/04
|
||||||
----------
|
----------
|
||||||
* Changed default MusicWheelSwitchSpeed to 15 (was 10). [AJ]
|
* Changed default MusicWheelSwitchSpeed to 15 (was 10). [AJ]
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
<Lua xmlns='http://www.stepmania.com' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.stepmania.com Lua.xsd'>
|
<Lua xmlns='http://www.stepmania.com' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.stepmania.com Lua.xsd'>
|
||||||
<GlobalFunctions>
|
<GlobalFunctions>
|
||||||
|
<Function name='Alpha'/>
|
||||||
<Function name='AreStagePlayerModsForced'/>
|
<Function name='AreStagePlayerModsForced'/>
|
||||||
<Function name='AreStageSongModsForced'/>
|
<Function name='AreStageSongModsForced'/>
|
||||||
<Function name='Basename'/>
|
<Function name='Basename'/>
|
||||||
@@ -39,11 +40,8 @@
|
|||||||
<Function name='FormatNumberAndSuffix'/>
|
<Function name='FormatNumberAndSuffix'/>
|
||||||
<Function name='FormatPercentScore'/>
|
<Function name='FormatPercentScore'/>
|
||||||
<Function name='GameCompatibleModes'/>
|
<Function name='GameCompatibleModes'/>
|
||||||
<Function name='GamePrefAutoSetStyle'/>
|
|
||||||
<Function name='GamePrefComboOnRolls'/>
|
<Function name='GamePrefComboOnRolls'/>
|
||||||
<Function name='GamePrefComboUnderField'/>
|
|
||||||
<Function name='GamePrefDefaultFail'/>
|
<Function name='GamePrefDefaultFail'/>
|
||||||
<Function name='GamePrefNotePosition'/>
|
|
||||||
<Function name='GetCoursesToShowRanking'/>
|
<Function name='GetCoursesToShowRanking'/>
|
||||||
<Function name='GetCustomDifficulty'/>
|
<Function name='GetCustomDifficulty'/>
|
||||||
<Function name='GetDefaultOptionLines'/>
|
<Function name='GetDefaultOptionLines'/>
|
||||||
@@ -57,6 +55,7 @@
|
|||||||
<Function name='GetGradeFromPercent'/>
|
<Function name='GetGradeFromPercent'/>
|
||||||
<Function name='GetLifeDifficulty'/>
|
<Function name='GetLifeDifficulty'/>
|
||||||
<Function name='GetOSName'/>
|
<Function name='GetOSName'/>
|
||||||
|
<Function name='GetPlayerOrMachineProfile'/>
|
||||||
<Function name='GetProTiming'/>
|
<Function name='GetProTiming'/>
|
||||||
<Function name='GetRandomSongBackground'/>
|
<Function name='GetRandomSongBackground'/>
|
||||||
<Function name='GetReal'/>
|
<Function name='GetReal'/>
|
||||||
@@ -130,7 +129,6 @@
|
|||||||
<Function name='PrintTable'/>
|
<Function name='PrintTable'/>
|
||||||
<Function name='ProductID'/>
|
<Function name='ProductID'/>
|
||||||
<Function name='ProductVersion'/>
|
<Function name='ProductVersion'/>
|
||||||
<Function name='Profile'/>
|
|
||||||
<Function name='RadarCategoryToLocalizedString'/>
|
<Function name='RadarCategoryToLocalizedString'/>
|
||||||
<Function name='ReadGamePrefFromFile'/>
|
<Function name='ReadGamePrefFromFile'/>
|
||||||
<Function name='ReadPrefFromFile'/>
|
<Function name='ReadPrefFromFile'/>
|
||||||
@@ -143,6 +141,8 @@
|
|||||||
<Function name='Saturation'/>
|
<Function name='Saturation'/>
|
||||||
<Function name='ScoreKeeperClass'/>
|
<Function name='ScoreKeeperClass'/>
|
||||||
<Function name='ScoreMissedHoldsAndRolls'/>
|
<Function name='ScoreMissedHoldsAndRolls'/>
|
||||||
|
<Function name='ScreenMetric'/>
|
||||||
|
<Function name='ScreenString'/>
|
||||||
<Function name='Second'/>
|
<Function name='Second'/>
|
||||||
<Function name='SecondsToHHMMSS'/>
|
<Function name='SecondsToHHMMSS'/>
|
||||||
<Function name='SecondsToMMSS'/>
|
<Function name='SecondsToMMSS'/>
|
||||||
@@ -153,6 +153,7 @@
|
|||||||
<Function name='SelectMusicOrCourse'/>
|
<Function name='SelectMusicOrCourse'/>
|
||||||
<Function name='SelectProfileKeys'/>
|
<Function name='SelectProfileKeys'/>
|
||||||
<Function name='Serialize'/>
|
<Function name='Serialize'/>
|
||||||
|
<Function name='SetFail'/>
|
||||||
<Function name='SetGamePref'/>
|
<Function name='SetGamePref'/>
|
||||||
<Function name='SetThemePref'/>
|
<Function name='SetThemePref'/>
|
||||||
<Function name='SetUserPref'/>
|
<Function name='SetUserPref'/>
|
||||||
@@ -322,6 +323,7 @@
|
|||||||
<Function name='bouncebegin'/>
|
<Function name='bouncebegin'/>
|
||||||
<Function name='bounceend'/>
|
<Function name='bounceend'/>
|
||||||
<Function name='clearzbuffer'/>
|
<Function name='clearzbuffer'/>
|
||||||
|
<Function name='compound'/>
|
||||||
<Function name='cropbottom'/>
|
<Function name='cropbottom'/>
|
||||||
<Function name='cropleft'/>
|
<Function name='cropleft'/>
|
||||||
<Function name='cropright'/>
|
<Function name='cropright'/>
|
||||||
@@ -578,6 +580,7 @@
|
|||||||
<Function name='GetAllCharacters'/>
|
<Function name='GetAllCharacters'/>
|
||||||
<Function name='GetCharacter'/>
|
<Function name='GetCharacter'/>
|
||||||
<Function name='GetRandomCharacter'/>
|
<Function name='GetRandomCharacter'/>
|
||||||
|
<Function name='GetCharacterCount'/>
|
||||||
</Class>
|
</Class>
|
||||||
<Class base='ActorFrame' name='ComboGraph'>
|
<Class base='ActorFrame' name='ComboGraph'>
|
||||||
<Function name='Load'/>
|
<Function name='Load'/>
|
||||||
@@ -823,6 +826,7 @@
|
|||||||
<Function name='IsInDanger'/>
|
<Function name='IsInDanger'/>
|
||||||
</Class>
|
</Class>
|
||||||
<Class base='LifeMeter' name='LifeMeterBattery'>
|
<Class base='LifeMeter' name='LifeMeterBattery'>
|
||||||
|
<Function name='ChangeLives'/>
|
||||||
<Function name='GetLivesLeft'/>
|
<Function name='GetLivesLeft'/>
|
||||||
<Function name='GetTotalLives'/>
|
<Function name='GetTotalLives'/>
|
||||||
</Class>
|
</Class>
|
||||||
@@ -889,6 +893,7 @@
|
|||||||
<Function name='LoadFromStats'/>
|
<Function name='LoadFromStats'/>
|
||||||
</Class>
|
</Class>
|
||||||
<Class base='ActorFrame' name='Player'>
|
<Class base='ActorFrame' name='Player'>
|
||||||
|
<Function name='GetPlayerTimingData'/>
|
||||||
<Function name='SetActorWithComboPosition'/>
|
<Function name='SetActorWithComboPosition'/>
|
||||||
<Function name='SetActorWithJudgmentPosition'/>
|
<Function name='SetActorWithJudgmentPosition'/>
|
||||||
</Class>
|
</Class>
|
||||||
@@ -929,6 +934,7 @@
|
|||||||
<Function name='GetMines'/>
|
<Function name='GetMines'/>
|
||||||
<Function name='GetMini'/>
|
<Function name='GetMini'/>
|
||||||
<Function name='GetMirror'/>
|
<Function name='GetMirror'/>
|
||||||
|
<Function name='GetNoAttacks'/>
|
||||||
<Function name='GetNoFakes'/>
|
<Function name='GetNoFakes'/>
|
||||||
<Function name='GetNoHands'/>
|
<Function name='GetNoHands'/>
|
||||||
<Function name='GetNoHolds'/>
|
<Function name='GetNoHolds'/>
|
||||||
@@ -956,6 +962,7 @@
|
|||||||
<Function name='GetSongAttacks'/>
|
<Function name='GetSongAttacks'/>
|
||||||
<Function name='GetSplit'/>
|
<Function name='GetSplit'/>
|
||||||
<Function name='GetStealth'/>
|
<Function name='GetStealth'/>
|
||||||
|
<Function name='GetStepAttacks'/>
|
||||||
<Function name='GetStomp'/>
|
<Function name='GetStomp'/>
|
||||||
<Function name='GetSudden'/>
|
<Function name='GetSudden'/>
|
||||||
<Function name='GetSuddenOffset'/>
|
<Function name='GetSuddenOffset'/>
|
||||||
@@ -1026,6 +1033,52 @@
|
|||||||
<Function name='SetPreference'/>
|
<Function name='SetPreference'/>
|
||||||
<Function name='SetPreferenceToDefault'/>
|
<Function name='SetPreferenceToDefault'/>
|
||||||
</Class>
|
</Class>
|
||||||
|
<Class name='Profile'>
|
||||||
|
<Function name='GetCaloriesBurnedToday'/>
|
||||||
|
<Function name='GetCharacter'/>
|
||||||
|
<Function name='GetCoursesActual'/>
|
||||||
|
<Function name='GetCoursesPercentComplete'/>
|
||||||
|
<Function name='GetCoursesPossible'/>
|
||||||
|
<Function name='GetDisplayName'/>
|
||||||
|
<Function name='GetDisplayTotalCaloriesBurned'/>
|
||||||
|
<Function name='GetGoalCalories'/>
|
||||||
|
<Function name='GetGoalSeconds'/>
|
||||||
|
<Function name='GetGoalType'/>
|
||||||
|
<Function name='GetHighScoreList'/>
|
||||||
|
<Function name='GetLastUsedHighScoreName'/>
|
||||||
|
<Function name='GetMostPopularCourse'/>
|
||||||
|
<Function name='GetMostPopularSong'/>
|
||||||
|
<Function name='GetNumToasties'/>
|
||||||
|
<Function name='GetNumTotalSongsPlayed'/>
|
||||||
|
<Function name='GetSongNumTimesPlayed'/>
|
||||||
|
<Function name='GetSongsActual'/>
|
||||||
|
<Function name='GetSongsAndCoursesPercentCompleteAllDifficulties'/>
|
||||||
|
<Function name='GetSongsPercentComplete'/>
|
||||||
|
<Function name='GetSongsPossible'/>
|
||||||
|
<Function name='GetTotalCaloriesBurned'/>
|
||||||
|
<Function name='GetTotalGameplaySeconds'/>
|
||||||
|
<Function name='GetTotalHands'/>
|
||||||
|
<Function name='GetTotalHolds'/>
|
||||||
|
<Function name='GetTotalJumps'/>
|
||||||
|
<Function name='GetTotalLifts'/>
|
||||||
|
<Function name='GetTotalMines'/>
|
||||||
|
<Function name='GetTotalNumSongsPlayed'/>
|
||||||
|
<Function name='GetTotalRolls'/>
|
||||||
|
<Function name='GetTotalSessionSeconds'/>
|
||||||
|
<Function name='GetTotalSessions'/>
|
||||||
|
<Function name='GetTotalStepsWithTopGrade'/>
|
||||||
|
<Function name='GetTotalTapsAndHolds'/>
|
||||||
|
<Function name='GetTotalTrailsWithTopGrade'/>
|
||||||
|
<Function name='GetUserData'/>
|
||||||
|
<Function name='GetWeightPounds'/>
|
||||||
|
<Function name='HasPassedAnyStepsInSong'/>
|
||||||
|
<Function name='IsCodeUnlocked'/>
|
||||||
|
<Function name='SetCharacter'/>
|
||||||
|
<Function name='SetGoalCalories'/>
|
||||||
|
<Function name='SetGoalSeconds'/>
|
||||||
|
<Function name='SetGoalType'/>
|
||||||
|
<Function name='SetWeightPounds'/>
|
||||||
|
</Class>
|
||||||
<Class name='ProfileManager'>
|
<Class name='ProfileManager'>
|
||||||
<Function name='GetLocalProfile'/>
|
<Function name='GetLocalProfile'/>
|
||||||
<Function name='GetLocalProfileFromIndex'/>
|
<Function name='GetLocalProfileFromIndex'/>
|
||||||
@@ -1093,6 +1146,15 @@
|
|||||||
</Class>
|
</Class>
|
||||||
<Class base='BitmapText' name='ScoreDisplayAliveTime'/>
|
<Class base='BitmapText' name='ScoreDisplayAliveTime'/>
|
||||||
<Class base='BitmapText' name='ScoreDisplayCalories'/>
|
<Class base='BitmapText' name='ScoreDisplayCalories'/>
|
||||||
|
<Class base='ActorFrame' name='Screen'>
|
||||||
|
<Function name='GetNextScreenName'/>
|
||||||
|
<Function name='GetPrevScreenName'/>
|
||||||
|
<Function name='GetScreenType'/>
|
||||||
|
<Function name='Metric'/>
|
||||||
|
<Function name='PostScreenMessage'/>
|
||||||
|
<Function name='String'/>
|
||||||
|
<Function name='lockinput'/>
|
||||||
|
</Class>
|
||||||
<Class base='ScreenWithMenuElements' name='ScreenAttract'/>
|
<Class base='ScreenWithMenuElements' name='ScreenAttract'/>
|
||||||
<Class base='ScreenWithMenuElements' name='ScreenEdit'>
|
<Class base='ScreenWithMenuElements' name='ScreenEdit'>
|
||||||
<Function name='GetEditState'/>
|
<Function name='GetEditState'/>
|
||||||
@@ -1185,9 +1247,11 @@
|
|||||||
<Function name='GetDisplayMainTitle'/>
|
<Function name='GetDisplayMainTitle'/>
|
||||||
<Function name='GetDisplaySubTitle'/>
|
<Function name='GetDisplaySubTitle'/>
|
||||||
<Function name='GetFirstBeat'/>
|
<Function name='GetFirstBeat'/>
|
||||||
|
<Function name='GetFirstSecond'/>
|
||||||
<Function name='GetGenre'/>
|
<Function name='GetGenre'/>
|
||||||
<Function name='GetGroupName'/>
|
<Function name='GetGroupName'/>
|
||||||
<Function name='GetLastBeat'/>
|
<Function name='GetLastBeat'/>
|
||||||
|
<Function name='GetLastSecond'/>
|
||||||
<Function name='GetLyricsPath'/>
|
<Function name='GetLyricsPath'/>
|
||||||
<Function name='GetMusicPath'/>
|
<Function name='GetMusicPath'/>
|
||||||
<Function name='GetOneSteps'/>
|
<Function name='GetOneSteps'/>
|
||||||
@@ -1318,6 +1382,7 @@
|
|||||||
</Class>
|
</Class>
|
||||||
<Class name='Steps'>
|
<Class name='Steps'>
|
||||||
<Function name='GetAuthorCredit'/>
|
<Function name='GetAuthorCredit'/>
|
||||||
|
<Function name='GetChartName'/>
|
||||||
<Function name='GetChartStyle'/>
|
<Function name='GetChartStyle'/>
|
||||||
<Function name='GetDescription'/>
|
<Function name='GetDescription'/>
|
||||||
<Function name='GetDifficulty'/>
|
<Function name='GetDifficulty'/>
|
||||||
@@ -1327,6 +1392,7 @@
|
|||||||
<Function name='GetRadarValues'/>
|
<Function name='GetRadarValues'/>
|
||||||
<Function name='GetStepsType'/>
|
<Function name='GetStepsType'/>
|
||||||
<Function name='GetTimingData'/>
|
<Function name='GetTimingData'/>
|
||||||
|
<Function name='HasAttacks'/>
|
||||||
<Function name='HasSignificantTimingChanges'/>
|
<Function name='HasSignificantTimingChanges'/>
|
||||||
<Function name='IsAPlayerEdit'/>
|
<Function name='IsAPlayerEdit'/>
|
||||||
<Function name='IsAnEdit'/>
|
<Function name='IsAnEdit'/>
|
||||||
@@ -1377,10 +1443,17 @@
|
|||||||
<Function name='GetBPMs'/>
|
<Function name='GetBPMs'/>
|
||||||
<Function name='GetBPMsAndTimes'/>
|
<Function name='GetBPMsAndTimes'/>
|
||||||
<Function name='GetBeatFromElapsedTime'/>
|
<Function name='GetBeatFromElapsedTime'/>
|
||||||
|
<Function name='GetCombos'/>
|
||||||
<Function name='GetDelays'/>
|
<Function name='GetDelays'/>
|
||||||
<Function name='GetElapsedTimeFromBeat'/>
|
<Function name='GetElapsedTimeFromBeat'/>
|
||||||
|
<Function name='GetFakes'/>
|
||||||
<Function name='GetLabels'/>
|
<Function name='GetLabels'/>
|
||||||
|
<Function name='GetScrolls'/>
|
||||||
|
<Function name='GetSpeeds'/>
|
||||||
<Function name='GetStops'/>
|
<Function name='GetStops'/>
|
||||||
|
<Function name='GetTickcounts'/>
|
||||||
|
<Function name='GetTimeSignatures'/>
|
||||||
|
<Function name='GetWarps'/>
|
||||||
<Function name='HasBPMChanges'/>
|
<Function name='HasBPMChanges'/>
|
||||||
<Function name='HasFakes'/>
|
<Function name='HasFakes'/>
|
||||||
<Function name='HasNegativeBPMs'/>
|
<Function name='HasNegativeBPMs'/>
|
||||||
@@ -1408,6 +1481,7 @@
|
|||||||
<Function name='GetCode'/>
|
<Function name='GetCode'/>
|
||||||
<Function name='GetCourse'/>
|
<Function name='GetCourse'/>
|
||||||
<Function name='GetDescription'/>
|
<Function name='GetDescription'/>
|
||||||
|
<Function name='GetRequirePassChallengeSteps'/>
|
||||||
<Function name='GetRequirePassHardSteps'/>
|
<Function name='GetRequirePassHardSteps'/>
|
||||||
<Function name='GetRequirement'/>
|
<Function name='GetRequirement'/>
|
||||||
<Function name='GetSong'/>
|
<Function name='GetSong'/>
|
||||||
@@ -1421,6 +1495,7 @@
|
|||||||
<Function name='roulette'/>
|
<Function name='roulette'/>
|
||||||
<Function name='song'/>
|
<Function name='song'/>
|
||||||
<Function name='steps'/>
|
<Function name='steps'/>
|
||||||
|
<Function name='steps_type'/>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='UnlockManager'>
|
<Class name='UnlockManager'>
|
||||||
<Function name='AnyUnlocksToCelebrate'/>
|
<Function name='AnyUnlocksToCelebrate'/>
|
||||||
@@ -1470,6 +1545,7 @@
|
|||||||
<Function name='GetCreditsMessage'/>
|
<Function name='GetCreditsMessage'/>
|
||||||
</Namespace>
|
</Namespace>
|
||||||
<Namespace name='SongUtil'>
|
<Namespace name='SongUtil'>
|
||||||
|
<Function name='GetPlayableSteps'/>
|
||||||
<Function name='IsStepsPlayable'/>
|
<Function name='IsStepsPlayable'/>
|
||||||
<Function name='IsStepsTypePlayable'/>
|
<Function name='IsStepsTypePlayable'/>
|
||||||
</Namespace>
|
</Namespace>
|
||||||
@@ -2024,8 +2100,9 @@
|
|||||||
<Enum name='UnlockRewardType'>
|
<Enum name='UnlockRewardType'>
|
||||||
<EnumValue name=''UnlockRewardType_Song'' value='0'/>
|
<EnumValue name=''UnlockRewardType_Song'' value='0'/>
|
||||||
<EnumValue name=''UnlockRewardType_Steps'' value='1'/>
|
<EnumValue name=''UnlockRewardType_Steps'' value='1'/>
|
||||||
<EnumValue name=''UnlockRewardType_Course'' value='2'/>
|
<EnumValue name=''UnlockRewardType_StepsType'' value='2'/>
|
||||||
<EnumValue name=''UnlockRewardType_Modifier'' value='3'/>
|
<EnumValue name=''UnlockRewardType_Course'' value='3'/>
|
||||||
|
<EnumValue name=''UnlockRewardType_Modifier'' value='4'/>
|
||||||
</Enum>
|
</Enum>
|
||||||
<Enum name='VertAlign'>
|
<Enum name='VertAlign'>
|
||||||
<EnumValue name=''VertAlign_Top'' value='0'/>
|
<EnumValue name=''VertAlign_Top'' value='0'/>
|
||||||
@@ -2060,6 +2137,6 @@
|
|||||||
<Constant name='sGame' value=''dance''/>
|
<Constant name='sGame' value=''dance''/>
|
||||||
<Constant name='top' value=''VertAlign_Top''/>
|
<Constant name='top' value=''VertAlign_Top''/>
|
||||||
</Constants>
|
</Constants>
|
||||||
<Version>StepMania 5 v5.0 Preview 1a</Version>
|
<Version>StepMania 5 v5.0 Preview 2</Version>
|
||||||
<Date>2011-06-04</Date>
|
<Date>2011-07-04</Date>
|
||||||
</Lua>
|
</Lua>
|
||||||
|
|||||||
@@ -395,7 +395,13 @@
|
|||||||
$type='bool' or
|
$type='bool' or
|
||||||
$type='table' or
|
$type='table' or
|
||||||
$type='color' or
|
$type='color' or
|
||||||
$type='Enum'">
|
$type='Enum' or
|
||||||
|
$type='ThreadVariable' or
|
||||||
|
$type='LuaOptionRow' or
|
||||||
|
$type='ActorDef' or
|
||||||
|
$type='chunk' or
|
||||||
|
$type='unsigned' or
|
||||||
|
$type='various'">
|
||||||
<span class="primitiveType">
|
<span class="primitiveType">
|
||||||
<xsl:value-of select="$type" />
|
<xsl:value-of select="$type" />
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -23,6 +23,9 @@
|
|||||||
<Documentation xmlns='http://www.stepmania.com' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.stepmania.com Lua.xsd'>
|
<Documentation xmlns='http://www.stepmania.com' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.stepmania.com Lua.xsd'>
|
||||||
<!-- Global functions -->
|
<!-- Global functions -->
|
||||||
<GlobalFunctions>
|
<GlobalFunctions>
|
||||||
|
<Function name='Alpha' theme='_fallback' return='color' arguments='color c, float percent'>
|
||||||
|
[03 HSV.lua] Returns a <code>color</code> with the specified alpha.
|
||||||
|
</Function>
|
||||||
<Function name='AreStagePlayerModsForced' theme='_fallback' return='bool' arguments=''>
|
<Function name='AreStagePlayerModsForced' theme='_fallback' return='bool' arguments=''>
|
||||||
[02 StageMods.lua]
|
[02 StageMods.lua]
|
||||||
</Function>
|
</Function>
|
||||||
@@ -36,10 +39,10 @@
|
|||||||
Returns the base name of file path.
|
Returns the base name of file path.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='BoostColor' theme='_fallback' return='color' arguments='color c, float fBoost'>
|
<Function name='BoostColor' theme='_fallback' return='color' arguments='color c, float fBoost'>
|
||||||
[02 Colors.lua]
|
[02 Colors.lua] Boosts the specified color by multiplying its values by <code>fBoost</code>.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='Brightness' theme='_fallback' return='color' arguments='color c, float percent'>
|
<Function name='Brightness' theme='_fallback' return='color' arguments='color c, float percent'>
|
||||||
[03 HSV.lua]
|
[03 HSV.lua] Modifies the brightness of the specified color.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='Center1Player' theme='_fallback' return='bool' arguments=''>
|
<Function name='Center1Player' theme='_fallback' return='bool' arguments=''>
|
||||||
[03 ProductivityHelpers.lua] Returns <code>true</code> if Center 1P is being used.
|
[03 ProductivityHelpers.lua] Returns <code>true</code> if Center 1P is being used.
|
||||||
@@ -48,7 +51,8 @@
|
|||||||
[03 Gameplay.lua]
|
[03 Gameplay.lua]
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='clamp' return='float' arguments='float fValue, float fLow, float fHigh'>
|
<Function name='clamp' return='float' arguments='float fValue, float fLow, float fHigh'>
|
||||||
CLAMP is an all-female Japanese mangaka group that formed in the mid 1980s. Erm, I mean... Clamps <code>fValue</code> between <code>fLow</code> and <code>fHigh</code>.
|
CLAMP is an all-female Japanese mangaka group that formed in the mid 1980s.
|
||||||
|
Erm, I mean... Clamps <code>fValue</code> between <code>fLow</code> and <code>fHigh</code>.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='CloseConnection' return='void' arguments=''>
|
<Function name='CloseConnection' return='void' arguments=''>
|
||||||
Closes any connection to an online server.
|
Closes any connection to an online server.
|
||||||
@@ -59,6 +63,21 @@
|
|||||||
<Function name='color' return='color' arguments='string color'>
|
<Function name='color' return='color' arguments='string color'>
|
||||||
Returns a color from a string. <code>color</code> can be in hex (<code>"#FFFFFFFF"</code>) or 0..1 values (<code>"1.0,1.0,1.0,1.0"</code>), in RGBA order.
|
Returns a color from a string. <code>color</code> can be in hex (<code>"#FFFFFFFF"</code>) or 0..1 values (<code>"1.0,1.0,1.0,1.0"</code>), in RGBA order.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='ColorDarkTone' theme='_fallback' return='' arguments='color c'>
|
||||||
|
[02 Colors.lua] Returns a darker tone of the color. (Specifically <code>c[1]/2, c[2]/2, c[3]/2, c[4]</code>)
|
||||||
|
</Function>
|
||||||
|
<Function name='ColorLightTone' theme='_fallback' return='' arguments='color c'>
|
||||||
|
[02 Colors.lua] Returns a lighter tone of the color. (Specifically <code>c[1]+(c[1]/2), c[2]+(c[2]/2), c[3]+(c[3]/2), c[4]</code>)
|
||||||
|
</Function>
|
||||||
|
<Function name='ColorMidTone' theme='_fallback' return='' arguments='color c'>
|
||||||
|
[02 Colors.lua] Returns a midtone of the color. (Specifically <code>c[1]/1.5, c[2]/1.5, c[3]/1.5, c[4]</code>)
|
||||||
|
</Function>
|
||||||
|
<Function name='ColorToHex' theme='_fallback' return='string' arguments='color c'>
|
||||||
|
[03 HSV.lua] Returns a hex representation for the specified color.
|
||||||
|
</Function>
|
||||||
|
<Function name='ColorToHSV' theme='_fallback' return='table' arguments='color c'>
|
||||||
|
[03 HSV.lua] Takes in a color and returns a table with the HSV values.
|
||||||
|
</Function>
|
||||||
<Function name='ComboContinue' theme='_fallback' return='TapNoteScore' arguments=''>
|
<Function name='ComboContinue' theme='_fallback' return='TapNoteScore' arguments=''>
|
||||||
[03 Gameplay.lua] Determines what TapNoteScore allows for continuing the combo.
|
[03 Gameplay.lua] Determines what TapNoteScore allows for continuing the combo.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -68,6 +87,12 @@
|
|||||||
<Function name='ComboPerRow' theme='_fallback' return='bool' arguments=''>
|
<Function name='ComboPerRow' theme='_fallback' return='bool' arguments=''>
|
||||||
[03 Gameplay.lua] Determines if combo should be per row (Jump = 1) or per column (Jump = 2).
|
[03 Gameplay.lua] Determines if combo should be per row (Jump = 1) or per column (Jump = 2).
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='ComboTransformCommand' theme='_fallback' return='void' arguments='Actor self, params p'>
|
||||||
|
[02 Other.lua] The combo trasform command.
|
||||||
|
</Function>
|
||||||
|
<Function name='ComboUnderField' theme='_fallback' return='bool' arguments=''>
|
||||||
|
[03 Gameplay.lua] Returns the <code>UserPrefComboUnderField</code> user preference value.
|
||||||
|
</Function>
|
||||||
<Function name='ConnectToServer' return='bool' arguments='string sAddress'>
|
<Function name='ConnectToServer' return='bool' arguments='string sAddress'>
|
||||||
Tries to connect to the server at <code>sAddress</code>.
|
Tries to connect to the server at <code>sAddress</code>.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -77,14 +102,23 @@
|
|||||||
<Function name='DayOfYear' return='int' arguments=''>
|
<Function name='DayOfYear' return='int' arguments=''>
|
||||||
Returns the current day of the year.
|
Returns the current day of the year.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='DeepCopy' theme='_fallback' return='table' arguments='table from, table to, table already_copied'>
|
||||||
|
[02 Serialize] Recursively deep-copy a table.
|
||||||
|
</Function>
|
||||||
<Function name='dofile' theme='_fallback' return='chunk' arguments='string sFilePath'>
|
<Function name='dofile' theme='_fallback' return='chunk' arguments='string sFilePath'>
|
||||||
[01 base.lua] "Override Lua's dofile to use our <Link function="loadfile">loadfile</Link>."
|
[01 base.lua] "Override Lua's dofile to use our <Link function="loadfile">loadfile</Link>."
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='fapproach' theme='_fallback' return='float' arguments='float val, float other_val, float to_move'>
|
||||||
|
[02 Utilities.lua]
|
||||||
|
</Function>
|
||||||
|
<Function name='FindSelection' theme='_fallback' return='int' arguments='table list'>
|
||||||
|
[02 Utilities.lua] Return the index of a true value in <code>list</code>.
|
||||||
|
</Function>
|
||||||
<Function name='FindValue' theme='_fallback' return='string' arguments='table tab, various value'>
|
<Function name='FindValue' theme='_fallback' return='string' arguments='table tab, various value'>
|
||||||
[02 Utilities.lua] Find a key in <code>tab</code> with the given <code>value</code>.
|
[02 Utilities.lua] Find a key in <code>tab</code> with the given <code>value</code>.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='FindSelection' theme='_fallback' return='int' arguments='table list'>
|
<Function name='foreach_ordered' theme='_fallback' return='void' arguments='table t, function f'>
|
||||||
[02 Utilities.lua] Return the index of a true value in <code>list</code>.
|
<code>func</code> takes a key and a value.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='FormatNumberAndSuffix' return='string' arguments='int num'>
|
<Function name='FormatNumberAndSuffix' return='string' arguments='int num'>
|
||||||
Returns the number passed to the function followed by its suffix ("th", "nd", and so on).
|
Returns the number passed to the function followed by its suffix ("th", "nd", and so on).
|
||||||
@@ -98,6 +132,12 @@
|
|||||||
<Function name='GetCustomDifficulty' return='string' arguments='StepsType st, Difficulty d, CourseType ct'>
|
<Function name='GetCustomDifficulty' return='string' arguments='StepsType st, Difficulty d, CourseType ct'>
|
||||||
Returns the corresponding CustomDifficulty string for a StepsType/Difficulty (/optional CourseType) combination.
|
Returns the corresponding CustomDifficulty string for a StepsType/Difficulty (/optional CourseType) combination.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetDirectRadar' theme='_fallback' return='RadarValues' arguments='PlayerNumber pn'>
|
||||||
|
[04 Scoring.lua] "Get the radar values directly. The individual steps aren't used much."
|
||||||
|
</Function>
|
||||||
|
<Function name='GetEditModeSubScreens' theme='_fallback' return='string' arguments=''>
|
||||||
|
[02 Other.lua] Returns a string with the Edit Mode SubScreens.
|
||||||
|
</Function>
|
||||||
<Function name='getenv' theme='_fallback' return='various' arguments='string name'>
|
<Function name='getenv' theme='_fallback' return='various' arguments='string name'>
|
||||||
[03 EnvUtils2.lua] Returns the value of <code>name</code> from the Env table.
|
[03 EnvUtils2.lua] Returns the value of <code>name</code> from the Env table.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -113,21 +153,45 @@
|
|||||||
<Function name='GetOSName' return='string' arguments=''>
|
<Function name='GetOSName' return='string' arguments=''>
|
||||||
Returns a string representing the name of the operating system being used. (e.g. "Windows", "Linux", "Mac, "Unknown")
|
Returns a string representing the name of the operating system being used. (e.g. "Windows", "Linux", "Mac, "Unknown")
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetPlayerOrMachineProfile' theme='_fallback' return='Profile' arguments='PlayerNumber pn'>
|
||||||
|
[03 ProductivityHelpers.lua] "This returns a profile, preferably a player one. If there isn't one, [it falls] back on the machine profile."
|
||||||
|
</Function>
|
||||||
<Function name='GetProTiming' theme='default' return='bool' arguments='PlayerNumber pn'>
|
<Function name='GetProTiming' theme='default' return='bool' arguments='PlayerNumber pn'>
|
||||||
[03 ThemePrefs.lua] Returns <code>true</code> if player <code>pn</code> is using ProTiming.
|
[03 ThemePrefs.lua] Returns <code>true</code> if player <code>pn</code> is using ProTiming.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='GetRandomSongBackground' theme='_fallback' return='string' arguments=''>
|
<Function name='GetRandomSongBackground' theme='_fallback' return='string' arguments=''>
|
||||||
[02 Utilities.lua] Returns a path to a random song background.
|
[02 Utilities.lua] Returns a path to a random song background.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetReal' theme="_fallback" return='float' arguments=''>
|
||||||
|
[03 ProductivityHelpers.lua]
|
||||||
|
</Function>
|
||||||
|
<Function name='GetRealInverse' theme="_fallback" return='float' arguments=''>
|
||||||
|
[03 ProductivityHelpers.lua]
|
||||||
|
</Function>
|
||||||
|
<Function name='GetScreenAspectRatio' return='float' arguments=''>
|
||||||
|
Returns the display aspect ratio.
|
||||||
|
</Function>
|
||||||
<Function name='GetServerName' return='string' arguments=''>
|
<Function name='GetServerName' return='string' arguments=''>
|
||||||
Returns the name of the currently connected server.
|
Returns the name of the currently connected server.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='GetSongBackground' theme='_fallback' return='string' arguments=''>
|
<Function name='GetSongBackground' theme='_fallback' return='string' arguments=''>
|
||||||
[02 Utilities.lua] Returns a path to the current songs background.
|
[02 Utilities.lua] Returns a path to the current songs background.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetTapPosition' theme='_fallback' return='float' arguments=''>
|
||||||
|
[03 Gameplay.lua]
|
||||||
|
</Function>
|
||||||
<Function name='GetThemeAspectRatio' return='float' arguments=''>
|
<Function name='GetThemeAspectRatio' return='float' arguments=''>
|
||||||
Returns the theme's aspect ratio.
|
Returns the theme's aspect ratio.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetThemePref' theme='_fallback' return='' arguments=''>
|
||||||
|
[03 ThemePrefs.lua] (Alias for <Link class='ThemePrefs' function='Get' />.)
|
||||||
|
</Function>
|
||||||
|
<Function name='GetTimingDifficulty' return='int' arguments=''>
|
||||||
|
Returns the current Timing difficulty.
|
||||||
|
</Function>
|
||||||
|
<Function name='GetTotalItems' theme='_fallback' return='float' arguments='RadarValues radars'>
|
||||||
|
[04 Scoring.lua] "Retrieve the amount of taps/holds/rolls involved." Used in some scoring formulas.
|
||||||
|
</Function>
|
||||||
<Function name='GetUserPref' theme='_fallback' return='string' arguments='string name'>
|
<Function name='GetUserPref' theme='_fallback' return='string' arguments='string name'>
|
||||||
[03 UserPreferences2.lua] Themer-facing function for getting a user preference.
|
[03 UserPreferences2.lua] Themer-facing function for getting a user preference.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -140,9 +204,38 @@
|
|||||||
<Function name='GetUserPrefN' theme='_fallback' return='float' arguments='string name'>
|
<Function name='GetUserPrefN' theme='_fallback' return='float' arguments='string name'>
|
||||||
[03 UserPreferences2.lua] Themer-facing function for getting a user preference as a number.
|
[03 UserPreferences2.lua] Themer-facing function for getting a user preference as a number.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='HasAlpha' theme='_fallback' return='float' arguments='color c'>
|
||||||
|
[03 HSV.lua] Returns the color's alpha if it has any, otherwise returns 1.
|
||||||
|
</Function>
|
||||||
|
<Function name='HitCombo' theme='_fallback' return='int' arguments=''>
|
||||||
|
[03 Gameplay.lua] Returns the value to start showing the combo at.
|
||||||
|
</Function>
|
||||||
|
<Function name='HoldHeadStep' theme='_fallback' return='bool' arguments=''>
|
||||||
|
[03 Gameplay.lua] Returns <code>true</code> if you need to step on hold heads to activate them.
|
||||||
|
</Function>
|
||||||
|
<Function name='HoldTiming' theme='_fallback' return='float' arguments=''>
|
||||||
|
[03 Gameplay.lua] Returns 0 in <code>pump</code> mode, <code>TimingWindowSecondsHold</code> preference value in any other game mode.
|
||||||
|
</Function>
|
||||||
<Function name='Hour' return='int' arguments=''>
|
<Function name='Hour' return='int' arguments=''>
|
||||||
Returns the current hour.
|
Returns the current hour.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='HSV' theme='_fallback' return='color' arguments='float h, float s, float v'>
|
||||||
|
[03 HSV.lua] Converts a color from HSV values to something StepMania can understand.
|
||||||
|
hue is from <code>0-360</code>, saturation and value are <code>0..1</code>
|
||||||
|
</Function>
|
||||||
|
<Function name='HSVA' theme='_fallback' return='color' arguments='float h, float s, float v, float a'>
|
||||||
|
[03 HSV.lua] Converts a color from HSV values with alpha to something StepMania can understand.
|
||||||
|
hue is from <code>0-360</code>, saturation, value, and alpha are <code>0..1</code>
|
||||||
|
</Function>
|
||||||
|
<Function name='HSVToColor' theme='_fallback' return='color' arguments='table hsv'>
|
||||||
|
[03 HSV.lua] "Converts a set of HSV values to a color."
|
||||||
|
</Function>
|
||||||
|
<Function name='HSVToHex' theme='_fallback' return='string' arguments='table hsv'>
|
||||||
|
[03 HSV.lua] "Takes in a normal color and returns the hex representation. (Adapted from code in LuaBit)"
|
||||||
|
</Function>
|
||||||
|
<Function name='Hue' theme='_fallback' return='color' arguments='color c, int newHue'>
|
||||||
|
[03 HSV.lua] Changes the hue of the input color.
|
||||||
|
</Function>
|
||||||
<Function name='InitUserPrefs' theme='default' return='void' arguments=''>
|
<Function name='InitUserPrefs' theme='default' return='void' arguments=''>
|
||||||
[03 ThemePrefs.lua] Initializes various user preferences.
|
[03 ThemePrefs.lua] Initializes various user preferences.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -206,6 +299,12 @@
|
|||||||
<Function name='Minute' return='int' arguments=''>
|
<Function name='Minute' return='int' arguments=''>
|
||||||
Returns the current Minute.
|
Returns the current Minute.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='MissCombo' theme='_fallback' return='int' arguments=''>
|
||||||
|
[03 Gameplay.lua] Returns the value to start showing the miss combo at.
|
||||||
|
</Function>
|
||||||
|
<Function name='module' return='' arguments='string name, ...'>
|
||||||
|
Creates a module. See the Lua manual for more details.
|
||||||
|
</Function>
|
||||||
<Function name='MonthOfYear' return='int' arguments=''>
|
<Function name='MonthOfYear' return='int' arguments=''>
|
||||||
Returns the current month of the year.
|
Returns the current month of the year.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -215,6 +314,20 @@
|
|||||||
<Function name='MonthToString' return='string' arguments='Month m'>
|
<Function name='MonthToString' return='string' arguments='Month m'>
|
||||||
Returns Month <code>m</code> as a string.
|
Returns Month <code>m</code> as a string.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='next' return='' arguments='table t, int index'>
|
||||||
|
"Allows a program to traverse all fields of a table. Its first argument is a
|
||||||
|
table and its second argument is an index in this table.
|
||||||
|
<code>next</code> returns the next index of the table and its associated value."
|
||||||
|
See the Lua manual for more details.
|
||||||
|
</Function>
|
||||||
|
<Function name='OptionRowProTiming' theme='default' return='LuaOptionRow' arguments=''>
|
||||||
|
[03 ThemePrefs.lua] Returns a Lua option row for ProTiming.
|
||||||
|
</Function>
|
||||||
|
<Function name='pairs' return='' arguments='table t'>
|
||||||
|
"Returns three values: the <Link class='GLOBAL' function='next' /> function, the table <code>t</code>, and <code>nil</code>,
|
||||||
|
so that the construction <code>for k,v in pairs(t) do body end</code>
|
||||||
|
will iterate over all key–value pairs of table <code>t</code>."
|
||||||
|
</Function>
|
||||||
<Function name='pname' theme='_fallback' return='string' arguments='PlayerNumber pn'>
|
<Function name='pname' theme='_fallback' return='string' arguments='PlayerNumber pn'>
|
||||||
[03 ProductivityHelpers.lua] Converts a PlayerNumber into a short string (e.g. "P1", "P2").
|
[03 ProductivityHelpers.lua] Converts a PlayerNumber into a short string (e.g. "P1", "P2").
|
||||||
</Function>
|
</Function>
|
||||||
@@ -233,6 +346,16 @@
|
|||||||
<Function name='ProductVersion' return='string' arguments=''>
|
<Function name='ProductVersion' return='string' arguments=''>
|
||||||
Returns the product version.
|
Returns the product version.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='rawequal' return='bool' arguments='various v1, varoius v2'>
|
||||||
|
"Checks whether <code>v1</code> is equal to <code>v2</code>, without invoking any metamethod."
|
||||||
|
</Function>
|
||||||
|
<Function name='rawget' return='various' arguments='table t, various index'>
|
||||||
|
"Gets the real value of <code>t[index]</code>, without invoking any metamethod."
|
||||||
|
</Function>
|
||||||
|
<Function name='rawset' return='table' arguments='table t, int index, various value'>
|
||||||
|
"Sets the real value of <code>t[index]</code> to <code>value</code>, without invoking any metamethod."
|
||||||
|
The modified <code>t</code> is then returned.
|
||||||
|
</Function>
|
||||||
<Function name='ResolveRelativePath' theme='_fallback' return='string' arguments='string path, int level'>
|
<Function name='ResolveRelativePath' theme='_fallback' return='string' arguments='string path, int level'>
|
||||||
[02 ActorDef.lua]
|
[02 ActorDef.lua]
|
||||||
</Function>
|
</Function>
|
||||||
@@ -242,12 +365,27 @@
|
|||||||
<Function name='ReadPrefFromFile' theme='_fallback' return='string' arguments='string prefName'>
|
<Function name='ReadPrefFromFile' theme='_fallback' return='string' arguments='string prefName'>
|
||||||
[03 UserPreferences2.lua] (internal) Reads the specified user preference from its config file.
|
[03 UserPreferences2.lua] (internal) Reads the specified user preference from its config file.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='ReportStyle' return='void' arguments=''>
|
||||||
|
Sends the current style to the server.
|
||||||
|
</Function>
|
||||||
|
<Function name='require' return='' arguments='string modname'>
|
||||||
|
Loads the specified module. See the Lua manual for more information.
|
||||||
|
</Function>
|
||||||
<Function name='round' theme='_fallback' return='int' arguments='float val, int decimal'>
|
<Function name='round' theme='_fallback' return='int' arguments='float val, int decimal'>
|
||||||
[02 Utilities.lua] Round a number.
|
[02 Utilities.lua] Round a number.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='Saturation' theme='_fallback' return='color' arguments='color c, float percent'>
|
||||||
|
[03 HSV.lua] Modifies the saturation of the specified color
|
||||||
|
</Function>
|
||||||
<Function name='ScoreKeeperClass' theme='_fallback' return='string' arguments=''>
|
<Function name='ScoreKeeperClass' theme='_fallback' return='string' arguments=''>
|
||||||
[03 Gameplay.lua] Returns the primary ScoreKeeper class to use.
|
[03 Gameplay.lua] Returns the primary ScoreKeeper class to use.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='ScreenMetric' theme='_fallback' return='string' arguments='string s'>
|
||||||
|
[00 alias.lua, 02 Other.lua] alias for <Link class='Screen' function='Metric' />.
|
||||||
|
</Function>
|
||||||
|
<Function name='ScreenString' theme='_fallback' return='string' arguments='string s'>
|
||||||
|
[00 alias.lua, 02 Other.lua] alias for <Link class='Screen' function='String' />.
|
||||||
|
</Function>
|
||||||
<Function name='Second' return='int' arguments=''>
|
<Function name='Second' return='int' arguments=''>
|
||||||
Returns the current second.
|
Returns the current second.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -269,12 +407,20 @@
|
|||||||
<Function name='SecondsToMMSSMsMsMs' return='string' arguments='float fSecs'>
|
<Function name='SecondsToMMSSMsMsMs' return='string' arguments='float fSecs'>
|
||||||
Converts <code>fSecs</code> to Minutes:Seconds.Milliseconds format using two digits for each section except Milliseconds (uses 3).
|
Converts <code>fSecs</code> to Minutes:Seconds.Milliseconds format using two digits for each section except Milliseconds (uses 3).
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='select' return='various' arguments='various index, ...'>
|
||||||
|
"If <code>index</code> is a number, returns all arguments after argument
|
||||||
|
number <code>index</code>. Otherwise, <code>index</code> must be the string
|
||||||
|
<code>"#"</code>, and [it] returns the total number of extra arguments it received."
|
||||||
|
</Function>
|
||||||
<Function name='SelectMusicOrCourse' theme='_fallback' return='string' arguments=''>
|
<Function name='SelectMusicOrCourse' theme='_fallback' return='string' arguments=''>
|
||||||
[02 Branches.lua] Determines the correct music/course selection screen to use and returns it.
|
[02 Branches.lua] Determines the correct music/course selection screen to use and returns it.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='SelectProfileKeys' theme='_fallback' return='string' arguments=''>
|
<Function name='SelectProfileKeys' theme='_fallback' return='string' arguments=''>
|
||||||
[03 Gameplay.lua] (soon to be deprecated) Returns a list of codes to use on ScreenSelectProfile.
|
[03 Gameplay.lua] (soon to be deprecated) Returns a list of codes to use on ScreenSelectProfile.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='Serialize' return='string' arguments='table t'>
|
||||||
|
[02 Serialize.lua] Serialize the table <code>t</code>.
|
||||||
|
</Function>
|
||||||
<Function name='setenv' theme='_fallback' return='various' arguments='string name, various value'>
|
<Function name='setenv' theme='_fallback' return='various' arguments='string name, various value'>
|
||||||
[03 EnvUtils2.lua] Sets the value of <code>name</code> to <code>value</code> in the Env table.
|
[03 EnvUtils2.lua] Sets the value of <code>name</code> to <code>value</code> in the Env table.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -299,6 +445,12 @@
|
|||||||
<Function name='StandardDecorationFromFileOptional' theme='_fallback' return='Actor' arguments='string sMetricsName, string sFileName'>
|
<Function name='StandardDecorationFromFileOptional' theme='_fallback' return='Actor' arguments='string sMetricsName, string sFileName'>
|
||||||
[02 ActorDef.lua]
|
[02 ActorDef.lua]
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='tableshuffle' theme='_fallback' return='table' arguments='table t'>
|
||||||
|
[02 Utilities.lua] Returns a shuffled version of <code>t</code>.
|
||||||
|
</Function>
|
||||||
|
<Function name='tableslice' theme='_fallback' return='table' arguments='table t, int num'>
|
||||||
|
[02 Utilities.lua] Returns a slice of the specified table of size <code>num</code>.
|
||||||
|
</Function>
|
||||||
<Function name='TableStringLookup' theme='_fallback' return='table' arguments='table t, string group'>
|
<Function name='TableStringLookup' theme='_fallback' return='table' arguments='table t, string group'>
|
||||||
[02 Utilities.lua] Look up each value in a table, returning a table with the resulting strings.
|
[02 Utilities.lua] Look up each value in a table, returning a table with the resulting strings.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -308,42 +460,64 @@
|
|||||||
<Function name='tobool' theme='_fallback' return='bool' arguments='various v'>
|
<Function name='tobool' theme='_fallback' return='bool' arguments='various v'>
|
||||||
[03 ProductivityHelpers.lua] Converts a string or number to a bool.
|
[03 ProductivityHelpers.lua] Converts a string or number to a bool.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='tonumber' return='float' arguments='various e, int base'>
|
||||||
|
Tries to convert <code>e</code> to a number. Returns <code>nil</code> if
|
||||||
|
it can't convert the input to a number. (<code>base</code> is optional.)
|
||||||
|
</Function>
|
||||||
|
<Function name='tostring' return='string' arguments='various e'>
|
||||||
|
Converts <code>e</code> to a string.
|
||||||
|
</Function>
|
||||||
<Function name='ToEnumShortString' theme='_fallback' return='string' arguments='enum e'>
|
<Function name='ToEnumShortString' theme='_fallback' return='string' arguments='enum e'>
|
||||||
[02 Enum.lua] Returns a string representing an enum starting from '_'. For example, passing <Link class='ENUM' function='PlayerNumber'>PlayerNumber_P1</Link> to this function will return <code>P1</code>.
|
[02 Enum.lua] Returns a string representing an enum starting from '_'. For example, passing <Link class='ENUM' function='PlayerNumber'>PlayerNumber_P1</Link> to this function will return <code>P1</code>.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='Trace' theme='_fallback' return='void' arguments='string sString'>
|
<Function name='Trace' theme='_fallback' return='void' arguments='string sString'>
|
||||||
[00 init.lua] Alias for <Link class='lua' function='Trace' />.
|
[00 init.lua] Alias for <Link class='lua' function='Trace' />.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='type' return='string' arguments='various v'>
|
||||||
|
Returns the type of the object as a string. See the Lua manual for valid return values.
|
||||||
|
</Function>
|
||||||
|
<Function name='unpack' return='' arguments='table list, int i, int j'>
|
||||||
|
"Returns the elements from the given table.
|
||||||
|
This function is equivalent to <code>return list[i], list[i+1], ···, list[j]</code>"
|
||||||
|
(<code>i</code> and <code>j</code> are optional; "by default, i is 1 and j is the length of the list.")
|
||||||
|
</Function>
|
||||||
<Function name='URLEncode' return='string' arguments='string sInput'>
|
<Function name='URLEncode' return='string' arguments='string sInput'>
|
||||||
Returns a string with characters escaped for URLs. (e.g. a space becomes '%20')
|
Returns a string with characters escaped for URLs. (e.g. a space becomes '%20')
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='Var' theme='_fallback' return='ThreadVariable' arguments=''>
|
<Function name='Var' theme='_fallback' return='ThreadVariable' arguments=''>
|
||||||
[01 base.lua] Alias for <Link class="lua" function="GetThreadVariable">lua.GetThreadVariable</Link>.
|
[01 base.lua] Alias for <Link class="lua" function="GetThreadVariable">lua.GetThreadVariable</Link>.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='VersionDate' return='string' arguments=''>
|
||||||
|
Returns the current version's build date.
|
||||||
|
</Function>
|
||||||
|
<Function name='VersionTime' return='string' arguments=''>
|
||||||
|
Returns the current version's build time.
|
||||||
|
</Function>
|
||||||
<Function name='Warn' theme='_fallback' return='void' arguments='string sString'>
|
<Function name='Warn' theme='_fallback' return='void' arguments='string sString'>
|
||||||
[00 init.lua] Alias for <Link class='lua' function='Warn' />.
|
[00 init.lua] Alias for <Link class='lua' function='Warn' />.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='WideScale' theme='_fallback' return='float' arguments='float ar43, float ar169'>
|
<Function name='WideScale' theme='_fallback' return='float' arguments='float ar43, float ar169'>
|
||||||
[04 WidescreenHelpers.lua] Depending on the screen width, scales between <code>ar43</code> (4:3; 640px) and <code>ar169</code> (16:9; 854px).
|
[04 WidescreenHelpers.lua] Depending on the screen width, scales between <code>ar43</code> (4:3; 640px) and <code>ar169</code> (16:9; 854px).
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='wrap' theme='_fallback' return='float' arguments='float val, float n'>
|
||||||
|
[02 Utilities.lua]
|
||||||
|
</Function>
|
||||||
<Function name='WrapInActorFrame' theme='_fallback' return='ActorFrame' arguments='table children'>
|
<Function name='WrapInActorFrame' theme='_fallback' return='ActorFrame' arguments='table children'>
|
||||||
[02 ActorDef.lua] Wraps the children in an ActorFrame.
|
[02 ActorDef.lua] Wraps the children in an ActorFrame.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='WriteFile' theme='_fallback' return='bool' arguments='string path, string buf'>
|
<Function name='WriteFile' theme='_fallback' return='bool' arguments='string path, string buf'>
|
||||||
[04 FileUtils.lua] Writes <code>buf</code> to the file at <code>path</code>.
|
[04 FileUtils.lua] Writes <code>buf</code> to the file at <code>path</code>.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='WriteGamePrefToFile' theme='_fallback' return='' arguments='string name'>
|
||||||
|
[03 GamePreferences.lua]
|
||||||
|
</Function>
|
||||||
<Function name='WritePrefToFile' theme='_fallback' return='bool' arguments='string prefName, various value'>
|
<Function name='WritePrefToFile' theme='_fallback' return='bool' arguments='string prefName, various value'>
|
||||||
[03 UserPreferences2.lua] (internal) Writes user preference <code>prefName</code> to its config file with <code>value</code> being <code>tostring</code>'d.
|
[03 UserPreferences2.lua] (internal) Writes user preference <code>prefName</code> to its config file with <code>value</code> being <code>tostring</code>'d.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='Year' return='int' arguments=''>
|
<Function name='Year' return='int' arguments=''>
|
||||||
Returns the current year.
|
Returns the current year.
|
||||||
</Function>
|
</Function>
|
||||||
<!-- new sm-ssc additions here -->
|
|
||||||
|
|
||||||
<!-- default theme preferences -->
|
|
||||||
<Function name='OptionRowProTiming' theme='default' return='LuaOptionRow' arguments=''>
|
|
||||||
[03 ThemePrefs.lua] Returns a Lua option row for ProTiming.
|
|
||||||
</Function>
|
|
||||||
<Function name='UserPrefAutoSetStyle' theme='default' return='LuaOptionRow' arguments=''>
|
<Function name='UserPrefAutoSetStyle' theme='default' return='LuaOptionRow' arguments=''>
|
||||||
[03 ThemePrefs.lua] Returns a Lua option row for toggling AutoSetStyle.
|
[03 ThemePrefs.lua] Returns a Lua option row for toggling AutoSetStyle.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -367,9 +541,16 @@
|
|||||||
<!-- Namespaces -->
|
<!-- Namespaces -->
|
||||||
<Namespaces>
|
<Namespaces>
|
||||||
<Namespace name='ActorUtil'>
|
<Namespace name='ActorUtil'>
|
||||||
|
<Function name='GetFileType' return='FileType' arguments='string sPath'>
|
||||||
|
Returns the <Link class='ENUM' function='FileType' /> for the file at <code>sPath</code>.
|
||||||
|
</Function>
|
||||||
<Function name='IsRegisteredClass' return='bool' arguments='string sClassName'>
|
<Function name='IsRegisteredClass' return='bool' arguments='string sClassName'>
|
||||||
Returns <code>true</code> if <code>sClassName</code> is a registered Class.
|
Returns <code>true</code> if <code>sClassName</code> is a registered Class.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='LoadAllCommandsAndSetXY' return='void' arguments='Actor a'>
|
||||||
|
Loads all commands and sets X and Y for the specified Actor.
|
||||||
|
</Function>
|
||||||
|
<Function name='ResolvePath' return='string' arguments='string sPath, int iLevel' />
|
||||||
</Namespace>
|
</Namespace>
|
||||||
<Namespace name='Enum'>
|
<Namespace name='Enum'>
|
||||||
<Description>
|
<Description>
|
||||||
@@ -414,6 +595,20 @@
|
|||||||
</Function>
|
</Function>
|
||||||
</Namespace>
|
</Namespace>
|
||||||
<Namespace name='lua'>
|
<Namespace name='lua'>
|
||||||
|
<Function name='CheckType' return='bool' arguments='string sType, various v'>
|
||||||
|
Returns <code>true</code> if the type of <code>v</code> is <code>sType</code>.
|
||||||
|
</Function>
|
||||||
|
<Function name='Flush' return='void' arguments='' >
|
||||||
|
Flushes log files to disk.
|
||||||
|
</Function>
|
||||||
|
<Function name='GetThreadVariable' return='LuaThreadVariable' arguments='string s' />
|
||||||
|
<Function name='ReadFile' return='string' arguments='string sPath'>
|
||||||
|
Tries to read the file at <code>sPath</code>. If successful, it returns the file's contents.
|
||||||
|
If unsuccessful, it returns two values: <code>nil</code> and <code>"error"</code>.
|
||||||
|
</Function>
|
||||||
|
<Function name='RunWithThreadVariables' return='int' arguments='function func, table t, ...'>
|
||||||
|
Calls <code>func(...)</code> with two LuaThreadVariables set, and returns the return values of <code>func()</code>.
|
||||||
|
</Function>
|
||||||
<Function name='Trace' return='void' arguments='string sString'>
|
<Function name='Trace' return='void' arguments='string sString'>
|
||||||
Writes <code>sString</code> to log.txt. Aliased by
|
Writes <code>sString</code> to log.txt. Aliased by
|
||||||
<Link class='GLOBAL' function='Trace' />.
|
<Link class='GLOBAL' function='Trace' />.
|
||||||
@@ -422,9 +617,6 @@
|
|||||||
Writes <code>sString</code> to info.txt and log.txt as
|
Writes <code>sString</code> to info.txt and log.txt as
|
||||||
a warning. Aliased by <Link class='GLOBAL' function='Warn' />.
|
a warning. Aliased by <Link class='GLOBAL' function='Warn' />.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='Flush' return='void' arguments='' >
|
|
||||||
Flushes log files to disk.
|
|
||||||
</Function>
|
|
||||||
</Namespace>
|
</Namespace>
|
||||||
<Namespace name='RageFileUtil'>
|
<Namespace name='RageFileUtil'>
|
||||||
<Function name='CreateRageFile' return='RageFile' arguments=''>
|
<Function name='CreateRageFile' return='RageFile' arguments=''>
|
||||||
@@ -437,6 +629,9 @@
|
|||||||
</Function>
|
</Function>
|
||||||
</Namespace>
|
</Namespace>
|
||||||
<Namespace name='SongUtil'>
|
<Namespace name='SongUtil'>
|
||||||
|
<Function name='GetPlayableSteps' return='Steps' arguments='Song so'>
|
||||||
|
Gets the playable Steps for the present Song based on the present Game.
|
||||||
|
</Function>
|
||||||
<Function name='IsStepsPlayable' return='bool' arguments='Song so, Steps st'>
|
<Function name='IsStepsPlayable' return='bool' arguments='Song so, Steps st'>
|
||||||
Returns true if the song's steps (<code>st</code>) are playable.
|
Returns true if the song's steps (<code>st</code>) are playable.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -560,7 +755,21 @@
|
|||||||
[02 Actor.lua]
|
[02 Actor.lua]
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='Center' theme='_fallback' return='void' arguments=''>
|
<Function name='Center' theme='_fallback' return='void' arguments=''>
|
||||||
[02 Actor.lua] Centers an Actor.
|
[02 Actor.lua] Centers an Actor on the screen. (equivalent to <code>x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y</code>)
|
||||||
|
</Function>
|
||||||
|
<Function name='CenterX' theme='_fallback' return='void' arguments=''>
|
||||||
|
[03 ProductivityHelpers.lua] Centers an Actor on the X axis. (equivalent to <code>x,SCREEN_CENTER_X</code>)
|
||||||
|
</Function>
|
||||||
|
<Function name='CenterY' theme='_fallback' return='void' arguments=''>
|
||||||
|
[03 ProductivityHelpers.lua] Centers an Actor on the y axis. (equivalent to <code>y,SCREEN_CENTER_Y</code>)
|
||||||
|
</Function>
|
||||||
|
<Function name='clearzbuffer' return='void' arguments='bool bClear'>
|
||||||
|
Determines if the z-buffer should be cleared or not.
|
||||||
|
</Function>
|
||||||
|
<Function name='compound' theme='_fallback' return='void' arguments='float length, string tweens'>
|
||||||
|
[02 Actor.lua] Combines multiple interpolators for complex tweens. <code>tweens</code>
|
||||||
|
can either be a string like <code>"linear,0.25,accelerate,0.75"</code> or
|
||||||
|
a table with tween information <code>{ {Type="linear", Percent=0.25, Bezier=nil}, {Type="accelerate", Percent=0.75, Bezier=nil} }</code>
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='cropbottom' return='void' arguments='float percent'>
|
<Function name='cropbottom' return='void' arguments='float percent'>
|
||||||
Crops <code>percent</code> of the Actor from the bottom, where <code>percent</code> is in the range 0..1.
|
Crops <code>percent</code> of the Actor from the bottom, where <code>percent</code> is in the range 0..1.
|
||||||
@@ -853,6 +1062,9 @@
|
|||||||
<Function name='stopeffect' return='void' arguments=''>
|
<Function name='stopeffect' return='void' arguments=''>
|
||||||
Stops any effect the Actor has.
|
Stops any effect the Actor has.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='stoptweening' return='void' arguments=''>
|
||||||
|
Stops any tweening.
|
||||||
|
</Function>
|
||||||
<Function name='stretchto' return='void' arguments='float x1, float y1, float x2, float y2'>
|
<Function name='stretchto' return='void' arguments='float x1, float y1, float x2, float y2'>
|
||||||
Stretches the Actor to a rectangle of a specific size.
|
Stretches the Actor to a rectangle of a specific size.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -877,6 +1089,12 @@
|
|||||||
<Function name='z' return='void' arguments='float zPos'>
|
<Function name='z' return='void' arguments='float zPos'>
|
||||||
Set the z position of the Actor to <code>zPos</code>.
|
Set the z position of the Actor to <code>zPos</code>.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='zbias' return='void' arguments='float fBias'>
|
||||||
|
Sets the z bias to <code>fBias</code>.
|
||||||
|
</Function>
|
||||||
|
<Function name='zbuffer' return='void' arguments='bool bUse'>
|
||||||
|
Enables/disables z-buffer depending on <code>bUse</code>.
|
||||||
|
</Function>
|
||||||
<Function name='zoom' return='void' arguments='float zoom'>
|
<Function name='zoom' return='void' arguments='float zoom'>
|
||||||
Zooms the Actor to <code>zoom</code> scale.
|
Zooms the Actor to <code>zoom</code> scale.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -898,19 +1116,19 @@
|
|||||||
<Function name='zoomz' return='void' arguments='float zoom'>
|
<Function name='zoomz' return='void' arguments='float zoom'>
|
||||||
Zooms the Actor to <code>zoom</code> scale on the Z axis.
|
Zooms the Actor to <code>zoom</code> scale on the Z axis.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='ztest' return='void' arguments='bool bTest'>
|
||||||
|
Sets the z testing mode to write on pass if <code>true</code>, turns it off if <code>false</code>
|
||||||
|
</Function>
|
||||||
|
<Function name='ztestmode' return='void' arguments='ZTestMode testMode'>
|
||||||
|
Sets the z testing mode to <code>testMode</code>.
|
||||||
|
</Function>
|
||||||
|
<Function name='zwrite' return='void' arguments='bool bWrite'>
|
||||||
|
Sets z writing to <code>true</code> or <code>false</code> based on <code>bWrite</code>.
|
||||||
|
</Function>
|
||||||
<!-- addons from scripts that come with sm-ssc (non-compat) -->
|
<!-- addons from scripts that come with sm-ssc (non-compat) -->
|
||||||
<Function name='bezier' theme='_fallback' return='void' arguments=''>
|
<Function name='bezier' theme='_fallback' return='void' arguments=''>
|
||||||
[02 Actor.lua]
|
[02 Actor.lua]
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='Center' theme='_fallback' return='void' arguments=''>
|
|
||||||
[02 Actor.lua] Centers an Actor on the screen. (equivalent to <code>x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y</code>)
|
|
||||||
</Function>
|
|
||||||
<Function name='CenterX' theme='_fallback' return='void' arguments=''>
|
|
||||||
[03 ProductivityHelpers.lua] Centers an Actor on the X axis. (equivalent to <code>x,SCREEN_CENTER_X</code>)
|
|
||||||
</Function>
|
|
||||||
<Function name='CenterY' theme='_fallback' return='void' arguments=''>
|
|
||||||
[03 ProductivityHelpers.lua] Centers an Actor on the y axis. (equivalent to <code>y,SCREEN_CENTER_Y</code>)
|
|
||||||
</Function>
|
|
||||||
<Function name='FullScreen' theme='_fallback' return='void' arguments=''>
|
<Function name='FullScreen' theme='_fallback' return='void' arguments=''>
|
||||||
[02 Actor.lua] Stretches an Actor to cover the screen. (equivalent to <code>stretchto,0,0,SCREEN_WIDTH,SCREEN_HEIGHT</code>)
|
[02 Actor.lua] Stretches an Actor to cover the screen. (equivalent to <code>stretchto,0,0,SCREEN_WIDTH,SCREEN_HEIGHT</code>)
|
||||||
</Function>
|
</Function>
|
||||||
@@ -1163,7 +1381,7 @@
|
|||||||
Loads the card image from the specified Character.
|
Loads the card image from the specified Character.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='LoadFromCachedBanner' return='void' arguments='string sPath'>
|
<Function name='LoadFromCachedBanner' return='void' arguments='string sPath'>
|
||||||
|
Loads the banner from the cache based on <code>sPath</code> (typically <Link class='Song' function='GetBannerPath' /> or <Link class='Course' function='GetBannerPath' />).
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='LoadFromCourse' return='void' arguments='Course c'>
|
<Function name='LoadFromCourse' return='void' arguments='Course c'>
|
||||||
Loads a Banner from a specified Course.
|
Loads a Banner from a specified Course.
|
||||||
@@ -1322,6 +1540,9 @@
|
|||||||
<Function name='GetRandomCharacter' return='Character' arguments=''>
|
<Function name='GetRandomCharacter' return='Character' arguments=''>
|
||||||
Returns a random character.
|
Returns a random character.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetCharacterCount' return='int' arguments=''>
|
||||||
|
Returns the number of characters available.
|
||||||
|
</Function>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='ComboGraph'>
|
<Class name='ComboGraph'>
|
||||||
<Function name='Load' return='void' arguments='string sMetricsGroup'>
|
<Function name='Load' return='void' arguments='string sMetricsGroup'>
|
||||||
@@ -1452,6 +1673,9 @@
|
|||||||
<Function name='MD5String' return='string' arguments='string s'>
|
<Function name='MD5String' return='string' arguments='string s'>
|
||||||
Returns the MD5 hash for <code>s</code>.
|
Returns the MD5 hash for <code>s</code>.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='SHA1File' return='string' arguments='string sPath'>
|
||||||
|
Returns the SHA-1 hash for the file at <code>sPath</code>.
|
||||||
|
</Function>
|
||||||
<Function name='SHA1String' return='string' arguments='string s'>
|
<Function name='SHA1String' return='string' arguments='string s'>
|
||||||
Returns the SHA-1 hash for <code>s</code>.
|
Returns the SHA-1 hash for <code>s</code>.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -2004,6 +2228,9 @@
|
|||||||
</Function>
|
</Function>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='LifeMeterBattery'>
|
<Class name='LifeMeterBattery'>
|
||||||
|
<Function name='ChangeLives' return='void' arguments='int iNumLives'>
|
||||||
|
Changes the player's life by <code>iNumLives</code>. (Negative values subtract lives.)
|
||||||
|
</Function>
|
||||||
<Function name='GetLivesLeft' return='int' arguments=''>
|
<Function name='GetLivesLeft' return='int' arguments=''>
|
||||||
Returns the number of lives remaining.
|
Returns the number of lives remaining.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -2347,6 +2574,9 @@
|
|||||||
|
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='GetSongAttacks' return='float' arguments=''>
|
<Function name='GetSongAttacks' return='float' arguments=''>
|
||||||
|
This function is deprecated. Please use GetStepAttacks() instead.
|
||||||
|
</Function>
|
||||||
|
<Function name='GetStepAttacks' return='float' arguments=''>
|
||||||
|
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='GetSplit' return='float' arguments=''>
|
<Function name='GetSplit' return='float' arguments=''>
|
||||||
@@ -2701,7 +2931,9 @@
|
|||||||
</Function>
|
</Function>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='ProfileManager'>
|
<Class name='ProfileManager'>
|
||||||
<Function name='GetLocalProfile' return='Profile' arguments='string sProfileID' />
|
<Function name='GetLocalProfile' return='Profile' arguments='string sProfileID'>
|
||||||
|
Returns the Profile for the specified profile ID.
|
||||||
|
</Function>
|
||||||
<Function name='GetLocalProfileFromIndex' return='Profile' arguments='int iIndex' />
|
<Function name='GetLocalProfileFromIndex' return='Profile' arguments='int iIndex' />
|
||||||
<Function name='GetLocalProfileIDFromIndex' return='string' arguments='int iIndex' />
|
<Function name='GetLocalProfileIDFromIndex' return='string' arguments='int iIndex' />
|
||||||
<Function name='GetLocalProfileIndexFromID' return='int' arguments='string sProfileID' />
|
<Function name='GetLocalProfileIndexFromID' return='int' arguments='string sProfileID' />
|
||||||
@@ -2723,6 +2955,9 @@
|
|||||||
<Function name='IsSongNew' return='bool' arguments='Song s'>
|
<Function name='IsSongNew' return='bool' arguments='Song s'>
|
||||||
Returns <code>true</code> if Song <code>s</code> has never been played before (according to the machine profile).
|
Returns <code>true</code> if Song <code>s</code> has never been played before (according to the machine profile).
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='ProfileWasLoadedFromMemoryCard' return='bool' arguments='PlayerNumber pn'>
|
||||||
|
Returns <code>true</code> if <code>pn</code>'s Profile was loaded from a memory card.
|
||||||
|
</Function>
|
||||||
<Function name='LastLoadWasFromLastGood' return='bool' arguments='PlayerNumber pn'>
|
<Function name='LastLoadWasFromLastGood' return='bool' arguments='PlayerNumber pn'>
|
||||||
Returns <code>true</code> if the last load of player <code>pn</code>'s profile was a LastGood copy of the profile.
|
Returns <code>true</code> if the last load of player <code>pn</code>'s profile was a LastGood copy of the profile.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -2858,12 +3093,21 @@
|
|||||||
<Function name='GetPrevScreenName' return='string' arguments=''>
|
<Function name='GetPrevScreenName' return='string' arguments=''>
|
||||||
Returns the name of the previous Screen.
|
Returns the name of the previous Screen.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetScreenType' return='ScreenType' arguments=''>
|
||||||
|
Returns the ScreenType for this Screen.
|
||||||
|
</Function>
|
||||||
<Function name='lockinput' return='void' arguments='float f'>
|
<Function name='lockinput' return='void' arguments='float f'>
|
||||||
Locks input for <code>f</code> seconds.
|
Locks input for <code>f</code> seconds.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='Metric' theme='_fallback' return='string' arguments='string sName'>
|
||||||
|
[02 Other.lua] Gets a metric from the current Screen.
|
||||||
|
</Function>
|
||||||
<Function name='PostScreenMessage' return='void' arguments='string sScreenMsg'>
|
<Function name='PostScreenMessage' return='void' arguments='string sScreenMsg'>
|
||||||
Posts a message with the text <code>sScreenMsg</code> to the Screen.
|
Posts a message with the text <code>sScreenMsg</code> to the Screen.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='String' theme='_fallback' return='string' arguments='string sName'>
|
||||||
|
[02 Other.lua] Gets a string from the current Screen in the current language.
|
||||||
|
</Function>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='ScreenEdit'>
|
<Class name='ScreenEdit'>
|
||||||
<Function name='GetEditState' return='EditState' arguments=''>
|
<Function name='GetEditState' return='EditState' arguments=''>
|
||||||
@@ -3078,6 +3322,9 @@
|
|||||||
<Function name='GetFirstBeat' return='float' arguments=''>
|
<Function name='GetFirstBeat' return='float' arguments=''>
|
||||||
Returns the first beat of the song.
|
Returns the first beat of the song.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetFirstSecond' return='float' arguments=''>
|
||||||
|
Returns the first second of the song.
|
||||||
|
</Function>
|
||||||
<Function name='GetGenre' return='string' arguments=''>
|
<Function name='GetGenre' return='string' arguments=''>
|
||||||
Returns the genre of the song.
|
Returns the genre of the song.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -3087,6 +3334,9 @@
|
|||||||
<Function name='GetLastBeat' return='float' arguments=''>
|
<Function name='GetLastBeat' return='float' arguments=''>
|
||||||
Returns the last beat of the song.
|
Returns the last beat of the song.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetLastSecond' return='float' arguments=''>
|
||||||
|
Returns the last second of the song.
|
||||||
|
</Function>
|
||||||
<Function name='GetLyricsPath' return='string' arguments=''>
|
<Function name='GetLyricsPath' return='string' arguments=''>
|
||||||
Gets the path to the lyrics.
|
Gets the path to the lyrics.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -3328,6 +3578,9 @@
|
|||||||
<Function name='LoadBanner' return='void' arguments='string sPath'>
|
<Function name='LoadBanner' return='void' arguments='string sPath'>
|
||||||
Load the song banner texture at <code>sPath</code>.
|
Load the song banner texture at <code>sPath</code>.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='LoadFromCurrentSongBackground' theme='_fallback' return='void' arguments=''>
|
||||||
|
[02 Sprite.lua] Loads the background from the current Song or the first Trail entry.
|
||||||
|
</Function>
|
||||||
<Function name='LoadFromSongBackground' theme='_fallback' return='void' arguments='Song song'>
|
<Function name='LoadFromSongBackground' theme='_fallback' return='void' arguments='Song song'>
|
||||||
[02 Sprite.lua] Load the texture for <code>song</code>'s background.
|
[02 Sprite.lua] Load the texture for <code>song</code>'s background.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -3340,6 +3593,9 @@
|
|||||||
<Function name='SetEffectMode' return='void' arguments='EffectMode mode'>
|
<Function name='SetEffectMode' return='void' arguments='EffectMode mode'>
|
||||||
Set the <Link class='ENUM' function='EffectMode' /> to <code>mode</code>.
|
Set the <Link class='ENUM' function='EffectMode' /> to <code>mode</code>.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='SetSecondsIntoAnimation' return='void' arguments='float fSeconds'>
|
||||||
|
Sets the number of seconds into the animation to <code>fSeconds</code>.
|
||||||
|
</Function>
|
||||||
<Function name='SetTexture' return='void' arguments='RageTexture texture'>
|
<Function name='SetTexture' return='void' arguments='RageTexture texture'>
|
||||||
Set the texture to <code>texture</code>.
|
Set the texture to <code>texture</code>.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -3445,6 +3701,9 @@
|
|||||||
<Function name='GetAuthorCredit' return='string' arguments=''>
|
<Function name='GetAuthorCredit' return='string' arguments=''>
|
||||||
Returns the author that made that particular Steps pattern.
|
Returns the author that made that particular Steps pattern.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetChartName' return='string' arguments=''>
|
||||||
|
Returns the Steps chart name.
|
||||||
|
</Function>
|
||||||
<Function name='GetChartStyle' return='string' arguments=''>
|
<Function name='GetChartStyle' return='string' arguments=''>
|
||||||
Returns the Chart Style for this Steps.
|
Returns the Chart Style for this Steps.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -3463,8 +3722,11 @@
|
|||||||
<Function name='GetMeter' return='int' arguments=''>
|
<Function name='GetMeter' return='int' arguments=''>
|
||||||
Returns the numerical difficulty of the Steps.
|
Returns the numerical difficulty of the Steps.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='HasAttacks' return='bool' arguments=''>
|
||||||
|
Returns <code>true</code> if the Steps has any attacks.
|
||||||
|
</Function>
|
||||||
<Function name='HasSignificantTimingChanges' return='bool' arguments=''>
|
<Function name='HasSignificantTimingChanges' return='bool' arguments=''>
|
||||||
returns <code>true</code> if the song has significant timing changes.
|
Returns <code>true</code> if the Steps pattern has significant timing changes.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='GetRadarValues' return='RadarValues' arguments='PlayerNumber pn'>
|
<Function name='GetRadarValues' return='RadarValues' arguments='PlayerNumber pn'>
|
||||||
Returns the complete list of RadarValues for player <code>pn</code>. Use <Link class='RadarValues' function='GetValue' /> to grab a specific value.
|
Returns the complete list of RadarValues for player <code>pn</code>. Use <Link class='RadarValues' function='GetValue' /> to grab a specific value.
|
||||||
@@ -3608,6 +3870,27 @@
|
|||||||
<Function name='GetLabels' return='{string}' arguments=''>
|
<Function name='GetLabels' return='{string}' arguments=''>
|
||||||
Returns a table of the Labels and the times they happen as strings with the format "<code>beat=label name</code>."
|
Returns a table of the Labels and the times they happen as strings with the format "<code>beat=label name</code>."
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetWarps' return='{string}' arguments=''>
|
||||||
|
Returns a table of the Warps and the times they happen as strings with the format "<code>beat=number of beats warped over</code>."
|
||||||
|
</Function>
|
||||||
|
<Function name='GetCombos' return='{string}' arguments=''>
|
||||||
|
Returns a table of the Combos and the times they happen as strings with the format "<code>beat=combo value</code>."
|
||||||
|
</Function>
|
||||||
|
<Function name='GetTimeSignatures' return='{string}' arguments=''>
|
||||||
|
Returns a table of the Time Signatures and the times they happen as strings with the format "<code>beat=beats per measure (numerator)=denominator</code>."
|
||||||
|
</Function>
|
||||||
|
<Function name='GetTickcounts' return='{string}' arguments=''>
|
||||||
|
Returns a table of the Tickcountss and the times they happen as strings with the format "<code>beat=number of ticks per beat</code>."
|
||||||
|
</Function>
|
||||||
|
<Function name='GetFakes' return='{string}' arguments=''>
|
||||||
|
Returns a table of the Fakes and the times they happen as strings with the format "<code>beat=number of beats to not judge</code>."
|
||||||
|
</Function>
|
||||||
|
<Function name='GetScrolls' return='{string}' arguments=''>
|
||||||
|
Returns a table of the Scrolls and the times they happen as strings with the format "<code>beat=scroll rate ratio</code>."
|
||||||
|
</Function>
|
||||||
|
<Function name='GetSpeeds' return='{string}' arguments=''>
|
||||||
|
Returns a table of the Speeds and the times they happen as strings with the format "<code>beat=scroll rate ratio=length of time to fully activate=unit of activation (0 for beats, 1 for seconds)</code>."
|
||||||
|
</Function>
|
||||||
<Function name='HasBPMChanges' return='bool' arguments=''>
|
<Function name='HasBPMChanges' return='bool' arguments=''>
|
||||||
Returns <code>true</code> if the TimingData contains BPM changes.
|
Returns <code>true</code> if the TimingData contains BPM changes.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -3690,6 +3973,9 @@
|
|||||||
<Function name='GetRequirePassHardSteps' return='bool' arguments=''>
|
<Function name='GetRequirePassHardSteps' return='bool' arguments=''>
|
||||||
Returns <code>true</code> if the UnlockEntry requires you to pass Hard steps.
|
Returns <code>true</code> if the UnlockEntry requires you to pass Hard steps.
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='GetRequirePassChallengeSteps' return='bool' arguments=''>
|
||||||
|
Returns <code>true</code> if the UnlockEntry requires you to pass Challenge steps.
|
||||||
|
</Function>
|
||||||
<Function name='GetSong' return='Song' arguments=''>
|
<Function name='GetSong' return='Song' arguments=''>
|
||||||
Returns the Song related to the UnlockEntry.
|
Returns the Song related to the UnlockEntry.
|
||||||
</Function>
|
</Function>
|
||||||
@@ -3720,6 +4006,9 @@
|
|||||||
Sets the UnlockEntry to unlock a specified song's steps.<br />
|
Sets the UnlockEntry to unlock a specified song's steps.<br />
|
||||||
Example: <code>steps,"In The Groove/Pandemonium","expert"</code>
|
Example: <code>steps,"In The Groove/Pandemonium","expert"</code>
|
||||||
</Function>
|
</Function>
|
||||||
|
<Function name='steps_type' return='void' arguments='string sSong, string sSteps, string sStepsType'>
|
||||||
|
Sets the UnlockEntry to unlock a specified song's stepstype.
|
||||||
|
</Function>
|
||||||
</Class>
|
</Class>
|
||||||
<Class name='UnlockManager'>
|
<Class name='UnlockManager'>
|
||||||
<Function name='AnyUnlocksToCelebrate' return='bool' arguments=''>
|
<Function name='AnyUnlocksToCelebrate' return='bool' arguments=''>
|
||||||
@@ -3755,7 +4044,9 @@
|
|||||||
<Function name='GetUnlockEntryIndexToCelebrate' return='int' arguments=''>
|
<Function name='GetUnlockEntryIndexToCelebrate' return='int' arguments=''>
|
||||||
Returns the UnlockEntry index to celebrate.
|
Returns the UnlockEntry index to celebrate.
|
||||||
</Function>
|
</Function>
|
||||||
<Function name='PreferUnlockEntryID' return='void' arguments='string sUnlockEntryID' />
|
<Function name='PreferUnlockEntryID' return='void' arguments='string sUnlockEntryID'>
|
||||||
|
Sets the preferred Song/Course to the specified <code>sUnlockEntryID</code>
|
||||||
|
</Function>
|
||||||
<Function name='UnlockEntryID' return='void' arguments='string sUnlockEntryID'>
|
<Function name='UnlockEntryID' return='void' arguments='string sUnlockEntryID'>
|
||||||
Unlocks an entry by ID.
|
Unlocks an entry by ID.
|
||||||
</Function>
|
</Function>
|
||||||
|
|||||||
@@ -21,19 +21,19 @@
|
|||||||
#DELAYS:;
|
#DELAYS:;
|
||||||
#LABELS:;
|
#LABELS:;
|
||||||
#TIMESIGNATURES:;
|
#TIMESIGNATURES:;
|
||||||
#LASTBEATHINT:;
|
|
||||||
#SAMPLESTART:;
|
#SAMPLESTART:;
|
||||||
#SAMPLELENGTH:;
|
#SAMPLELENGTH:;
|
||||||
#DISPLAYBPM:[xxx][xxx:xxx]|[*];
|
#DISPLAYBPM:[xxx][xxx:xxx]|[*];
|
||||||
#SELECTABLE:;
|
#SELECTABLE:;
|
||||||
|
#LASTSECONDHINT:;
|
||||||
#BGCHANGES:;
|
#BGCHANGES:;
|
||||||
#FGCHANGES:;
|
#FGCHANGES:;
|
||||||
#KEYSOUNDS:;
|
#KEYSOUNDS:;
|
||||||
#ATTACKS:;
|
#ATTACKS:;
|
||||||
|
|
||||||
// stored in cache
|
// stored in cache
|
||||||
#FIRSTBEAT:; // calculated
|
#FIRSTSECOND:; // calculated
|
||||||
#LASTBEAT:; // calculated
|
#LASTSECOND:; // calculated
|
||||||
#SONGFILENAME:;
|
#SONGFILENAME:;
|
||||||
#MUSICBYTES:; // ignored by loader
|
#MUSICBYTES:; // ignored by loader
|
||||||
#HASMUSIC:;
|
#HASMUSIC:;
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
// begin
|
// begin
|
||||||
#NOTEDATA# // marks a new note data section
|
#NOTEDATA# // marks a new note data section
|
||||||
// information from #NOTES moved here
|
// information from #NOTES moved here
|
||||||
|
#CHARTNAME:;
|
||||||
#STEPSTYPE:;
|
#STEPSTYPE:;
|
||||||
#DESCRIPTION:;
|
#DESCRIPTION:;
|
||||||
#CHARTSTYLE:;
|
#CHARTSTYLE:;
|
||||||
@@ -51,6 +52,7 @@
|
|||||||
#CREDIT:;
|
#CREDIT:;
|
||||||
|
|
||||||
// steps-based timingdata
|
// steps-based timingdata
|
||||||
|
#OFFSET:;
|
||||||
#BPMS:;
|
#BPMS:;
|
||||||
#STOPS:;
|
#STOPS:;
|
||||||
#DELAYS:;
|
#DELAYS:;
|
||||||
@@ -61,8 +63,11 @@
|
|||||||
#SCROLLS:;
|
#SCROLLS:;
|
||||||
#FAKES:;
|
#FAKES:;
|
||||||
#LABELS:;
|
#LABELS:;
|
||||||
#ATTACKS:; // Not yet in use.
|
#ATTACKS:;
|
||||||
#OFFSET:;
|
#DISPLAYBPM:;
|
||||||
|
|
||||||
// actual step data
|
// only in cache files
|
||||||
|
#STEPFILENAME:;
|
||||||
|
|
||||||
|
// actual step data (not in cache files)
|
||||||
#NOTES:;
|
#NOTES:;
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 766 B After Width: | Height: | Size: 466 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
@@ -1,5 +1,7 @@
|
|||||||
[NoteDisplay]
|
[NoteDisplay]
|
||||||
DrawHoldHeadForTapsOnSameRow=1
|
DrawHoldHeadForTapsOnSameRow=1
|
||||||
|
DrawRollHeadForTapsOnSameRow=1
|
||||||
|
TapHoldRollOnRowMeansHold=1
|
||||||
AnimationIsBeatBased=1
|
AnimationIsBeatBased=1
|
||||||
TapNoteAnimationLength=1
|
TapNoteAnimationLength=1
|
||||||
TapMineAnimationLength=1
|
TapMineAnimationLength=1
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
@@ -20,14 +20,14 @@ ret.Redir = function(sButton, sElement)
|
|||||||
if sElement == "Hold Head Active" or
|
if sElement == "Hold Head Active" or
|
||||||
sElement == "Roll Head Active"
|
sElement == "Roll Head Active"
|
||||||
then
|
then
|
||||||
sElement = "Hold Head Active";
|
sElement = "Tap Note";
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Test
|
-- Test
|
||||||
if sElement == "Hold Head Inactive" or
|
if sElement == "Hold Head Inactive" or
|
||||||
sElement == "Roll Head Inactive"
|
sElement == "Roll Head Inactive"
|
||||||
then
|
then
|
||||||
sElement = "Hold Head Inactive";
|
sElement = "Tap Note";
|
||||||
end
|
end
|
||||||
|
|
||||||
if sElement == "Tap Fake"
|
if sElement == "Tap Fake"
|
||||||
|
|||||||
@@ -3,7 +3,8 @@ FallbackNoteSkin=default
|
|||||||
|
|
||||||
[NoteDisplay]
|
[NoteDisplay]
|
||||||
TapNoteAnimationIsVivid=0
|
TapNoteAnimationIsVivid=0
|
||||||
DrawHoldHeadForTapsOnSameRow=1
|
HoldHeadAnimationIsVivid=0
|
||||||
|
DrawHoldHeadForTapsOnSameRow=0
|
||||||
TapNoteAnimationLength=4
|
TapNoteAnimationLength=4
|
||||||
TapAdditionAnimationLength=4
|
TapAdditionAnimationLength=4
|
||||||
TapMineAnimationLength=1
|
TapMineAnimationLength=1
|
||||||
@@ -34,8 +35,14 @@ TapNoteNoteColorTextureCoordSpacingY=0.125
|
|||||||
TapFakeNoteColorTextureCoordSpacingX=0
|
TapFakeNoteColorTextureCoordSpacingX=0
|
||||||
TapFakeNoteColorTextureCoordSpacingY=0.125
|
TapFakeNoteColorTextureCoordSpacingY=0.125
|
||||||
|
|
||||||
|
HoldHeadAdditionTextureCoordOffsetX=0
|
||||||
|
HoldHeadAdditionTextureCoordOffsetY=0
|
||||||
HoldHeadNoteColorTextureCoordSpacingX=0
|
HoldHeadNoteColorTextureCoordSpacingX=0
|
||||||
HoldHeadNoteColorTextureCoordSpacingY=0
|
HoldHeadNoteColorTextureCoordSpacingY=0
|
||||||
|
HoldTopCapAdditionTextureCoordOffsetX=0
|
||||||
|
HoldTopCapAdditionTextureCoordOffsetY=0
|
||||||
|
HoldTopCapNoteColorTextureCoordSpacingX=0
|
||||||
|
HoldTopCapNoteColorTextureCoordSpacingY=0
|
||||||
|
|
||||||
[GhostArrowDim]
|
[GhostArrowDim]
|
||||||
NoneCommand=
|
NoneCommand=
|
||||||
@@ -62,8 +69,8 @@ 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
|
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]
|
[HoldGhostArrow]
|
||||||
HoldingOnCommand=visible,true
|
HoldingOnCommand=blend,'BlendMode_Add';pulse;effectmagnitude,1,1.125,1;effectperiod,0.05;effectclock,'beatnooffset';visible,true
|
||||||
HoldingOffCommand=visible,false
|
HoldingOffCommand=blend,'BlendMode_Add';stopeffect;visible,false
|
||||||
|
|
||||||
[ReceptorArrow]
|
[ReceptorArrow]
|
||||||
W3Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
|
W3Command=stoptweening;zoom,0.85;linear,0.12;zoom,1
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
[Global]
|
[Global]
|
||||||
FallbackNoteSkin=default
|
FallbackNoteSkin=midi-note
|
||||||
|
|
||||||
[NoteDisplay]
|
[NoteDisplay]
|
||||||
TapNoteAnimationIsVivid=0
|
TapNoteAnimationIsVivid=0
|
||||||
DrawHoldHeadForTapsOnSameRow=1
|
DrawHoldHeadForTapsOnSameRow=0
|
||||||
TapNoteAnimationLength=4
|
TapNoteAnimationLength=4
|
||||||
TapAdditionAnimationLength=4
|
TapAdditionAnimationLength=4
|
||||||
TapMineAnimationLength=1
|
TapMineAnimationLength=1
|
||||||
@@ -35,7 +35,7 @@ TapFakeNoteColorTextureCoordSpacingX=0
|
|||||||
TapFakeNoteColorTextureCoordSpacingY=0.125
|
TapFakeNoteColorTextureCoordSpacingY=0.125
|
||||||
|
|
||||||
HoldHeadNoteColorTextureCoordSpacingX=0
|
HoldHeadNoteColorTextureCoordSpacingX=0
|
||||||
HoldHeadNoteColorTextureCoordSpacingY=0.125
|
HoldHeadNoteColorTextureCoordSpacingY=0
|
||||||
|
|
||||||
[GhostArrowDim]
|
[GhostArrowDim]
|
||||||
NoneCommand=
|
NoneCommand=
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
Down Tap Explosion Bright
|
|
||||||
@@ -4,7 +4,12 @@ DrawHoldHeadForTapsOnSameRow=0
|
|||||||
StartDrawingHoldBodyOffsetFromHead=0
|
StartDrawingHoldBodyOffsetFromHead=0
|
||||||
StopDrawingHoldBodyOffsetFromTail=-32
|
StopDrawingHoldBodyOffsetFromTail=-32
|
||||||
|
|
||||||
|
TapNoteAnimationIsVivid=0
|
||||||
|
|
||||||
# control the vertical
|
# control the vertical
|
||||||
|
TapNoteNoteColorTextureCoordSpacingX=0
|
||||||
|
TapNoteNoteColorTextureCoordSpacingY=0
|
||||||
|
|
||||||
TapNoteAdditionTextureCoordOffsetX=0
|
TapNoteAdditionTextureCoordOffsetX=0
|
||||||
TapNoteAdditionTextureCoordOffsetY=0.5
|
TapNoteAdditionTextureCoordOffsetY=0.5
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,12 @@ DrawHoldHeadForTapsOnSameRow=0
|
|||||||
StartDrawingHoldBodyOffsetFromHead=0
|
StartDrawingHoldBodyOffsetFromHead=0
|
||||||
StopDrawingHoldBodyOffsetFromTail=-32
|
StopDrawingHoldBodyOffsetFromTail=-32
|
||||||
|
|
||||||
|
TapNoteAnimationIsVivid=0
|
||||||
|
|
||||||
# control the vertical
|
# control the vertical
|
||||||
|
TapNoteNoteColorTextureCoordSpacingX=0
|
||||||
|
TapNoteNoteColorTextureCoordSpacingY=0
|
||||||
|
|
||||||
TapNoteAdditionTextureCoordOffsetX=0
|
TapNoteAdditionTextureCoordOffsetX=0
|
||||||
TapNoteAdditionTextureCoordOffsetY=0.5
|
TapNoteAdditionTextureCoordOffsetY=0.5
|
||||||
|
|
||||||
|
|||||||
@@ -15,10 +15,9 @@ return Def.ActorFrame {
|
|||||||
--tap
|
--tap
|
||||||
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
|
NOTESKIN:LoadActor(Var "Button", "Ready Receptor")..{
|
||||||
Name="Tap";
|
Name="Tap";
|
||||||
Frames = { { Frame = 2 } };
|
--Frames = { { Frame = 2 ; Delay = 1 } };
|
||||||
TapCommand=cmd(finishtweening;diffusealpha,1;zoom,1;linear,0.2;diffusealpha,0;zoom,1.2);
|
TapCommand=cmd(finishtweening;diffusealpha,1;zoom,1;linear,0.2;diffusealpha,0;zoom,1.2);
|
||||||
|
InitCommand=cmd(pause;setstate,2;playcommand,"Tap");
|
||||||
InitCommand=cmd(playcommand,"Tap");
|
|
||||||
HeldCommand=cmd(playcommand,"Tap");
|
HeldCommand=cmd(playcommand,"Tap");
|
||||||
ColumnJudgmentMessageCommand=cmd(playcommand,"Tap");
|
ColumnJudgmentMessageCommand=cmd(playcommand,"Tap");
|
||||||
--TapNoneCommand=cmd(playcommand,"Tap");
|
--TapNoneCommand=cmd(playcommand,"Tap");
|
||||||
|
|||||||
@@ -1,12 +1,16 @@
|
|||||||
local function Beat(self)
|
local function Beat(self)
|
||||||
|
-- too many locals
|
||||||
local this = self:GetChildren()
|
local this = self:GetChildren()
|
||||||
|
local player = GAMESTATE:GetMasterPlayerNumber()
|
||||||
|
local playerstate = GAMESTATE:GetPlayerState( player )
|
||||||
|
local songposition = playerstate:GetSongPosition() -- GAMESTATE:GetSongPosition()
|
||||||
|
|
||||||
local beat = GAMESTATE:GetSongBeat()
|
local beat = songposition:GetSongBeat() -- GAMESTATE:GetSongBeat()
|
||||||
|
|
||||||
local part = beat%1
|
local part = beat%1
|
||||||
part = clamp(part,0,0.5)
|
part = clamp(part,0,0.5)
|
||||||
local eff = scale(part,0,0.5,1,0)
|
local eff = scale(part,0,0.5,1,0)
|
||||||
if (GAMESTATE:GetSongPosition():GetDelay() or false) and part == 0 then eff = 0 end
|
if (songposition:GetDelay() or false) and part == 0 then eff = 0 end
|
||||||
if beat < 0 then
|
if beat < 0 then
|
||||||
eff = 0
|
eff = 0
|
||||||
end
|
end
|
||||||
|
|||||||
|
After Width: | Height: | Size: 747 B |
|
After Width: | Height: | Size: 9.9 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 477 B |
|
After Width: | Height: | Size: 2.5 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 509 B |
|
After Width: | Height: | Size: 2.6 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 420 B |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 455 B |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 457 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 621 KiB |
|
After Width: | Height: | Size: 105 KiB |
@@ -0,0 +1,8 @@
|
|||||||
|
[How to Install Songs]
|
||||||
|
|
||||||
|
Songs are laid out based on the group that they are in.
|
||||||
|
|
||||||
|
Songs\ : root folder
|
||||||
|
StepMania 5\ : group folder
|
||||||
|
MechaTribe Assault\ : song/simfile folder
|
||||||
|
*.png, *.mp3/*.ogg, *.sm/*.ssc/etc files
|
||||||
@@ -25,7 +25,8 @@ local ssc = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
local sm_ssc = {
|
local sm_ssc = {
|
||||||
"Jason Felds (wolfman2000)",
|
"Jason Felds (wolfman2000)", -- Timing Segments, Split Timing, optimization
|
||||||
|
"Thai Pangsakulyanont (theDtTvB)", -- BMS, Split Timing, optimization
|
||||||
"Alberto Ramos (Daisuke Master)",
|
"Alberto Ramos (Daisuke Master)",
|
||||||
"Jack Walstrom (FSX)",
|
"Jack Walstrom (FSX)",
|
||||||
}
|
}
|
||||||
@@ -39,9 +40,10 @@ local stepmania = {
|
|||||||
|
|
||||||
local contrib = {
|
local contrib = {
|
||||||
"Aldo Fregoso (Aldo_MX)", -- delays
|
"Aldo Fregoso (Aldo_MX)", -- delays
|
||||||
"Chris Eldridge (kurisu)", -- dance-threepanel
|
|
||||||
"cerbo",
|
"cerbo",
|
||||||
"cesarmades", -- pump/cmd* noteskins
|
"cesarmades", -- pump/cmd* noteskins
|
||||||
|
"Chris Eldridge (kurisu)", -- dance-threepanel
|
||||||
|
"Christophe Goulet-LeBlanc (Kommisar)",
|
||||||
"corec", -- various fixes
|
"corec", -- various fixes
|
||||||
"galopin", -- piu PlayStation2 usb mat support
|
"galopin", -- piu PlayStation2 usb mat support
|
||||||
"gholms", -- automake 1.11 support
|
"gholms", -- automake 1.11 support
|
||||||
@@ -49,8 +51,8 @@ local contrib = {
|
|||||||
"Kaox", -- pump/default noteskin
|
"Kaox", -- pump/default noteskin
|
||||||
"NitroX72", -- pump/frame noteskin
|
"NitroX72", -- pump/frame noteskin
|
||||||
"sy567", -- beginner helper fix
|
"sy567", -- beginner helper fix
|
||||||
"Thai Pangsakulyanont (theDtTvB)",
|
|
||||||
"v1toko", -- x-mode from StepNXA
|
"v1toko", -- x-mode from StepNXA
|
||||||
|
"waiei", -- custom scoring fixes + Hybrid scoring
|
||||||
}
|
}
|
||||||
|
|
||||||
local thanks = {
|
local thanks = {
|
||||||
@@ -70,10 +72,11 @@ local thanks = {
|
|||||||
|
|
||||||
local shoutout = {
|
local shoutout = {
|
||||||
"The Lua team", -- lua project lead or some shit. super nerdy but oh hell.
|
"The Lua team", -- lua project lead or some shit. super nerdy but oh hell.
|
||||||
"Mojang", -- minecraft forever -freem
|
"Mojang AB", -- minecraft forever -freem
|
||||||
"NAKET Coder",
|
"NAKET Coder",
|
||||||
"Ciera Boyd", -- you bet your ass I'm putting my girlfriend in the credits
|
"Ciera Boyd", -- you bet your ass I'm putting my girlfriend in the credits
|
||||||
--Image(), -- we should have some logos probably to look super pro
|
--Image(), -- we should have some logos probably to look super pro
|
||||||
|
"#KBO",
|
||||||
"You showed us... your ultimate dance",
|
"You showed us... your ultimate dance",
|
||||||
-- "Can't stop crying... buckets of tears!"
|
-- "Can't stop crying... buckets of tears!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
return Def.ActorFrame { Name="YOU_WISH_YOU_WERE_PLAYING_BEATMANIA_RIGHT_NOW" };
|
||||||
@@ -1 +0,0 @@
|
|||||||
_blank
|
|
||||||
@@ -0,0 +1,289 @@
|
|||||||
|
function MakeScoreList(StagesAgo)
|
||||||
|
local c;
|
||||||
|
local Stats;
|
||||||
|
local PlayerStats = { }
|
||||||
|
local children = {
|
||||||
|
LoadActor( "difficulty cap 9x1" ) .. {
|
||||||
|
Name="DifficultyP1";
|
||||||
|
InitCommand = cmd(x,-66;pause;halign,1);
|
||||||
|
OnCommand=cmd(zoomx,0;sleep,0.3;bounceend,0.3;zoomx,1);
|
||||||
|
OffCommand=cmd(bouncebegin,0.1;zoomx,0);
|
||||||
|
};
|
||||||
|
LoadActor( "difficulty cap 9x1" ) .. {
|
||||||
|
Name="DifficultyP2";
|
||||||
|
InitCommand = cmd(x,66;pause;halign,1;zoomx,0);
|
||||||
|
OnCommand=cmd(zoomx,0;sleep,0.3;bounceend,0.3;zoomx,-1);
|
||||||
|
OffCommand=cmd(bouncebegin,0.1;zoomx,0);
|
||||||
|
};
|
||||||
|
LoadActor( "banner mask" ) .. {
|
||||||
|
Name="BannerMask";
|
||||||
|
InitCommand=cmd(clearzbuffer,true;zwrite,true;blend,"BlendMode_NoEffect");
|
||||||
|
OnCommand=cmd(zoom,0;bounceend,0.3;zoom,1);
|
||||||
|
OffCommand=cmd(bouncebegin,0.3;zoom,0);
|
||||||
|
};
|
||||||
|
Def.Sprite {
|
||||||
|
Name = "Banner";
|
||||||
|
InitCommand = cmd(setsize,300,100;zoom,0.5;ztest,true);
|
||||||
|
OnCommand=cmd(zoom,0;bounceend,0.3;zoom,0.5);
|
||||||
|
OffCommand=cmd(bouncebegin,0.3;zoom,0);
|
||||||
|
};
|
||||||
|
LoadActor( "banner frame" ) .. {
|
||||||
|
Name="BannerFrame";
|
||||||
|
OnCommand=cmd(zoom,0;bounceend,0.3;zoom,1);
|
||||||
|
OffCommand=cmd(bouncebegin,0.3;zoom,0);
|
||||||
|
};
|
||||||
|
|
||||||
|
LoadActor( "side score frame" ) .. {
|
||||||
|
Name="ScoreFrameP1";
|
||||||
|
InitCommand=cmd();
|
||||||
|
OnCommand=cmd(x,-266;addx,-250;diffusealpha,1;decelerate,0.3;addx,250);
|
||||||
|
OffCommand=cmd(linear,0.3;addx,-150;diffusealpha,0);
|
||||||
|
};
|
||||||
|
LoadActor( "side score frame" ) .. {
|
||||||
|
Name="ScoreFrameP2";
|
||||||
|
InitCommand=cmd(zoomx,-1);
|
||||||
|
OnCommand=cmd(x,266;addx,250;diffusealpha,1;decelerate,0.3;addx,-250);
|
||||||
|
OffCommand=cmd(linear,0.3;addx,150;diffusealpha,0);
|
||||||
|
};
|
||||||
|
|
||||||
|
LoadFont( "Common Normal" ) .. {
|
||||||
|
-- LoadFont( "_regra bold 30px" ) .. {
|
||||||
|
Name="PlayerScoreP1";
|
||||||
|
InitCommand=cmd(x,-135;diffuse,color("#fdf991");shadowlength,0;zoom,0.6);
|
||||||
|
OnCommand=cmd(x,-135;addx,50;zoom,0;diffusealpha,0;sleep,0.1;accelerate,0.3;addx,-50;diffusealpha,1;zoom,0.6);
|
||||||
|
OffCommand=cmd(linear,0.3;diffusealpha,0);
|
||||||
|
};
|
||||||
|
LoadFont( "Common Normal" ) .. {
|
||||||
|
-- LoadFont( "_regra bold 30px" ) .. {
|
||||||
|
Name="PlayerScoreP2";
|
||||||
|
InitCommand=cmd(x,135;diffuse,color("#abfe8e");shadowlength,0;zoom,0.6);
|
||||||
|
OnCommand=cmd(x,135;addx,-50;zoom,0;diffusealpha,0;sleep,0.1;accelerate,0.3;addx,50;diffusealpha,1;zoom,0.6);
|
||||||
|
OffCommand=cmd(linear,0.3;diffusealpha,0);
|
||||||
|
};
|
||||||
|
|
||||||
|
LoadFont( "Common Normal" ) .. {
|
||||||
|
-- LoadFont( "_regra bold 30px" ) .. {
|
||||||
|
Name="MachineBestP1";
|
||||||
|
InitCommand=cmd(diffuse,color("#ffffff");shadowlength,0;zoom,0.5);
|
||||||
|
OnCommand=cmd(x,-250;addx,-250;diffusealpha,1;decelerate,0.3;addx,250);
|
||||||
|
OffCommand=cmd(linear,0.3;addx,-150;diffusealpha,0);
|
||||||
|
};
|
||||||
|
LoadFont( "Common Normal" ) .. {
|
||||||
|
-- LoadFont( "_regra bold 30px" ) .. {
|
||||||
|
Name="MachineBestP2";
|
||||||
|
InitCommand=cmd(diffuse,color("#ffffff");shadowlength,0;zoom,0.5);
|
||||||
|
OnCommand=cmd(x,250;addx,250;diffusealpha,1;decelerate,0.3;addx,-250);
|
||||||
|
OffCommand=cmd(linear,0.3;addx,150;diffusealpha,0);
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
return Def.ActorFrame {
|
||||||
|
children = children;
|
||||||
|
InitCommand = function(self)
|
||||||
|
c = self:GetChildren();
|
||||||
|
c.PlayerScore = {};
|
||||||
|
c.PlayerScore[PLAYER_1] = c.PlayerScoreP1;
|
||||||
|
c.PlayerScore[PLAYER_2] = c.PlayerScoreP2;
|
||||||
|
c.MachineBest = {};
|
||||||
|
c.MachineBest[PLAYER_1] = c.MachineBestP1;
|
||||||
|
c.MachineBest[PLAYER_2] = c.MachineBestP2;
|
||||||
|
c.ScoreFrame = {};
|
||||||
|
c.ScoreFrame[PLAYER_1] = c.ScoreFrameP1;
|
||||||
|
c.ScoreFrame[PLAYER_2] = c.ScoreFrameP2;
|
||||||
|
c.Difficulty = {};
|
||||||
|
c.Difficulty[PLAYER_1] = c.DifficultyP1;
|
||||||
|
c.Difficulty[PLAYER_2] = c.DifficultyP2;
|
||||||
|
end;
|
||||||
|
|
||||||
|
BeginCommand = function(self)
|
||||||
|
Stats = STATSMAN:GetPlayedStageStats(StagesAgo);
|
||||||
|
if not Stats then
|
||||||
|
self:visible(false);
|
||||||
|
return;
|
||||||
|
end;
|
||||||
|
self:visible(true);
|
||||||
|
|
||||||
|
PlayerStats[PLAYER_1] = Stats:GetPlayerStageStats(PLAYER_1);
|
||||||
|
PlayerStats[PLAYER_2] = Stats:GetPlayerStageStats(PLAYER_2);
|
||||||
|
|
||||||
|
local Current;
|
||||||
|
local CurrentPart = {}
|
||||||
|
if GAMESTATE:IsCourseMode() then
|
||||||
|
Current = GAMESTATE:GetCurrentCourse();
|
||||||
|
CurrentPart[PLAYER_1] = GAMESTATE:GetCurrentTrail( PLAYER_1 );
|
||||||
|
CurrentPart[PLAYER_2] = GAMESTATE:GetCurrentTrail( PLAYER_2 );
|
||||||
|
else
|
||||||
|
Current = Stats:GetPlayedSongs()[1];
|
||||||
|
CurrentPart[PLAYER_1] = PlayerStats[PLAYER_1]:GetPlayedSteps()[1];
|
||||||
|
CurrentPart[PLAYER_2] = PlayerStats[PLAYER_2]:GetPlayedSteps()[1];
|
||||||
|
end
|
||||||
|
assert(Current);
|
||||||
|
|
||||||
|
local sBannerPath = Current:GetBannerPath() or THEME:GetPathG("Common","fallback banner");
|
||||||
|
c.Banner:LoadBanner( sBannerPath );
|
||||||
|
|
||||||
|
for pn in ivalues(PlayerNumber) do
|
||||||
|
local visible = GAMESTATE:IsHumanPlayer(pn) and CurrentPart[pn] ~= nil; -- was present for this song
|
||||||
|
c.MachineBest[pn]:visible( visible );
|
||||||
|
c.PlayerScore[pn]:visible( visible );
|
||||||
|
c.ScoreFrame[pn]:visible( visible );
|
||||||
|
c.Difficulty[pn]:visible( visible );
|
||||||
|
|
||||||
|
local MachineProfile = PROFILEMAN:GetMachineProfile();
|
||||||
|
if visible then
|
||||||
|
assert(CurrentPart[pn]);
|
||||||
|
|
||||||
|
-- c.Difficulty[pn]:SetDifficultyAndStepsTypeFrame( CurrentPart[pn] );
|
||||||
|
|
||||||
|
local hsl = MachineProfile:GetHighScoreList( Current, CurrentPart[pn] );
|
||||||
|
assert( hsl );
|
||||||
|
|
||||||
|
-- Find the first high score that isn't one that we're entering now.
|
||||||
|
local HighScores = hsl:GetHighScores();
|
||||||
|
local hs;
|
||||||
|
for h in ivalues(HighScores) do
|
||||||
|
if not hs and not h:IsFillInMarker() then
|
||||||
|
hs = h;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if hs then
|
||||||
|
local fMachineScore = hs:GetPercentDP() or 0;
|
||||||
|
local sName = hs:GetName() or "";
|
||||||
|
local sText = sName .. " " .. FormatPercentScore( fMachineScore );
|
||||||
|
c.MachineBest[pn]:settext( sText );
|
||||||
|
else
|
||||||
|
c.ScoreFrame[pn]:visible( false );
|
||||||
|
end
|
||||||
|
|
||||||
|
local fPlayerScore = PlayerStats[pn]:GetPercentDancePoints();
|
||||||
|
local sText = FormatPercentScore( fPlayerScore );
|
||||||
|
c.PlayerScore[pn]:settext( sText );
|
||||||
|
local colors = {
|
||||||
|
[PLAYER_1] = color("#fdf991"),
|
||||||
|
[PLAYER_2] = color("#abfe8e"),
|
||||||
|
};
|
||||||
|
if Stats:PlayerHasHighScore(pn) then
|
||||||
|
colors = {
|
||||||
|
[PLAYER_1] = color("#feef01"),
|
||||||
|
[PLAYER_2] = color("#0ffc03"),
|
||||||
|
};
|
||||||
|
end
|
||||||
|
c.PlayerScore[pn]:diffuse(colors[pn]);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
end
|
||||||
|
|
||||||
|
local children = {
|
||||||
|
LoadActor( "center frame" ) .. {
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+9);
|
||||||
|
OnCommand=cmd(fadetop,0.3; croptop,1; linear,0.5; croptop,-0.3);
|
||||||
|
OffCommand=cmd(linear,0.5; croptop,1);
|
||||||
|
};
|
||||||
|
LoadActor( "line" ) .. {
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X;SetWidth,336;y,SCREEN_CENTER_Y+65;fadeleft,0.3; faderight,0.3);
|
||||||
|
OnCommand=cmd(cropleft,.5;cropright,.5;
|
||||||
|
sleep,0.2;
|
||||||
|
linear,0.3;
|
||||||
|
cropleft,-.2;cropright,-.2);
|
||||||
|
|
||||||
|
OffCommand=cmd(linear,0.3;cropleft,.5;cropright,.5);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
for i = 1,5 do
|
||||||
|
children[#children+1] =
|
||||||
|
MakeScoreList(i) .. {
|
||||||
|
Name="Row" .. tostring(i);
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X);
|
||||||
|
};
|
||||||
|
end
|
||||||
|
|
||||||
|
--[[ children[#children+1] =
|
||||||
|
LoadActor( THEME:GetPathB("","_shared underlay") ) .. { OnCommand=cmd(); }; --]]
|
||||||
|
|
||||||
|
children[#children+1] = LoadActor( "keyboard" ) .. {
|
||||||
|
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+80);
|
||||||
|
BeginCommand = cmd(visible,SCREENMAN:GetTopScreen():GetAnyEntering());
|
||||||
|
};
|
||||||
|
|
||||||
|
for pn in ivalues(PlayerNumber) do
|
||||||
|
local FrameX = pn == PLAYER_1 and (SCREEN_CENTER_X-265) or (SCREEN_CENTER_X+267);
|
||||||
|
local P1 = pn == PLAYER_1 and 1 or -1;
|
||||||
|
children[#children+1] = LoadActor( "name frame" ) .. {
|
||||||
|
InitCommand=cmd(y,SCREEN_CENTER_Y+119;
|
||||||
|
zoomx,pn == PLAYER_1 and 1.0 or -1.0);
|
||||||
|
BeginCommand=cmd(visible,SCREENMAN:GetTopScreen():GetEnteringName(pn));
|
||||||
|
OnCommand=cmd(finishtweening;x,FrameX;addx,-200*P1;zoom,0;bounceend,0.3;zoom,1;addx,200*P1);
|
||||||
|
OffCommand=cmd(stoptweening;bouncebegin,0.3;zoom,0;addx,-200*P1);
|
||||||
|
};
|
||||||
|
|
||||||
|
children[#children+1] = LoadFont( "Common Normal" ) .. {
|
||||||
|
-- children[#children+1] = LoadFont( "_regra bold 30px" ) .. {
|
||||||
|
Name="PlayerText";
|
||||||
|
InitCommand=cmd(x,pn == PLAYER_1 and (SCREEN_CENTER_X-WideScale(310,330)) or (SCREEN_CENTER_X+WideScale(198,204));
|
||||||
|
halign,0;
|
||||||
|
y,SCREEN_CENTER_Y+115;shadowlength,0;zoom,1);
|
||||||
|
BeginCommand=cmd(visible,SCREENMAN:GetTopScreen():GetEnteringName(pn));
|
||||||
|
OnCommand=cmd(finishtweening;diffusealpha,0;sleep,0.1;linear,0.3;diffusealpha,1);
|
||||||
|
OffCommand=cmd(stoptweening;bouncebegin,0.3;zoom,0;addx,-200*P1);
|
||||||
|
EntryChangedMessageCommand=function(self,params)
|
||||||
|
if params.PlayerNumber ~= pn then
|
||||||
|
return;
|
||||||
|
end;
|
||||||
|
self:settext( params.Text );
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
end;
|
||||||
|
|
||||||
|
return Def.ActorFrame {
|
||||||
|
children = children;
|
||||||
|
|
||||||
|
BeginCommand = function(self)
|
||||||
|
local StagesPlayed = STATSMAN:GetStagesPlayed();
|
||||||
|
local c = self:GetChildren();
|
||||||
|
|
||||||
|
local fYCenter = SCREEN_CENTER_Y-60;
|
||||||
|
local fYMinSpacing = 44;
|
||||||
|
local fYMaxSpacing = 70;
|
||||||
|
local fYSpacing = scale(StagesPlayed, 4, 5, fYMaxSpacing, fYMinSpacing);
|
||||||
|
fYSpacing = clamp(fYSpacing, fYMinSpacing, fYMaxSpacing);
|
||||||
|
fYSpacing = fYSpacing + math.mod(fYSpacing, 2); -- even
|
||||||
|
fYSpacing = -fYSpacing;
|
||||||
|
|
||||||
|
local fYStart = fYSpacing*(StagesPlayed-1)/2;
|
||||||
|
local fYEnd = -fYSpacing*(StagesPlayed-1)/2;
|
||||||
|
for i = 1,StagesPlayed do
|
||||||
|
local Name = "Row" .. tostring(i);
|
||||||
|
local row = c[Name];
|
||||||
|
assert(row);
|
||||||
|
local fY = fYCenter + fYEnd + (i-1)*fYSpacing;
|
||||||
|
row:y( fY );
|
||||||
|
end
|
||||||
|
|
||||||
|
local Timer = SCREENMAN:GetTopScreen():GetChild("Timer");
|
||||||
|
if not SCREENMAN:GetTopScreen():GetAnyEntering() then
|
||||||
|
Timer:setseconds(5);
|
||||||
|
Timer:silent(true);
|
||||||
|
else
|
||||||
|
Timer:setseconds(25);
|
||||||
|
Timer:silent(false);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
OnCommand = function(self)
|
||||||
|
local StagesPlayed = STATSMAN:GetStagesPlayed();
|
||||||
|
local c = self:GetChildren();
|
||||||
|
for i = 1,StagesPlayed do
|
||||||
|
local Name = "Row" .. tostring(i);
|
||||||
|
local row = c[Name];
|
||||||
|
assert(row);
|
||||||
|
|
||||||
|
row:hibernate(0.3+(i/StagesPlayed)*0.3);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,285 @@
|
|||||||
|
local function distance( x1, y1, x2, y2 )
|
||||||
|
return math.pow( math.pow(x1-x2, 2) + math.pow(y1-y2, 2), 0.5 );
|
||||||
|
end
|
||||||
|
|
||||||
|
local children = {
|
||||||
|
};
|
||||||
|
|
||||||
|
local Letters = {
|
||||||
|
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
|
||||||
|
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z",
|
||||||
|
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "?", "!",
|
||||||
|
"BACK", "ENTER"
|
||||||
|
};
|
||||||
|
|
||||||
|
local LetterIndexes = { };
|
||||||
|
for i, l in ipairs(Letters) do
|
||||||
|
LetterIndexes[l] = i;
|
||||||
|
end
|
||||||
|
|
||||||
|
local MapNameToLetter = {};
|
||||||
|
local MapLetterToName = {};
|
||||||
|
local letter = LoadFont( "Common Normal" ) .. {
|
||||||
|
-- local letter = LoadFont( "_regra bold 30px" ) .. {
|
||||||
|
InitCommand=cmd(zoom,0.8;shadowlength,0);
|
||||||
|
PulseCommand = function(self)
|
||||||
|
self:finishtweening();
|
||||||
|
local z = self:GetZoomX();
|
||||||
|
(cmd(accelerate,0.15;zoom,1.2;decelerate,0.15;zoom,z))(self);
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
|
||||||
|
for l in ivalues(Letters) do
|
||||||
|
local Name = "letter " .. l;
|
||||||
|
MapNameToLetter[Name] = l;
|
||||||
|
MapLetterToName[l] = Name;
|
||||||
|
children[#children+1] = letter .. {
|
||||||
|
Name = Name;
|
||||||
|
Text = l;
|
||||||
|
};
|
||||||
|
if l == "BACK" or l == "ENTER" then
|
||||||
|
children[#children].File = THEME:GetPathF("", "Common Normal");
|
||||||
|
-- children[#children].File = THEME:GetPathF("", "_venacti 26px normal");
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
--[[ children[#children+1] = LoadActor( THEME:GetPathS(Var "LoadingScreen", "type key") ) .. { Name = "Type"; SupportPan = true; }
|
||||||
|
children[#children+1] = LoadActor( THEME:GetPathS(Var "LoadingScreen", "back") ) .. { Name = "Back"; SupportPan = true; }
|
||||||
|
children[#children+1] = LoadActor( THEME:GetPathS(Var "LoadingScreen", "enter") ) .. { Name = "Enter"; SupportPan = true; }
|
||||||
|
children[#children+1] = LoadActor( THEME:GetPathS(Var "LoadingScreen", "move cursor") ) .. { Name = "Move"; SupportPan = true; } --]]
|
||||||
|
children[#children+1] = LoadActor( THEME:GetPathS("Common", "value") ) .. { Name = "Type"; SupportPan = true; }
|
||||||
|
children[#children+1] = LoadActor( THEME:GetPathS("Common", "cancel") ) .. { Name = "Back"; SupportPan = true; }
|
||||||
|
children[#children+1] = LoadActor( THEME:GetPathS("Common", "start") ).. { Name = "Enter"; SupportPan = true; }
|
||||||
|
children[#children+1] = LoadActor( THEME:GetPathS("MusicWheel", "change") ) .. { Name = "Move"; SupportPan = true; }
|
||||||
|
|
||||||
|
local CursorFiles = {
|
||||||
|
[PLAYER_1] = "Cursor P1",
|
||||||
|
[PLAYER_2] = "Cursor P2"
|
||||||
|
};
|
||||||
|
|
||||||
|
for pn in ivalues(PlayerNumber) do
|
||||||
|
children[#children+1] = LoadActor( THEME:GetPathG("_frame", "1D"),
|
||||||
|
{ 4/10, 2/10, 4/10 },
|
||||||
|
LoadActor(CursorFiles[pn])
|
||||||
|
) .. {
|
||||||
|
Name = CursorFiles[pn];
|
||||||
|
BeginCommand = cmd(visible,SCREENMAN:GetTopScreen():GetEnteringName(pn));
|
||||||
|
OnCommand = cmd(
|
||||||
|
zoom,0;
|
||||||
|
rotationz,-360*2;
|
||||||
|
sleep,0.55;
|
||||||
|
decelerate,0.5;
|
||||||
|
zoom,1;
|
||||||
|
rotationz,0;
|
||||||
|
);
|
||||||
|
OffCommand = cmd(sleep,0.3;queuecommand,"TweenOff");
|
||||||
|
PlayerFinishedMessageCommand = function(self,param)
|
||||||
|
if param.PlayerNumber ~= pn then return end
|
||||||
|
self:playcommand("TweenOff" );
|
||||||
|
end;
|
||||||
|
TweenOffCommand = function(self,param)
|
||||||
|
(cmd(
|
||||||
|
accelerate,0.25;
|
||||||
|
zoomx,0;
|
||||||
|
))(self);
|
||||||
|
end;
|
||||||
|
};
|
||||||
|
end
|
||||||
|
|
||||||
|
local c;
|
||||||
|
local Keys = {};
|
||||||
|
local Selection = {};
|
||||||
|
local PlayerX = {};
|
||||||
|
local PlayerY = {};
|
||||||
|
return Def.ActorFrame {
|
||||||
|
children = children;
|
||||||
|
BeginCommand = function(self)
|
||||||
|
c = self:GetChildren();
|
||||||
|
c.Cursors = {};
|
||||||
|
c.Cursors[PLAYER_1] = c["Cursor P1"];
|
||||||
|
c.Cursors[PLAYER_2] = c["Cursor P2"];
|
||||||
|
|
||||||
|
for l in ivalues(Letters) do
|
||||||
|
local Name = MapLetterToName[l];
|
||||||
|
assert(Name);
|
||||||
|
Keys[l] = {
|
||||||
|
Text = c[Name];
|
||||||
|
Width = c[Name]:GetWidth();
|
||||||
|
Height = c[Name]:GetHeight();
|
||||||
|
};
|
||||||
|
assert(c[Name], Name);
|
||||||
|
end;
|
||||||
|
|
||||||
|
-- Position letters.
|
||||||
|
local RowWidths = {};
|
||||||
|
local fX = 0;
|
||||||
|
local fXPadding = 4;
|
||||||
|
local fY = 0;
|
||||||
|
local iRow = 1;
|
||||||
|
for l in ivalues(Letters) do
|
||||||
|
if l == "O" or l == "0" or l == "BACK"
|
||||||
|
then
|
||||||
|
fX = 0;
|
||||||
|
fY = fY + 30;
|
||||||
|
iRow = iRow + 1;
|
||||||
|
end;
|
||||||
|
Keys[l].Row = iRow;
|
||||||
|
Keys[l].Text:x(fX + Keys[l].Width/2);
|
||||||
|
Keys[l].Text:y(fY + Keys[l].Height/2);
|
||||||
|
fX = fX + Keys[l].Width;
|
||||||
|
RowWidths[iRow] = fX;
|
||||||
|
fX = fX + fXPadding;
|
||||||
|
end;
|
||||||
|
for l in ivalues(Letters) do
|
||||||
|
local iRow = Keys[l].Row;
|
||||||
|
Keys[l].Text:addx(-RowWidths[iRow]/2);
|
||||||
|
end;
|
||||||
|
|
||||||
|
Keys["BACK"].Text:x(-140);
|
||||||
|
Keys["ENTER"].Text:x(140);
|
||||||
|
|
||||||
|
for pn in ivalues(PlayerNumber) do
|
||||||
|
local sName = SCREENMAN:GetTopScreen():GetSelection(pn);
|
||||||
|
local DefaultKey = "A"
|
||||||
|
if #sName > 0 then
|
||||||
|
DefaultKey = "ENTER"
|
||||||
|
end
|
||||||
|
|
||||||
|
self:playcommand("SelectKey", { Key = DefaultKey, PlayerNumber = pn });
|
||||||
|
c.Cursors[pn]:finishtweening();
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
CodeMessageCommand = function(self, param)
|
||||||
|
local pn = param.PlayerNumber;
|
||||||
|
if not SCREENMAN:GetTopScreen():GetAnyStillEntering() and param.Name == "Enter" then
|
||||||
|
if SCREENMAN:GetTopScreen():Finish(pn) then
|
||||||
|
c.Enter:play();
|
||||||
|
end
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
if SCREENMAN:GetTopScreen():GetFinalized( pn ) then
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
if param.Name == "Left" or param.Name == "Right" then
|
||||||
|
local iDir = param.Name == "Left" and -1 or 1;
|
||||||
|
|
||||||
|
local idx = LetterIndexes[Selection[pn]];
|
||||||
|
idx = idx + iDir;
|
||||||
|
idx = math.mod(idx+#Letters-1, #Letters)+1;
|
||||||
|
self:playcommand("SelectKey", { Key = Letters[idx], PlayerNumber = pn });
|
||||||
|
c.Move:playforplayer(pn);
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
if param.Name == "JumpToEnter" then
|
||||||
|
self:playcommand("SelectKey", { Key = "ENTER", PlayerNumber = pn });
|
||||||
|
c.Move:playforplayer(pn);
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
if param.Name == "Backspace" then
|
||||||
|
if SCREENMAN:GetTopScreen():Backspace(pn) then
|
||||||
|
c.Back:playforplayer(pn);
|
||||||
|
end
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
if param.Name == "NextRow" or param.Name == "PrevRow" then
|
||||||
|
local iDir = param.Name == "PrevRow" and -1 or 1;
|
||||||
|
local idx = LetterIndexes[Selection[pn]];
|
||||||
|
local iRow = Keys[Selection[pn]].Row;
|
||||||
|
iRow = iRow + iDir;
|
||||||
|
iRow = math.mod(iRow+4-1, 4)+1;
|
||||||
|
|
||||||
|
local NearestLetter
|
||||||
|
local NearestLetterDistance
|
||||||
|
for l in ivalues(Letters) do
|
||||||
|
if iRow == Keys[l].Row then
|
||||||
|
local Text = Keys[l].Text;
|
||||||
|
|
||||||
|
local fDist = distance( PlayerX[pn], PlayerY[pn],
|
||||||
|
Text:GetX(), Text:GetY() );
|
||||||
|
if not NearestLetterDistance or fDist < NearestLetterDistance then
|
||||||
|
NearestLetterDistance = fDist;
|
||||||
|
NearestLetter = l;
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
assert( NearestLetter );
|
||||||
|
self:playcommand("SelectKey", { Key = NearestLetter, PlayerNumber = pn, NoStore = true });
|
||||||
|
|
||||||
|
c.Move:playforplayer(pn);
|
||||||
|
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
if param.Name == "Enter" then
|
||||||
|
if Selection[pn] == "BACK" then
|
||||||
|
if SCREENMAN:GetTopScreen():Backspace(pn) then
|
||||||
|
Keys[Selection[pn]].Text:playcommand( "Pulse" );
|
||||||
|
c.Back:playforplayer(pn);
|
||||||
|
end
|
||||||
|
elseif Selection[pn] == "ENTER" then
|
||||||
|
if SCREENMAN:GetTopScreen():Finish(pn) then
|
||||||
|
Keys[Selection[pn]].Text:playcommand( "Pulse" );
|
||||||
|
c.Enter:playforplayer(pn);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
local key = Selection[pn]; -- EnterKey may change this
|
||||||
|
if SCREENMAN:GetTopScreen():EnterKey(pn, key) then
|
||||||
|
Keys[key].Text:playcommand( "Pulse" );
|
||||||
|
c.Type:playforplayer(pn);
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
SelectKeyMessageCommand = function(self, param)
|
||||||
|
local key = param.Key;
|
||||||
|
local pn = param.PlayerNumber;
|
||||||
|
if not Keys[key] then return end
|
||||||
|
|
||||||
|
Selection[pn] = key;
|
||||||
|
c.Cursors[pn]:stoptweening();
|
||||||
|
c.Cursors[pn]:playcommand( "SetSize", { Width=Keys[key].Width+6; tween=cmd(stoptweening;linear,0.10); } );
|
||||||
|
c.Cursors[pn]:x( Keys[key].Text:GetX() );
|
||||||
|
c.Cursors[pn]:y( Keys[key].Text:GetY() );
|
||||||
|
if not param.NoStore then
|
||||||
|
PlayerX[pn] = Keys[key].Text:GetX();
|
||||||
|
PlayerY[pn] = Keys[key].Text:GetY();
|
||||||
|
end
|
||||||
|
|
||||||
|
-- SCREENMAN:GetTopScreen():EnterKey(PLAYER_2,"x");
|
||||||
|
end;
|
||||||
|
MenuTimerExpiredMessageCommand = function(self, param)
|
||||||
|
for pn in ivalues(PlayerNumber) do
|
||||||
|
SCREENMAN:GetTopScreen():Finish(pn);
|
||||||
|
end
|
||||||
|
c.Enter:play();
|
||||||
|
end;
|
||||||
|
|
||||||
|
OnCommand = function(self, param)
|
||||||
|
for key in ivalues(Letters) do
|
||||||
|
local fDist = distance( Keys[key].Text:GetX(), Keys[key].Text:GetY(), 0, 100 );
|
||||||
|
|
||||||
|
local f = cmd(
|
||||||
|
diffusealpha,0;zoom,0;
|
||||||
|
sleep,0.25 + (fDist / 400);
|
||||||
|
decelerate,0.5;
|
||||||
|
diffusealpha,1;zoom,0.8);
|
||||||
|
f(Keys[key].Text);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
|
||||||
|
OffCommand = function(self, param)
|
||||||
|
for key in ivalues(Letters) do
|
||||||
|
local fDist = distance( Keys[key].Text:GetX(), Keys[key].Text:GetY(), 0, 100 );
|
||||||
|
|
||||||
|
local f = cmd(
|
||||||
|
sleep,0.0 + (fDist / 400);
|
||||||
|
decelerate,0.5;
|
||||||
|
diffusealpha,0;zoom,0);
|
||||||
|
f(Keys[key].Text);
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
};
|
||||||
@@ -1,49 +1,2 @@
|
|||||||
local function CreditsText( pn )
|
local t = Def.ActorFrame {};
|
||||||
function update(self)
|
|
||||||
local str = ScreenSystemLayerHelpers.GetCreditsMessage(pn);
|
|
||||||
self:settext(str);
|
|
||||||
end
|
|
||||||
|
|
||||||
function UpdateVisible(self)
|
|
||||||
local screen = SCREENMAN:GetTopScreen();
|
|
||||||
local bShow = true;
|
|
||||||
if screen then
|
|
||||||
local sClass = screen:GetName();
|
|
||||||
bShow = THEME:GetMetric( sClass, "ShowCreditDisplay" );
|
|
||||||
end
|
|
||||||
|
|
||||||
self:visible( bShow );
|
|
||||||
end
|
|
||||||
|
|
||||||
local text = LoadFont(Var "LoadingScreen","credits") .. {
|
|
||||||
InitCommand=function(self)
|
|
||||||
self:name("Credits" .. PlayerNumberToString(pn))
|
|
||||||
ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen");
|
|
||||||
end;
|
|
||||||
UpdateTextCommand=function(self)
|
|
||||||
local str = ScreenSystemLayerHelpers.GetCreditsMessage(pn);
|
|
||||||
self:settext(str);
|
|
||||||
end;
|
|
||||||
UpdateVisibleCommand=function(self)
|
|
||||||
local screen = SCREENMAN:GetTopScreen();
|
|
||||||
local bShow = true;
|
|
||||||
if screen then
|
|
||||||
local sClass = screen:GetName();
|
|
||||||
bShow = THEME:GetMetric( sClass, "ShowCreditDisplay" );
|
|
||||||
end
|
|
||||||
|
|
||||||
self:visible( bShow );
|
|
||||||
end;
|
|
||||||
--[[ RefreshCreditTextMessageCommand=update;
|
|
||||||
CoinInsertedMessageCommand=update;
|
|
||||||
PlayerJoinedMessageCommand=update;
|
|
||||||
ScreenChangedMessageCommand=UpdateVisible; --]]
|
|
||||||
};
|
|
||||||
return text;
|
|
||||||
end
|
|
||||||
|
|
||||||
local t = Def.ActorFrame {
|
|
||||||
CreditsText( PLAYER_1 );
|
|
||||||
CreditsText( PLAYER_2 );
|
|
||||||
};
|
|
||||||
return t;
|
return t;
|
||||||
@@ -1,4 +1,50 @@
|
|||||||
|
local function CreditsText( pn )
|
||||||
|
function update(self)
|
||||||
|
local str = ScreenSystemLayerHelpers.GetCreditsMessage(pn);
|
||||||
|
self:settext(str);
|
||||||
|
end
|
||||||
|
|
||||||
|
function UpdateVisible(self)
|
||||||
|
local screen = SCREENMAN:GetTopScreen();
|
||||||
|
local bShow = true;
|
||||||
|
if screen then
|
||||||
|
local sClass = screen:GetName();
|
||||||
|
bShow = THEME:GetMetric( sClass, "ShowCreditDisplay" );
|
||||||
|
end
|
||||||
|
|
||||||
|
self:visible( bShow );
|
||||||
|
end
|
||||||
|
|
||||||
|
local text = LoadFont(Var "LoadingScreen","credits") .. {
|
||||||
|
InitCommand=function(self)
|
||||||
|
self:name("Credits" .. PlayerNumberToString(pn))
|
||||||
|
ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen");
|
||||||
|
end;
|
||||||
|
UpdateTextCommand=function(self)
|
||||||
|
local str = ScreenSystemLayerHelpers.GetCreditsMessage(pn);
|
||||||
|
self:settext(str);
|
||||||
|
end;
|
||||||
|
UpdateVisibleCommand=function(self)
|
||||||
|
local screen = SCREENMAN:GetTopScreen();
|
||||||
|
local bShow = true;
|
||||||
|
if screen then
|
||||||
|
local sClass = screen:GetName();
|
||||||
|
bShow = THEME:GetMetric( sClass, "ShowCreditDisplay" );
|
||||||
|
end
|
||||||
|
|
||||||
|
self:visible( bShow );
|
||||||
|
end;
|
||||||
|
--[[ RefreshCreditTextMessageCommand=update;
|
||||||
|
CoinInsertedMessageCommand=update;
|
||||||
|
PlayerJoinedMessageCommand=update;
|
||||||
|
ScreenChangedMessageCommand=UpdateVisible; --]]
|
||||||
|
};
|
||||||
|
return text;
|
||||||
|
end;
|
||||||
|
--
|
||||||
local t = Def.ActorFrame {
|
local t = Def.ActorFrame {
|
||||||
|
CreditsText( PLAYER_1 );
|
||||||
|
CreditsText( PLAYER_2 );
|
||||||
Def.ActorFrame {
|
Def.ActorFrame {
|
||||||
Def.Quad {
|
Def.Quad {
|
||||||
InitCommand=cmd(zoomtowidth,SCREEN_WIDTH;zoomtoheight,30;horizalign,left;vertalign,top;y,SCREEN_TOP;diffuse,color("0,0,0,0"));
|
InitCommand=cmd(zoomtowidth,SCREEN_WIDTH;zoomtoheight,30;horizalign,left;vertalign,top;y,SCREEN_TOP;diffuse,color("0,0,0,0"));
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
@@ -261,6 +261,7 @@ AdvanceExtraPixels=0
|
|||||||
253=12
|
253=12
|
||||||
254=15
|
254=15
|
||||||
255=12
|
255=12
|
||||||
|
|
||||||
[alt]
|
[alt]
|
||||||
0=10
|
0=10
|
||||||
1=10
|
1=10
|
||||||
@@ -390,3 +391,28 @@ AdvanceExtraPixels=0
|
|||||||
125=12
|
125=12
|
||||||
126=6
|
126=6
|
||||||
127=7
|
127=7
|
||||||
|
|
||||||
|
[polish]
|
||||||
|
Baseline=23
|
||||||
|
Top=6
|
||||||
|
|
||||||
|
line 0=ĄĆĘŁŃŚŹŻ
|
||||||
|
line 1=ąćęłńśźż
|
||||||
|
|
||||||
|
0=15
|
||||||
|
1=10
|
||||||
|
2=12
|
||||||
|
3=12
|
||||||
|
4=12
|
||||||
|
5=12
|
||||||
|
6=13
|
||||||
|
7=13
|
||||||
|
|
||||||
|
8=11
|
||||||
|
9=11
|
||||||
|
10=11
|
||||||
|
11=6
|
||||||
|
12=11
|
||||||
|
13=10
|
||||||
|
14=10
|
||||||
|
15=10
|
||||||
|
After Width: | Height: | Size: 32 KiB |
|
After Width: | Height: | Size: 480 B |
@@ -372,7 +372,7 @@ MaxTextureResolution=Choose the maximum texture resolution. Setting this to any
|
|||||||
MenuTimer=When &oq;ON&cq;, menus have a time limit.
|
MenuTimer=When &oq;ON&cq;, menus have a time limit.
|
||||||
Mines=Mines
|
Mines=Mines
|
||||||
MoveRandomToEnd=Determines if courses with random songs should be placed at the end of the course select wheel.
|
MoveRandomToEnd=Determines if courses with random songs should be placed at the end of the course select wheel.
|
||||||
MovieColorDepth=Choose the color depth of textures. 32 bit textures use more memory, but look nicer.
|
MovieColorDepth=Choose the color depth of movies. 32 bit textures use more memory, but look nicer.
|
||||||
MusicWheelSwitchSpeed=Adjusts the speed of the music wheel.
|
MusicWheelSwitchSpeed=Adjusts the speed of the music wheel.
|
||||||
MusicWheelUsesSections=&oq;Always&cq; means sections in group + ABC; &oq;Never&cq; means no sections; &oq;Title Only&cq; shows sections in ABC order.
|
MusicWheelUsesSections=&oq;Always&cq; means sections in group + ABC; &oq;Never&cq; means no sections; &oq;Title Only&cq; shows sections in ABC order.
|
||||||
Network Options=Connect to a server or change server options.
|
Network Options=Connect to a server or change server options.
|
||||||
@@ -656,6 +656,7 @@ Never=Never
|
|||||||
New=New
|
New=New
|
||||||
NewEdit=-New Edit-
|
NewEdit=-New Edit-
|
||||||
No=No
|
No=No
|
||||||
|
NoAttacks=No Attacks
|
||||||
NoHands=No Hands
|
NoHands=No Hands
|
||||||
NoHolds=No Holds
|
NoHolds=No Holds
|
||||||
NoJumps=No Jumps
|
NoJumps=No Jumps
|
||||||
@@ -707,7 +708,8 @@ Skip=Skip
|
|||||||
Skippy=Skippy
|
Skippy=Skippy
|
||||||
Slow=Slow
|
Slow=Slow
|
||||||
SN2=Supernova 2
|
SN2=Supernova 2
|
||||||
SongAttacks=Song Attacks
|
SongAttacks=Step Attacks
|
||||||
|
StepAttacks=Step Attacks
|
||||||
Song BGAnimation=Song BGAnimation
|
Song BGAnimation=Song BGAnimation
|
||||||
Song Bitmap=Song Bitmap
|
Song Bitmap=Song Bitmap
|
||||||
Song Movie=Song Movie
|
Song Movie=Song Movie
|
||||||
@@ -800,6 +802,7 @@ CelShadeModels=Cel-shaded Models
|
|||||||
Center Image=Center Image
|
Center Image=Center Image
|
||||||
Chaos=Chaos
|
Chaos=Chaos
|
||||||
Characters=Characters
|
Characters=Characters
|
||||||
|
Chart Name=Chart Name
|
||||||
Chart Style=Chart Style
|
Chart Style=Chart Style
|
||||||
Choose=Choose
|
Choose=Choose
|
||||||
Clear Bookkeeping Data=Clear Bookkeeping Data
|
Clear Bookkeeping Data=Clear Bookkeeping Data
|
||||||
@@ -807,13 +810,20 @@ Clear Machine Edits=Clear Machine Edits
|
|||||||
Clear Machine Stats=Clear Machine Scores
|
Clear Machine Stats=Clear Machine Scores
|
||||||
Clear USB edits=Clear USB edits
|
Clear USB edits=Clear USB edits
|
||||||
Clear area=Clear area
|
Clear area=Clear area
|
||||||
|
Clear clipboard=Clear clipboard
|
||||||
CoinMode=Coin Mode
|
CoinMode=Coin Mode
|
||||||
CoinModeNoHome=Coin Mode
|
CoinModeNoHome=Coin Mode
|
||||||
CoinsPerCredit=Coins Per Credit
|
CoinsPerCredit=Coins Per Credit
|
||||||
Connection=Connection
|
Connection=Connection
|
||||||
Convert pause to beats=Convert pause to beats
|
Convert pause to beats=Convert stop to beats
|
||||||
Convert selection to pause=Convert selection to pause
|
Convert delay to beats=Convert delay to beats
|
||||||
|
Convert selection to attack=Convert selection to Attack
|
||||||
|
Convert selection to pause=Convert selection to stop
|
||||||
|
Convert selection to delay=Convert selection to delay
|
||||||
|
Convert selection to warp=Convert selection to Warp Segment
|
||||||
|
Convert selection to fake=Convert selection to Fake Segment
|
||||||
Copy=Copy
|
Copy=Copy
|
||||||
|
Copy timing data=Copy timing data
|
||||||
CourseSortOrder=Course Sort
|
CourseSortOrder=Course Sort
|
||||||
Create New=Create New
|
Create New=Create New
|
||||||
Create New Course=Create New
|
Create New Course=Create New
|
||||||
@@ -829,6 +839,8 @@ DelayedTextureDelete=Keep Textures In Memory
|
|||||||
Delete=Delete
|
Delete=Delete
|
||||||
Delete beat and shift up=Delete beat and shift up
|
Delete beat and shift up=Delete beat and shift up
|
||||||
Description=Description
|
Description=Description
|
||||||
|
Designate as Music Preview=Designate as Music Preview
|
||||||
|
Designate last second at current beat=Designate last second at current beat
|
||||||
Difficulty=Difficulty
|
Difficulty=Difficulty
|
||||||
Display BPM=Display BPM
|
Display BPM=Display BPM
|
||||||
DisplayAspectRatio=Aspect Ratio
|
DisplayAspectRatio=Aspect Ratio
|
||||||
@@ -867,6 +879,7 @@ Entry %d=Entry %d
|
|||||||
EventMode=Event Mode
|
EventMode=Event Mode
|
||||||
Exit=Exit
|
Exit=Exit
|
||||||
Fail=Fail
|
Fail=Fail
|
||||||
|
Fakes=Fakes
|
||||||
FastLoad=Fast\nLoad
|
FastLoad=Fast\nLoad
|
||||||
File1 Global BGAnimation=File1 Global BGAnimation
|
File1 Global BGAnimation=File1 Global BGAnimation
|
||||||
File1 Global Movie=File1 Global Movie
|
File1 Global Movie=File1 Global Movie
|
||||||
@@ -904,11 +917,13 @@ Insert=Insert
|
|||||||
Insert Credit=Insert Credit
|
Insert Credit=Insert Credit
|
||||||
Insert beat and shift down=Insert beat and shift down
|
Insert beat and shift down=Insert beat and shift down
|
||||||
Insert Entry=Insert Entry
|
Insert Entry=Insert Entry
|
||||||
|
Invert notes' player=Invert player notes (routine only)
|
||||||
Jumps=Jumps
|
Jumps=Jumps
|
||||||
Key Joy Mappings=Config Key/Joy Mappings
|
Key Joy Mappings=Config Key/Joy Mappings
|
||||||
Language=Language
|
Language=Language
|
||||||
Last beat hint=Last beat hint
|
Last second hint=Last second hint
|
||||||
Layer=Layer
|
Layer=Layer
|
||||||
|
Lifts=Lifts
|
||||||
LifeDifficulty=Life Difficulty
|
LifeDifficulty=Life Difficulty
|
||||||
LifeType=Life Type
|
LifeType=Life Type
|
||||||
Low Meter=Low Meter
|
Low Meter=Low Meter
|
||||||
@@ -921,6 +936,8 @@ MenuTimer=Menu Timer
|
|||||||
Meter=Meter
|
Meter=Meter
|
||||||
Min BPM=Min Specified BPM
|
Min BPM=Min Specified BPM
|
||||||
Mines=Mines
|
Mines=Mines
|
||||||
|
Mirror Player 1 to 2=Mirror P1's notes to P2 (routine only)
|
||||||
|
Mirror Player 2 to 1=Mirror P2's notes to P1 (routine only)
|
||||||
MoveRandomToEnd=Random At End
|
MoveRandomToEnd=Random At End
|
||||||
More Options=More Options
|
More Options=More Options
|
||||||
MovieColorDepth=Movie Color
|
MovieColorDepth=Movie Color
|
||||||
@@ -936,6 +953,7 @@ OsMountPlayer1=OS Mount Player1
|
|||||||
OsMountPlayer2=OS Mount Player2
|
OsMountPlayer2=OS Mount Player2
|
||||||
Paste at begin marker=Paste at begin marker
|
Paste at begin marker=Paste at begin marker
|
||||||
Paste at current beat=Paste at current beat
|
Paste at current beat=Paste at current beat
|
||||||
|
Paste timing data=Paste timing data
|
||||||
Persp=Persp
|
Persp=Persp
|
||||||
Play current beat to end=Play current beat to end
|
Play current beat to end=Play current beat to end
|
||||||
Play preview music=Play preview music
|
Play preview music=Play preview music
|
||||||
@@ -971,7 +989,8 @@ Remove Change=Remove Change
|
|||||||
Rename=Rename
|
Rename=Rename
|
||||||
Reset To Defaults=Reset Options To Default Values
|
Reset To Defaults=Reset Options To Default Values
|
||||||
Revert from disk=Revert from disk
|
Revert from disk=Revert from disk
|
||||||
Revert to last save=Revert to last save
|
Revert to last save=Revert from cache
|
||||||
|
Rolls=Rolls
|
||||||
Save=Save
|
Save=Save
|
||||||
SaveScores=Save Scores
|
SaveScores=Save Scores
|
||||||
SaveReplays=Save Replays
|
SaveReplays=Save Replays
|
||||||
@@ -1036,6 +1055,7 @@ Type=Type
|
|||||||
Turn=Turn
|
Turn=Turn
|
||||||
Undo=Undo
|
Undo=Undo
|
||||||
UseUnlockSystem=Unlock System
|
UseUnlockSystem=Unlock System
|
||||||
|
View steps data=View Steps Data
|
||||||
VisualDelaySeconds=Visual Delay
|
VisualDelaySeconds=Visual Delay
|
||||||
Voltage=Voltage
|
Voltage=Voltage
|
||||||
Vsync=Wait For Vsync
|
Vsync=Wait For Vsync
|
||||||
@@ -1216,6 +1236,7 @@ Write Profiles=Write Profiles
|
|||||||
off=off
|
off=off
|
||||||
on=on
|
on=on
|
||||||
or=or
|
or=or
|
||||||
|
Zoom In Camera=Zoom In Camera
|
||||||
|
|
||||||
[ScreenEdit]
|
[ScreenEdit]
|
||||||
%s notes=%s notes
|
%s notes=%s notes
|
||||||
@@ -1228,7 +1249,7 @@ Enter a new Stop value.=Enter a new Stop value.\n\nType "0" to remove.
|
|||||||
Enter a new Delay value.=Enter a new Delay value.\n\nType "0" to remove.
|
Enter a new Delay value.=Enter a new Delay value.\n\nType "0" to remove.
|
||||||
Enter a new Time Signature.=Enter a new time signature.\nUse the format "x/y".\nEnter the previous value to remove.
|
Enter a new Time Signature.=Enter a new time signature.\nUse the format "x/y".\nEnter the previous value to remove.
|
||||||
Enter a new Tickcount value.=Enter a new Tickcount value.\n\nEnter the previous value to remove.
|
Enter a new Tickcount value.=Enter a new Tickcount value.\n\nEnter the previous value to remove.
|
||||||
Enter a new Combo value.=Enter a new Combo value.\n\nEnter the previous value to remove.
|
Enter a new Combo value.=Enter a new Combo value.\nUse the format "x/y".\nEnter the previous value to remove.
|
||||||
Enter a new Label value.=Enter a name for this section of the chart.\n\nEnter a previously used label to remove.
|
Enter a new Label value.=Enter a name for this section of the chart.\n\nEnter a previously used label to remove.
|
||||||
Enter a new Warp value.=Enter the number of beats you will warp over.\n\nType "0" to remove this segment.
|
Enter a new Warp value.=Enter the number of beats you will warp over.\n\nType "0" to remove this segment.
|
||||||
Enter a new Speed percent value.=Enter the ratio for speed scrolling.\nEnter the previous value to remove.\n1 is the default scroll.
|
Enter a new Speed percent value.=Enter the ratio for speed scrolling.\nEnter the previous value to remove.\n1 is the default scroll.
|
||||||
@@ -1242,11 +1263,12 @@ Enter a new artist.=Enter a new artist.
|
|||||||
Enter a new genre.=Enter a new genre.
|
Enter a new genre.=Enter a new genre.
|
||||||
Enter a new credit.=Enter a new credit.
|
Enter a new credit.=Enter a new credit.
|
||||||
Enter a new description.=Enter a new description.
|
Enter a new description.=Enter a new description.
|
||||||
|
Enter a new chart name.=Enter the name/title of this chart.
|
||||||
Enter a new chart style.=Enter a new chart style (e.g. "Pad", "Keyboard").
|
Enter a new chart style.=Enter a new chart style (e.g. "Pad", "Keyboard").
|
||||||
Enter a new meter.=Enter the difficulty rating for this chart.
|
Enter a new meter.=Enter the difficulty rating for this chart.
|
||||||
Enter the author who made this step pattern.=Enter the author who made this step pattern.
|
Enter the author who made this step pattern.=Enter the author who made this step pattern.
|
||||||
Enter the offset for the song.=Enter the beat 0 offset for the song.
|
Enter the offset for the song.=Enter the beat 0 offset for the song.
|
||||||
Enter a new last beat hint.=Enter a new last beat hint.
|
Enter a new last second hint.=Enter a new last second hint.
|
||||||
Enter a new main title transliteration.=Enter a new main title transliteration.
|
Enter a new main title transliteration.=Enter a new main title transliteration.
|
||||||
Enter a new main title.=Enter a new main title.
|
Enter a new main title.=Enter a new main title.
|
||||||
Enter a new sub title transliteration.=Enter a new sub title transliteration.
|
Enter a new sub title transliteration.=Enter a new sub title transliteration.
|
||||||
@@ -1257,7 +1279,7 @@ Enter a new min BPM.=Enter the minimum displayed BPM.
|
|||||||
Enter a new max BPM.=Enter the maximum displayed BPM.
|
Enter a new max BPM.=Enter the maximum displayed BPM.
|
||||||
More than %d notes per measure is not allowed. This change has been reverted.=More than %d notes per measure is not allowed. This change has been reverted.
|
More than %d notes per measure is not allowed. This change has been reverted.=More than %d notes per measure is not allowed. This change has been reverted.
|
||||||
No backgrounds available=No backgrounds available
|
No backgrounds available=No backgrounds available
|
||||||
EditHelpText=Up/Down:\n change beat\nLeft/Right:\n change snap\nNumber keys:\n add/remove\n tap note\nN and M keys:\n swap tap notes\nCreate hold note:\n Hold a number\n while moving\n Up or Down\nCreate roll note:\n Hold Shift,\n then create a\n hold note.\nSpace bar:\n Set area\n marker\nEnter:\n Area Menu\nEscape:\n Main Menu\nF4:\n Timing Menu\nF1:\n Show help\n
|
EditHelpText=Up/Down:\n change beat\nLeft/Right:\n change snap\nNumber keys:\n add/remove\n tap note\nN and M keys:\n swap tap notes\nCtrl + N/M:\n swap cycled segment\nCtrl + ,/.:\n cycle segments\nCreate hold note:\n Hold a number\n while moving\n Up or Down\nCreate roll note:\n Hold Shift,\n then create a\n hold note.\nSpace bar: Set area\n marker\nT key: Switch Timing\nEnter: Area Menu\nA Key: Alter Menu\nEscape: Main Menu\nF4: Timing Menu\nF1: Show help\n
|
||||||
PlayRecordHelpText=Press START to end
|
PlayRecordHelpText=Press START to end
|
||||||
Save successful.=Save successful.
|
Save successful.=Save successful.
|
||||||
Saved as SM and DWI.=Saved as SM and DWI.
|
Saved as SM and DWI.=Saved as SM and DWI.
|
||||||
@@ -1269,6 +1291,7 @@ This change creates notes past the end of the music and is not allowed.=This cha
|
|||||||
This will destroy all unsaved changes.=This will destroy all unsaved changes.
|
This will destroy all unsaved changes.=This will destroy all unsaved changes.
|
||||||
Undo=Undo
|
Undo=Undo
|
||||||
You must be in Song Timing Mode to edit BG Changes.=You must be in Song Timing Mode to edit BG Changes.
|
You must be in Song Timing Mode to edit BG Changes.=You must be in Song Timing Mode to edit BG Changes.
|
||||||
|
You must have an area selected to enter the Alter Menu.=You must have an area selected to enter the Alter Menu.
|
||||||
|
|
||||||
Current beat=Current beat
|
Current beat=Current beat
|
||||||
Current second=Current second
|
Current second=Current second
|
||||||
@@ -1276,10 +1299,13 @@ Snap to=Snap to
|
|||||||
Selection beat=Selection beat
|
Selection beat=Selection beat
|
||||||
Difficulty=Difficulty
|
Difficulty=Difficulty
|
||||||
Description=Description
|
Description=Description
|
||||||
|
Chart Name=Chart Name
|
||||||
Chart Style=Chart Style
|
Chart Style=Chart Style
|
||||||
|
Step Author=Step Author
|
||||||
Main title=Main title
|
Main title=Main title
|
||||||
Subtitle=Subtitle
|
Subtitle=Subtitle
|
||||||
Tap Note=Tap Note
|
Tap Note=Tap Note
|
||||||
|
Segment=Segment
|
||||||
Tap Steps=Tap Steps
|
Tap Steps=Tap Steps
|
||||||
Jumps=Jumps
|
Jumps=Jumps
|
||||||
Hands=Hands
|
Hands=Hands
|
||||||
@@ -1657,11 +1683,15 @@ Error adding file '%s'.=Error adding file '%s'.
|
|||||||
Loading courses...=Loading courses...
|
Loading courses...=Loading courses...
|
||||||
Loading songs...=Loading songs...
|
Loading songs...=Loading songs...
|
||||||
Reloading...=Reloading...
|
Reloading...=Reloading...
|
||||||
|
Unloading songs...=Unloading songs...
|
||||||
|
Unloading courses...=Unloading courses...
|
||||||
The folder "%s" appears to be a song folder. All song folders must reside in a group folder. For example, "Songs/Originals/My Song".=The folder "%s" appears to be a song folder. All song folders must reside in a group folder. For example, "Songs/Originals/My Song" will contain the music file (MP3, OGG...), the steps file (.sm, .dwi, .ksf...) and other related files.
|
The folder "%s" appears to be a song folder. All song folders must reside in a group folder. For example, "Songs/Originals/My Song".=The folder "%s" appears to be a song folder. All song folders must reside in a group folder. For example, "Songs/Originals/My Song" will contain the music file (MP3, OGG...), the steps file (.sm, .dwi, .ksf...) and other related files.
|
||||||
|
|
||||||
[SongUtil]
|
[SongUtil]
|
||||||
You must supply a name for your new edit.=You must supply a name for your new edit.
|
You must supply a name for your new edit.=You must supply a name for your new edit.
|
||||||
|
The name you chose conflicts with another chart. Please use a different name.=The name you chose conflicts with another chart. Please use a different name.
|
||||||
The name you chose conflicts with another edit. Please use a different name.=The name you chose conflicts with another edit. Please use a different name.
|
The name you chose conflicts with another edit. Please use a different name.=The name you chose conflicts with another edit. Please use a different name.
|
||||||
|
The chart name cannot contain any of the following characters: %s=The chart name cannot contain any of the following characters: %s
|
||||||
The edit name cannot contain any of the following characters: %s=The edit name can not contain any of the following characters: %s
|
The edit name cannot contain any of the following characters: %s=The edit name can not contain any of the following characters: %s
|
||||||
The step author's name cannot contain any of the following characters: %s=The step author's name cannot contain any of the following characters: %s
|
The step author's name cannot contain any of the following characters: %s=The step author's name cannot contain any of the following characters: %s
|
||||||
|
|
||||||
@@ -1897,6 +1927,7 @@ P2=P2
|
|||||||
[UnlockRewardType]
|
[UnlockRewardType]
|
||||||
Song=Song
|
Song=Song
|
||||||
Steps=Steps
|
Steps=Steps
|
||||||
|
StepsType=StepsType
|
||||||
Course=Course
|
Course=Course
|
||||||
Modifier=Modifier
|
Modifier=Modifier
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#BACKGROUND:;
|
#BACKGROUND:;
|
||||||
#LYRICSPATH:;
|
#LYRICSPATH:;
|
||||||
#CDTITLE:;
|
#CDTITLE:;
|
||||||
#MUSIC:ScreenGameplaySyncMachine music.ogg;
|
#MUSIC:_sync music.ogg;
|
||||||
#OFFSET:-0.012;
|
#OFFSET:-0.012;
|
||||||
#SAMPLESTART:0.000;
|
#SAMPLESTART:0.000;
|
||||||
#SAMPLELENGTH:12.000;
|
#SAMPLELENGTH:12.000;
|
||||||
@@ -26,6 +26,8 @@
|
|||||||
#DIFFICULTY:Beginner;
|
#DIFFICULTY:Beginner;
|
||||||
#METER:1;
|
#METER:1;
|
||||||
#RADARVALUES:0.302,0.205,0.000,0.000,0.000;
|
#RADARVALUES:0.302,0.205,0.000,0.000,0.000;
|
||||||
|
#BPMS:0.000=132.000;
|
||||||
|
#OFFSET:-0.012;
|
||||||
#NOTES:
|
#NOTES:
|
||||||
// measure 1
|
// measure 1
|
||||||
0000
|
0000
|
||||||
@@ -100,6 +102,8 @@
|
|||||||
#DIFFICULTY:Beginner;
|
#DIFFICULTY:Beginner;
|
||||||
#METER:1;
|
#METER:1;
|
||||||
#RADARVALUES:0.302,0.205,0.000,0.000,0.000;
|
#RADARVALUES:0.302,0.205,0.000,0.000,0.000;
|
||||||
|
#BPMS:0.000=132.000;
|
||||||
|
#OFFSET:-0.012;
|
||||||
#NOTES:
|
#NOTES:
|
||||||
// measure 1
|
// measure 1
|
||||||
00000
|
00000
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
#DESCRIPTION:BASIC;
|
#DESCRIPTION:BASIC;
|
||||||
#DIFFICULTY:easy;
|
#DIFFICULTY:easy;
|
||||||
#METER:1;
|
#METER:1;
|
||||||
|
#BPMS:0.000=100.000;
|
||||||
|
#STOPS:16=2,18=2,20=2,22=2;
|
||||||
#RADARVALUES:0,0,0,0,0;
|
#RADARVALUES:0,0,0,0,0;
|
||||||
#NOTES:
|
#NOTES:
|
||||||
0000
|
0000
|
||||||
@@ -72,6 +74,8 @@
|
|||||||
#DESCRIPTION:NORMAL;
|
#DESCRIPTION:NORMAL;
|
||||||
#DIFFICULTY:easy;
|
#DIFFICULTY:easy;
|
||||||
#METER:1;
|
#METER:1;
|
||||||
|
#BPMS:0.000=100.000;
|
||||||
|
#STOPS:16=2,18=2,20=2,22=2;
|
||||||
#RADARVALUES:0,0,0,0,0;
|
#RADARVALUES:0,0,0,0,0;
|
||||||
#NOTES:
|
#NOTES:
|
||||||
00000
|
00000
|
||||||
|
|||||||
@@ -56,15 +56,6 @@ function ActorScroller:setfastcatchup(bFastCatchup)
|
|||||||
self:SetFastCatchup(bFastCatchup)
|
self:SetFastCatchup(bFastCatchup)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- renaming various StepMania functions to sm-ssc ones:
|
|
||||||
if ScreenString then
|
|
||||||
ScreenString = Screen.String
|
|
||||||
end
|
|
||||||
|
|
||||||
if ScreenMetric then
|
|
||||||
ScreenMetric = Screen.Metric
|
|
||||||
end
|
|
||||||
|
|
||||||
--[[ GameState ]]
|
--[[ GameState ]]
|
||||||
--Aliases for old GAMESTATE timing functions.
|
--Aliases for old GAMESTATE timing functions.
|
||||||
--These have been converted to SongPosition, but most themes still use these old functions.
|
--These have been converted to SongPosition, but most themes still use these old functions.
|
||||||
|
|||||||
@@ -83,6 +83,44 @@ local DropBezier =
|
|||||||
function Actor:drop(t)
|
function Actor:drop(t)
|
||||||
self:tween( t, "TweenType_Bezier", DropBezier );
|
self:tween( t, "TweenType_Bezier", DropBezier );
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- compound tweens "combine multiple interpolators to allow generating more
|
||||||
|
-- complex tweens." length is how long to span the animation for, while
|
||||||
|
-- ... is either a string (e.g. "linear,0.25,accelerate,0.75") or a table
|
||||||
|
-- with the tween information.
|
||||||
|
function Actor:compound(length,...)
|
||||||
|
local tweens = ...
|
||||||
|
|
||||||
|
if type(tweens) == "string" then
|
||||||
|
local parsed = split(";",tweens)
|
||||||
|
tweens = {} -- convert to table
|
||||||
|
for i,s in pairs(parsed) do
|
||||||
|
local res = split(",",s)
|
||||||
|
|
||||||
|
tweens[i] = {
|
||||||
|
Type = res[1],
|
||||||
|
Percent = res[2],
|
||||||
|
Bezier = res[3] or nil
|
||||||
|
}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
for i,t in pairs(tweens) do
|
||||||
|
if t.Type == "linear" then self:linear(t.Percent*length)
|
||||||
|
elseif t.Type == "accelerate" then self:accelerate(t.Percent*length)
|
||||||
|
elseif t.Type == "decelerate" then self:decelerate(t.Percent*length)
|
||||||
|
elseif t.Type == "spring" then self:spring(t.Percent*length)
|
||||||
|
elseif t.Type == "bouncebegin" then self:bouncebegin(t.Percent*length)
|
||||||
|
elseif t.Type == "bounceend" then self:bounceend(t.Percent*length)
|
||||||
|
elseif t.Type == "smooth" then self:smooth(t.Percent*length)
|
||||||
|
elseif t.Type == "drop" then self:smooth(t.Percent*length)
|
||||||
|
--elseif t.Type == "ease" then self:ease(t.Percent*length)
|
||||||
|
elseif t.Type == "bezier" then
|
||||||
|
-- todo: handle using tween and 'TweenType_Bezier'
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Hide if b is true, but don't unhide if b is false.
|
-- Hide if b is true, but don't unhide if b is false.
|
||||||
function Actor:hide_if(b)
|
function Actor:hide_if(b)
|
||||||
if b then
|
if b then
|
||||||
@@ -114,17 +152,32 @@ function Actor:FullScreen()
|
|||||||
end
|
end
|
||||||
|
|
||||||
--[[ Typical background sizes:
|
--[[ Typical background sizes:
|
||||||
320x240 - DDR 1st-Extreme, most NVLM_ZK songs
|
320x240 - [4:3]
|
||||||
640x480 - most simfiles in distribution today are this big.
|
640x480 - [4:3] (most simfiles in distribution today use this res.)
|
||||||
768x480 - 16:10 aspect ratio backgrounds
|
768x480 - [16:10]
|
||||||
854x480 - pump it up pro
|
854x480 - [16:9]
|
||||||
]]
|
]]
|
||||||
-- "Most backgrounds are 640x480. Some are 768x480. Stretch the 4:3 ones."
|
|
||||||
function Actor:scale_or_crop_background()
|
function Actor:scale_or_crop_background()
|
||||||
if (self:GetWidth() * 3) / 4 == self:GetHeight() then
|
local gw = self:GetWidth()
|
||||||
|
local gh = self:GetHeight()
|
||||||
|
|
||||||
|
local graphicAspect = gw/gh
|
||||||
|
local displayAspect = DISPLAY:GetDisplayWidth()/DISPLAY:GetDisplayHeight()
|
||||||
|
|
||||||
|
if graphicAspect == displayAspect then
|
||||||
|
-- bga matches the current aspect, we can stretch it.
|
||||||
self:stretchto( 0,0,SCREEN_WIDTH,SCREEN_HEIGHT );
|
self:stretchto( 0,0,SCREEN_WIDTH,SCREEN_HEIGHT );
|
||||||
else
|
else
|
||||||
|
-- temp
|
||||||
self:scaletocover( 0,0,SCREEN_WIDTH,SCREEN_HEIGHT );
|
self:scaletocover( 0,0,SCREEN_WIDTH,SCREEN_HEIGHT );
|
||||||
|
--[[
|
||||||
|
-- bga doesn't match the aspect.
|
||||||
|
if displayAspect > graphicAspect then
|
||||||
|
-- the graphic is smaller than the display aspect ratio
|
||||||
|
else
|
||||||
|
-- the graphic is bigger than the display aspect ratio; crop me
|
||||||
|
end
|
||||||
|
--]]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,11 @@ Branch = {
|
|||||||
if SONGMAN:GetNumSongs() == 0 and SONGMAN:GetNumAdditionalSongs() == 0 then
|
if SONGMAN:GetNumSongs() == 0 and SONGMAN:GetNumAdditionalSongs() == 0 then
|
||||||
return "ScreenHowToInstallSongs";
|
return "ScreenHowToInstallSongs";
|
||||||
end;
|
end;
|
||||||
|
if PROFILEMAN:GetNumLocalProfiles() >= 2 then
|
||||||
return "ScreenSelectProfile";
|
return "ScreenSelectProfile";
|
||||||
|
else
|
||||||
|
return "ScreenProfileLoad";
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
OptionsEdit = function()
|
OptionsEdit = function()
|
||||||
-- Similar to above, don't let anyone in here with 0 songs.
|
-- Similar to above, don't let anyone in here with 0 songs.
|
||||||
@@ -75,7 +79,7 @@ Branch = {
|
|||||||
return "ScreenOptionsEdit";
|
return "ScreenOptionsEdit";
|
||||||
end,
|
end,
|
||||||
AfterProfileLoad = function()
|
AfterProfileLoad = function()
|
||||||
return "ScreenSelectProfile"
|
return Branch.AfterSelectProfile()
|
||||||
end,
|
end,
|
||||||
AfterSelectProfile = function()
|
AfterSelectProfile = function()
|
||||||
if ( THEME:GetMetric("Common","AutoSetStyle") == true ) then
|
if ( THEME:GetMetric("Common","AutoSetStyle") == true ) then
|
||||||
@@ -189,4 +193,7 @@ Branch = {
|
|||||||
Network = function()
|
Network = function()
|
||||||
return IsNetConnected() and "ScreenTitleMenu" or "ScreenTitleMenu"
|
return IsNetConnected() and "ScreenTitleMenu" or "ScreenTitleMenu"
|
||||||
end,
|
end,
|
||||||
|
AfterSaveSummary = function()
|
||||||
|
return GAMESTATE:AnyPlayerHasRankingFeats() and "ScreenNameEntryTraditional" or "ScreenGameOver"
|
||||||
|
end,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
-- SSC Color Module and Library
|
-- SSC Color Module and Library
|
||||||
local nilColor = color("0,0,0,0")
|
|
||||||
-- Original Color Module.
|
-- Original Color Module.
|
||||||
Color = {
|
Color = {
|
||||||
-- Color Library
|
-- Color Library
|
||||||
@@ -16,7 +16,7 @@ Color = {
|
|||||||
Purple = color("#92278f"),
|
Purple = color("#92278f"),
|
||||||
Outline = color("0,0,0,0.5"),
|
Outline = color("0,0,0,0.5"),
|
||||||
Invisible = color("1,1,1,0"),
|
Invisible = color("1,1,1,0"),
|
||||||
Stealth = nilColor,
|
Stealth = color("0,0,0,0"),
|
||||||
-- Color Functions
|
-- Color Functions
|
||||||
-- These functions alter colors in a certain way so that you can make
|
-- These functions alter colors in a certain way so that you can make
|
||||||
-- new ones without having to copy a color or find a new one.
|
-- new ones without having to copy a color or find a new one.
|
||||||
@@ -30,8 +30,11 @@ Color = {
|
|||||||
return { c[1],c[2],c[3],fAlpha };
|
return { c[1],c[2],c[3],fAlpha };
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setmetatable(Color, { __call = function(self, c) return self[c] end })
|
||||||
|
|
||||||
-- Remapped Color Module, since some themes are crazy
|
-- Remapped Color Module, since some themes are crazy
|
||||||
Colors = Color;
|
-- Colors = Color;
|
||||||
|
|
||||||
GameColor = {
|
GameColor = {
|
||||||
PlayerColors = {
|
PlayerColors = {
|
||||||
@@ -95,10 +98,6 @@ GameColor.Difficulty["Nightmare"] = GameColor.Difficulty["Challenge"];
|
|||||||
GameColor.Difficulty["HalfDouble"] = GameColor.Difficulty["Medium"];
|
GameColor.Difficulty["HalfDouble"] = GameColor.Difficulty["Medium"];
|
||||||
|
|
||||||
--[[ Fallbacks ]]
|
--[[ Fallbacks ]]
|
||||||
function Color(c)
|
|
||||||
return Colors[c]
|
|
||||||
end
|
|
||||||
|
|
||||||
function BoostColor( cColor, fBoost )
|
function BoostColor( cColor, fBoost )
|
||||||
local c = cColor
|
local c = cColor
|
||||||
return { c[1]*fBoost, c[2]*fBoost, c[3]*fBoost, c[4] }
|
return { c[1]*fBoost, c[2]*fBoost, c[3]*fBoost, c[4] }
|
||||||
|
|||||||
@@ -98,16 +98,17 @@ end
|
|||||||
|
|
||||||
-- Get a metric from the currently-loading screen. This is only valid while loading
|
-- Get a metric from the currently-loading screen. This is only valid while loading
|
||||||
-- an actor, such as from File or InitCommand attributes; not from commands.
|
-- an actor, such as from File or InitCommand attributes; not from commands.
|
||||||
Screen = {
|
Screen.Metric = function ( sName )
|
||||||
Metric = function ( sName )
|
|
||||||
local sClass = Var "LoadingScreen"
|
local sClass = Var "LoadingScreen"
|
||||||
return THEME:GetMetric( sClass, sName )
|
return THEME:GetMetric( sClass, sName )
|
||||||
end,
|
end
|
||||||
String = function ( sName )
|
ScreenMetric = Screen.Metric
|
||||||
|
|
||||||
|
Screen.String = function ( sName )
|
||||||
local sClass = Var "LoadingScreen";
|
local sClass = Var "LoadingScreen";
|
||||||
return THEME:GetString( sClass, sName )
|
return THEME:GetString( sClass, sName )
|
||||||
end
|
end
|
||||||
};
|
ScreenString = Screen.String
|
||||||
|
|
||||||
function TextBannerAfterSet(self,param)
|
function TextBannerAfterSet(self,param)
|
||||||
local Title=self:GetChild("Title");
|
local Title=self:GetChild("Title");
|
||||||
|
|||||||
@@ -13,20 +13,38 @@ function AreStageSongModsForced()
|
|||||||
return bExtraStage or bOni or bBattle or bRave
|
return bExtraStage or bOni or bBattle or bRave
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function SetFail()
|
||||||
|
local sFail = "";
|
||||||
|
|
||||||
|
if GetGamePref("DefaultFail") then
|
||||||
|
sFail = string.format("Fail%s", GetGamePref("DefaultFail"));
|
||||||
|
else
|
||||||
|
sFail = "FailOff";
|
||||||
|
end
|
||||||
|
|
||||||
|
sFail = tostring(sFail);
|
||||||
|
-- SCREENMAN:SystemMessage( 'NEW FAIL IS: ' .. tostring(sFail) );
|
||||||
|
|
||||||
|
for pn in ivalues(GAMESTATE:GetHumanPlayers()) do
|
||||||
|
-- GAMESTATE:ApplyGameCommand( "stagemod,FailImmediateContinue", pn );
|
||||||
|
-- GAMESTATE:GetPlayerState(pn):SetPlayerOptions( "ModsLevel_Song", 'mod,FailImmediateContinue' );
|
||||||
|
MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} );
|
||||||
|
end
|
||||||
|
|
||||||
|
-- GAMESTATE:SetSongOptions( "ModsLevel_Preferred", 'mod,FailImmediateContinue' );
|
||||||
|
-- GAMESTATE:SetSongOptions( "ModsLevel_Stage", 'mod,FailImmediateContinue' );
|
||||||
|
-- GAMESTATE:SetSongOptions( "ModsLevel_Song",'mod,FailImmediateContinue' );
|
||||||
|
GAMESTATE:ApplyGameCommand( "mod," .. sFail);
|
||||||
|
-- GAMESTATE:ApplyGameCommand( "stagemod,FailImmediateContinue");
|
||||||
|
MESSAGEMAN:Broadcast( "SongOptionsChanged" );
|
||||||
|
end
|
||||||
|
|
||||||
function ScreenSelectMusic:setupmusicstagemods()
|
function ScreenSelectMusic:setupmusicstagemods()
|
||||||
Trace( "setupmusicstagemods" )
|
Trace( "setupmusicstagemods" )
|
||||||
local pm = GAMESTATE:GetPlayMode()
|
local pm = GAMESTATE:GetPlayMode()
|
||||||
|
|
||||||
if pm == "PlayMode_Battle" or pm == "PlayMode_Rave" then
|
if pm == "PlayMode_Battle" or pm == "PlayMode_Rave" then
|
||||||
-- FIX DAT BUG;
|
local so = GAMESTATE:GetDefaultSongOptions();
|
||||||
local sFail = "";
|
|
||||||
if GetGamePref("DefaultFail") then
|
|
||||||
sFail = string.format("Fail%s", GetGamePref("DefaultFail") );
|
|
||||||
else
|
|
||||||
sFail = "Failoff";
|
|
||||||
end;
|
|
||||||
--
|
|
||||||
local so = GAMESTATE:GetDefaultSongOptions() .. "," .. sFail;
|
|
||||||
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so );
|
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so );
|
||||||
MESSAGEMAN:Broadcast( "SongOptionsChanged" );
|
MESSAGEMAN:Broadcast( "SongOptionsChanged" );
|
||||||
elseif GAMESTATE:IsAnExtraStage() then
|
elseif GAMESTATE:IsAnExtraStage() then
|
||||||
@@ -46,6 +64,7 @@ function ScreenSelectMusic:setupmusicstagemods()
|
|||||||
po = THEME:GetMetric("SongManager","ExtraStagePlayerModifiers");
|
po = THEME:GetMetric("SongManager","ExtraStagePlayerModifiers");
|
||||||
so = THEME:GetMetric("SongManager","ExtraStageStageModifiers");
|
so = THEME:GetMetric("SongManager","ExtraStageStageModifiers");
|
||||||
end
|
end
|
||||||
|
|
||||||
local difficulty = steps:GetDifficulty()
|
local difficulty = steps:GetDifficulty()
|
||||||
local Reverse = PlayerNumber:Reverse()
|
local Reverse = PlayerNumber:Reverse()
|
||||||
|
|
||||||
@@ -59,8 +78,6 @@ function ScreenSelectMusic:setupmusicstagemods()
|
|||||||
MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} )
|
MESSAGEMAN:Broadcast( "PlayerOptionsChanged", {PlayerNumber = pn} )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so )
|
GAMESTATE:SetSongOptions( "ModsLevel_Stage", so )
|
||||||
MESSAGEMAN:Broadcast( "SongOptionsChanged" )
|
MESSAGEMAN:Broadcast( "SongOptionsChanged" )
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
--[[
|
--[[
|
||||||
Custom Speed Mods v2.0 (for sm-ssc)
|
Custom Speed Mods v2.1 (for StepMania 5)
|
||||||
by AJ Kelly of KKI Labs ( http://kki.ajworld.net/ )
|
by AJ Kelly of KKI Labs ( http://kki.ajworld.net/ )
|
||||||
|
|
||||||
changelog:
|
changelog:
|
||||||
|
|
||||||
|
v2.1 (StepMania 5 Preview 2)
|
||||||
|
* Added support for m-Mods.
|
||||||
|
|
||||||
v2.0 (for sm-ssc)
|
v2.0 (for sm-ssc)
|
||||||
Giant rewrite of the speed mod parser.
|
Giant rewrite of the speed mod parser.
|
||||||
This rewrite comes with the following changes/features:
|
This rewrite comes with the following changes/features:
|
||||||
@@ -38,9 +41,6 @@ v1.2
|
|||||||
|
|
||||||
v1.1
|
v1.1
|
||||||
* Cleaned up code some, I think.
|
* Cleaned up code some, I think.
|
||||||
________________________________________________________________________________
|
|
||||||
anticipated future changes:
|
|
||||||
* M-Mod support (when sm-ssc integrates it)
|
|
||||||
]]
|
]]
|
||||||
|
|
||||||
-- ProfileDir(slot): gets the profile dir for slot,
|
-- ProfileDir(slot): gets the profile dir for slot,
|
||||||
@@ -68,7 +68,7 @@ local function ParseSpeedModFile(path)
|
|||||||
return mods
|
return mods
|
||||||
else
|
else
|
||||||
-- error; write a fallback mod file and return it
|
-- error; write a fallback mod file and return it
|
||||||
local fallbackString = "0.5x,1x,1.5x,2x,3x,4x,8x,C200,C400"
|
local fallbackString = "0.5x,1x,1.5x,2x,3x,4x,8x,C250,C450,m550"
|
||||||
Trace("[CustomSpeedMods]: Could not read SpeedMods; writing fallback to "..path)
|
Trace("[CustomSpeedMods]: Could not read SpeedMods; writing fallback to "..path)
|
||||||
file:Open(path, 2)
|
file:Open(path, 2)
|
||||||
file:Write(fallbackString)
|
file:Write(fallbackString)
|
||||||
@@ -148,8 +148,8 @@ end
|
|||||||
|
|
||||||
local function SpeedModSort(tab)
|
local function SpeedModSort(tab)
|
||||||
local xMods = {}
|
local xMods = {}
|
||||||
|
local mMods = {}
|
||||||
local cMods = {}
|
local cMods = {}
|
||||||
--local mMods = {}
|
|
||||||
|
|
||||||
-- convert to numbers so sorting works:
|
-- convert to numbers so sorting works:
|
||||||
for i=1,#tab do
|
for i=1,#tab do
|
||||||
@@ -159,10 +159,10 @@ local function SpeedModSort(tab)
|
|||||||
if string.find(tab[i],"C%d") then
|
if string.find(tab[i],"C%d") then
|
||||||
typ = cMods
|
typ = cMods
|
||||||
val = string.gsub(tab[i], "C", "")
|
val = string.gsub(tab[i], "C", "")
|
||||||
elseif string.find(tab[i],"M%d") then
|
-- support both cases because I want to hit people -freem
|
||||||
Trace("[CustomSpeedMods] OpenITG's M-Mods are not supported yet in sm-ssc.")
|
elseif string.find(tab[i],"m%d") or string.find(tab[i],"M%d") then
|
||||||
--typ = mMods
|
typ = mMods
|
||||||
--val = string.gsub(tab[i], "M", "")
|
val = string.gsub(tab[i], "m", "")
|
||||||
else
|
else
|
||||||
typ = xMods
|
typ = xMods
|
||||||
val = string.gsub(tab[i], "x", "")
|
val = string.gsub(tab[i], "x", "")
|
||||||
@@ -175,7 +175,7 @@ local function SpeedModSort(tab)
|
|||||||
-- sort cMods
|
-- sort cMods
|
||||||
cMods = AnonSort(cMods)
|
cMods = AnonSort(cMods)
|
||||||
-- sort mMods
|
-- sort mMods
|
||||||
--mMods = AnonSort(mMods)
|
mMods = AnonSort(mMods)
|
||||||
local fin = {}
|
local fin = {}
|
||||||
-- convert it back to a string since that's what it expects
|
-- convert it back to a string since that's what it expects
|
||||||
for i=1,#xMods do
|
for i=1,#xMods do
|
||||||
@@ -184,7 +184,9 @@ local function SpeedModSort(tab)
|
|||||||
for i=1,#cMods do
|
for i=1,#cMods do
|
||||||
table.insert(fin, "C"..cMods[i])
|
table.insert(fin, "C"..cMods[i])
|
||||||
end
|
end
|
||||||
--for i=1,#mMods do table.insert(fin, "M"..mMods[i]); end;
|
for i=1,#mMods do
|
||||||
|
table.insert(fin, "m"..mMods[i])
|
||||||
|
end
|
||||||
return fin
|
return fin
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -295,7 +297,7 @@ function SpeedMods()
|
|||||||
end
|
end
|
||||||
|
|
||||||
--[[
|
--[[
|
||||||
Copyright © 2008-2009 AJ Kelly/KKI Labs.
|
Copyright © 2008-2011 AJ Kelly/KKI Labs.
|
||||||
Use freely, so long this notice and the above documentation remains.
|
Use freely, so long this notice and the above documentation remains.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ function GetExtraColorThreshold()
|
|||||||
sGame = GAMESTATE:GetCurrentGame():GetName()
|
sGame = GAMESTATE:GetCurrentGame():GetName()
|
||||||
local Modes = {
|
local Modes = {
|
||||||
dance = 10,
|
dance = 10,
|
||||||
pump = 15,
|
pump = 21,
|
||||||
beat = 12,
|
beat = 12,
|
||||||
kb7 = 10,
|
kb7 = 10,
|
||||||
para = 10,
|
para = 10,
|
||||||
@@ -105,6 +105,10 @@ function ComboPerRow()
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function EvalUsesCheckpointsWithJudgments()
|
||||||
|
return (GAMESTATE:GetCurrentGame():GetName() == "pump") and true or false
|
||||||
|
end
|
||||||
|
|
||||||
-- these need cleanup really.
|
-- these need cleanup really.
|
||||||
function HitCombo()
|
function HitCombo()
|
||||||
sGame = GAMESTATE:GetCurrentGame():GetName()
|
sGame = GAMESTATE:GetCurrentGame():GetName()
|
||||||
@@ -183,7 +187,11 @@ function HoldTiming()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function ShowHoldJudgments()
|
function ShowHoldJudgments()
|
||||||
return not GAMESTATE:GetCurrentGame():GetName() == "pump"
|
if GAMESTATE:GetCurrentGame():GetName() == "pump" then
|
||||||
|
return false
|
||||||
|
else
|
||||||
|
return true
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function HoldHeadStep()
|
function HoldHeadStep()
|
||||||
|
|||||||
@@ -247,3 +247,15 @@ function Hue(color,newHue)
|
|||||||
c.Hue = newHue
|
c.Hue = newHue
|
||||||
return HSVToColor(c)
|
return HSVToColor(c)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function Alpha(color,percent)
|
||||||
|
local c = ColorToHSV(color);
|
||||||
|
-- error checking
|
||||||
|
if percent < 0 then
|
||||||
|
percent = 0.0;
|
||||||
|
elseif percent > 1 then
|
||||||
|
percent = 1.0;
|
||||||
|
end;
|
||||||
|
c.Alpha = percent;
|
||||||
|
return HSVToColor(c);
|
||||||
|
end;
|
||||||
@@ -148,7 +148,9 @@ end
|
|||||||
-- MaskSource([clearzbuffer])
|
-- MaskSource([clearzbuffer])
|
||||||
-- Sets an actor up as the source for a mask. Clears zBuffer by default.
|
-- Sets an actor up as the source for a mask. Clears zBuffer by default.
|
||||||
function Actor:MaskSource(noclear)
|
function Actor:MaskSource(noclear)
|
||||||
self:clearzbuffer(noclear or true)
|
if noclear == true then
|
||||||
|
self:clearzbuffer(true)
|
||||||
|
end
|
||||||
self:zwrite(true)
|
self:zwrite(true)
|
||||||
self:blend('BlendMode_NoEffect')
|
self:blend('BlendMode_NoEffect')
|
||||||
end
|
end
|
||||||
@@ -224,10 +226,10 @@ end;
|
|||||||
--[[ ----------------------------------------------------------------------- ]]
|
--[[ ----------------------------------------------------------------------- ]]
|
||||||
|
|
||||||
--[[ profile stuff ]]
|
--[[ profile stuff ]]
|
||||||
-- Profile(pn)
|
-- GetPlayerOrMachineProfile(pn)
|
||||||
-- This returns a profile, preferably a player one.
|
-- This returns a profile, preferably a player one.
|
||||||
-- If there isn't one, we fall back on the machine profile.
|
-- If there isn't one, we fall back on the machine profile.
|
||||||
function Profile(pn)
|
function GetPlayerOrMachineProfile(pn)
|
||||||
if PROFILEMAN:IsPersistentProfile(pn) then
|
if PROFILEMAN:IsPersistentProfile(pn) then
|
||||||
-- player profile
|
-- player profile
|
||||||
return PROFILEMAN:GetProfile(pn);
|
return PROFILEMAN:GetProfile(pn);
|
||||||
|
|||||||
@@ -150,7 +150,7 @@ function InitUserPrefs()
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function UserPrefScoringMode()
|
function UserPrefScoringMode()
|
||||||
local baseChoices = { 'DDR 1stMIX', 'DDR 4thMIX', 'DDR Extreme', 'DDR SuperNOVA', 'DDR SuperNOVA 2', 'MIGS' }; --'[SSC] Radar Master'
|
local baseChoices = { 'DDR 1stMIX', 'DDR 4thMIX', 'DDR Extreme', 'DDR SuperNOVA', 'DDR SuperNOVA 2', 'MIGS', 'HYBRID' }; --'[SSC] Radar Master'
|
||||||
local t = {
|
local t = {
|
||||||
Name = "UserPrefScoringMode";
|
Name = "UserPrefScoringMode";
|
||||||
LayoutType = "ShowAllInRow";
|
LayoutType = "ShowAllInRow";
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ r['DDR 4thMIX'] = function(params, pss)
|
|||||||
local capScore = 999999999;
|
local capScore = 999999999;
|
||||||
local bestPoints = scoreLookupTable['TapNoteScore_W1'];
|
local bestPoints = scoreLookupTable['TapNoteScore_W1'];
|
||||||
local bestCombo = bestPoints and comboBonusForThisStep or 0;
|
local bestCombo = bestPoints and comboBonusForThisStep or 0;
|
||||||
pss:SeCurMaxScore(clamp(pss:GeCurMaxScore()+bestPoints+bestCombo,0,capScore));
|
pss:SetCurMaxScore(clamp(pss:GetCurMaxScore()+bestPoints+bestCombo,0,capScore));
|
||||||
local localPoints = scoreLookupTable[params.TapNoteScore];
|
local localPoints = scoreLookupTable[params.TapNoteScore];
|
||||||
local localCombo = localPoints and comboBonusForThisStep or 0;
|
local localCombo = localPoints and comboBonusForThisStep or 0;
|
||||||
pss:SetScore(clamp(pss:GetScore()+localPoints+localCombo,0,capScore));
|
pss:SetScore(clamp(pss:GetScore()+localPoints+localCombo,0,capScore));
|
||||||
@@ -84,15 +84,20 @@ r['DDR Extreme'] = function(params, pss)
|
|||||||
setmetatable(judgmentBase, ZeroIfNotFound);
|
setmetatable(judgmentBase, ZeroIfNotFound);
|
||||||
local steps = GAMESTATE:GetCurrentSteps(params.Player);
|
local steps = GAMESTATE:GetCurrentSteps(params.Player);
|
||||||
local radarValues = steps:GetRadarValues(params.Player);
|
local radarValues = steps:GetRadarValues(params.Player);
|
||||||
local baseScore = (steps:IsAnEdit() and
|
local meter = steps:GetMeter();
|
||||||
5 or steps:GetMeter()) * 1000000;
|
if (steps:IsAnEdit()) then
|
||||||
|
meter = 5;
|
||||||
|
elseif (meter < 1) then
|
||||||
|
meter = 1;
|
||||||
|
elseif (meter > 10) then
|
||||||
|
meter = 10;
|
||||||
|
end;
|
||||||
|
local baseScore = meter * 1000000;
|
||||||
if (GAMESTATE:GetCurrentSong():IsMarathon()) then
|
if (GAMESTATE:GetCurrentSong():IsMarathon()) then
|
||||||
baseScore = baseScore * 3;
|
baseScore = baseScore * 3;
|
||||||
else
|
elseif (GAMESTATE:GetCurrentSong():IsLong()) then
|
||||||
if (GAMESTATE:GetCurrentSong():IsLong()) then
|
|
||||||
baseScore = baseScore * 2;
|
baseScore = baseScore * 2;
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
local totalItems = GetTotalItems(radarValues);
|
local totalItems = GetTotalItems(radarValues);
|
||||||
local singleStep = (1 + totalItems) * totalItems / 2;
|
local singleStep = (1 + totalItems) * totalItems / 2;
|
||||||
if (not Shared.CurrentStep) then
|
if (not Shared.CurrentStep) then
|
||||||
@@ -122,6 +127,47 @@ r['DDR Extreme'] = function(params, pss)
|
|||||||
Shared.CurrentStep[pn] = 0; -- Reset for the next song.
|
Shared.CurrentStep[pn] = 0; -- Reset for the next song.
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
-----------------------------------------------------------
|
||||||
|
--HYBRID Scoring
|
||||||
|
-----------------------------------------------------------
|
||||||
|
r['HYBRID'] = function(params, pss)
|
||||||
|
local multLookup =
|
||||||
|
{
|
||||||
|
['TapNoteScore_W1'] = 10,
|
||||||
|
['TapNoteScore_W2'] = 9,
|
||||||
|
['TapNoteScore_W3'] = 5
|
||||||
|
};
|
||||||
|
setmetatable(multLookup, ZeroIfNotFound);
|
||||||
|
local radarValues = GetDirectRadar(params.Player);
|
||||||
|
local totalItems = GetTotalItems(radarValues);
|
||||||
|
-- 1+2+3+...+totalItems の値
|
||||||
|
local sTotal = (totalItems+1)*totalItems/2;
|
||||||
|
-- [en] Score for one song
|
||||||
|
-- [ja] 1つあたりのスコア
|
||||||
|
local sOne = math.floor(100000000/sTotal);
|
||||||
|
-- [ja] 端数は最後の1ステップで加算するのでその値を取得
|
||||||
|
local sLast = 100000000-(sOne*sTotal);
|
||||||
|
-- [ja] 現在何個目の譜面か
|
||||||
|
pss:SetCurMaxScore(pss:GetCurMaxScore()+1);
|
||||||
|
-- [en] current score
|
||||||
|
-- [ja] 今回のスコア
|
||||||
|
local vScore = sOne*(pss:GetCurMaxScore());
|
||||||
|
if (params.HoldNoteScore == 'HoldNoteScore_Held') then
|
||||||
|
vScore = vScore;
|
||||||
|
else
|
||||||
|
if (params.HoldNoteScore == 'HoldNoteScore_LetGo') then
|
||||||
|
vScore = 0;
|
||||||
|
else
|
||||||
|
vScore = vScore*multLookup[params.TapNoteScore]/10;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
if ((vScore > 0) and (pss:GetCurMaxScore() == totalItems)) then
|
||||||
|
vScore = vScore+sLast;
|
||||||
|
end;
|
||||||
|
pss:SetScore(pss:GetScore()+vScore);
|
||||||
|
end;
|
||||||
|
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
--DDR SuperNOVA(-esque) scoring
|
--DDR SuperNOVA(-esque) scoring
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
@@ -148,24 +194,43 @@ end;
|
|||||||
r['DDR SuperNOVA 2'] = function(params, pss)
|
r['DDR SuperNOVA 2'] = function(params, pss)
|
||||||
local multLookup =
|
local multLookup =
|
||||||
{
|
{
|
||||||
['TapNoteScore_W1'] = 1,
|
['TapNoteScore_W1'] = 10,
|
||||||
['TapNoteScore_W2'] = 1,
|
['TapNoteScore_W2'] = 10,
|
||||||
['TapNoteScore_W3'] = 0.5
|
['TapNoteScore_W3'] = 5
|
||||||
};
|
};
|
||||||
setmetatable(multLookup, ZeroIfNotFound);
|
setmetatable(multLookup, ZeroIfNotFound);
|
||||||
local radarValues = GetDirectRadar(params.Player);
|
local radarValues = GetDirectRadar(params.Player);
|
||||||
local totalItems = GetTotalItems(radarValues);
|
local totalItems = GetTotalItems(radarValues);
|
||||||
local base = 100000 / totalItems;
|
|
||||||
local hold = base * (params.HoldNoteScore == 'HoldNoteScore_Held' and 1 or 0);
|
-- handle holds
|
||||||
local maxScore = (base * multLookup['TapNoteScore_W1']) + hold;
|
local maxAdd = 0;
|
||||||
pss:SetCurMaxScore(pss:GetCurMaxScore() + (math.round(maxScore) * 10));
|
if params.HoldNoteScore == 'HoldNoteScore_Held' then
|
||||||
local preW1 = base * multLookup[params.TapNoteScore];
|
maxAdd = 10;
|
||||||
local buildScore = (preW1 - (IsW1Allowed(params.TapNoteScore) and 10 or 0)) + hold;
|
elseif params.HoldNoteScore == 'HoldNoteScore_LetGo' then
|
||||||
pss:SetScore(pss:GetScore() + (math.round(buildScore) * 10));
|
maxAdd = 0;
|
||||||
|
else
|
||||||
|
maxAdd = multLookup[params.TapNoteScore];
|
||||||
|
if params.TapNoteScore == 'TapNoteScore_W2' or 'TapNoteScore_W3' then
|
||||||
|
-- [ja] 超最終手段
|
||||||
|
pss:SetCurMaxScore( pss:GetCurMaxScore() + 1000000 );
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
pss:SetCurMaxScore(pss:GetCurMaxScore() + maxAdd);
|
||||||
|
|
||||||
|
--[[
|
||||||
|
[ja] パフェ数取得 この方法で取得するとロングノートの場合2つカウントされる そのため使えない
|
||||||
|
pss:GetTapNoteScores('TapNoteScore_W2')
|
||||||
|
仕方がないのでパフェ数を 1000000 単位で GetCurMaxScore に記録
|
||||||
|
その後、情報を分解して取り出す
|
||||||
|
--]]
|
||||||
|
|
||||||
|
local vScore = pss:GetCurMaxScore() % 1000000
|
||||||
|
local vSub = math.floor( pss:GetCurMaxScore()/1000000 )
|
||||||
|
pss:SetScore( math.floor(10000*vScore/totalItems) * 10 - (vSub*10) );
|
||||||
end;
|
end;
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
--Radar Master (doesn't work in 1.2.1, disabled)
|
--Radar Master (doesn't work in sm-ssc 1.2.1, disabled)
|
||||||
--don't try to "fix it up", either. you *cannot* make it work in 1.2.1.
|
--todo: get this working with StepMania 5
|
||||||
-----------------------------------------------------------
|
-----------------------------------------------------------
|
||||||
r['[SSC] Radar Master'] = function(params, pss)
|
r['[SSC] Radar Master'] = function(params, pss)
|
||||||
local masterTable = {
|
local masterTable = {
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ ScreenHeight=480
|
|||||||
AutoSetStyle=GetUserPrefB("UserPrefAutoSetStyle")
|
AutoSetStyle=GetUserPrefB("UserPrefAutoSetStyle")
|
||||||
|
|
||||||
# Default modifiers and noteskin.
|
# Default modifiers and noteskin.
|
||||||
DefaultModifiers="default,1.5x"
|
DefaultModifiers="1x"
|
||||||
DefaultNoteSkinName="default"
|
DefaultNoteSkinName="default"
|
||||||
|
|
||||||
# Difficulties to show. Useful for custom games where you want to hide these.
|
# Difficulties to show. Useful for custom games where you want to hide these.
|
||||||
@@ -124,6 +124,8 @@ ExtraColor=color("#ff0000") -- red
|
|||||||
[UnlockManager]
|
[UnlockManager]
|
||||||
# Unlock specific things.
|
# Unlock specific things.
|
||||||
AutoLockChallengeSteps=false
|
AutoLockChallengeSteps=false
|
||||||
|
AutoLockEditSteps=false
|
||||||
|
SongsNotAdditional=true
|
||||||
UnlockNames=""
|
UnlockNames=""
|
||||||
|
|
||||||
# useful commands:
|
# useful commands:
|
||||||
@@ -200,6 +202,8 @@ BeatOffsetHeight=15
|
|||||||
BeatPIHeight=2
|
BeatPIHeight=2
|
||||||
MiniPercentBase=0.5
|
MiniPercentBase=0.5
|
||||||
MiniPercentGate=1
|
MiniPercentGate=1
|
||||||
|
TinyPercentBase=0.5
|
||||||
|
TinyPercentGate=1
|
||||||
DizzyHoldHeads=false
|
DizzyHoldHeads=false
|
||||||
QuantizeArrowYPosition=false
|
QuantizeArrowYPosition=false
|
||||||
|
|
||||||
@@ -411,72 +415,7 @@ SortLevel5Color=color("0,1,0,1")
|
|||||||
# Custom system that lets you rename certain classes of difficulties to
|
# Custom system that lets you rename certain classes of difficulties to
|
||||||
# something else. Mostly for custom games and game emulation, PIU for example.
|
# something else. Mostly for custom games and game emulation, PIU for example.
|
||||||
|
|
||||||
# The names of which
|
Names=
|
||||||
Names="PumpHard,PumpFreestyle,PumpNightmare,PumpHalfDouble,PumpRoutine"
|
|
||||||
|
|
||||||
# Names="DanceCoupleBeginner,DanceCoupleEasy,DanceCoupleMedium,DanceCoupleHard,DanceCoupleExpert,PumpHard"
|
|
||||||
# That get remapped to
|
|
||||||
DanceCoupleBeginnerStepsType="StepsType_Dance_Couple"
|
|
||||||
DanceCoupleBeginnerDifficulty="Difficulty_Beginner"
|
|
||||||
DanceCoupleBeginnerCourseType=nil
|
|
||||||
DanceCoupleBeginnerString="Beginner"
|
|
||||||
#--#
|
|
||||||
DanceCoupleEasyStepsType="StepsType_Dance_Couple"
|
|
||||||
DanceCoupleEasyDifficulty="Difficulty_Easy"
|
|
||||||
DanceCoupleEasyCourseType=nil
|
|
||||||
DanceCoupleEasyString="Easy"
|
|
||||||
#--#
|
|
||||||
DanceCoupleMediumStepsType="StepsType_Dance_Couple"
|
|
||||||
DanceCoupleMediumDifficulty="Difficulty_Medium"
|
|
||||||
DanceCoupleMediumCourseType=nil
|
|
||||||
DanceCoupleMediumString="Medium"
|
|
||||||
#--#
|
|
||||||
DanceCoupleHardStepsType="StepsType_Dance_Couple"
|
|
||||||
DanceCoupleHardDifficulty="Difficulty_Hard"
|
|
||||||
DanceCoupleHardCourseType=nil
|
|
||||||
DanceCoupleHardString="Hard"
|
|
||||||
#--#
|
|
||||||
DanceCoupleExpertStepsType="StepsType_Dance_Couple"
|
|
||||||
DanceCoupleExpertDifficulty="Difficulty_Expert"
|
|
||||||
DanceCoupleExpertCourseType=nil
|
|
||||||
DanceCoupleExpertString="Expert"
|
|
||||||
#===#
|
|
||||||
PumpHardStepsType="StepsType_Pump_Single"
|
|
||||||
PumpHardDifficulty="Difficulty_Hard"
|
|
||||||
PumpHardCourseType=nil
|
|
||||||
PumpHardString="Crazy"
|
|
||||||
#--#
|
|
||||||
PumpFreestyleStepsType="StepsType_Pump_Double"
|
|
||||||
PumpFreestyleDifficulty="Difficulty_Medium"
|
|
||||||
PumpFreestyleCourseType=nil
|
|
||||||
PumpFreestyleString="Freestyle"
|
|
||||||
#--#
|
|
||||||
PumpNightmareStepsType="StepsType_Pump_Double"
|
|
||||||
PumpNightmareDifficulty="Difficulty_Hard"
|
|
||||||
PumpNightmareCourseType=nil
|
|
||||||
PumpNightmareString="Nightmare"
|
|
||||||
#--#
|
|
||||||
PumpHalfDoubleStepsType="StepsType_Pump_Halfdouble"
|
|
||||||
PumpHalfDoubleDifficulty="Difficulty_Medium"
|
|
||||||
PumpHalfDoubleCourseType=nil
|
|
||||||
PumpHalfDoubleString="HalfDouble"
|
|
||||||
#--#
|
|
||||||
PumpRoutineStepsType="StepsType_Pump_Routine"
|
|
||||||
PumpRoutineDifficulty="Difficulty_Medium"
|
|
||||||
PumpRoutineCourseType=nil
|
|
||||||
PumpRoutineString="Routine"
|
|
||||||
#
|
|
||||||
# Difficulty_Beginner-StepsType_Pump_Single=Easy
|
|
||||||
# Difficulty_Easy-StepsType_Pump_Single=Normal
|
|
||||||
# Difficulty_Medium-StepsType_Pump_Single=Hard
|
|
||||||
# Difficulty_Hard-StepsType_Pump_Single=Crazy
|
|
||||||
# Difficulty_Medium-StepsType_Pump_Halfdouble=Half-Double
|
|
||||||
# Difficulty_Medium-StepsType_Pump_Double=Freestyle
|
|
||||||
# Difficulty_Hard-StepsType_Pump_Double=Nightmare
|
|
||||||
# Difficulty_Edit-StepsType_Pump_Single=Edit
|
|
||||||
# Difficulty_Edit-StepsType_Pump_Halfdouble=Edit
|
|
||||||
# Difficulty_Edit-StepsType_Pump_Double=Edit
|
|
||||||
# Course=Progressive
|
|
||||||
|
|
||||||
[DifficultyList]
|
[DifficultyList]
|
||||||
# A list that shows difficulties in a song.
|
# A list that shows difficulties in a song.
|
||||||
@@ -606,7 +545,19 @@ OverY=0
|
|||||||
|
|
||||||
[LifeMeterBattery]
|
[LifeMeterBattery]
|
||||||
# The bar that shows up in Oni mode.
|
# The bar that shows up in Oni mode.
|
||||||
|
# any score below this one will cause you to lose a life.
|
||||||
|
MinScoreToKeepLife='TapNoteScore_W3'
|
||||||
|
# how many lives you'll lose upon doing so.
|
||||||
|
SubtractLives=1
|
||||||
|
# how many lives you'll lose hitting a mine
|
||||||
|
MinesSubtractLives=1
|
||||||
|
# how many lives a successful hold will net you.
|
||||||
|
HeldAddLives=0
|
||||||
|
# how many lives an unsuccessful hold will cost you.
|
||||||
|
LetGoSubtractLives=1
|
||||||
|
|
||||||
|
# How many lives trigger the "Danger" state.
|
||||||
|
DangerThreshold=1
|
||||||
# How long it flashes when you lose a life.
|
# How long it flashes when you lose a life.
|
||||||
BatteryBlinkTime=1.2
|
BatteryBlinkTime=1.2
|
||||||
# Where the batteries are
|
# Where the batteries are
|
||||||
@@ -614,11 +565,16 @@ BatteryP1X=-92
|
|||||||
BatteryP1Y=2
|
BatteryP1Y=2
|
||||||
BatteryP2X=92
|
BatteryP2X=92
|
||||||
BatteryP2Y=2
|
BatteryP2Y=2
|
||||||
# Where your live count is
|
# Where your life count is
|
||||||
|
NumLivesFormat="x%d"
|
||||||
NumLivesP1X=-92
|
NumLivesP1X=-92
|
||||||
NumLivesP1Y=0
|
NumLivesP1Y=0
|
||||||
|
NumLivesP1GainLifeCommand=
|
||||||
|
NumLivesP1LoseLifeCommand=zoom,1.5;linear,0.15;zoom,1
|
||||||
NumLivesP2X=92
|
NumLivesP2X=92
|
||||||
NumLivesP2Y=0
|
NumLivesP2Y=0
|
||||||
|
NumLivesP2GainLifeCommand=
|
||||||
|
NumLivesP2LoseLifeCommand=zoom,1.5;linear,0.15;zoom,1
|
||||||
|
|
||||||
[LifeMeterBattery Percent]
|
[LifeMeterBattery Percent]
|
||||||
# The percentage on the bar. I wouldn't even bother changing this, because I
|
# The percentage on the bar. I wouldn't even bother changing this, because I
|
||||||
@@ -1012,8 +968,8 @@ StopOffsetX=50
|
|||||||
DelayOffsetX=120
|
DelayOffsetX=120
|
||||||
WarpOffsetX=90
|
WarpOffsetX=90
|
||||||
TimeSignatureOffsetX=30
|
TimeSignatureOffsetX=30
|
||||||
TickcountOffsetX=70
|
TickcountOffsetX=50
|
||||||
ComboOffsetX=50
|
ComboOffsetX=70
|
||||||
LabelOffsetX=130
|
LabelOffsetX=130
|
||||||
SpeedOffsetX=30
|
SpeedOffsetX=30
|
||||||
ScrollOffsetX=100
|
ScrollOffsetX=100
|
||||||
@@ -1067,7 +1023,8 @@ CheckpointsUseTickcounts=(GAMESTATE:GetCurrentGame():GetName() == "pump")
|
|||||||
; deprecated?
|
; deprecated?
|
||||||
CheckpointsUseTimeSignatures=false
|
CheckpointsUseTimeSignatures=false
|
||||||
CheckpointsTapsSeparateJudgment=CheckpointsTapsSeparateJudgment()
|
CheckpointsTapsSeparateJudgment=CheckpointsTapsSeparateJudgment()
|
||||||
CheckpointsFlashOnHold=false
|
; someone misunderstood me :x -Daisu
|
||||||
|
CheckpointsFlashOnHold=(GAMESTATE:GetCurrentGame():GetName() == "pump")
|
||||||
ImmediateHoldLetGo=ImmediateHoldLetGo()
|
ImmediateHoldLetGo=ImmediateHoldLetGo()
|
||||||
RequireStepOnHoldHeads=HoldHeadStep()
|
RequireStepOnHoldHeads=HoldHeadStep()
|
||||||
RequireStepOnMines=false
|
RequireStepOnMines=false
|
||||||
@@ -1081,6 +1038,7 @@ ComboStoppedAt=50
|
|||||||
AttackRunTimeRandom=6
|
AttackRunTimeRandom=6
|
||||||
AttackRunTimeMine=7
|
AttackRunTimeMine=7
|
||||||
BattleRaveMirror=true
|
BattleRaveMirror=true
|
||||||
|
MModHighCap=600
|
||||||
|
|
||||||
[PlayerOptions]
|
[PlayerOptions]
|
||||||
RandomSpeedChance=0.2
|
RandomSpeedChance=0.2
|
||||||
@@ -1527,7 +1485,7 @@ AllowRepeatingInput=false
|
|||||||
PreSwitchPageSeconds=0
|
PreSwitchPageSeconds=0
|
||||||
PostSwitchPageSeconds=0
|
PostSwitchPageSeconds=0
|
||||||
ScrollerSecondsPerItem=0
|
ScrollerSecondsPerItem=0
|
||||||
ScrollerNumItemsToDraw=1024
|
ScrollerNumItemsToDraw=16
|
||||||
ScrollerTransform=function(self,offset,itemIndex,numItems) end
|
ScrollerTransform=function(self,offset,itemIndex,numItems) end
|
||||||
ScrollerSubdivisions=1
|
ScrollerSubdivisions=1
|
||||||
OverrideSleepAfterTweenOffSeconds=false
|
OverrideSleepAfterTweenOffSeconds=false
|
||||||
@@ -1791,8 +1749,7 @@ CodeUp="+MenuUp"
|
|||||||
CodeUp2="+Up"
|
CodeUp2="+Up"
|
||||||
CodeDown="+MenuDown"
|
CodeDown="+MenuDown"
|
||||||
CodeDown2="+Down"
|
CodeDown2="+Down"
|
||||||
# Holding Start let us skip ( annoying )
|
CodeStart="+Start"
|
||||||
CodeStart="~Start,+Start"
|
|
||||||
CodeBack="Back"
|
CodeBack="Back"
|
||||||
CodeCenter="Center"
|
CodeCenter="Center"
|
||||||
CodeDownLeft="DownLeft"
|
CodeDownLeft="DownLeft"
|
||||||
@@ -1817,6 +1774,7 @@ ChoiceDouble="name,Double;style,double;text,Double;screen,"..Branch.AfterSelectP
|
|||||||
ChoiceSolo="name,Solo;style,solo;text,Solo;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceSolo="name,Solo;style,solo;text,Solo;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceVersus="name,Versus;style,versus;text,Versus;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceVersus="name,Versus;style,versus;text,Versus;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceCouple="name,Couple;style,couple;text,Couple;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceCouple="name,Couple;style,couple;text,Couple;screen,"..Branch.AfterSelectPlayMode()
|
||||||
|
ChoiceRoutine="name,Routine;style,routine;text,Routine;screen,"..Branch.AfterSelectPlayMode()
|
||||||
ChoiceHalfDouble="name,HalfDouble;style,halfdouble;text,HalfDouble;screen,"..Branch.AfterSelectPlayMode()
|
ChoiceHalfDouble="name,HalfDouble;style,halfdouble;text,HalfDouble;screen,"..Branch.AfterSelectPlayMode()
|
||||||
Choice5Keys="name,5Keys;style,single5;text,5Keys;screen,"..Branch.AfterSelectPlayMode()
|
Choice5Keys="name,5Keys;style,single5;text,5Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||||
Choice7Keys="name,7Keys;style,single7;text,7Keys;screen,"..Branch.AfterSelectPlayMode()
|
Choice7Keys="name,7Keys;style,single7;text,7Keys;screen,"..Branch.AfterSelectPlayMode()
|
||||||
@@ -2064,7 +2022,8 @@ ForceTimer=true
|
|||||||
TimerMetricsGroup="MenuTimerNoSound"
|
TimerMetricsGroup="MenuTimerNoSound"
|
||||||
TimerSeconds=5
|
TimerSeconds=5
|
||||||
#
|
#
|
||||||
|
ScreenBeginCommand=%SetFail
|
||||||
|
#
|
||||||
[ScreenOptions]
|
[ScreenOptions]
|
||||||
Fallback="ScreenWithMenuElements"
|
Fallback="ScreenWithMenuElements"
|
||||||
NavigationMode="normal"
|
NavigationMode="normal"
|
||||||
@@ -2134,6 +2093,7 @@ OptionRowExitMetricsGroup="OptionRowExit"
|
|||||||
Fallback="ScreenOptions"
|
Fallback="ScreenOptions"
|
||||||
Class="ScreenOptionsMaster"
|
Class="ScreenOptionsMaster"
|
||||||
NoteSkinSortOrder=""
|
NoteSkinSortOrder=""
|
||||||
|
StepsUseChartName=false
|
||||||
|
|
||||||
# ExitItem is an exit row with the "Exit" text as a menu item; ExitTitle
|
# ExitItem is an exit row with the "Exit" text as a menu item; ExitTitle
|
||||||
# uses the menu title.
|
# uses the menu title.
|
||||||
@@ -2177,22 +2137,23 @@ Accel,5="mod,boomerang;name,Boomerang"
|
|||||||
# Accel,5="mod,expand;name,Expand"
|
# Accel,5="mod,expand;name,Expand"
|
||||||
# Accel,6="mod,boomerang;name,Boomerang"
|
# Accel,6="mod,boomerang;name,Boomerang"
|
||||||
|
|
||||||
Effect="14;selectmultiple"
|
Effect="15;selectmultiple"
|
||||||
EffectDefault="mod,no drunk,no dizzy,,no twirl,no roll,no confusion,no mini,no tiny,no flip,no invert,no tornado,no tipsy,no bumpy,no beat,no xmode"
|
EffectDefault="mod,no drunk,no dizzy,,no twirl,no roll,no confusion,no mini,no tiny,no flip,no invert,no tornado,no tipsy,no bumpy,no beat,no xmode"
|
||||||
Effect,1="mod,drunk;name,Drunk"
|
Effect,1="mod,drunk;name,Drunk"
|
||||||
Effect,2="mod,dizzy;name,Dizzy"
|
Effect,2="mod,dizzy;name,Dizzy"
|
||||||
Effect,3="mod,twirl;name,Twirl"
|
Effect,3="mod,twirl;name,Twirl"
|
||||||
Effect,4="mod,roll;name,Roll"
|
Effect,4="mod,roll;name,Roll"
|
||||||
Effect,5="mod,confusion;name,Confusion"
|
Effect,5="mod,confusion;name,Confusion"
|
||||||
Effect,6="mod,tiny;name,Tiny"
|
Effect,6="mod,mini;name,Mini"
|
||||||
Effect,7="mod,-100% mini;name,Big"
|
Effect,7="mod,tiny;name,Tiny"
|
||||||
Effect,8="mod,flip;name,Flip"
|
Effect,8="mod,-100% mini;name,Big"
|
||||||
Effect,9="mod,invert;name,Invert"
|
Effect,9="mod,flip;name,Flip"
|
||||||
Effect,10="mod,tornado;name,Tornado"
|
Effect,10="mod,invert;name,Invert"
|
||||||
Effect,11="mod,tipsy;name,Tipsy"
|
Effect,11="mod,tornado;name,Tornado"
|
||||||
Effect,12="mod,bumpy;name,Bumpy"
|
Effect,12="mod,tipsy;name,Tipsy"
|
||||||
Effect,13="mod,beat;name,Beat"
|
Effect,13="mod,bumpy;name,Bumpy"
|
||||||
Effect,14="mod,45% xmode;name,XMode"
|
Effect,14="mod,beat;name,Beat"
|
||||||
|
Effect,15="mod,45% xmode;name,XMode"
|
||||||
|
|
||||||
EffectsReceptor="selectmultiple"
|
EffectsReceptor="selectmultiple"
|
||||||
EffectsReceptorDefault=""
|
EffectsReceptorDefault=""
|
||||||
@@ -2335,18 +2296,11 @@ Mines,2="name,On"
|
|||||||
Mines,3="mod,mines;name,Add"
|
Mines,3="mod,mines;name,Add"
|
||||||
Mines,4="mod,attackmines;name,AttackMines"
|
Mines,4="mod,attackmines;name,AttackMines"
|
||||||
|
|
||||||
# Mines="4"
|
|
||||||
# MinesDefault="mod,no nomines,no mines, no attackmines"
|
|
||||||
# Mines,1="mod,nomines;name,Off"
|
|
||||||
# Mines,2="name,On"
|
|
||||||
# Mines,3="mod,mines;name,Add"
|
|
||||||
# Mines,4="mod,attackmines;name,AttackMines"
|
|
||||||
|
|
||||||
Attacks="3"
|
Attacks="3"
|
||||||
AttacksDefault="mod,songattacks"
|
AttacksDefault="mod,no randomattacks, no noattacks"
|
||||||
Attacks,3="mod,no randomattacks,no songattacks;name,Off"
|
Attacks,1="name,On"
|
||||||
Attacks,2="mod,randomattacks;name,RandomAttacks"
|
Attacks,2="mod,randomattacks;name,RandomAttacks"
|
||||||
Attacks,1="name,SongAttacks"
|
Attacks,3="mod,noattacks;name,Off"
|
||||||
|
|
||||||
PlayerAutoPlay="2"
|
PlayerAutoPlay="2"
|
||||||
PlayerAutoPlayDefault="mod,no playerautoplay"
|
PlayerAutoPlayDefault="mod,no playerautoplay"
|
||||||
@@ -2357,7 +2311,7 @@ Hide="3;selectmultiple"
|
|||||||
HideDefault="mod,no dark,no blind,no cover"
|
HideDefault="mod,no dark,no blind,no cover"
|
||||||
Hide,1="mod,dark;name,Dark"
|
Hide,1="mod,dark;name,Dark"
|
||||||
Hide,2="mod,blind;name,Blind"
|
Hide,2="mod,blind;name,Blind"
|
||||||
Hide,3="mod,60% cover;name,Cover"
|
Hide,3="mod,80% cover;name,Cover"
|
||||||
|
|
||||||
# Hide="3"
|
# Hide="3"
|
||||||
# HideDefault="mod,no dark,no blind"
|
# HideDefault="mod,no dark,no blind"
|
||||||
@@ -2373,12 +2327,6 @@ Persp,3="mod,space;name,Space"
|
|||||||
Persp,4="mod,hallway;name,Hallway"
|
Persp,4="mod,hallway;name,Hallway"
|
||||||
Persp,5="mod,distant;name,Distant"
|
Persp,5="mod,distant;name,Distant"
|
||||||
|
|
||||||
ScoreDisplay="3"
|
|
||||||
ScoreDisplayDefault="mod,addscore"
|
|
||||||
ScoreDisplay,1="mod,addscore;name,Add"
|
|
||||||
ScoreDisplay,2="mod,subtractscore;name,Subtract"
|
|
||||||
ScoreDisplay,3="mod,averagescore;name,Average"
|
|
||||||
|
|
||||||
# Song options
|
# Song options
|
||||||
# LifeType="3;together"
|
# LifeType="3;together"
|
||||||
LifeType=(GAMESTATE:IsCourseMode() and 3 or 2)..";together"
|
LifeType=(GAMESTATE:IsCourseMode() and 3 or 2)..";together"
|
||||||
@@ -2507,6 +2455,7 @@ LineHighlightP2ChangeToExitCommand=
|
|||||||
CursorOnCommand=visible,false
|
CursorOnCommand=visible,false
|
||||||
|
|
||||||
[ScreenOptionsService]
|
[ScreenOptionsService]
|
||||||
|
AllowOperatorMenuButton=false
|
||||||
Class="ScreenOptionsMaster"
|
Class="ScreenOptionsMaster"
|
||||||
Fallback="ScreenOptionsSimpleService"
|
Fallback="ScreenOptionsSimpleService"
|
||||||
#
|
#
|
||||||
@@ -2884,7 +2833,6 @@ Line11="list,Attacks"
|
|||||||
Line12="list,PlayerAutoPlay"
|
Line12="list,PlayerAutoPlay"
|
||||||
Line13="list,Hide"
|
Line13="list,Hide"
|
||||||
Line14="list,Persp"
|
Line14="list,Persp"
|
||||||
Line15="list,ScoreDisplay"
|
|
||||||
Line16="list,Steps"
|
Line16="list,Steps"
|
||||||
Line17="list,Characters"
|
Line17="list,Characters"
|
||||||
|
|
||||||
@@ -3276,10 +3224,13 @@ PlayerType="PlayerShared"
|
|||||||
Class="ScreenEvaluation"
|
Class="ScreenEvaluation"
|
||||||
Fallback="ScreenWithMenuElements"
|
Fallback="ScreenWithMenuElements"
|
||||||
#
|
#
|
||||||
|
NextScreen=Branch.AfterEvaluation()
|
||||||
|
PrevScreen=Branch.AfterEvaluation()
|
||||||
|
#
|
||||||
LightsMode="LightsMode_MenuStartOnly"
|
LightsMode="LightsMode_MenuStartOnly"
|
||||||
#
|
#
|
||||||
Summary=false
|
Summary=false
|
||||||
CheckpointsWithJudgments=false
|
CheckpointsWithJudgments=EvalUsesCheckpointsWithJudgments()
|
||||||
#
|
#
|
||||||
TimerSeconds=20
|
TimerSeconds=20
|
||||||
#
|
#
|
||||||
@@ -3361,30 +3312,34 @@ DetailLineFormat="%3d/%3d"
|
|||||||
[ScreenEvaluationNormal]
|
[ScreenEvaluationNormal]
|
||||||
Fallback="ScreenEvaluation"
|
Fallback="ScreenEvaluation"
|
||||||
#
|
#
|
||||||
NextScreen="ScreenProfileSave"
|
NextScreen=Branch.AfterEvaluation()
|
||||||
|
PrevScreen=Branch.AfterEvaluation()
|
||||||
|
|
||||||
[ScreenEvaluationSummary]
|
[ScreenEvaluationSummary]
|
||||||
Fallback="ScreenEvaluation"
|
Fallback="ScreenEvaluation"
|
||||||
#
|
#
|
||||||
NextScreen="ScreenSelectMusic"
|
NextScreen=Branch.AfterSummary()
|
||||||
#
|
#
|
||||||
Summary=true
|
Summary=true
|
||||||
#
|
|
||||||
|
|
||||||
[ScreenNameEntry]
|
[ScreenNameEntry]
|
||||||
# !!! #
|
# !!! #
|
||||||
Class="ScreenNameEntry"
|
Class="ScreenNameEntry"
|
||||||
Fallback="ScreenWithMenuElementsBlank"
|
Fallback="ScreenWithMenuElementsBlank"
|
||||||
|
#
|
||||||
TimerX=SCREEN_CENTER_X+0
|
TimerX=SCREEN_CENTER_X+0
|
||||||
TimerY=SCREEN_CENTER_Y-210
|
TimerY=SCREEN_CENTER_Y-210
|
||||||
|
#
|
||||||
CategoryY=SCREEN_CENTER_Y+190
|
CategoryY=SCREEN_CENTER_Y+190
|
||||||
CategoryZoom=0.7
|
CategoryZoom=0.7
|
||||||
|
#
|
||||||
CharsZoomSmall=1.0
|
CharsZoomSmall=1.0
|
||||||
CharsZoomLarge=1.5
|
CharsZoomLarge=1.5
|
||||||
CharsSpacingY=40
|
CharsSpacingY=40
|
||||||
CharsChoices=" ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
CharsChoices=" ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||||
ScrollingCharsCommand=diffuse,0.6,0.8,0.8,1
|
ScrollingCharsCommand=diffuse,0.6,0.8,0.8,1
|
||||||
SelectedCharsCommand=diffuse,0.8,1,1,1
|
SelectedCharsCommand=diffuse,0.8,1,1,1
|
||||||
|
#
|
||||||
ReceptorArrowsY=SCREEN_CENTER_Y-140
|
ReceptorArrowsY=SCREEN_CENTER_Y-140
|
||||||
NumCharsToDrawBehind=2
|
NumCharsToDrawBehind=2
|
||||||
NumCharsToDrawTotal=10
|
NumCharsToDrawTotal=10
|
||||||
@@ -3394,7 +3349,9 @@ TimerSeconds=24
|
|||||||
TimerStealth=false
|
TimerStealth=false
|
||||||
ShowStyleIcon=false
|
ShowStyleIcon=false
|
||||||
MaxRankingNameLength=4
|
MaxRankingNameLength=4
|
||||||
|
#
|
||||||
NextScreen="ScreenProfileSave"
|
NextScreen="ScreenProfileSave"
|
||||||
|
#
|
||||||
PlayerP1OnePlayerOneSideX=SCREEN_CENTER_X-160
|
PlayerP1OnePlayerOneSideX=SCREEN_CENTER_X-160
|
||||||
PlayerP2OnePlayerOneSideX=SCREEN_CENTER_X+160
|
PlayerP2OnePlayerOneSideX=SCREEN_CENTER_X+160
|
||||||
PlayerP1TwoPlayersTwoSidesX=SCREEN_CENTER_X-160
|
PlayerP1TwoPlayersTwoSidesX=SCREEN_CENTER_X-160
|
||||||
@@ -3402,6 +3359,31 @@ PlayerP2TwoPlayersTwoSidesX=SCREEN_CENTER_X+160
|
|||||||
PlayerP1OnePlayerTwoSidesX=SCREEN_CENTER_X
|
PlayerP1OnePlayerTwoSidesX=SCREEN_CENTER_X
|
||||||
PlayerP2OnePlayerTwoSidesX=SCREEN_CENTER_X
|
PlayerP2OnePlayerTwoSidesX=SCREEN_CENTER_X
|
||||||
|
|
||||||
|
[ScreenNameEntryTraditional]
|
||||||
|
Class="ScreenNameEntryTraditional"
|
||||||
|
Fallback="ScreenWithMenuElements"
|
||||||
|
#
|
||||||
|
TimerSeconds=30
|
||||||
|
#
|
||||||
|
RepeatRate=15
|
||||||
|
RepeatDelay=1/4
|
||||||
|
#
|
||||||
|
NextScreen="ScreenProfileSaveSummary"
|
||||||
|
#
|
||||||
|
HelpText="Enter your name!"
|
||||||
|
#
|
||||||
|
CancelTransitionsOut=true
|
||||||
|
MaxRankingNameLength=4
|
||||||
|
CodeNames="Backspace,Left,Right,NextRow1=NextRow,NextRow2=NextRow,PrevRow,JumpToEnter,Enter"
|
||||||
|
CodeLeft="+MenuLeft"
|
||||||
|
CodeRight="+MenuRight"
|
||||||
|
CodePrevRow="+MenuUp"
|
||||||
|
CodeNextRow1="+MenuDown"
|
||||||
|
CodeNextRow2="Select,~Select"
|
||||||
|
CodeBackspace="@Select-MenuLeft"
|
||||||
|
CodeJumpToEnter="@Select-Start"
|
||||||
|
CodeEnter="Start"
|
||||||
|
|
||||||
[ScreenProfileSave]
|
[ScreenProfileSave]
|
||||||
Class="ScreenProfileSave"
|
Class="ScreenProfileSave"
|
||||||
Fallback="ScreenWithMenuElementsBlank"
|
Fallback="ScreenWithMenuElementsBlank"
|
||||||
@@ -3414,8 +3396,8 @@ TimerSeconds=-1
|
|||||||
[ScreenProfileSaveSummary]
|
[ScreenProfileSaveSummary]
|
||||||
Fallback="ScreenProfileSave"
|
Fallback="ScreenProfileSave"
|
||||||
#
|
#
|
||||||
NextScreen="ScreenGameOver"
|
NextScreen=Branch.AfterSaveSummary()
|
||||||
PrevScreen="ScreenGameOver"
|
PrevScreen=Branch.AfterSaveSummary()
|
||||||
|
|
||||||
[ScreenGameOver]
|
[ScreenGameOver]
|
||||||
Class="ScreenEnding"
|
Class="ScreenEnding"
|
||||||
@@ -3638,19 +3620,22 @@ PlayRecordHelpOnCommand=halign,0;valign,0;shadowlength,1
|
|||||||
|
|
||||||
LoopOnChartEnd=true
|
LoopOnChartEnd=true
|
||||||
|
|
||||||
CurrentBeatFormat="%s:\n %.5f\n"
|
CurrentBeatFormat="%s:\n %.6f\n"
|
||||||
CurrentSecondFormat="%s:\n %.5f\n"
|
CurrentSecondFormat="%s:\n %.6f\n"
|
||||||
SnapToFormat="%s:\n %s\n"
|
SnapToFormat="%s: %s\n"
|
||||||
SelectionBeatBeginFormat="%s:\n %.5f"
|
SelectionBeatBeginFormat="%s:\n %.6f"
|
||||||
SelectionBeatUnfinishedFormat=" ...\n"
|
SelectionBeatUnfinishedFormat=" ...\n"
|
||||||
SelectionBeatEndFormat="-%.5f\n"
|
SelectionBeatEndFormat="-%.6f\n"
|
||||||
DifficultyFormat="%s:\n %s\n"
|
DifficultyFormat="%s:\n %s\n"
|
||||||
RoutinePlayerFormat="%s:\n %d\n"
|
RoutinePlayerFormat="%s: %d\n"
|
||||||
DescriptionFormat="%s:\n %s\n"
|
DescriptionFormat="%s:\n %s\n"
|
||||||
|
StepAuthorFormat="%s:\n %s\n"
|
||||||
|
ChartNameFormat="%s:\n %s\n"
|
||||||
ChartStyleFormat="%s:\n %s\n"
|
ChartStyleFormat="%s:\n %s\n"
|
||||||
MainTitleFormat="%s:\n %s\n"
|
MainTitleFormat="%s:\n %s\n"
|
||||||
SubtitleFormat="%s:\n %s\n"
|
SubtitleFormat="%s:\n %s\n"
|
||||||
TapNoteTypeFormat="%s: %s\n"
|
TapNoteTypeFormat="%s: %s\n"
|
||||||
|
SegmentTypeFormat="%s: %s\n"
|
||||||
NumStepsFormat="%s: %d\n"
|
NumStepsFormat="%s: %d\n"
|
||||||
NumJumpsFormat="%s: %d\n"
|
NumJumpsFormat="%s: %d\n"
|
||||||
NumHoldsFormat="%s: %d\n"
|
NumHoldsFormat="%s: %d\n"
|
||||||
@@ -3659,10 +3644,18 @@ NumHandsFormat="%s: %d\n"
|
|||||||
NumRollsFormat="%s: %d\n"
|
NumRollsFormat="%s: %d\n"
|
||||||
NumLiftsFormat="%s: %d\n"
|
NumLiftsFormat="%s: %d\n"
|
||||||
NumFakesFormat="%s: %d\n"
|
NumFakesFormat="%s: %d\n"
|
||||||
|
NumStepsFormatTwoPlayer="%s: %d/%d\n"
|
||||||
|
NumJumpsFormatTwoPlayer="%s: %d/%d\n"
|
||||||
|
NumHoldsFormatTwoPlayer="%s: %d/%d\n"
|
||||||
|
NumMinesFormatTwoPlayer="%s: %d/%d\n"
|
||||||
|
NumHandsFormatTwoPlayer="%s: %d/%d\n"
|
||||||
|
NumRollsFormatTwoPlayer="%s: %d/%d\n"
|
||||||
|
NumLiftsFormatTwoPlayer="%s: %d/%d\n"
|
||||||
|
NumFakesFormatTwoPlayer="%s: %d/%d\n"
|
||||||
TimingModeFormat="%s:\n %s\n"
|
TimingModeFormat="%s:\n %s\n"
|
||||||
Beat0OffsetFormat="%s:\n %.5f secs\n"
|
Beat0OffsetFormat="%s:\n %.6f secs\n"
|
||||||
PreviewStartFormat="%s:\n %.5f secs\n"
|
PreviewStartFormat="%s:\n %.6f secs\n"
|
||||||
PreviewLengthFormat="%s:\n %.5f secs\n"
|
PreviewLengthFormat="%s:\n %.6f secs\n"
|
||||||
|
|
||||||
[ScreenPracticeMenu]
|
[ScreenPracticeMenu]
|
||||||
Fallback="ScreenEditMenu"
|
Fallback="ScreenEditMenu"
|
||||||
@@ -3753,9 +3746,15 @@ TitleX=SCREEN_CENTER_X-80
|
|||||||
[ScreenMiniMenuAreaMenu]
|
[ScreenMiniMenuAreaMenu]
|
||||||
Fallback="ScreenMiniMenu"
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
|
[ScreenMiniMenuAlterMenu]
|
||||||
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
[ScreenMiniMenuStepsInformation]
|
[ScreenMiniMenuStepsInformation]
|
||||||
Fallback="ScreenMiniMenu"
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
|
[ScreenMiniMenuStepsData]
|
||||||
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
[ScreenMiniMenuSongInformation]
|
[ScreenMiniMenuSongInformation]
|
||||||
Fallback="ScreenMiniMenu"
|
Fallback="ScreenMiniMenu"
|
||||||
|
|
||||||
@@ -3949,6 +3948,7 @@ PrevScreen="ScreenNetRoom"
|
|||||||
NextScreen="ScreenStageInformation"
|
NextScreen="ScreenStageInformation"
|
||||||
NoSongsScreen=Branch.TitleMenu()
|
NoSongsScreen=Branch.TitleMenu()
|
||||||
RoomSelectScreen="ScreenNetRoom"
|
RoomSelectScreen="ScreenNetRoom"
|
||||||
|
PlayerOptionsScreen="ScreenPlayerOptions"
|
||||||
Codes="CodeDetectorOnline"
|
Codes="CodeDetectorOnline"
|
||||||
|
|
||||||
ShowStyleIcon=false
|
ShowStyleIcon=false
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -1,512 +0,0 @@
|
|||||||
local t = Def.ActorFrame{}
|
|
||||||
|
|
||||||
local newBPS;
|
|
||||||
local oldBPS;
|
|
||||||
|
|
||||||
|
|
||||||
-- DECORATIONS ////////////////////////
|
|
||||||
|
|
||||||
-- Left Hex Corner Decoration
|
|
||||||
t[#t+1] = LoadActor("decoration_corner") .. {
|
|
||||||
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1));
|
|
||||||
OnCommand=cmd(horizalign,left;x,SCREEN_LEFT;vertalign,top;y,SCREEN_TOP;zoomy,0.4;zoomx,0.6;diffusealpha,0.3;blend,Blend.Add);
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Right Hex Corner Decoration
|
|
||||||
t[#t+1] = LoadActor("decoration_corner") .. {
|
|
||||||
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2));
|
|
||||||
OnCommand=cmd(horizalign,left;x,SCREEN_RIGHT;vertalign,top;y,SCREEN_TOP;zoomy,0.4;;zoomx,-0.6;diffusealpha,0.3;blend,Blend.Add);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
-- WAVY LINE (thanks AJ) ////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
--P1
|
|
||||||
t[#t+1] = LoadActor("hot_lores") .. {
|
|
||||||
OnCommand=cmd(diffusealpha,0;visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,left;x,SCREEN_LEFT+18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-26;texcoordvelocity,0.1,0;queuecommand,"Begin");
|
|
||||||
BeginCommand=function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
local move = GAMESTATE:GetSongBPS()/2
|
|
||||||
if GAMESTATE:GetSongFreeze() then
|
|
||||||
move = 0;
|
|
||||||
end
|
|
||||||
self:texcoordvelocity(move,0);
|
|
||||||
self:sleep(0.001);
|
|
||||||
self:queuecommand("Begin");
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
if params.Player == PLAYER_1 then
|
|
||||||
local lifeP1=params.LifeMeter:GetLife();
|
|
||||||
if lifeP1>=THEME:GetMetric("LifeMeterBar", "HotValue") then
|
|
||||||
self:diffusealpha(0.5);
|
|
||||||
else
|
|
||||||
self:diffusealpha(0);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
--P2
|
|
||||||
t[#t+1] = LoadActor("hot_lores") .. {
|
|
||||||
OnCommand=cmd(diffusealpha,0;visible,GAMESTATE:IsHumanPlayer(PLAYER_2);horizalign,left;x,SCREEN_RIGHT-18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,(SCREEN_WIDTH/2-26)*-1;texcoordvelocity,0.1,0;queuecommand,"Begin");
|
|
||||||
BeginCommand=function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
local move = GAMESTATE:GetSongBPS()/2
|
|
||||||
if GAMESTATE:GetSongFreeze() then
|
|
||||||
move = 0;
|
|
||||||
end
|
|
||||||
self:texcoordvelocity(move,0);
|
|
||||||
self:sleep(0.001);
|
|
||||||
self:queuecommand("Begin");
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
if params.Player == PLAYER_2 then
|
|
||||||
local lifeP2=params.LifeMeter:GetLife();
|
|
||||||
if lifeP2>=THEME:GetMetric("LifeMeterBar", "HotValue") then
|
|
||||||
self:diffusealpha(0.5);
|
|
||||||
else
|
|
||||||
self:diffusealpha(0);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
--Double
|
|
||||||
--customtexturerect,0,0,[PixelsToCoverWidth]/[ImageWidth],[PixelsToCoverHeight]/[ImageHeight]
|
|
||||||
--I said that I was gonna write it down. thx midi
|
|
||||||
|
|
||||||
t[#t+1] = LoadActor("hot_lores") .. {
|
|
||||||
OnCommand=cmd(diffusealpha,0;horizalign,left;x,SCREEN_LEFT+18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH-36;texcoordvelocity,0.1,0;customtexturerect,0,0,600/(SCREEN_WIDTH-36),1;queuecommand,"Begin");
|
|
||||||
BeginCommand=function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
local move = GAMESTATE:GetSongBPS()/2
|
|
||||||
if GAMESTATE:GetSongFreeze() then
|
|
||||||
move = 0;
|
|
||||||
end
|
|
||||||
self:texcoordvelocity(move,0);
|
|
||||||
self:sleep(0.001);
|
|
||||||
self:queuecommand("Begin");
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
local life=params.LifeMeter:GetLife();
|
|
||||||
if life>=THEME:GetMetric("LifeMeterBar", "HotValue") then
|
|
||||||
self:diffusealpha(0.5);
|
|
||||||
else
|
|
||||||
self:diffusealpha(0);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
-- DANGER ////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
--DANGER P1 single
|
|
||||||
t[#t+1] = LoadActor("danger") .. {
|
|
||||||
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,left;x,SCREEN_LEFT+18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-26;zoomy,0.5);
|
|
||||||
OnCommand=cmd(effectclock,"bgm";diffusealpha,1;linear,0.2;diffusealpha,0.25;linear,0.2;diffusealpha,1;queuecommand,"On");
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
if params.Player == PLAYER_1 then
|
|
||||||
local lifeP1 = params.LifeMeter:GetLife();
|
|
||||||
if lifeP1 <= THEME:GetMetric("LifeMeterBar", "DangerThreshold") then
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
self:visible(true);
|
|
||||||
end;
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
--DANGER P2 single
|
|
||||||
t[#t+1] = LoadActor("danger") .. {
|
|
||||||
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2);horizalign,right;x,SCREEN_RIGHT-18;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-26;zoomy,0.5);
|
|
||||||
OnCommand=cmd(effectclock,"bgm";diffusealpha,1;linear,0.2;diffusealpha,0.25;linear,0.2;diffusealpha,1;queuecommand,"On");
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
if params.Player == PLAYER_2 then
|
|
||||||
local lifeP2 = params.LifeMeter:GetLife();
|
|
||||||
if lifeP2 <= THEME:GetMetric("LifeMeterBar", "DangerThreshold") then
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
self:visible(true);
|
|
||||||
end;
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
--DANGER double
|
|
||||||
t[#t+1] = LoadActor("danger") .. {
|
|
||||||
InitCommand=cmd(visible,false;horizalign,center;x,SCREEN_CENTER_X;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH-36;zoomy,0.5);
|
|
||||||
OnCommand=cmd(effectclock,"bgm";diffusealpha,1;linear,0.2;diffusealpha,0.25;linear,0.2;diffusealpha,1;queuecommand,"On");
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
local life = params.LifeMeter:GetLife();
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
if life <= THEME:GetMetric("LifeMeterBar", "DangerThreshold") then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- METERS ////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---basemeter masked P1
|
|
||||||
t[#t+1] = LoadActor("basemeter") .. {
|
|
||||||
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,left;x,SCREEN_LEFT+18;valign,0.5;y,SCREEN_TOP+41;zoomy,0.5;blend,Blend.Add);
|
|
||||||
OnCommand=cmd(bounce;effectmagnitude,-40,0,0;effectclock,"bgm";effecttiming,2,0,0,0;);
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
if params.Player == PLAYER_1 then
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
local lifeP1 = params.LifeMeter:GetLife();
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_1)==true then
|
|
||||||
if lifeP1==0 then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
|
|
||||||
if lifeP1==1 then
|
|
||||||
self:effectmagnitude(0,0,0);
|
|
||||||
else
|
|
||||||
self:effectmagnitude(-40,0,0);
|
|
||||||
end;
|
|
||||||
|
|
||||||
self:visible(true);
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:zoomtowidth((SCREEN_WIDTH-40)*lifeP1+5);
|
|
||||||
else
|
|
||||||
self:zoomtowidth((SCREEN_WIDTH/2-26)*lifeP1);
|
|
||||||
end;
|
|
||||||
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---basemeter masked P2
|
|
||||||
t[#t+1] = LoadActor("basemeter") .. {
|
|
||||||
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2);horizalign,right;x,SCREEN_RIGHT+18;valign,0.5;y,SCREEN_TOP+41;zoomy,0.5;blend,Blend.Add;queuecommand,"Set");
|
|
||||||
OnCommand=cmd(bob;effectmagnitude,40,0,0;effectclock,"bgm";effecttiming,1,0,0,0;);
|
|
||||||
SetCommand=function(self,params)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:effectmagnitude(-40,0,0);
|
|
||||||
self:horizalign(left);
|
|
||||||
self:x(SCREEN_LEFT+18);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
if params.Player == PLAYER_2 then
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
local lifeP2 = params.LifeMeter:GetLife();
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_2)==true then
|
|
||||||
if lifeP2==0 then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
|
|
||||||
if lifeP2==1 then
|
|
||||||
self:effectmagnitude(0,0,0);
|
|
||||||
else
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:effectmagnitude(-40,0,0);
|
|
||||||
else
|
|
||||||
self:effectmagnitude(40,0,0);
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
|
|
||||||
self:visible(true);
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:zoomtowidth((SCREEN_WIDTH-40)*lifeP2);
|
|
||||||
else
|
|
||||||
self:zoomtowidth(((SCREEN_WIDTH/2-26)*lifeP2)+40);
|
|
||||||
end;
|
|
||||||
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- FRAMES & TIPS ////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
-- Left Corner
|
|
||||||
t[#t+1] = LoadActor("mask") .. {
|
|
||||||
OnCommand=cmd(horizalign,right;x,SCREEN_LEFT+130;vertalign,top;y,SCREEN_TOP+12;zoom,0.45;queuecommand,"Set");
|
|
||||||
SetCommand = function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Right Corner
|
|
||||||
t[#t+1] = LoadActor("mask") .. {
|
|
||||||
OnCommand=cmd(horizalign,right;x,SCREEN_RIGHT-130;vertalign,top;y,SCREEN_TOP+12;zoomx,-0.45;zoomy,0.45;queuecommand,"Set");
|
|
||||||
SetCommand = function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
-- Left Corner
|
|
||||||
t[#t+1] = LoadActor("corner") .. {
|
|
||||||
OnCommand=cmd(horizalign,left;x,SCREEN_LEFT+15;vertalign,top;y,SCREEN_TOP+16;zoom,0.75;queuecommand,"Set");
|
|
||||||
SetCommand = function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Right Corner
|
|
||||||
t[#t+1] = LoadActor("corner") .. {
|
|
||||||
OnCommand=cmd(horizalign,left;x,SCREEN_RIGHT-15;vertalign,top;y,SCREEN_TOP+16;zoomx,-0.75;zoomy,0.75;queuecommand,"Set");
|
|
||||||
SetCommand = function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Center Corner Left
|
|
||||||
t[#t+1] = LoadActor("center") .. {
|
|
||||||
OnCommand=cmd(horizalign,left;x,SCREEN_CENTER_X+5;vertalign,top;y,SCREEN_TOP+16;zoomx,-0.75;zoomy,0.75;queuecommand,"Set");
|
|
||||||
SetCommand = function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Center Corner Right
|
|
||||||
t[#t+1] = LoadActor("center") .. {
|
|
||||||
OnCommand=cmd(horizalign,left;x,SCREEN_CENTER_X-5;vertalign,top;y,SCREEN_TOP+16;zoom,0.75;queuecommand,"Set");
|
|
||||||
SetCommand = function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
|
||||||
self:visible(true);
|
|
||||||
else
|
|
||||||
self:visible(false);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Center part 1
|
|
||||||
t[#t+1] = LoadActor("frame") .. {
|
|
||||||
OnCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);horizalign,left;x,SCREEN_LEFT+52.5;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-85;zoomy,0.75;queuecommand,"Set";);
|
|
||||||
SetCommand = function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:zoomtowidth(SCREEN_WIDTH-105);
|
|
||||||
self:visible(true)
|
|
||||||
else
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_1) == false then
|
|
||||||
self:visible(false)
|
|
||||||
else
|
|
||||||
self:visible(true)
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
-- Center part 2
|
|
||||||
t[#t+1] = LoadActor("frame") .. {
|
|
||||||
OnCommand=cmd(horizalign,right;x,SCREEN_RIGHT-52.5;vertalign,top;y,SCREEN_TOP+16;zoomtowidth,SCREEN_WIDTH/2-85;zoomy,0.75;queuecommand,"Set";);
|
|
||||||
SetCommand = function(self)
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:visible(false)
|
|
||||||
else
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
|
||||||
self:visible(true)
|
|
||||||
else
|
|
||||||
self:visible(false)
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---tip P1
|
|
||||||
t[#t+1] = LoadActor("tip") .. {
|
|
||||||
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_1);valign,0.5;y,SCREEN_TOP+41;zoom,0.5;blend,Blend.Add;queuecommand,"Set");
|
|
||||||
--OnCommand=cmd(bob;effectmagnitude,-40,0,0;effectclock,"bgm";effecttiming,1,0,0,0;);
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
if params.Player == PLAYER_1 then
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
local lifeP1 = params.LifeMeter:GetLife();
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_1)==true then
|
|
||||||
if lifeP1==0 then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
self:visible(true);
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:x((SCREEN_WIDTH-40)*lifeP1+20);
|
|
||||||
else
|
|
||||||
self:x((SCREEN_WIDTH/2-26)*lifeP1+20);
|
|
||||||
end;
|
|
||||||
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
---tip P2
|
|
||||||
t[#t+1] = LoadActor("tip") .. {
|
|
||||||
InitCommand=cmd(visible,GAMESTATE:IsHumanPlayer(PLAYER_2);valign,0.5;y,SCREEN_TOP+41;zoom,0.5;blend,Blend.Add;);
|
|
||||||
--OnCommand=cmd(bob;effectmagnitude,40,0,0;effectclock,"bgm";effecttiming,1,0,0,0;);
|
|
||||||
LifeChangedMessageCommand=function(self,params)
|
|
||||||
if params.Player == PLAYER_2 then
|
|
||||||
local style = GAMESTATE:GetCurrentStyle();
|
|
||||||
local lifeP2 = params.LifeMeter:GetLife();
|
|
||||||
local fullstate;
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_2)==true then
|
|
||||||
if lifeP2==0 then
|
|
||||||
self:visible(false);
|
|
||||||
else
|
|
||||||
self:visible(true);
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if style:GetStyleType() == "StyleType_OnePlayerTwoSides" then
|
|
||||||
self:x((SCREEN_WIDTH-40)*lifeP2+20);
|
|
||||||
else
|
|
||||||
self:x(SCREEN_RIGHT-((SCREEN_WIDTH/2-26)*lifeP2)-20);
|
|
||||||
end;
|
|
||||||
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
-- NAMES ////////////////////////
|
|
||||||
|
|
||||||
--P1 NAME
|
|
||||||
t[#t+1] = LoadFont("Common Normal") .. {
|
|
||||||
InitCommand=cmd(horizalign,left;x,SCREEN_LEFT+30;y,SCREEN_TOP+15;zoom,0.4;shadowlength,1;uppercase,true);
|
|
||||||
BeginCommand=function(self)
|
|
||||||
local profile = PROFILEMAN:GetProfile(PLAYER_1);
|
|
||||||
local name = profile:GetDisplayName();
|
|
||||||
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_1) == true then
|
|
||||||
if name=="" then
|
|
||||||
self:settext("Player 1");
|
|
||||||
else
|
|
||||||
self:settext( name );
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
end;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
--P2 NAME
|
|
||||||
t[#t+1] = LoadFont("Common Normal") .. {
|
|
||||||
InitCommand=cmd(horizalign,right;x,SCREEN_RIGHT-30;y,SCREEN_TOP+15;zoom,0.4;shadowlength,1;uppercase,true);
|
|
||||||
BeginCommand=function(self)
|
|
||||||
local profile = PROFILEMAN:GetProfile(PLAYER_2);
|
|
||||||
local name = profile:GetDisplayName();
|
|
||||||
|
|
||||||
if GAMESTATE:IsHumanPlayer(PLAYER_2) == true then
|
|
||||||
if name=="" then
|
|
||||||
self:settext("Player 2");
|
|
||||||
else
|
|
||||||
self:settext( name );
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return t
|
|
||||||
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
@@ -1,250 +0,0 @@
|
|||||||
local c;
|
|
||||||
local player = Var "Player";
|
|
||||||
local bShowProtiming = GetUserPrefB("UserPrefProtiming" .. ToEnumShortString(player) );
|
|
||||||
|
|
||||||
local function MakeAverage( t )
|
|
||||||
local sum = 0;
|
|
||||||
for i=1,#t do
|
|
||||||
sum = sum + t[i];
|
|
||||||
end
|
|
||||||
return sum / #t
|
|
||||||
end
|
|
||||||
|
|
||||||
-- New
|
|
||||||
local function PosCount( t )
|
|
||||||
local Count = 0;
|
|
||||||
for i=1,#t do
|
|
||||||
if t[i] > 0 then Count = Count + 1 end
|
|
||||||
end
|
|
||||||
return Count
|
|
||||||
end
|
|
||||||
|
|
||||||
local function NegCount( t )
|
|
||||||
local Count = 0;
|
|
||||||
for i=1,#t do
|
|
||||||
if t[i] < 0 then Count = Count + 1 end
|
|
||||||
end
|
|
||||||
return Count
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
local function StdDev( t )
|
|
||||||
local avg = MakeAverage( t );
|
|
||||||
local sum = 0;
|
|
||||||
for i=1,#t do
|
|
||||||
sum = sum + math.pow(t[i] - avg, 2);
|
|
||||||
end
|
|
||||||
return math.sqrt(sum / (#t - 1))
|
|
||||||
end
|
|
||||||
|
|
||||||
--
|
|
||||||
local tTotalJudgments = {};
|
|
||||||
-- Global?
|
|
||||||
--[[ tPlayerData = {};
|
|
||||||
for pn in ivalues(GAMESTATE:GetHumanPlayers())
|
|
||||||
tPlayerData[pn].SignedJudgments = {};
|
|
||||||
tPlayerData[pn].AverageDifference = 0;
|
|
||||||
tPlayerData[pn].AbsoluteDifference = 0;
|
|
||||||
tPlayerData[pn].StandardDeviation = 0;
|
|
||||||
tPlayerData[pn].StandardDeviation = 0;
|
|
||||||
tPlayerData[pn].Early = 0;
|
|
||||||
tPlayerData[pn].Late = 0;
|
|
||||||
end ]]
|
|
||||||
--
|
|
||||||
local JudgeCmds = {
|
|
||||||
TapNoteScore_W1 = THEME:GetMetric( "Judgment", "JudgmentW1Command" );
|
|
||||||
TapNoteScore_W2 = THEME:GetMetric( "Judgment", "JudgmentW2Command" );
|
|
||||||
TapNoteScore_W3 = THEME:GetMetric( "Judgment", "JudgmentW3Command" );
|
|
||||||
TapNoteScore_W4 = THEME:GetMetric( "Judgment", "JudgmentW4Command" );
|
|
||||||
TapNoteScore_W5 = THEME:GetMetric( "Judgment", "JudgmentW5Command" );
|
|
||||||
TapNoteScore_Miss = THEME:GetMetric( "Judgment", "JudgmentMissCommand" );
|
|
||||||
};
|
|
||||||
|
|
||||||
local ProtimingCmds = {
|
|
||||||
TapNoteScore_W1 = THEME:GetMetric( "Protiming", "ProtimingW1Command" );
|
|
||||||
TapNoteScore_W2 = THEME:GetMetric( "Protiming", "ProtimingW2Command" );
|
|
||||||
TapNoteScore_W3 = THEME:GetMetric( "Protiming", "ProtimingW3Command" );
|
|
||||||
TapNoteScore_W4 = THEME:GetMetric( "Protiming", "ProtimingW4Command" );
|
|
||||||
TapNoteScore_W5 = THEME:GetMetric( "Protiming", "ProtimingW5Command" );
|
|
||||||
TapNoteScore_Miss = THEME:GetMetric( "Protiming", "ProtimingMissCommand" );
|
|
||||||
};
|
|
||||||
|
|
||||||
local AverageCmds = {
|
|
||||||
Pulse = THEME:GetMetric( "Protiming", "AveragePulseCommand" );
|
|
||||||
};
|
|
||||||
|
|
||||||
local TNSFrames = {
|
|
||||||
TapNoteScore_W1 = 0;
|
|
||||||
TapNoteScore_W2 = 1;
|
|
||||||
TapNoteScore_W3 = 2;
|
|
||||||
TapNoteScore_W4 = 3;
|
|
||||||
TapNoteScore_W5 = 4;
|
|
||||||
TapNoteScore_Miss = 5;
|
|
||||||
};
|
|
||||||
local t = Def.ActorFrame {};
|
|
||||||
t[#t+1] = Def.ActorFrame {
|
|
||||||
LoadActor(THEME:GetPathG("Judgment","Normal")) .. {
|
|
||||||
Name="Judgment";
|
|
||||||
InitCommand=cmd(pause;visible,false);
|
|
||||||
OnCommand=THEME:GetMetric("Judgment","JudgmentOnCommand");
|
|
||||||
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
|
||||||
};
|
|
||||||
LoadFont("Combo Numbers") .. {
|
|
||||||
Name="ProtimingDisplay";
|
|
||||||
Text="";
|
|
||||||
InitCommand=cmd(visible,false);
|
|
||||||
OnCommand=THEME:GetMetric("Protiming","ProtimingOnCommand");
|
|
||||||
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
|
||||||
};
|
|
||||||
LoadFont("Common Normal") .. {
|
|
||||||
Name="ProtimingAverage";
|
|
||||||
Text="";
|
|
||||||
InitCommand=cmd(visible,false);
|
|
||||||
OnCommand=THEME:GetMetric("Protiming","AverageOnCommand");
|
|
||||||
ResetCommand=cmd(finishtweening;stopeffect;visible,false);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
Name="ProtimingGraphBG";
|
|
||||||
InitCommand=cmd(visible,false;y,32;zoomto,192,16);
|
|
||||||
ResetCommand=cmd(finishtweening;diffusealpha,0.8;visible,false);
|
|
||||||
OnCommand=cmd(diffuse,Color("Black");diffusetopedge,color("0.1,0.1,0.1,1");diffusealpha,0.8;shadowlength,2;);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
Name="ProtimingGraphWindowW3";
|
|
||||||
InitCommand=cmd(visible,false;y,32;zoomto,192-4,16-4);
|
|
||||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
|
||||||
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W3"];);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
Name="ProtimingGraphWindowW2";
|
|
||||||
InitCommand=cmd(visible,false;y,32;zoomto,scale(PREFSMAN:GetPreference("TimingWindowSecondsW2"),0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),0,192-4),16-4);
|
|
||||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
|
||||||
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W2"];);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
Name="ProtimingGraphWindowW1";
|
|
||||||
InitCommand=cmd(visible,false;y,32;zoomto,scale(PREFSMAN:GetPreference("TimingWindowSecondsW1"),0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),0,192-4),16-4);
|
|
||||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
|
||||||
OnCommand=cmd(diffuse,GameColor.Judgment["JudgmentLine_W1"];);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
Name="ProtimingGraphUnderlay";
|
|
||||||
InitCommand=cmd(visible,false;y,32;zoomto,192-4,16-4);
|
|
||||||
ResetCommand=cmd(finishtweening;diffusealpha,0.25;visible,false);
|
|
||||||
OnCommand=cmd(diffuse,Color("Black");diffusealpha,0.25);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
Name="ProtimingGraphFill";
|
|
||||||
InitCommand=cmd(visible,false;y,32;zoomto,0,16-4;horizalign,left;);
|
|
||||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
|
||||||
OnCommand=cmd(diffuse,Color("Red"););
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
Name="ProtimingGraphAverage";
|
|
||||||
InitCommand=cmd(visible,false;y,32;zoomto,2,7;);
|
|
||||||
ResetCommand=cmd(finishtweening;diffusealpha,0.85;visible,false);
|
|
||||||
OnCommand=cmd(diffuse,Color("Orange");diffusealpha,0.85);
|
|
||||||
};
|
|
||||||
Def.Quad {
|
|
||||||
Name="ProtimingGraphCenter";
|
|
||||||
InitCommand=cmd(visible,false;y,32;zoomto,2,16-4;);
|
|
||||||
ResetCommand=cmd(finishtweening;diffusealpha,1;visible,false);
|
|
||||||
OnCommand=cmd(diffuse,Color("White");diffusealpha,1);
|
|
||||||
};
|
|
||||||
InitCommand = function(self)
|
|
||||||
c = self:GetChildren();
|
|
||||||
end;
|
|
||||||
|
|
||||||
JudgmentMessageCommand=function(self, param)
|
|
||||||
if param.Player ~= player then return end;
|
|
||||||
if param.HoldNoteScore then return end;
|
|
||||||
|
|
||||||
local iNumStates = c.Judgment:GetNumStates();
|
|
||||||
local iFrame = TNSFrames[param.TapNoteScore];
|
|
||||||
|
|
||||||
if not iFrame then return end
|
|
||||||
if iNumStates == 12 then
|
|
||||||
iFrame = iFrame * 2;
|
|
||||||
if not param.Early then
|
|
||||||
iFrame = iFrame + 1;
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
local fTapNoteOffset = param.TapNoteOffset;
|
|
||||||
if param.HoldNoteScore then
|
|
||||||
fTapNoteOffset = 1;
|
|
||||||
else
|
|
||||||
fTapNoteOffset = param.TapNoteOffset;
|
|
||||||
end
|
|
||||||
|
|
||||||
if param.TapNoteScore == 'TapNoteScore_Miss' then
|
|
||||||
fTapNoteOffset = 1;
|
|
||||||
bUseNegative = true;
|
|
||||||
else
|
|
||||||
-- fTapNoteOffset = fTapNoteOffset;
|
|
||||||
bUseNegative = false;
|
|
||||||
end;
|
|
||||||
|
|
||||||
if fTapNoteOffset ~= 1 then
|
|
||||||
-- we're safe, you can push the values
|
|
||||||
tTotalJudgments[#tTotalJudgments+1] = bUseNegative and fTapNoteOffset or math.abs( fTapNoteOffset );
|
|
||||||
-- New
|
|
||||||
-- tPlayerData[player].SignedJudgments[#(tPlayerData[player].SignedJudgments)+1] = fTapNoteOffset;
|
|
||||||
-- table.getn(tPlayerData[player].SignedJudgments = bUseNegative and fTapNoteOffset or fTapNoteOffset;
|
|
||||||
end
|
|
||||||
|
|
||||||
self:playcommand("Reset");
|
|
||||||
|
|
||||||
c.Judgment:visible( not bShowProtiming );
|
|
||||||
c.Judgment:setstate( iFrame );
|
|
||||||
JudgeCmds[param.TapNoteScore](c.Judgment);
|
|
||||||
|
|
||||||
c.ProtimingDisplay:visible( bShowProtiming );
|
|
||||||
c.ProtimingDisplay:settextf("%i",math.abs(fTapNoteOffset * 1000));
|
|
||||||
ProtimingCmds[param.TapNoteScore](c.ProtimingDisplay);
|
|
||||||
|
|
||||||
c.ProtimingAverage:visible( bShowProtiming );
|
|
||||||
c.ProtimingAverage:settextf("%.2f%%",clamp(100 - MakeAverage( tTotalJudgments ) * 1000 ,0,100));
|
|
||||||
AverageCmds['Pulse'](c.ProtimingAverage);
|
|
||||||
|
|
||||||
c.ProtimingGraphBG:visible( bShowProtiming );
|
|
||||||
c.ProtimingGraphUnderlay:visible( bShowProtiming );
|
|
||||||
c.ProtimingGraphWindowW3:visible( bShowProtiming );
|
|
||||||
c.ProtimingGraphWindowW2:visible( bShowProtiming );
|
|
||||||
c.ProtimingGraphWindowW1:visible( bShowProtiming );
|
|
||||||
c.ProtimingGraphFill:visible( bShowProtiming );
|
|
||||||
c.ProtimingGraphFill:finishtweening();
|
|
||||||
c.ProtimingGraphFill:decelerate(1/60);
|
|
||||||
-- c.ProtimingGraphFill:zoomtowidth( clamp(fTapNoteOffset * 188,-188/2,188/2) );
|
|
||||||
c.ProtimingGraphFill:zoomtowidth( clamp(
|
|
||||||
scale(
|
|
||||||
fTapNoteOffset,
|
|
||||||
0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),
|
|
||||||
0,188/2),
|
|
||||||
-188/2,188/2)
|
|
||||||
);
|
|
||||||
c.ProtimingGraphAverage:visible( bShowProtiming );
|
|
||||||
c.ProtimingGraphAverage:zoomtowidth( clamp(
|
|
||||||
scale(
|
|
||||||
MakeAverage( tTotalJudgments ),
|
|
||||||
0,PREFSMAN:GetPreference("TimingWindowSecondsW3"),
|
|
||||||
0,188),
|
|
||||||
0,188)
|
|
||||||
);
|
|
||||||
-- c.ProtimingGraphAverage:zoomtowidth( clamp(MakeAverage( tTotalJudgments ) * 1880,0,188) );
|
|
||||||
c.ProtimingGraphCenter:visible( bShowProtiming );
|
|
||||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphBG);
|
|
||||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphUnderlay);
|
|
||||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW3);
|
|
||||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW2);
|
|
||||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphWindowW1);
|
|
||||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphFill);
|
|
||||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphAverage);
|
|
||||||
(cmd(sleep,2;linear,0.5;diffusealpha,0))(c.ProtimingGraphCenter);
|
|
||||||
end;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
return t;
|
|
||||||
@@ -1,5 +1,8 @@
|
|||||||
[Global]
|
[Global]
|
||||||
FallbackTheme=default
|
FallbackTheme=default
|
||||||
|
[ScreenTitleMenu]
|
||||||
|
ChoiceNames="1,4,5,6,PopScreen,7"
|
||||||
|
ChoicePopScreen="name,Boobs;text,Boobs";
|
||||||
[ScreenGameplay]
|
[ScreenGameplay]
|
||||||
LifeP1OnCommand=visible,false
|
# LifeP1OnCommand=visible,false
|
||||||
LifeP2OnCommand=visible,false
|
# LifeP2OnCommand=visible,false
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ local t = Def.ActorFrame {
|
|||||||
LoadActor("_grid")..{
|
LoadActor("_grid")..{
|
||||||
InitCommand=cmd(customtexturerect,0,0,(SCREEN_WIDTH+1)/4,SCREEN_HEIGHT/4;SetTextureFiltering,true);
|
InitCommand=cmd(customtexturerect,0,0,(SCREEN_WIDTH+1)/4,SCREEN_HEIGHT/4;SetTextureFiltering,true);
|
||||||
OnCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;diffuse,Color("Black");diffuseshift;effecttiming,(1/8)*4,0,(7/8)*4,0;effectclock,'beatnooffset';
|
OnCommand=cmd(zoomto,SCREEN_WIDTH+1,SCREEN_HEIGHT;diffuse,Color("Black");diffuseshift;effecttiming,(1/8)*4,0,(7/8)*4,0;effectclock,'beatnooffset';
|
||||||
effectcolor2,Color("Black");effectcolor1,Colors.Alpha(Color("Black"),0.45);fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480;diffusealpha,0.345);
|
effectcolor2,Color("Black");effectcolor1,Color.Alpha(Color("Black"),0.45);fadebottom,0.25;fadetop,0.25;croptop,48/480;cropbottom,48/480;diffusealpha,0.345);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||