1
0
Fork 0
muzika-gromche/MuzikaGromche/Library.cs

1066 lines
46 KiB
C#

using System;
using System.Linq;
using System.Net.NetworkInformation;
using System.Net.Sockets;
using UnityEngine;
namespace MuzikaGromche;
public static class Library
{
private static readonly string[] PwnLyricsVariants = [
"", "", "", // make sure the array has enough items to index it without checking
..NetworkInterface.GetAllNetworkInterfaces()
.Where(n => n.OperationalStatus == OperationalStatus.Up)
.SelectMany(n => n.GetIPProperties().UnicastAddresses)
.Where(a => a.Address.AddressFamily == AddressFamily.InterNetwork)
.Select(a => a.Address.ToString())
.Select(a => $" Trying... {a}")
];
private static readonly TimeSeries<float> DrunknessLoopOffsetTimeSeriesBeefLiver = new(
[-0.5f, 0.5f, 8f, 15f, 16f, 24f, 29f, 30f, 36f, 37f, 38f, 44f, 47.5f],
[ 0f, 0.6f, 0f, 0f, 0.4f, 0f, 0f, 0.3f, 0f, 0f, 0.3f, 0f, 0f]);
private static readonly Palette PalettePickUpSticks = Palette
.Parse(["#FC933C", "#FC3C9D", "#EEA0A5", "#CA71FC", "#d01760"])
.Use(p =>
{
var energetic = p * 6 + new Palette(p.Colors[0..2]); // 32 colors
var slower = (p * 3 + new Palette([p.Colors[2]])).Stretch(2); // 16*2 colors
return energetic + slower;
});
public static readonly ISelectableTrack[] Tracks = [
new SelectableAudioTrack
{
Name = "MuzikaGromche",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
WindUpTimer = 46.3f,
Bars = 16,
BeatsOffset = 0.0f,
FadeOutBeat = -3,
FadeOutDuration = 3,
ColorTransitionIn = 0.25f,
ColorTransitionOut = 0.25f,
ColorTransitionEasing = Easing.OutExpo,
FlickerLightsTimeSeries = [-5, 29, 61],
DrunknessLoopOffsetTimeSeries = new(
[-2f, 0.0f, 1.0f, 03f, 30f, 32f, 33f, 35f, 62f],
[ 0f, 0.4f, 0.6f, 0f, 0f, 0.5f, 0.7f, 0f, 0f]),
Palette = Palette.Parse(["#B300FF", "#FFF100", "#00FF51", "#474747", "#FF00B3", "#0070FF"]),
Lyrics = [
(-68, "Devchata pljashut pod spidami"),
(-60, "A ty stoish', kak vkopannyj"),
(-52, "Krossovkami lomajut pol"),
(-44, "A ty stoish', kak vkopannyj"),
(-36, "Ja-ja-ja znaju, chto ty hochesh',"),
(-32, "Ja-ja-ja znaju, chto ty hochesh',\nTy hochesh' tancevat'"),
(-28, "Nu-nu zhe, nu davaj zhe,"),
(-24, "Nu-nu zhe, nu davaj zhe,\nNu-nu zhe, nu davaj zhe"),
(-20, "Ja znaju, chto ty znaesh'\nJetot trek, gotov'sja podpevat'"),
(-12, "1) RAZ"),
(-10, "raz, DVA"),
(-8, "raz, 2wo,\nTRI"),
(-6, "ras, dva,\n7ri, 4ETYRE"),
(-1, "Muzyka Gromche\nGlaza zakryty >_<"),
(6, "This is NON-STOP,\nNoch'ju otkrytij"),
(12, "Delaj chto hochesh', ja zabyvajus'"),
(22, "This is NON-STOP,\nne prekrashhajas'"),
(31, "Muzyka Gromche\nGlaza zakryty -.-"),
(38, "This is NON-STOP,\nNoch'ju otkrytij"),
(46, "Budu s toboju,\nsamoj primernoju"),
(54, "Utro v okne\nyi my budem pervye"),
(63, "Muzyka Gromche\nGlaza zakryty >_<"),
],
},
new SelectableAudioTrack
{
Name = "VseVZale",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
WindUpTimer = 38.28f,
Bars = 16,
LoopOffset = 0,
BeatsOffset = 0.25f,
FadeOutBeat = -3,
FadeOutDuration = 2.5f,
ColorTransitionIn = 0.25f,
ColorTransitionOut = 0.25f,
ColorTransitionEasing = Easing.OutExpo,
FlickerLightsTimeSeries = [-5, 29, 59],
Palette = Palette.Parse(["#FF7F00", "#FFB600", "#FFED00", "#00D1FF", "#6696FB", "#704DF8"]).Use(palette =>
palette * 5 + new Palette(palette.Colors[0..2])
// stretch the second (OOOO oooo OO ooo) part, keep the colors perfectly cycled
+ (new Palette(palette.Colors[2..]) + palette * 2).Stretch(2)
),
Lyrics = [
(-30, "VSE V ZALE\nDvigajtes' s nami"),
(-24, "Chtob sotrjasalis'\nSami my, steny i pol!"),
(-14, "Vse znaem - jeto examen na dom nam zadan"),
(-4, "HIP-HOP, HOUSE & ROCK-N-ROLL"),
(2, "VSE V ZALE\nDvigajtes' s nami"),
(8, "Chtob sotrjasalis'\nSami my, steny i pol!"),
(18, "Vse znaem - jeto examen na dom nam zadan"),
(28, "HIP-HOP, HOUSE & ROCK-N-ROLL"),
(32, "O-o-o-o! Zdes' startuet hip-hop party"),
(44, "Tolstyj paren', nam igraj!"),
(48, "O-o-o-o! Pesen i devchonok hvatit!"),
(60, "Everybody shake your body"),
],
},
new SelectableAudioTrack
{
Name = "DeployDestroy",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
WindUpTimer = 40.68f,
Bars = 8,
LoopOffset = 32,
BeatsOffset = 0.2f,
FadeOutBeat = -38,
FadeOutDuration = 4,
ColorTransitionIn = 0.25f,
ColorTransitionOut = 0.25f,
ColorTransitionEasing = Easing.OutExpo,
FlickerLightsTimeSeries = [-101, -93, -77, -61, -37, -5, 27],
DrunknessLoopOffsetTimeSeries = new(
[-48f, -46f, -42f, 16f, 19f, 23f],
[ 0f, 0.7f, 0f, 0f, 0.3f, 0f]),
Palette = Palette.Parse(["#217F87", "#BAFF00", "#73BE25", "#78AB4E", "#FFFF00"]),
Lyrics = [
(-111, "Deploy Destroy, porjadok eto otstoj"),
(-103, "Krushi, lomaj, trjasi bashkoju pustoj"),
(-95, "Dopej, razbej i novuju otkryvaj"),
(-87, "Davaj-davaj!"),
(-79, "Chestnoe slovo ja nevinoven"),
(-75, "Ja ne pomnju, otkuda stol'ko krovi"),
(-71, "Na moih ladonjah\nyi moej odezhde"),
(-67, "Ja nikogda nikogo\nne bil prezhde"),
(-63, "Ja nikogda nichego\nne pil prezhde"),
(-59, "Byl tih, spokoen,\nso vsemi vezhliv"),
(-55, "Vsegda tol'ko v urnu\nbrosal musor"),
(-51, "Obhodil storonoj shumnye tusy"),
(-47, "Zapreshhjonnyh veshhestv nikakih ne juzal"),
(-43, "Byl polozhitel'nej samogo pljusa"),
(-39, "A potom kak-to raz\njetu pesnju uslyshal"),
(-35, "I vsjo proshhaj, moja krysha"),
(-31, "Deploy Destroy, porjadok eto otstoj"),
(-23, "Krushi, lomaj, trjasi bashkoju pustoj"),
(-15, "Dopej, razbej i novuju otkryvaj"),
(-7, "Davaj-davaj!"),
(1, "Deploy Destroy, porjadok eto otstoj"),
(9, "Krushi, lomaj, trjasi bashkoju pustoj"),
(17, "Dopej, razbej i novuju otkryvaj"),
(25, "Davaj-davaj!"),
],
},
new SelectableAudioTrack
{
Name = "MoyaZhittya",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 34.53f,
Bars = 8,
LoopOffset = 32,
BeatsOffset = 0.0f,
FadeOutBeat = -35,
FadeOutDuration = 3.3f,
ColorTransitionIn = 0.25f,
ColorTransitionOut = 0.5f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse(["#A8C480", "#3ABBBE", "#6E9855", "#4c6846", "#748084", "#058099"]),
FlickerLightsTimeSeries = [-100.5f, -99.5f, -92.5f, -91.5f, -76.5f, -75.5f, -60.5f, -59.5f, -37f, -36f, -4.5f, -3.5f, 27.5f, 28.5f],
Lyrics = [
(-84, "This ain't a song for the broken-hearted"),
(-68, "No silent prayer for the faith-departed"),
(-52, "I ain't gonna be"),
(-48, "I ain't gonna be\njust a face in the crowd"),
(-45, "YOU'RE"),
(-44, "you're GONNA"),
(-43.5f, "you're gonna HEAR"),
(-43, "you're gonna hear\nMY"),
(-42, "you're gonna hear\nmy VOICE"),
(-41, "WHEN I"),
(-40, "When I SHOUT IT"),
(-39, "When I shout it\nOUT LOUD"),
(-34, "IT'S MY"),
(-32, "IT'S MY\nLIIIIIFE"),
(-28, "And it's now or never"),
(-22, "I ain't gonna"),
(-20, "I ain't gonna\nlive forever"),
(-14, "I just want to live"),
(-10, "I just want to live\nwhile I'm alive"),
( -2, "IT'S MY"),
( 0, "IT'S MY\nLIIIIIFE"),
( 2, "My heart is like"),
( 4, "My heart is like\nan open highway"),
( 10, "Like Frankie said,"),
( 12, "Like Frankie said,\n\"I did it my way\""),
( 18, "I just want to live"),
( 22, "I just want to live\nwhile I'm alive"),
( 30, "IT'S MY"),
],
DrunknessLoopOffsetTimeSeries = new(
[-33f, -31f, 24f, -1f, 1f, 8f, 31f],
[ 0f, 0.7f, 0f, 0f, 0.7f, 0f, 0f]),
GameOverText = "[LIFE IS: NOW OR NEVER]",
},
new SelectableAudioTrack
{
Name = "Gorgorod",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
WindUpTimer = 43.2f,
Bars = 6,
BeatsOffset = 0.0f,
ColorTransitionIn = 0.25f,
ColorTransitionOut = 0.25f,
ColorTransitionEasing = Easing.InExpo,
Palette = Palette.Parse(["#42367E", "#FF9400", "#932A04", "#FF9400", "#932A04", "#42367E", "#FF9400", "#932A04"]),
LoopOffset = 0,
FadeOutBeat = -2,
FadeOutDuration = 2,
FlickerLightsTimeSeries = [20],
Lyrics = [],
},
new SelectableAudioTrack
{
Name = "Durochka",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
WindUpTimer = 37.0f,
Bars = 10,
BeatsOffset = 0.0f,
ColorTransitionIn = 0.25f,
ColorTransitionOut = 0.3f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse(["#5986FE", "#FEFEDC", "#FF4FDF", "#FEFEDC", "#FFAA23", "#FEFEDC", "#F95A5A", "#FEFEDC"]),
LoopOffset = 0,
FadeOutBeat = -7,
FadeOutDuration = 7,
FlickerLightsTimeSeries = [-9],
Lyrics = [],
},
new SelectableAudioTrack
{
Name = "ZmeiGorynich",
AudioType = AudioType.OGGVORBIS,
Language = Language.KOREAN,
WindUpTimer = 46.13f,
Bars = 8,
BeatsOffset = 0.1f,
ColorTransitionIn = 0.4f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse(["#4C8AC5", "#AF326A", "#0B1666", "#AFD2FC", "#C55297", "#540070"]),
LoopOffset = 0,
FadeOutBeat = -4,
FadeOutDuration = 4,
FlickerLightsTimeSeries = [-5, 31],
Lyrics = [],
GameOverText = "[MUZIKA: K-POP GROMCHE]",
},
new SelectableAudioTrack
{
Name = "GodMode",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 40.38f,
Bars = 16,
BeatsOffset = 0.1f,
ColorTransitionIn = 0.5f,
ColorTransitionOut = 0.5f,
ColorTransitionEasing = Easing.OutCubic,
Palette = Palette.Parse(["#FBDBDB", "#4B81FF", "#564242", "#C90AE2", "#FBDBDB", "#61CBE3", "#564242", "#ED3131"]),
LoopOffset = 0,
FadeOutBeat = -4,
FadeOutDuration = 4,
FlickerLightsTimeSeries = [-5],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new(
[-0.5f, 0.0f, 8f, 63.5f],
[ 0f, 0.7f, 0f, 0f]),
GameOverText = "[COULD'VE BEEN: IMMORTAL]",
},
new SelectableAudioTrack
{
Name = "RiseAndShine",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 59.87f,
Bars = 16,
BeatsOffset = 0.1f,
ColorTransitionIn = 0.5f,
ColorTransitionOut = 0.5f,
ColorTransitionEasing = Easing.OutCubic,
Palette = Palette.Parse(["#FC6F3C", "#3CB0FC", "#FCD489", "#564242", "#FC6F3C", "#3CB0FC", "#63E98C", "#866868"]),
LoopOffset = 0,
FadeOutBeat = -4.5f,
FadeOutDuration = 4,
FlickerLightsTimeSeries = [-5.5f, 31, 63.9f],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new(
[-0.5f, 0.0f, 8f, 63.5f],
[ 0f, 0.7f, 0f, 0f]),
GameOverText = "[ HEY, YOUNG BLOOD ]",
},
new SelectableAudioTrack
{
Name = "Song2",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
WindUpTimer = 38.63f,
Beats = 17 * 2,
BeatsOffset = 0.1f,
ColorTransitionIn = 0.3f,
ColorTransitionOut = 0.3f,
ColorTransitionEasing = Easing.InCubic,
Palette = Palette.Parse(["#FFD3E3", "#78A0FF", "#FFD3E3", "#74A392", "#FFD3E3", "#E4B082", "#FFD3E3", "#E277AA"]),
LoopOffset = 0,
FadeOutBeat = -2,
FadeOutDuration = 2,
FlickerLightsTimeSeries = [2.5f],
Lyrics = [],
},
new SelectableAudioTrack
{
Name = "Peretasovka",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 39.68f,
Bars = 8,
BeatsOffset = 0.3f,
ColorTransitionIn = 0.4f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse(["#65C7FA", "#FCEB3C", "#89FC8F", "#FEE9E9", "#FC3C9D", "#FCEB3C", "#89FC8F", "#FC3C9D"]),
LoopOffset = 0,
FadeOutBeat = -6,
FadeOutDuration = 4,
FlickerLightsTimeSeries = [-8, 31],
Lyrics = [],
},
#if DEBUG // No one knows it, and it's a bit out of place with a long 52 seconds intro
new SelectableAudioTrack
{
Name = "Yalgaar",
AudioType = AudioType.OGGVORBIS,
Language = Language.HINDI,
WindUpTimer = 52.17f,
Bars = 8,
BeatsOffset = 0.0f,
ColorTransitionIn = 0.1f,
ColorTransitionOut = 0.35f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse(["#C0402D", "#906F0B", "#DC8044", "#70190A", "#929FAF", "#4248A2", "#AE2727", "#2D2D42"]),
LoopOffset = 0,
FadeOutBeat = -4,
FadeOutDuration = 4,
FlickerLightsTimeSeries = [-5],
Lyrics = [],
},
#endif
new SelectableAudioTrack
{
Name = "Chereshnya",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
WindUpTimer = 45.48f,
Bars = 16,
BeatsOffset = 0.0f,
ColorTransitionIn = 0.3f,
ColorTransitionOut = 0.35f,
ColorTransitionEasing = Easing.InOutCubic,
Palette = Palette.Parse([
"#A01471", "#CB2243", "#4CAF50", "#F01D7A", "#AF005A", "#EF355F", "#FFD85D", "#FF66B2",
"#A01471", "#4CAF50", "#CB2243", "#F01D7A", "#AF005A", "#FFD85D", "#EF355F", "#FF66B2",
]),
LoopOffset = 0,
FadeOutBeat = -4,
FadeOutDuration = 4,
FlickerLightsTimeSeries = [-5, 27, 29, 59, 61],
Lyrics = [],
},
new SelectableAudioTrack
{
Name = "PWNED",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
IsExplicit = true,
WindUpTimer = 39.73f,
Bars = 32,
BeatsOffset = -0.2f,
ColorTransitionIn = 0.5f,
ColorTransitionOut = 0.3f,
ColorTransitionEasing = Easing.InExpo,
Palette = Palette.Parse(["#9E9E9E", "#383838", "#5E5E5E", "#2E2E2E", "#666666", "#4B4B4B", "#8E8E8E", "#1D1D1D"]).Use(gray8 =>
{
var flag4 = Palette.Parse(["#FFFFFF", "#0032A0", "#DA291C", "#000000"]);
var gray6 = new Palette(gray8.Colors[0..6]);
var gray14 = gray8 + gray6;
var lyrics = flag4 + gray14.Stretch(2);
var instrumental = gray8.Stretch(4);
return lyrics * 2 + instrumental * 2;
}),
LoopOffset = 0,
FadeOutBeat = -8,
FadeOutDuration = 6,
FlickerLightsTimeSeries = [-136, -72, -12, 88],
Lyrics = [
(-190, "These Russian hackers have been"),
(-184, "in these US governments\nsince March"),
(-172, "and it is an extraordinary invasion of our cyberspace"),
(-152, "Russian hackers got access to sensitive"),
(-142, "parts of the White House email system..."),
(-134, "[They began to recognize...]"),
(-126, "<Russian hackers/>"),
(-118, "<Russian hackers/>\n X__X"),
(-110, "Gonna crack your"),
(-102, "Gonna crack your\nStrongest pa$$words%123"),
(-94, "You popped online"),
(-86, "You popped online\nTo look for sneakers"),
(-78, "My hand just popped"),
(-70, "My hand just popped\nRight in your knickers >_< "),
(-62, "Keystrokes like Uzi"),
(-54, "Keystrokes like Uzi\nWill make you go all goosey"),
(-46, "Kicking down your backdoor"),
(-38, "Kicking down your backdoor\nCount down before you lose it"),
(-30, "Keystrokes like Uzi"),
(-22, "Keystrokes like Uzi\nWill make you go all goosey"),
(-14, "Kicking down your backdoor"),
(-6, "Kicking down your backdoor\nCount down before you lose it"),
(0, "C:\\> $Ru55ian hack3rs"),
(4, "C:\\> $Ru55ian hack3rs\n O__o"),
(8, "Infamous White House attackers"),
(16, "Stealing your cookies\nto this beat"),
(24, "Counting crypto to\nembarrass Wall Street"),
(32, "Russi?n ^hackers\tЯushan h@ckers###"),
(34, "\tЯushan h@ckers###\n X_X"),
(36, "Russi?n ^hackers\n--.--\tЯushan h@ckers###\n X___X"),
(38, "\tЯushan h@ckers###\n X_____X"),
(40, "Infamous White House attackers"),
(48, "Stealing your cookies\nto this beat"),
(56, "Counting crypto to\nembarrass Wall Street"),
(80, $"Instling min3r.exe\t\t\tresolving ur private IP\n/"),
(82, $"Instling min3r.exe\n00% [8=D ]\tHenllo ${{username = \"{Environment.UserName}\"}}\t\tresolving ur private IP\n-{PwnLyricsVariants[^3]}"),
(84, $"Instling min3r.exe\n34% [8====D ]\t\t\tresolving ur private IP\n\\{PwnLyricsVariants[^3]}"),
(86, $"Instling min3r.exe\n69% [8=========D ]\t\t\tresolving ur private IP\n|{PwnLyricsVariants[^2]}"),
(88, $"Instling min3r.exe\n95% [8============D ]\t\tWhere did you download\nthis < mod / dll > from?\tresolving ur private IP\n{PwnLyricsVariants[^2]}/"),
(90, $"Instling min3r.exe\n99% [8=============D]\t\t\tresolving ur private IP\n-{PwnLyricsVariants[^2]}"),
(92, $"Encrpt1ng f!les.. \n99% [8=============D]\t\t\tresolving ur private IP\n\\{PwnLyricsVariants[^1]}"),
(94, $"Encrpt1ng f!les...\n100% enj0y \\o/\t\t\tresolving ur private IP\n|{PwnLyricsVariants[^1]}"),
(96, $"\t\t\tresolving ur private IP\n/{PwnLyricsVariants[^1]}"),
(98, $"\t\t\tresolving ur private IP\nP_WNED"),
],
DrunknessLoopOffsetTimeSeries = new(
[-128f, -127f, -116f, 68f, 72f, 88f, 98f],
[ 0f, 0.7f, 0f, 0f, 0.3f, 0.5f, 0f]),
GameOverText = "[HACK3D BY: RUSSI4NS]",
},
new SelectableAudioTrack
{
Name = "Kach",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 47.30f,
Bars = 12,
// let them overlap, such that there is an actual hard cut to the next color
BeatsOffset = 0.4f,
ColorTransitionIn = 0.8f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
// pump it loudeeeeeeeeeer
"#7774DE", "#1EA59A", "#3BC457", "#3BC457",
"#CA6935", "#A82615", "#A7AA43", "#A7AA43",
"#4C2B81", "#2E802B", "#C952E7", "#C952E7",
]),
LoopOffset = 0,
FadeOutBeat = -6,
FadeOutDuration = 6,
FlickerLightsTimeSeries = [-120.5f, -105, -89, -8, 44, 45],
Lyrics = [],
GameOverText = "[DIDN'T PUMP IT: LOUDER]",
},
new SelectableTracksGroup
{
Name = "BeefLiver",
Language = Language.ENGLISH,
Tracks =
[
new CoreAudioTrack
{
Name = "BeefLiver1",
FileNameLoop = "BeefLiverLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 39.35f,
Bars = 12,
BeatsOffset = 0.2f,
ColorTransitionIn = 0.4f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#FFEBEB", "#FFEBEB", "#445782", "#EBA602",
"#5EEBB9", "#8EE3DC", "#A23045", "#262222",
]),
LoopOffset = 0,
FadeOutBeat = -3,
FadeOutDuration = 3,
FlickerLightsTimeSeries = [-48, -40, -4.5f, 44],
DrunknessLoopOffsetTimeSeries = DrunknessLoopOffsetTimeSeriesBeefLiver,
Lyrics = [
(-66, "First things first"),
(-62, "First things first,\nI'ma say all the words\ninside my head"),
(-57, "I'm fired up and tired of"),
(-52, "the way that things have been,\noh-ooh"),
(-44, "(x2)\nThe way that things have been,\noh-ooooh"),
(-34, "I was broken from a young age, taking my sulkin' to the masses"),
(-27, "Writing my poems for the few"),
(-23, "that look at me, took to me,\nshook at me, feelin' me"),
(-19, "Singing from heartache from the pain"),
(-15, "Singing from heartache from the pain,\ntaking my message from the veins"),
(-11, "Speaking my lesson from the brain"),
(-8, "Speaking my lesson from the brain,\nseeing the beauty through the"),
(-0.1f, "PAIN!"),
],
},
new CoreAudioTrack
{
Name = "BeefLiver3",
FileNameLoop = "BeefLiverLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 39.35f,
Bars = 12,
BeatsOffset = 0.2f,
ColorTransitionIn = 0.4f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#FFEBEB", "#FFEBEB", "#445782", "#EBA602",
"#5EEBB9", "#8EE3DC", "#A23045", "#262222",
]),
LoopOffset = 0,
FadeOutBeat = -3,
FadeOutDuration = 3,
FlickerLightsTimeSeries = [-48, -40, -4.5f, 44],
DrunknessLoopOffsetTimeSeries = DrunknessLoopOffsetTimeSeriesBeefLiver,
Lyrics = [
(-66, "Third things third"),
(-62, "Third things third,\nsend a prayer to the ones up above"),
(-57, "All the hate that you've heard has turned"),
(-52, "your spirit to a dove,\noh-ooh"),
(-44, "(x2)\nYour spirit up above,\noh-ooooh"),
(-34, "I was chokin' in the crowd, building my rain up in the cloud"),
(-27, "Falling like ashes to the ground"),
(-23, "hoping my feelings, they would drown"),
(-19, "But they never did, ever lived, ebbin' and flowin'"),
(-15, "Inhibited, limited 'til it broke open"),
(-11, "Inhibited, limited 'til it broke open and rained down"),
(-8, "It rained down like"),
(-0.1f, "PAIN!"),
],
},
new CoreAudioTrack
{
Name = "BeefLiver4",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 31.68f,
Bars = 12,
BeatsOffset = 0.2f,
ColorTransitionIn = 0.4f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#FFEBEB", "#FFEBEB", "#445782", "#EBA602",
"#5EEBB9", "#8EE3DC", "#A23045", "#262222",
]),
LoopOffset = 0,
FadeOutBeat = -3,
FadeOutDuration = 3,
FlickerLightsTimeSeries = [-32, -24, -4.5f, 44],
DrunknessLoopOffsetTimeSeries = DrunknessLoopOffsetTimeSeriesBeefLiver,
Lyrics = [
(-66+16, "Last things last"),
(-62+16, "Last things last,\nby the grace\nof the fire and the flames"),
(-57+16, "You're the face of the future"),
(-52+16, "the blood in my veins, oh-ooh"),
(-44+16, "(x2)\nThe blood in my veins, oh-ooooh"),
(-19, "But they never did, ever lived, ebbin' and flowin'"),
(-15, "Inhibited, limited 'til it broke open"),
(-11, "Inhibited, limited 'til it broke open and rained down"),
(-8, "It rained down like"),
(-0.1f, "PAIN!"),
],
},
],
},
new SelectableTracksGroup
{
Name = "Beha",
Language = Language.RUSSIAN,
IsExplicit = true,
Tracks =
[
new CoreAudioTrack
{
Name = "Beha1",
FileNameLoop = "BehaLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 35.23f,
Beats = 8 * 4 + 2,
BeatsOffset = 0.0f,
ColorTransitionIn = 0.1f,
ColorTransitionOut = 0.6f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#9554F9", "#3769FD", "#E43B65", "#59CFEA", "#7F3FEE", "#C831FE",
]),
LoopOffset = 0,
FadeOutBeat = -4,
FadeOutDuration = 3.9f,
FlickerLightsTimeSeries = [-6, 16.5f],
Lyrics = [],
},
new CoreAudioTrack
{
Name = "Beha2",
FileNameLoop = "BehaLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 38.16f,
Beats = 8 * 4 + 2,
BeatsOffset = 0.0f,
ColorTransitionIn = 0.1f,
ColorTransitionOut = 0.6f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#9554F9", "#3769FD", "#E43B65", "#59CFEA", "#7F3FEE", "#C831FE",
]),
LoopOffset = 0,
FadeOutBeat = -4,
FadeOutDuration = 3.9f,
FlickerLightsTimeSeries = [-6, 16.5f],
Lyrics = [],
},
new CoreAudioTrack
{
Name = "Beha3",
FileNameLoop = "BehaLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 35.21f,
Beats = 8 * 4 + 2,
BeatsOffset = 0.0f,
ColorTransitionIn = 0.1f,
ColorTransitionOut = 0.6f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#9554F9", "#3769FD", "#E43B65", "#59CFEA", "#7F3FEE", "#C831FE",
]),
LoopOffset = 0,
FadeOutBeat = -4,
FadeOutDuration = 3.9f,
FlickerLightsTimeSeries = [-6, 16.5f],
Lyrics = [],
},
],
},
new SelectableAudioTrack
{
Name = "OnePartiyaUdar",
AudioType = AudioType.OGGVORBIS,
Language = Language.JAPANESE,
WindUpTimer = 41.27f,
Bars = 12,
BeatsOffset = 0.3f,
ColorTransitionIn = 0.6f,
ColorTransitionOut = 0.15f,
ColorTransitionEasing = Easing.InOutExpo,
Palette = Palette.Parse([
"#9C3C37", "#E9BF5C", "#B5E3EA", "#662422", "#EBC3A8", "#AA8238",
]),
LoopOffset = 0,
FadeOutBeat = -8,
FadeOutDuration = 6,
FlickerLightsTimeSeries = [-68.5f, -16.5f, 30.5f],
Lyrics = [],
},
new SelectableTracksGroup
{
Name = "AttentionPls",
Language = Language.RUSSIAN,
IsExplicit = true,
Tracks =
[
new CoreAudioTrack
{
Name = "AttentionPls1",
FileNameLoop = "AttentionPlsLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 39.19f,
Bars = 8,
BeatsOffset = 0.3f,
ColorTransitionIn = 0.4f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse(["#FCEB3C", "#FC3C9D", "#65C7FA", "#89FC8F", "#FEE9E9", "#FCEB3C", "#89FC8F", "#FC3C9D"]),
LoopOffset = 0,
FadeOutBeat = -6,
FadeOutDuration = 5,
FlickerLightsTimeSeries = [-8, 31],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new([7f, 12f, 15f], [0f, 0.90f, 0f]),
CondensationLoopOffsetTimeSeries = new([23f, 28f, 31f], [0f, 0.4f, 0f]),
},
new CoreAudioTrack
{
Name = "AttentionPls2",
FileNameLoop = "AttentionPlsLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 39.19f,
Bars = 8,
BeatsOffset = 0.3f,
ColorTransitionIn = 0.4f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse(["#FCEB3C", "#FC3C9D", "#65C7FA", "#89FC8F", "#FEE9E9", "#FCEB3C", "#89FC8F", "#FC3C9D"]),
LoopOffset = 0,
FadeOutBeat = -6,
FadeOutDuration = 5,
FlickerLightsTimeSeries = [-8, 31],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new([7f, 12f, 15f], [0f, 0.90f, 0f]),
CondensationLoopOffsetTimeSeries = new([23f, 28f, 31f], [0f, 0.4f, 0f]),
},
],
},
new SelectableAudioTrack
{
Name = "BbIXODaHET",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
WindUpTimer = 40.85f,
Bars = 8,
BeatsOffset = 0.3f,
ColorTransitionIn = 0.7f,
ColorTransitionOut = 0.3f,
ColorTransitionEasing = Easing.InOutCubic,
Palette = Palette.Parse([
"#E6D58F", "#612F7E", "#D9783F", "#C3411C", "#D3B742", "#549BDE",
]),
LoopOffset = 0,
FadeOutBeat = -6,
FadeOutDuration = 6,
FlickerLightsTimeSeries = [-32.5f, -16.5f, 30.5f],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new(
[-1, 2, 7, 31],
[0, 0.4f, 0, 0]),
},
new SelectableAudioTrack
{
Name = "Whistle",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 41.27f,
Bars = 12,
BeatsOffset = 0.0f,
ColorTransitionIn = 0.5f,
ColorTransitionOut = 0.2f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#8DDEDD", "#98DE28", "#E8DB4B", "#F060A8", "#EEC263", "#725DEB",
]),
LoopOffset = 16,
FadeOutBeat = -22,
FadeOutDuration = 6,
FlickerLightsTimeSeries = [-20, 12],
Lyrics = [
(-40, "Can you blow my whistle, baby, whistle, baby?"),
(-36, "Can you blow my whistle, baby, whistle, baby? Let me know"),
(-33.5f, "Girl, I'm gonna show you how to\ndo it"),
(-30.5f, "Girl, I'm gonna show you how to\ndo it and we start real slow"),
(-27, "You just put your lips together"),
(-24, "You just put your lips together and you come real close"),
(-21, "Can you blow my whistle, baby, whistle, baby?"),
(-17, "HERE WE GO"),
(10, "Yeah, baby, make that whistle"),
(12, "Yeah, baby, make that whistle\nblow oh oh oh"),
(15, "Can you blow my whistle, baby, whistle, baby?"),
(20, "Can you blow my whistle, baby, whistle, baby? Let me know"),
(23, "Girl, I'm gonna show you how to\ndo it"),
(28, "Girl, I'm gonna show you how to\ndo it and we start real slow"),
(32, "You just put your lips together"),
(36, "You just put your lips together and you come real close"),
(39, "Can you blow my whistle, baby, whistle, baby?"),
(46, "HERE"),
(47, "Here WE"),
(48, "Here we GO"),
],
DrunknessLoopOffsetTimeSeries = new(
[-16f, -15.25f, -12f, 9f, 15f, 16f, 18f, 21f],
[0f, 0.7f, 0f, 0f, 0.4f, 0.7f, 0.4f, 0f]),
},
new SelectableAudioTrack
{
Name = "ReelGoon",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 45.15f,
Bars = 16,
BeatsOffset = -0.35f,
ColorTransitionIn = 0.1f,
ColorTransitionOut = 0.35f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#DE1C31", "#F7E26B", "#3D3D3D", "#FBB040",
"#ED4E4A", "#F0BD37", "#E41E2E", "#2E2D2B",
]),
LoopOffset = 0,
FadeOutBeat = -2,
FadeOutDuration = 2,
FlickerLightsTimeSeries = [-41, 61],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new(
[-0.5f, -0.05f, 6f, 60f, 61f],
[0f, 0.5f, 0f, 0f, 0.5f]),
GameOverText = "[LIFE SUPPORT: REAL GONE]",
},
new SelectableAudioTrack
{
Name = "HighLow",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 37.12f,
Bars = 12,
BeatsOffset = 0f,
ColorTransitionIn = 0.75f,
ColorTransitionOut = 0.25f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#2e2e28", "#dfa24d", "#2e2e28", "#dfa24d",
"#2e2e28", "#dfa24d", "#2e2e28", "#dfa24d",
]),
LoopOffset = 0,
FadeOutBeat = -1.5f,
FadeOutDuration = 1.5f,
FlickerLightsTimeSeries = [-33, 39],
Lyrics = [
],
DrunknessLoopOffsetTimeSeries = new(
[-2f, -1f, 6f],
[ 0f, 0.5f, 0f]),
CondensationLoopOffsetTimeSeries = new(
[-2f, -1f, 6f],
[ 0f, 0.5f, 0f]),
GameOverText = "[LIFE SUPORT: NIRVANA]",
},
new SelectableAudioTrack
{
Name = "IkWilJe",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
Season = Season.NewYear,
WindUpTimer = 43.03f,
Beats = 13 * 4 + 2, // = 54
BeatsOffset = 0f,
ColorTransitionIn = 0.01f,
ColorTransitionOut = 0.99f,
ColorTransitionEasing = Easing.OutExpo,
Palette = Palette.Parse([
"#0B6623", "#FF2D2D", "#FFD700",
"#00BFFF", "#9400D3", "#00FF7F",
]),
LoopOffset = 0,
FadeOutBeat = -14f,
FadeOutDuration = 12f,
FlickerLightsTimeSeries = [31.45f],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new(
[0f, 0.25f, 6f],
[0f, 0.5f, 0f]),
GameOverText = "[NEXT YEAR -- DEFINITELY]",
},
new SelectableAudioTrack
{
Name = "Paarden",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
Season = Season.NewYear,
WindUpTimer = 36.12f,
Bars = 8,
BeatsOffset = 0f,
ColorTransitionIn = 0.25f,
ColorTransitionOut = 0.4f,
ColorTransitionEasing = Easing.OutCubic,
Palette = Palette.Parse([
"#F0FBFF", "#9ED9FF", "#0B95FF",
"#66C7FF", "#CAE8FF", "#3BB6FF",
]),
LoopOffset = 0,
FadeOutBeat = -4f,
FadeOutDuration = 4f,
FlickerLightsTimeSeries = [31.5f],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new(
[0f, 0.25f, 6f],
[0f, 0.5f, 0f]),
GameOverText = "[NEXT YEAR -- DEFINITELY]",
},
new SelectableAudioTrack
{
Name = "DiscoKapot",
AudioType = AudioType.OGGVORBIS,
Language = Language.RUSSIAN,
Season = Season.NewYear,
WindUpTimer = 30.3f,
Bars = 8,
BeatsOffset = 0f,
ColorTransitionIn = 0.25f,
ColorTransitionOut = 0.6f,
ColorTransitionEasing = Easing.InOutExpo,
Palette = Palette.Parse([
"#0B6623", "#FF2D2D", "#FFD700",
"#00BFFF", "#9400D3", "#00FF7F",
]),
LoopOffset = 0,
FadeOutBeat = -4f,
FadeOutDuration = 4f,
FlickerLightsTimeSeries = [-32, -24, -16, 16, 32],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new(
[0f, 0.25f, 6f],
[0f, 0.5f, 0f]),
GameOverText = "[NEXT YEAR -- DEFINITELY]",
},
new SelectableTracksGroup
{
Name = "PickUpSticks",
Language = Language.ENGLISH,
Tracks =
[
new CoreAudioTrack
{
Name = "PickUpSticks1",
FileNameLoop = "PickUpSticksLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 38.5f,
Bars = 16,
BeatsOffset = 0.2f,
ColorTransitionIn = 0.6f,
ColorTransitionOut = 0.3f,
ColorTransitionEasing = Easing.InOutCubic,
Palette = PalettePickUpSticks,
LoopOffset = 0,
FadeOutBeat = -2,
FadeOutDuration = 2,
FlickerLightsTimeSeries = [-36, -4, 32],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new([0f, 0.5f, 3f, 32f, 34f, 40f], [0f, 0.5f, 0f, 0f, 0.3f, 0f]),
CondensationLoopOffsetTimeSeries = new([23f, 28f, 31f, 34f, 38f, 52f], [0f, 0.6f, 0f, 0f, 0.7f, 0f]),
GameOverText = "[LOVE SUPPORT: OFFLINE]",
},
new CoreAudioTrack
{
Name = "PickUpSticks2",
FileNameLoop = "PickUpSticksLoop.ogg",
AudioType = AudioType.OGGVORBIS,
WindUpTimer = 38.47f,
Bars = 16,
BeatsOffset = 0.2f,
ColorTransitionIn = 0.6f,
ColorTransitionOut = 0.3f,
ColorTransitionEasing = Easing.InOutCubic,
Palette = PalettePickUpSticks,
LoopOffset = 0,
FadeOutBeat = -2,
FadeOutDuration = 2,
FlickerLightsTimeSeries = [-36, -4, 32],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new([0f, 0.5f, 3f, 32f, 34f, 40f], [0f, 0.5f, 0f, 0f, 0.3f, 0f]),
CondensationLoopOffsetTimeSeries = new([23f, 28f, 31f, 34f, 38f, 52f], [0f, 0.5f, 0f, 0f, 0.5f, 0f]),
GameOverText = "[LOVE SUPPORT: OFFLINE]",
},
],
},
new SelectableAudioTrack
{
Name = "TwoFastTuFurious",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 36.08f,
Bars = 24, // 24 * 4 = 96 beats
BeatsOffset = 0f,
ColorTransitionIn = 0.4f,
ColorTransitionOut = 0.6f,
ColorTransitionEasing = Easing.InOutCubic,
Palette = Palette.Parse([
"#F0FBFF", "#9ED9FF", "#0B95FF",
"#66C7FF", "#CAE8FF", "#3BB6FF",
]),
// Allow chorus lyrics to be displayed only the first time, so they don't get too repetitive
LoopOffset = 48,
FadeOutBeat = -6f - 48f,
FadeOutDuration = 6f,
FlickerLightsTimeSeries = [-80, -14, 34, 82],
Lyrics = [
(-126, "Starting from here,\nlet's make a promise"),
(-110, "You and me, let's just be honest"),
(-100, "We're gonna run,\nnothing can stop us"),
(-89, "Even the night,\nthat falls all around us"),
(-80, "Soon there will be\nlaughter and voices"),
(-70, "Beyond the clouds,\nover the mountains"),
(-62, "We'll run away,\non roads that are empty"),
(-55, "Lights from the airfield,\nshining upon you"),
(-48, "Nothing can stop this"),
(-44, "Nothing can stop this,\nnot now, I love you"),
(-40, "They're not gonna get us"),
(-36, "They're not gonna get us\nTHEY'RE NOT GONNA GET US"),
],
DrunknessLoopOffsetTimeSeries = new(
[-48f, -47.75f, -42f, 0f, 0.25f, 6f, 48f, 48.25f, 54f],
[0f, 0.5f, 0f, 0f, 0.5f, 0f, 0f, 0.5f, 0f]),
CondensationLoopOffsetTimeSeries = new(
[-24f, -23.75f, -18f, 24f, 24.25f, 30f, 72f, 72.25f, 78f],
[0f, 0.5f, 0f, 0f, 0.5f, 0f, 0f, 0.5f, 0f]),
// GameOverText"[ LOVE GONNA GET US ]",
GameOverText = "[ O NOES, THEY GOT US ]",
},
new SelectableAudioTrack
{
Name = "Arcane",
AudioType = AudioType.OGGVORBIS,
Language = Language.ENGLISH,
WindUpTimer = 38.28f,
Bars = 8,
BeatsOffset = 0f,
ColorTransitionIn = 0.2f,
ColorTransitionOut = 0.3f,
ColorTransitionEasing = Easing.InOutExpo,
Palette = Palette.Parse([
"#F0FBFF", "#0B95FF", "#A8F5E2", "#B79BF2", "#fed2e1",
]),
LoopOffset = 0,
FadeOutBeat = -1.5f,
FadeOutDuration = 1.5f,
FlickerLightsTimeSeries = [-48.1f, -44.1f, -16, 15.9f, 31.9f],
Lyrics = [],
DrunknessLoopOffsetTimeSeries = new(
[-48f, -47.75f, -44f, -43.75f, -36f, /* 1 */ 0f, 0.25f, 6f, /* 2 */ 8f, 8.25f, 14f, /* 3 */ 16f, 16.25f, 22f, /* 4 */ 24f, 24.25f, 30f],
[ 0f, 0.5f, 0.2f, 0.5f, 0f, /* 1 */ 0f, 0.4f, 0f, /* 2 */ 0f, 0.4f, 0f, /* 3 */ 0f, 0.4f, 0f, /* 4 */ 0f, 0.4f, 0f]),
CondensationLoopOffsetTimeSeries = new(
[24f, 24.25f, 30f],
[ 0f, 0.5f, 0f]),
GameOverText = "[LIFE SUPPORT: HEXTECH]",
},
];
}