├── .gitattributes ├── .gitignore ├── LICENSE ├── Project.xml ├── README.md ├── assets ├── compileData │ ├── icon16.png │ ├── icon32.png │ ├── icon64.png │ └── iconOG.png ├── fonts │ ├── fonts-go-here.txt │ ├── pixel.otf │ └── vcr.ttf ├── preload │ ├── characters │ │ ├── bf-dead.json │ │ ├── bf.json │ │ ├── dad.json │ │ └── gf.json │ ├── data │ │ ├── characterList.txt │ │ ├── data-goes-here.txt │ │ ├── introText.txt │ │ ├── stageList.txt │ │ ├── test │ │ │ └── test.json │ │ └── tutorial │ │ │ ├── events.json │ │ │ ├── tutorial-easy.json │ │ │ ├── tutorial-hard.json │ │ │ └── tutorial.json │ ├── images │ │ ├── Menu_Tracks.png │ │ ├── alphabet.png │ │ ├── alphabet.xml │ │ ├── alphabetOld.png │ │ ├── alphabetOld.xml │ │ ├── campaign_menu_UI_assets.png │ │ ├── campaign_menu_UI_assets.xml │ │ ├── chart_quant.png │ │ ├── chart_quant.xml │ │ ├── checkboxanim.png │ │ ├── checkboxanim.xml │ │ ├── credits │ │ │ ├── bb.png │ │ │ ├── discord.png │ │ │ ├── evilsk8r.png │ │ │ ├── flicky.png │ │ │ ├── kade.png │ │ │ ├── kawaisprite.png │ │ │ ├── keoiki.png │ │ │ ├── mastereric.png │ │ │ ├── nebula.png │ │ │ ├── ninjamuffin99.png │ │ │ ├── phantomarcade.png │ │ │ ├── proxy.png │ │ │ ├── river.png │ │ │ ├── shadowmario.png │ │ │ ├── shubs.png │ │ │ ├── smokey.png │ │ │ └── sqirra.png │ │ ├── funkay.png │ │ ├── gfDanceTitle.png │ │ ├── gfDanceTitle.xml │ │ ├── icons │ │ │ ├── icon-bf-old.png │ │ │ ├── icon-bf.png │ │ │ ├── icon-dad.png │ │ │ ├── icon-face.png │ │ │ └── icon-gf.png │ │ ├── logo.png │ │ ├── logoBumpin.png │ │ ├── logoBumpin.xml │ │ ├── mainmenu │ │ │ ├── menu_awards.png │ │ │ ├── menu_awards.xml │ │ │ ├── menu_credits.png │ │ │ ├── menu_credits.xml │ │ │ ├── menu_donate.png │ │ │ ├── menu_donate.xml │ │ │ ├── menu_freeplay.png │ │ │ ├── menu_freeplay.xml │ │ │ ├── menu_mods.png │ │ │ ├── menu_mods.xml │ │ │ ├── menu_options.png │ │ │ ├── menu_options.xml │ │ │ ├── menu_story_mode.png │ │ │ └── menu_story_mode.xml │ │ ├── menuBG.png │ │ ├── menuBGBlue.png │ │ ├── menuBGMagenta.png │ │ ├── menuDesat.png │ │ ├── menubackgrounds │ │ │ └── menu_stage.png │ │ ├── menucharacters │ │ │ ├── Menu_BF.png │ │ │ ├── Menu_BF.xml │ │ │ ├── Menu_Dad.png │ │ │ ├── Menu_Dad.xml │ │ │ ├── Menu_GF.png │ │ │ ├── Menu_GF.xml │ │ │ ├── bf.json │ │ │ ├── dad.json │ │ │ └── gf.json │ │ ├── menudifficulties │ │ │ └── hard.png │ │ ├── newgrounds_logo.png │ │ ├── num0.png │ │ ├── num1.png │ │ ├── num2.png │ │ ├── num3.png │ │ ├── num4.png │ │ ├── num5.png │ │ ├── num6.png │ │ ├── num7.png │ │ ├── num8.png │ │ ├── num9.png │ │ ├── storymenu │ │ │ └── tutorial.png │ │ ├── titleEnter.png │ │ ├── titleEnter.xml │ │ └── unknownMod.png │ ├── music │ │ ├── freakyMenu.mp3 │ │ ├── freakyMenu.ogg │ │ ├── offsetSong.mp3 │ │ └── offsetSong.ogg │ ├── sounds │ │ ├── cancelMenu.mp3 │ │ ├── cancelMenu.ogg │ │ ├── confirmMenu.mp3 │ │ ├── confirmMenu.ogg │ │ ├── intro1-pixel.mp3 │ │ ├── intro1-pixel.ogg │ │ ├── intro2-pixel.mp3 │ │ ├── intro2-pixel.ogg │ │ ├── intro3-pixel.mp3 │ │ ├── intro3-pixel.ogg │ │ ├── introGo-pixel.mp3 │ │ ├── introGo-pixel.ogg │ │ ├── scrollMenu.mp3 │ │ └── scrollMenu.ogg │ ├── stages │ │ ├── newStage.hx │ │ ├── newStage.json │ │ └── stage.json │ └── weeks │ │ ├── tutorial.json │ │ └── weekList.txt ├── scripts │ └── scripts-go-here.txt.txt ├── shaders │ └── shaders-go-here.txt ├── shared │ ├── images │ │ ├── NOTE_assets.png │ │ ├── NOTE_assets.xml │ │ ├── bad.png │ │ ├── characters │ │ │ ├── BOYFRIEND.png │ │ │ ├── BOYFRIEND.xml │ │ │ ├── BOYFRIEND_DEAD.png │ │ │ ├── BOYFRIEND_DEAD.xml │ │ │ ├── DADDY_DEAREST.png │ │ │ ├── DADDY_DEAREST.xml │ │ │ ├── GF_assets.png │ │ │ └── GF_assets.xml │ │ ├── combo.png │ │ ├── eventArrow.png │ │ ├── go.png │ │ ├── good.png │ │ ├── healthBar.png │ │ ├── images-go-here.txt │ │ ├── noteSplashes.png │ │ ├── noteSplashes.xml │ │ ├── pixelUI │ │ │ ├── HURTNOTE_assets.png │ │ │ ├── HURTNOTE_assetsENDS.png │ │ │ ├── NOTE_assets.png │ │ │ ├── NOTE_assetsENDS.png │ │ │ ├── bad-pixel.png │ │ │ ├── combo-pixel.png │ │ │ ├── date-pixel.png │ │ │ ├── good-pixel.png │ │ │ ├── num0-pixel.png │ │ │ ├── num1-pixel.png │ │ │ ├── num2-pixel.png │ │ │ ├── num3-pixel.png │ │ │ ├── num4-pixel.png │ │ │ ├── num5-pixel.png │ │ │ ├── num6-pixel.png │ │ │ ├── num7-pixel.png │ │ │ ├── num8-pixel.png │ │ │ ├── num9-pixel.png │ │ │ ├── ready-pixel.png │ │ │ ├── set-pixel.png │ │ │ ├── shit-pixel.png │ │ │ └── sick-pixel.png │ │ ├── ready.png │ │ ├── set.png │ │ ├── shit.png │ │ ├── sick.png │ │ ├── stage_light.png │ │ ├── stageback.png │ │ ├── stagecurtains.png │ │ ├── stagefront.png │ │ └── timeBar.png │ ├── music │ │ ├── breakfast.mp3 │ │ ├── breakfast.ogg │ │ ├── gameOver.mp3 │ │ ├── gameOver.ogg │ │ ├── gameOverEnd.mp3 │ │ ├── gameOverEnd.ogg │ │ ├── tea-time.mp3 │ │ └── tea-time.ogg │ └── sounds │ │ ├── ANGRY.mp3 │ │ ├── ANGRY.ogg │ │ ├── ANGRY_TEXT_BOX.mp3 │ │ ├── ANGRY_TEXT_BOX.ogg │ │ ├── GF_1.mp3 │ │ ├── GF_1.ogg │ │ ├── GF_2.mp3 │ │ ├── GF_2.ogg │ │ ├── GF_3.mp3 │ │ ├── GF_3.ogg │ │ ├── GF_4.mp3 │ │ ├── GF_4.ogg │ │ ├── Metronome_Tick.mp3 │ │ ├── Metronome_Tick.ogg │ │ ├── badnoise1.mp3 │ │ ├── badnoise1.ogg │ │ ├── badnoise2.mp3 │ │ ├── badnoise2.ogg │ │ ├── badnoise3.mp3 │ │ ├── badnoise3.ogg │ │ ├── clickText.mp3 │ │ ├── clickText.ogg │ │ ├── dialogue.mp3 │ │ ├── dialogue.ogg │ │ ├── dialogueClose.mp3 │ │ ├── dialogueClose.ogg │ │ ├── fnf_loss_sfx.mp3 │ │ ├── fnf_loss_sfx.ogg │ │ ├── hitsound.mp3 │ │ ├── hitsound.ogg │ │ ├── intro1.mp3 │ │ ├── intro1.ogg │ │ ├── intro2.mp3 │ │ ├── intro2.ogg │ │ ├── intro3.mp3 │ │ ├── intro3.ogg │ │ ├── introGo.mp3 │ │ ├── introGo.ogg │ │ ├── missnote1.mp3 │ │ ├── missnote1.ogg │ │ ├── missnote2.mp3 │ │ ├── missnote2.ogg │ │ ├── missnote3.mp3 │ │ ├── missnote3.ogg │ │ ├── soundTest.mp3 │ │ ├── soundTest.ogg │ │ └── sounds-go-here.txt ├── songs │ ├── test │ │ ├── Inst.mp3 │ │ ├── Inst.ogg │ │ ├── Voices.mp3 │ │ └── Voices.ogg │ └── tutorial │ │ ├── Inst.mp3 │ │ └── Inst.ogg └── videos │ └── put-your-videos-here.txt ├── hxformat.json └── source ├── Init.hx ├── Main.hx ├── cpp ├── CPPInterface.hx ├── CPPLinux.hx └── CPPWindows.hx ├── data ├── ClientPrefs.hx ├── Highscore.hx ├── Paths.hx ├── StageData.hx └── WeekData.hx ├── flixel ├── addons │ ├── display │ │ └── FlxRuntimeShader.hx │ └── ui │ │ ├── FlxInputText.hx │ │ └── FlxUIInputText.hx ├── animation │ └── FlxAnimationController.hx └── system │ └── FlxSound.hx ├── hscript └── Interp.hx ├── input ├── Controls.hx ├── InputFormatter.hx └── PlayerSettings.hx ├── lime └── _internal │ └── backend │ └── native │ └── NativeAudioSource.hx ├── objects ├── Alphabet.hx ├── AttachedSprite.hx ├── AttachedText.hx ├── Boyfriend.hx ├── Character.hx ├── CheckboxThingie.hx ├── HealthIcon.hx ├── MenuCharacter.hx ├── MenuItem.hx ├── Note.hx ├── NoteSplash.hx ├── StrumNote.hx └── TypedAlphabet.hx ├── openfl └── display │ └── FPS.hx ├── script ├── Interact.hx ├── Script.hx ├── ScriptGroup.hx └── ScriptUtil.hx ├── shaders ├── ColorSwap.hx ├── FlxRunTimeShader.hx └── ShaderUtil.hx ├── song ├── Conductor.hx ├── Section.hx └── Song.hx ├── states ├── FlashingState.hx ├── LoadingState.hx ├── MusicBeatState.hx ├── editors │ ├── CharacterEditorState.hx │ ├── ChartingState.hx │ ├── EditorPlayState.hx │ ├── MasterEditorMenu.hx │ ├── MenuCharacterEditorState.hx │ └── WeekEditorState.hx ├── game │ ├── GameOverSubstate.hx │ └── PlayState.hx ├── menus │ ├── CreditsState.hx │ ├── FreeplayState.hx │ ├── MainMenuState.hx │ ├── StoryMenuState.hx │ └── TitleState.hx ├── options │ ├── BaseOptionsMenu.hx │ ├── ControlsSubState.hx │ ├── GameplaySettingsSubState.hx │ ├── GraphicsSettingsSubState.hx │ ├── NoteOffsetState.hx │ ├── NotesSubState.hx │ ├── Option.hx │ ├── OptionsState.hx │ └── VisualsUISubState.hx └── substates │ ├── CustomFadeTransition.hx │ ├── MusicBeatSubstate.hx │ ├── PauseSubState.hx │ └── ResetScoreSubState.hx └── util ├── CoolUtil.hx ├── Discord.hx ├── FlxUIDropDownMenuCustom.hx └── Prompt.hx /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### FNF-Specific 2 | # File used for the NG API. Should not be shared with others. 3 | APIStuff.hx 4 | art/build_x32-officialrelease.bat 5 | art/build_x64-officialrelease.bat 6 | art/test_x64-debug-officialrelease.bat 7 | 8 | ### VS Code 9 | export/* 10 | .vscode/* 11 | *.code-workspace 12 | # Local history which shouldn't be shared. 13 | .history 14 | .ionide 15 | # ! means a file should be added regardless of it it gets ignored prior. 16 | # Including to allow others to use already set-up configuration tweaked for the project. 17 | .vscode/settings.json 18 | .vscode/tasks.json 19 | .vscode/launch.json 20 | .vscode/extensions.json -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Lunar's Advanced Psych Fork 2 | 3 | A bare-bones fork of psych engine designed to be soft coded in certain ways, but to be used with source code. Has support for advanced hscript integrated with FNF. 4 | 5 | **This fork will stay on Psych Engine V6.3 unless major features are added to future builds!** 6 | 7 | **Fork will stay unofficial, and never ever will be official, due to issues relating to ShadowMario & the Owner** 8 | 9 | ![Minecraft Steve](https://i.imgur.com/fRACgfU.png) 10 | 11 | ## Current Developement Status🟡 12 | 13 | Current Version: **v0.0.2** 14 | 15 | #### New Stuff: 16 | - [Script Interactions](https://github.com/lunarcleint/Psych-Advanced-Hscript/wiki/Script-API-2:-Script-Examples#adding-and-getting-a-script) 17 | - Better Error Handling 18 | - [Documation](https://github.com/lunarcleint/Psych-Advanced-Hscript/wiki) (LETS GO!!) 19 | 20 | Please report any errors you get in the [Issues](https://github.com/lunarcleint/Psych-Advanced-Hscript/issues) tab! 21 | 22 | ## Documenation 23 | 24 | Check out the [Wiki](https://github.com/lunarcleint/Psych-Advanced-Hscript/wiki)! 25 | 26 | -------------------------------------------------------------------------------- /assets/compileData/icon16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/compileData/icon16.png -------------------------------------------------------------------------------- /assets/compileData/icon32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/compileData/icon32.png -------------------------------------------------------------------------------- /assets/compileData/icon64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/compileData/icon64.png -------------------------------------------------------------------------------- /assets/compileData/iconOG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/compileData/iconOG.png -------------------------------------------------------------------------------- /assets/fonts/fonts-go-here.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/fonts/fonts-go-here.txt -------------------------------------------------------------------------------- /assets/fonts/pixel.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/fonts/pixel.otf -------------------------------------------------------------------------------- /assets/fonts/vcr.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/fonts/vcr.ttf -------------------------------------------------------------------------------- /assets/preload/characters/bf-dead.json: -------------------------------------------------------------------------------- 1 | { 2 | "animations": [ 3 | { 4 | "offsets": [ 5 | 37, 6 | 11 7 | ], 8 | "loop": false, 9 | "fps": 24, 10 | "anim": "firstDeath", 11 | "indices": [], 12 | "name": "BF dies" 13 | }, 14 | { 15 | "offsets": [ 16 | 37, 17 | 5 18 | ], 19 | "loop": true, 20 | "fps": 24, 21 | "anim": "deathLoop", 22 | "indices": [], 23 | "name": "BF Dead Loop" 24 | }, 25 | { 26 | "offsets": [ 27 | 37, 28 | 69 29 | ], 30 | "loop": false, 31 | "fps": 24, 32 | "anim": "deathConfirm", 33 | "indices": [], 34 | "name": "BF Dead confirm" 35 | } 36 | ], 37 | "no_antialiasing": false, 38 | "image": "characters/BOYFRIEND_DEAD", 39 | "position": [ 40 | 0, 41 | 350 42 | ], 43 | "healthicon": "bf", 44 | "flip_x": true, 45 | "healthbar_colors": [ 46 | 49, 47 | 176, 48 | 209 49 | ], 50 | "camera_position": [ 51 | 0, 52 | 0 53 | ], 54 | "sing_duration": 4, 55 | "scale": 1 56 | } -------------------------------------------------------------------------------- /assets/preload/characters/bf.json: -------------------------------------------------------------------------------- 1 | { 2 | "animations": [ 3 | { 4 | "offsets": [ 5 | -5, 6 | 0 7 | ], 8 | "loop": false, 9 | "fps": 24, 10 | "anim": "idle", 11 | "indices": [], 12 | "name": "BF idle dance" 13 | }, 14 | { 15 | "offsets": [ 16 | 5, 17 | -6 18 | ], 19 | "loop": false, 20 | "fps": 24, 21 | "anim": "singLEFT", 22 | "indices": [], 23 | "name": "BF NOTE LEFT0" 24 | }, 25 | { 26 | "offsets": [ 27 | -20, 28 | -51 29 | ], 30 | "loop": false, 31 | "fps": 24, 32 | "anim": "singDOWN", 33 | "indices": [], 34 | "name": "BF NOTE DOWN0" 35 | }, 36 | { 37 | "offsets": [ 38 | -46, 39 | 27 40 | ], 41 | "loop": false, 42 | "fps": 24, 43 | "anim": "singUP", 44 | "indices": [], 45 | "name": "BF NOTE UP0" 46 | }, 47 | { 48 | "offsets": [ 49 | -48, 50 | -7 51 | ], 52 | "loop": false, 53 | "fps": 24, 54 | "anim": "singRIGHT", 55 | "indices": [], 56 | "name": "BF NOTE RIGHT0" 57 | }, 58 | { 59 | "offsets": [ 60 | 7, 61 | 19 62 | ], 63 | "loop": false, 64 | "fps": 24, 65 | "anim": "singLEFTmiss", 66 | "indices": [], 67 | "name": "BF NOTE LEFT MISS" 68 | }, 69 | { 70 | "offsets": [ 71 | -15, 72 | -19 73 | ], 74 | "loop": false, 75 | "fps": 24, 76 | "anim": "singDOWNmiss", 77 | "indices": [], 78 | "name": "BF NOTE DOWN MISS" 79 | }, 80 | { 81 | "offsets": [ 82 | -46, 83 | 27 84 | ], 85 | "loop": false, 86 | "fps": 24, 87 | "anim": "singUPmiss", 88 | "indices": [], 89 | "name": "BF NOTE UP MISS" 90 | }, 91 | { 92 | "offsets": [ 93 | -44, 94 | 22 95 | ], 96 | "loop": false, 97 | "fps": 24, 98 | "anim": "singRIGHTmiss", 99 | "indices": [], 100 | "name": "BF NOTE RIGHT MISS" 101 | }, 102 | { 103 | "offsets": [ 104 | -3, 105 | 5 106 | ], 107 | "loop": false, 108 | "fps": 24, 109 | "anim": "hey", 110 | "indices": [], 111 | "name": "BF HEY" 112 | }, 113 | { 114 | "offsets": [ 115 | 14, 116 | 18 117 | ], 118 | "loop": false, 119 | "fps": 24, 120 | "anim": "hurt", 121 | "indices": [], 122 | "name": "BF hit" 123 | }, 124 | { 125 | "offsets": [ 126 | -4, 127 | 0 128 | ], 129 | "loop": true, 130 | "fps": 24, 131 | "anim": "scared", 132 | "indices": [], 133 | "name": "BF idle shaking" 134 | }, 135 | { 136 | "offsets": [ 137 | -10, 138 | -16 139 | ], 140 | "loop": false, 141 | "fps": 24, 142 | "anim": "dodge", 143 | "indices": [], 144 | "name": "boyfriend dodge" 145 | }, 146 | { 147 | "offsets": [ 148 | 294, 149 | 267 150 | ], 151 | "loop": false, 152 | "fps": 24, 153 | "anim": "attack", 154 | "indices": [], 155 | "name": "boyfriend attack" 156 | }, 157 | { 158 | "offsets": [ 159 | -40, 160 | -40 161 | ], 162 | "loop": false, 163 | "fps": 24, 164 | "anim": "pre-attack", 165 | "indices": [], 166 | "name": "bf pre attack" 167 | } 168 | ], 169 | "no_antialiasing": false, 170 | "image": "characters/BOYFRIEND", 171 | "position": [ 172 | 0, 173 | 350 174 | ], 175 | "healthicon": "bf", 176 | "flip_x": true, 177 | "healthbar_colors": [ 178 | 49, 179 | 176, 180 | 209 181 | ], 182 | "camera_position": [ 183 | 0, 184 | 0 185 | ], 186 | "sing_duration": 4, 187 | "scale": 1 188 | } -------------------------------------------------------------------------------- /assets/preload/characters/dad.json: -------------------------------------------------------------------------------- 1 | { 2 | "animations": [ 3 | { 4 | "offsets": [ 5 | -9, 6 | 10 7 | ], 8 | "loop": false, 9 | "anim": "singLEFT", 10 | "fps": 24, 11 | "name": "Dad Sing Note LEFT", 12 | "indices": [] 13 | }, 14 | { 15 | "offsets": [ 16 | 0, 17 | -30 18 | ], 19 | "loop": false, 20 | "anim": "singDOWN", 21 | "fps": 24, 22 | "name": "Dad Sing Note DOWN", 23 | "indices": [] 24 | }, 25 | { 26 | "offsets": [ 27 | -6, 28 | 50 29 | ], 30 | "loop": false, 31 | "anim": "singUP", 32 | "fps": 24, 33 | "name": "Dad Sing Note UP", 34 | "indices": [] 35 | }, 36 | { 37 | "offsets": [ 38 | 0, 39 | 27 40 | ], 41 | "loop": false, 42 | "anim": "singRIGHT", 43 | "fps": 24, 44 | "name": "Dad Sing Note RIGHT", 45 | "indices": [] 46 | }, 47 | { 48 | "offsets": [ 49 | 0, 50 | 0 51 | ], 52 | "loop": false, 53 | "anim": "idle", 54 | "fps": 24, 55 | "name": "Dad idle dance", 56 | "indices": [] 57 | }, 58 | { 59 | "offsets": [ 60 | 0, 61 | 0 62 | ], 63 | "loop": true, 64 | "fps": 24, 65 | "anim": "idle-loop", 66 | "indices": [ 67 | 10, 68 | 11, 69 | 12, 70 | 12 71 | ], 72 | "name": "Dad idle dance" 73 | }, 74 | { 75 | "offsets": [ 76 | -9, 77 | 10 78 | ], 79 | "loop": true, 80 | "fps": 24, 81 | "anim": "singLEFT-loop", 82 | "indices": [ 83 | 12, 84 | 13, 85 | 14, 86 | 15 87 | ], 88 | "name": "Dad Sing Note LEFT" 89 | }, 90 | { 91 | "offsets": [ 92 | 0, 93 | 27 94 | ], 95 | "loop": true, 96 | "fps": 24, 97 | "anim": "singRIGHT-loop", 98 | "indices": [ 99 | 15, 100 | 16, 101 | 17, 102 | 18 103 | ], 104 | "name": "Dad Sing Note RIGHT" 105 | }, 106 | { 107 | "offsets": [ 108 | -6, 109 | 50 110 | ], 111 | "loop": true, 112 | "fps": 24, 113 | "anim": "singUP-loop", 114 | "indices": [ 115 | 56, 116 | 57, 117 | 58, 118 | 59 119 | ], 120 | "name": "Dad Sing Note UP" 121 | } 122 | ], 123 | "no_antialiasing": false, 124 | "image": "characters/DADDY_DEAREST", 125 | "position": [ 126 | 0, 127 | 0 128 | ], 129 | "healthicon": "dad", 130 | "flip_x": false, 131 | "healthbar_colors": [ 132 | 175, 133 | 102, 134 | 206 135 | ], 136 | "camera_position": [ 137 | 0, 138 | 0 139 | ], 140 | "sing_duration": 6.1, 141 | "scale": 1 142 | } -------------------------------------------------------------------------------- /assets/preload/characters/gf.json: -------------------------------------------------------------------------------- 1 | { 2 | "animations": [ 3 | { 4 | "loop": false, 5 | "offsets": [ 6 | 3, 7 | 0 8 | ], 9 | "fps": 24, 10 | "anim": "cheer", 11 | "indices": [], 12 | "name": "GF Cheer" 13 | }, 14 | { 15 | "loop": false, 16 | "offsets": [ 17 | 0, 18 | -19 19 | ], 20 | "fps": 24, 21 | "anim": "singLEFT", 22 | "indices": [], 23 | "name": "GF left note" 24 | }, 25 | { 26 | "loop": false, 27 | "offsets": [ 28 | 0, 29 | -20 30 | ], 31 | "fps": 24, 32 | "anim": "singDOWN", 33 | "indices": [], 34 | "name": "GF Down Note" 35 | }, 36 | { 37 | "loop": false, 38 | "offsets": [ 39 | 0, 40 | 4 41 | ], 42 | "fps": 24, 43 | "anim": "singUP", 44 | "indices": [], 45 | "name": "GF Up Note" 46 | }, 47 | { 48 | "loop": false, 49 | "offsets": [ 50 | 0, 51 | -20 52 | ], 53 | "fps": 24, 54 | "anim": "singRIGHT", 55 | "indices": [], 56 | "name": "GF Right Note" 57 | }, 58 | { 59 | "loop": false, 60 | "offsets": [ 61 | -2, 62 | -21 63 | ], 64 | "fps": 24, 65 | "anim": "sad", 66 | "indices": [ 67 | 0, 68 | 1, 69 | 2, 70 | 3, 71 | 4, 72 | 5, 73 | 6, 74 | 7, 75 | 8, 76 | 9, 77 | 10, 78 | 11, 79 | 12 80 | ], 81 | "name": "gf sad" 82 | }, 83 | { 84 | "loop": false, 85 | "offsets": [ 86 | 0, 87 | -9 88 | ], 89 | "fps": 24, 90 | "anim": "danceLeft", 91 | "indices": [ 92 | 30, 93 | 0, 94 | 1, 95 | 2, 96 | 3, 97 | 4, 98 | 5, 99 | 6, 100 | 7, 101 | 8, 102 | 9, 103 | 10, 104 | 11, 105 | 12, 106 | 13, 107 | 14 108 | ], 109 | "name": "GF Dancing Beat" 110 | }, 111 | { 112 | "loop": false, 113 | "offsets": [ 114 | 0, 115 | -9 116 | ], 117 | "fps": 24, 118 | "anim": "danceRight", 119 | "indices": [ 120 | 15, 121 | 16, 122 | 17, 123 | 18, 124 | 19, 125 | 20, 126 | 21, 127 | 22, 128 | 23, 129 | 24, 130 | 25, 131 | 26, 132 | 27, 133 | 28, 134 | 29 135 | ], 136 | "name": "GF Dancing Beat" 137 | }, 138 | { 139 | "loop": true, 140 | "offsets": [ 141 | 45, 142 | -8 143 | ], 144 | "fps": 24, 145 | "anim": "hairBlow", 146 | "indices": [ 147 | 0, 148 | 1, 149 | 2, 150 | 3 151 | ], 152 | "name": "GF Dancing Beat Hair blowing" 153 | }, 154 | { 155 | "loop": false, 156 | "offsets": [ 157 | 0, 158 | -9 159 | ], 160 | "fps": 24, 161 | "anim": "hairFall", 162 | "indices": [ 163 | 0, 164 | 1, 165 | 2, 166 | 3, 167 | 4, 168 | 5, 169 | 6, 170 | 7, 171 | 8, 172 | 9, 173 | 10, 174 | 11 175 | ], 176 | "name": "GF Dancing Beat Hair Landing" 177 | }, 178 | { 179 | "loop": true, 180 | "offsets": [ 181 | -2, 182 | -17 183 | ], 184 | "fps": 24, 185 | "anim": "scared", 186 | "indices": [], 187 | "name": "GF FEAR" 188 | } 189 | ], 190 | "no_antialiasing": false, 191 | "image": "characters/GF_assets", 192 | "position": [ 193 | 0, 194 | 0 195 | ], 196 | "healthicon": "gf", 197 | "flip_x": false, 198 | "healthbar_colors": [ 199 | 165, 200 | 0, 201 | 77 202 | ], 203 | "camera_position": [ 204 | 0, 205 | 0 206 | ], 207 | "sing_duration": 4, 208 | "scale": 1 209 | } -------------------------------------------------------------------------------- /assets/preload/data/characterList.txt: -------------------------------------------------------------------------------- 1 | bf 2 | dad 3 | gf -------------------------------------------------------------------------------- /assets/preload/data/data-goes-here.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/data/data-goes-here.txt -------------------------------------------------------------------------------- /assets/preload/data/introText.txt: -------------------------------------------------------------------------------- 1 | shoutouts to tom fulp--lmao 2 | Ludum dare--extraordinaire 3 | cyberzone--coming soon 4 | love to thriftman--swag 5 | ultimate rhythm gaming--probably 6 | dope ass game--playstation magazine 7 | in loving memory of--henryeyes 8 | dancin--forever 9 | funkin--forever 10 | ritz dx--rest in peace lol 11 | rate five--pls no blam 12 | rhythm gaming--ultimate 13 | game of the year--forever 14 | you already know--we really out here 15 | rise and grind--love to luis 16 | like parappa--but cooler 17 | album of the year--chuckie finster 18 | free gitaroo man--with love to wandaboy 19 | better than geometry dash--fight me robtop 20 | kiddbrute for president--vote now 21 | play dead estate--on newgrounds 22 | this is a god damn prototype--we workin on it okay 23 | women are real--this is official 24 | too over exposed--newgrounds cant handle us 25 | Hatsune Miku--biggest inspiration 26 | too many people--my head hurts 27 | newgrounds--forever 28 | refined taste in music--if i say so myself 29 | his name isnt keith--dumb eggy lol 30 | his name isnt evan--silly tiktok 31 | stream chuckie finster--on spotify 32 | never forget to--pray to god 33 | dont play rust--we only funkin 34 | good bye--my penis 35 | dababy--biggest inspiration 36 | fashionably late--but here it is 37 | yooooooooooo--yooooooooo 38 | pico funny--pico funny 39 | updates each friday--on time every time 40 | shoutouts to mason--for da homies 41 | bonk--get in the discord call 42 | this isn't a copy of ke--*vine boom* 43 | we do a little trolling--h 44 | sexiest engine--in da block 45 | he's named evilsk8er--not evilsker 46 | actual functional--input system 47 | its nerf--or nothing 48 | penis--balls even 49 | fnf is not for kids--go outside 50 | little herobrine--im cumming in your mom 51 | what you know about--rolling down in the deep 52 | oh god i'm white--and i'm on twitter 53 | i gotta--bucket of chicken 54 | dream stans--literally scare me 55 | weeg mod--check it out 56 | what da dog--doin 57 | go mango go--go mango go 58 | go pico yeah yeah--*twerks cutely* 59 | forever engine--my beloved 60 | wash your hands--stay safe bro 61 | wear a mask--even if vaccinated 62 | you dont understand--i hate society as a whole 63 | psych engine port--fatherless behavior 64 | i made a psych port--free clout yay 65 | wanna work on my fnf--fnf mod 66 | gazozoz--sickest bomb recoveries 67 | atvdriver--the rats are coming 68 | pessy--pure perfection 69 | -------------------------------------------------------------------------------- /assets/preload/data/stageList.txt: -------------------------------------------------------------------------------- 1 | stage -------------------------------------------------------------------------------- /assets/preload/data/tutorial/events.json: -------------------------------------------------------------------------------- 1 | {"song":{"sectionLengths":[],"player1":"bf","player2":"gf","notes":[{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[[18650,-1,"Hey!","2",""]],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[[28250,-1,"Hey!","2",""]],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":false},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"sectionNotes":[],"lengthInSteps":16,"typeOfSection":0,"mustHitSection":true},{"typeOfSection":0,"sectionNotes":[],"lengthInSteps":16,"bpm":100,"changeBPM":false,"mustHitSection":true},{"lengthInSteps":16,"altAnim":false,"typeOfSection":0,"sectionNotes":[],"bpm":100,"changeBPM":false,"mustHitSection":true},{"lengthInSteps":16,"altAnim":false,"typeOfSection":0,"sectionNotes":[],"bpm":100,"changeBPM":false,"mustHitSection":true}],"song":"Tutorial","validScore":true,"sections":0,"needsVoices":false,"speed":1,"bpm":100}} -------------------------------------------------------------------------------- /assets/preload/images/Menu_Tracks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/Menu_Tracks.png -------------------------------------------------------------------------------- /assets/preload/images/alphabet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/alphabet.png -------------------------------------------------------------------------------- /assets/preload/images/alphabetOld.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/alphabetOld.png -------------------------------------------------------------------------------- /assets/preload/images/campaign_menu_UI_assets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/campaign_menu_UI_assets.png -------------------------------------------------------------------------------- /assets/preload/images/campaign_menu_UI_assets.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /assets/preload/images/chart_quant.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/chart_quant.png -------------------------------------------------------------------------------- /assets/preload/images/chart_quant.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /assets/preload/images/checkboxanim.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/checkboxanim.png -------------------------------------------------------------------------------- /assets/preload/images/checkboxanim.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /assets/preload/images/credits/bb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/bb.png -------------------------------------------------------------------------------- /assets/preload/images/credits/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/discord.png -------------------------------------------------------------------------------- /assets/preload/images/credits/evilsk8r.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/evilsk8r.png -------------------------------------------------------------------------------- /assets/preload/images/credits/flicky.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/flicky.png -------------------------------------------------------------------------------- /assets/preload/images/credits/kade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/kade.png -------------------------------------------------------------------------------- /assets/preload/images/credits/kawaisprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/kawaisprite.png -------------------------------------------------------------------------------- /assets/preload/images/credits/keoiki.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/keoiki.png -------------------------------------------------------------------------------- /assets/preload/images/credits/mastereric.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/mastereric.png -------------------------------------------------------------------------------- /assets/preload/images/credits/nebula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/nebula.png -------------------------------------------------------------------------------- /assets/preload/images/credits/ninjamuffin99.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/ninjamuffin99.png -------------------------------------------------------------------------------- /assets/preload/images/credits/phantomarcade.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/phantomarcade.png -------------------------------------------------------------------------------- /assets/preload/images/credits/proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/proxy.png -------------------------------------------------------------------------------- /assets/preload/images/credits/river.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/river.png -------------------------------------------------------------------------------- /assets/preload/images/credits/shadowmario.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/shadowmario.png -------------------------------------------------------------------------------- /assets/preload/images/credits/shubs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/shubs.png -------------------------------------------------------------------------------- /assets/preload/images/credits/smokey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/smokey.png -------------------------------------------------------------------------------- /assets/preload/images/credits/sqirra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/credits/sqirra.png -------------------------------------------------------------------------------- /assets/preload/images/funkay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/funkay.png -------------------------------------------------------------------------------- /assets/preload/images/gfDanceTitle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/gfDanceTitle.png -------------------------------------------------------------------------------- /assets/preload/images/gfDanceTitle.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /assets/preload/images/icons/icon-bf-old.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/icons/icon-bf-old.png -------------------------------------------------------------------------------- /assets/preload/images/icons/icon-bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/icons/icon-bf.png -------------------------------------------------------------------------------- /assets/preload/images/icons/icon-dad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/icons/icon-dad.png -------------------------------------------------------------------------------- /assets/preload/images/icons/icon-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/icons/icon-face.png -------------------------------------------------------------------------------- /assets/preload/images/icons/icon-gf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/icons/icon-gf.png -------------------------------------------------------------------------------- /assets/preload/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/logo.png -------------------------------------------------------------------------------- /assets/preload/images/logoBumpin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/logoBumpin.png -------------------------------------------------------------------------------- /assets/preload/images/logoBumpin.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_awards.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/mainmenu/menu_awards.png -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_awards.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_credits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/mainmenu/menu_credits.png -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_credits.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_donate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/mainmenu/menu_donate.png -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_donate.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_freeplay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/mainmenu/menu_freeplay.png -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_freeplay.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_mods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/mainmenu/menu_mods.png -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_mods.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/mainmenu/menu_options.png -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_options.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_story_mode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/mainmenu/menu_story_mode.png -------------------------------------------------------------------------------- /assets/preload/images/mainmenu/menu_story_mode.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /assets/preload/images/menuBG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menuBG.png -------------------------------------------------------------------------------- /assets/preload/images/menuBGBlue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menuBGBlue.png -------------------------------------------------------------------------------- /assets/preload/images/menuBGMagenta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menuBGMagenta.png -------------------------------------------------------------------------------- /assets/preload/images/menuDesat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menuDesat.png -------------------------------------------------------------------------------- /assets/preload/images/menubackgrounds/menu_stage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menubackgrounds/menu_stage.png -------------------------------------------------------------------------------- /assets/preload/images/menucharacters/Menu_BF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menucharacters/Menu_BF.png -------------------------------------------------------------------------------- /assets/preload/images/menucharacters/Menu_Dad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menucharacters/Menu_Dad.png -------------------------------------------------------------------------------- /assets/preload/images/menucharacters/Menu_Dad.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /assets/preload/images/menucharacters/Menu_GF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menucharacters/Menu_GF.png -------------------------------------------------------------------------------- /assets/preload/images/menucharacters/Menu_GF.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /assets/preload/images/menucharacters/bf.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "image": "Menu_BF", 4 | "position": [ 5 | 15, 6 | -40 7 | ], 8 | "scale": 1, 9 | "idle_anim": "M BF Idle", 10 | "confirm_anim": "M bf HEY" 11 | } -------------------------------------------------------------------------------- /assets/preload/images/menucharacters/dad.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "image": "Menu_Dad", 4 | "position": [ 5 | 0, 6 | 0 7 | ], 8 | "scale": 1, 9 | "idle_anim": "M Dad Idle", 10 | "confirm_anim": "M Dad Idle" 11 | } -------------------------------------------------------------------------------- /assets/preload/images/menucharacters/gf.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "image": "Menu_GF", 4 | "position": [ 5 | 0, 6 | -25 7 | ], 8 | "scale": 1, 9 | "idle_anim": "M GF Idle", 10 | "confirm_anim": "M GF Idle" 11 | } -------------------------------------------------------------------------------- /assets/preload/images/menudifficulties/hard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/menudifficulties/hard.png -------------------------------------------------------------------------------- /assets/preload/images/newgrounds_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/newgrounds_logo.png -------------------------------------------------------------------------------- /assets/preload/images/num0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num0.png -------------------------------------------------------------------------------- /assets/preload/images/num1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num1.png -------------------------------------------------------------------------------- /assets/preload/images/num2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num2.png -------------------------------------------------------------------------------- /assets/preload/images/num3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num3.png -------------------------------------------------------------------------------- /assets/preload/images/num4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num4.png -------------------------------------------------------------------------------- /assets/preload/images/num5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num5.png -------------------------------------------------------------------------------- /assets/preload/images/num6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num6.png -------------------------------------------------------------------------------- /assets/preload/images/num7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num7.png -------------------------------------------------------------------------------- /assets/preload/images/num8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num8.png -------------------------------------------------------------------------------- /assets/preload/images/num9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/num9.png -------------------------------------------------------------------------------- /assets/preload/images/storymenu/tutorial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/storymenu/tutorial.png -------------------------------------------------------------------------------- /assets/preload/images/titleEnter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/titleEnter.png -------------------------------------------------------------------------------- /assets/preload/images/titleEnter.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /assets/preload/images/unknownMod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/images/unknownMod.png -------------------------------------------------------------------------------- /assets/preload/music/freakyMenu.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/music/freakyMenu.mp3 -------------------------------------------------------------------------------- /assets/preload/music/freakyMenu.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/music/freakyMenu.ogg -------------------------------------------------------------------------------- /assets/preload/music/offsetSong.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/music/offsetSong.mp3 -------------------------------------------------------------------------------- /assets/preload/music/offsetSong.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/music/offsetSong.ogg -------------------------------------------------------------------------------- /assets/preload/sounds/cancelMenu.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/cancelMenu.mp3 -------------------------------------------------------------------------------- /assets/preload/sounds/cancelMenu.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/cancelMenu.ogg -------------------------------------------------------------------------------- /assets/preload/sounds/confirmMenu.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/confirmMenu.mp3 -------------------------------------------------------------------------------- /assets/preload/sounds/confirmMenu.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/confirmMenu.ogg -------------------------------------------------------------------------------- /assets/preload/sounds/intro1-pixel.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/intro1-pixel.mp3 -------------------------------------------------------------------------------- /assets/preload/sounds/intro1-pixel.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/intro1-pixel.ogg -------------------------------------------------------------------------------- /assets/preload/sounds/intro2-pixel.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/intro2-pixel.mp3 -------------------------------------------------------------------------------- /assets/preload/sounds/intro2-pixel.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/intro2-pixel.ogg -------------------------------------------------------------------------------- /assets/preload/sounds/intro3-pixel.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/intro3-pixel.mp3 -------------------------------------------------------------------------------- /assets/preload/sounds/intro3-pixel.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/intro3-pixel.ogg -------------------------------------------------------------------------------- /assets/preload/sounds/introGo-pixel.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/introGo-pixel.mp3 -------------------------------------------------------------------------------- /assets/preload/sounds/introGo-pixel.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/introGo-pixel.ogg -------------------------------------------------------------------------------- /assets/preload/sounds/scrollMenu.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/scrollMenu.mp3 -------------------------------------------------------------------------------- /assets/preload/sounds/scrollMenu.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/preload/sounds/scrollMenu.ogg -------------------------------------------------------------------------------- /assets/preload/stages/newStage.hx: -------------------------------------------------------------------------------- 1 | // 2 | 3 | var test:String = "p"; 4 | 5 | function create() 6 | { 7 | var bg:FlxSprite = new FlxSprite(-600, -200).loadGraphic(Paths.image('stageback')); 8 | bg.scrollFactor.set(0.9, 0.9); 9 | add(bg); 10 | 11 | var stageFront:FlxSprite = new FlxSprite(-650, 600).loadGraphic(Paths.image('stagefront')); 12 | stageFront.scrollFactor.set(0.9, 0.9); 13 | stageFront.setGraphicSize(Std.int(stageFront.width * 1.1)); 14 | stageFront.updateHitbox(); 15 | add(stageFront); 16 | 17 | if (!ClientPrefs.lowQuality) 18 | { 19 | var stageLight:FlxSprite = new FlxSprite(-125, -100).loadGraphic(Paths.image('stage_light')); 20 | stageLight.scrollFactor.set(0.9, 0.9); 21 | stageLight.setGraphicSize(Std.int(stageLight.width * 1.1)); 22 | stageLight.updateHitbox(); 23 | add(stageLight); 24 | 25 | var stageLight:FlxSprite = new FlxSprite(1225, -100).loadGraphic(Paths.image('stage_light')); 26 | stageLight.scrollFactor.set(0.9, 0.9); 27 | stageLight.setGraphicSize(Std.int(stageLight.width * 1.1)); 28 | stageLight.updateHitbox(); 29 | stageLight.flipX = true; 30 | add(stageLight); 31 | 32 | var stageCurtains:FlxSprite = new FlxSprite(-500, -300).loadGraphic(Paths.image('stagecurtains')); 33 | stageCurtains.scrollFactor.set(1.3, 1.3); 34 | stageCurtains.setGraphicSize(Std.int(stageCurtains.width * 0.9)); 35 | stageCurtains.updateHitbox(); 36 | add(stageCurtains); 37 | } 38 | } 39 | 40 | function stepHit(step:Int) 41 | { 42 | if (step == 16) 43 | { 44 | trace(test); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /assets/preload/stages/newStage.json: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "", 3 | "defaultZoom": 0.9, 4 | "isPixelStage": false, 5 | 6 | "boyfriend": [770, 100], 7 | "girlfriend": [400, 130], 8 | "opponent": [100, 100], 9 | "hide_girlfriend": false, 10 | 11 | "camera_boyfriend": [0, 0], 12 | "camera_opponent": [0, 0], 13 | "camera_girlfriend": [0, 0], 14 | "camera_speed": 1 15 | } -------------------------------------------------------------------------------- /assets/preload/stages/stage.json: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "", 3 | "defaultZoom": 0.9, 4 | "isPixelStage": false, 5 | 6 | "boyfriend": [770, 100], 7 | "girlfriend": [400, 130], 8 | "opponent": [100, 100], 9 | "hide_girlfriend": false, 10 | 11 | "camera_boyfriend": [0, 0], 12 | "camera_opponent": [0, 0], 13 | "camera_girlfriend": [0, 0], 14 | "camera_speed": 1 15 | } -------------------------------------------------------------------------------- /assets/preload/weeks/tutorial.json: -------------------------------------------------------------------------------- 1 | { 2 | "songs": [ 3 | ["Tutorial", "gf", [165, 0, 77]] 4 | ], 5 | 6 | "weekCharacters": [ 7 | "", 8 | "bf", 9 | "gf" 10 | ], 11 | "weekBackground": "stage", 12 | 13 | "storyName": "", 14 | "weekBefore": "tutorial", 15 | "weekName": "Tutorial", 16 | "startUnlocked": true, 17 | 18 | "hideStoryMode": false, 19 | "hideFreeplay": false 20 | } 21 | -------------------------------------------------------------------------------- /assets/preload/weeks/weekList.txt: -------------------------------------------------------------------------------- 1 | tutorial 2 | week1 3 | week2 4 | week3 5 | week4 6 | week5 7 | week6 8 | week7 -------------------------------------------------------------------------------- /assets/scripts/scripts-go-here.txt.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/scripts/scripts-go-here.txt.txt -------------------------------------------------------------------------------- /assets/shaders/shaders-go-here.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shaders/shaders-go-here.txt -------------------------------------------------------------------------------- /assets/shared/images/NOTE_assets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/NOTE_assets.png -------------------------------------------------------------------------------- /assets/shared/images/bad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/bad.png -------------------------------------------------------------------------------- /assets/shared/images/characters/BOYFRIEND.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/characters/BOYFRIEND.png -------------------------------------------------------------------------------- /assets/shared/images/characters/BOYFRIEND_DEAD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/characters/BOYFRIEND_DEAD.png -------------------------------------------------------------------------------- /assets/shared/images/characters/DADDY_DEAREST.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/characters/DADDY_DEAREST.png -------------------------------------------------------------------------------- /assets/shared/images/characters/GF_assets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/characters/GF_assets.png -------------------------------------------------------------------------------- /assets/shared/images/combo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/combo.png -------------------------------------------------------------------------------- /assets/shared/images/eventArrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/eventArrow.png -------------------------------------------------------------------------------- /assets/shared/images/go.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/go.png -------------------------------------------------------------------------------- /assets/shared/images/good.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/good.png -------------------------------------------------------------------------------- /assets/shared/images/healthBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/healthBar.png -------------------------------------------------------------------------------- /assets/shared/images/images-go-here.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/images-go-here.txt -------------------------------------------------------------------------------- /assets/shared/images/noteSplashes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/noteSplashes.png -------------------------------------------------------------------------------- /assets/shared/images/noteSplashes.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/HURTNOTE_assets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/HURTNOTE_assets.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/HURTNOTE_assetsENDS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/HURTNOTE_assetsENDS.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/NOTE_assets.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/NOTE_assets.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/NOTE_assetsENDS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/NOTE_assetsENDS.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/bad-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/bad-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/combo-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/combo-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/date-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/date-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/good-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/good-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num0-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num0-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num1-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num1-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num2-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num2-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num3-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num3-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num4-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num4-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num5-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num5-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num6-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num6-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num7-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num7-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num8-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num8-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/num9-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/num9-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/ready-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/ready-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/set-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/set-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/shit-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/shit-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/pixelUI/sick-pixel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/pixelUI/sick-pixel.png -------------------------------------------------------------------------------- /assets/shared/images/ready.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/ready.png -------------------------------------------------------------------------------- /assets/shared/images/set.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/set.png -------------------------------------------------------------------------------- /assets/shared/images/shit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/shit.png -------------------------------------------------------------------------------- /assets/shared/images/sick.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/sick.png -------------------------------------------------------------------------------- /assets/shared/images/stage_light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/stage_light.png -------------------------------------------------------------------------------- /assets/shared/images/stageback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/stageback.png -------------------------------------------------------------------------------- /assets/shared/images/stagecurtains.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/stagecurtains.png -------------------------------------------------------------------------------- /assets/shared/images/stagefront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/stagefront.png -------------------------------------------------------------------------------- /assets/shared/images/timeBar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/images/timeBar.png -------------------------------------------------------------------------------- /assets/shared/music/breakfast.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/music/breakfast.mp3 -------------------------------------------------------------------------------- /assets/shared/music/breakfast.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/music/breakfast.ogg -------------------------------------------------------------------------------- /assets/shared/music/gameOver.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/music/gameOver.mp3 -------------------------------------------------------------------------------- /assets/shared/music/gameOver.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/music/gameOver.ogg -------------------------------------------------------------------------------- /assets/shared/music/gameOverEnd.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/music/gameOverEnd.mp3 -------------------------------------------------------------------------------- /assets/shared/music/gameOverEnd.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/music/gameOverEnd.ogg -------------------------------------------------------------------------------- /assets/shared/music/tea-time.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/music/tea-time.mp3 -------------------------------------------------------------------------------- /assets/shared/music/tea-time.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/music/tea-time.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/ANGRY.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/ANGRY.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/ANGRY.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/ANGRY.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/ANGRY_TEXT_BOX.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/ANGRY_TEXT_BOX.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/ANGRY_TEXT_BOX.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/ANGRY_TEXT_BOX.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/GF_1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/GF_1.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/GF_1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/GF_1.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/GF_2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/GF_2.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/GF_2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/GF_2.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/GF_3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/GF_3.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/GF_3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/GF_3.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/GF_4.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/GF_4.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/GF_4.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/GF_4.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/Metronome_Tick.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/Metronome_Tick.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/Metronome_Tick.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/Metronome_Tick.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/badnoise1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/badnoise1.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/badnoise1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/badnoise1.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/badnoise2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/badnoise2.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/badnoise2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/badnoise2.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/badnoise3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/badnoise3.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/badnoise3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/badnoise3.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/clickText.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/clickText.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/clickText.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/clickText.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/dialogue.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/dialogue.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/dialogue.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/dialogue.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/dialogueClose.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/dialogueClose.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/dialogueClose.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/dialogueClose.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/fnf_loss_sfx.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/fnf_loss_sfx.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/fnf_loss_sfx.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/fnf_loss_sfx.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/hitsound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/hitsound.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/hitsound.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/hitsound.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/intro1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/intro1.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/intro1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/intro1.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/intro2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/intro2.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/intro2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/intro2.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/intro3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/intro3.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/intro3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/intro3.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/introGo.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/introGo.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/introGo.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/introGo.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/missnote1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/missnote1.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/missnote1.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/missnote1.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/missnote2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/missnote2.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/missnote2.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/missnote2.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/missnote3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/missnote3.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/missnote3.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/missnote3.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/soundTest.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/soundTest.mp3 -------------------------------------------------------------------------------- /assets/shared/sounds/soundTest.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/soundTest.ogg -------------------------------------------------------------------------------- /assets/shared/sounds/sounds-go-here.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/shared/sounds/sounds-go-here.txt -------------------------------------------------------------------------------- /assets/songs/test/Inst.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/songs/test/Inst.mp3 -------------------------------------------------------------------------------- /assets/songs/test/Inst.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/songs/test/Inst.ogg -------------------------------------------------------------------------------- /assets/songs/test/Voices.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/songs/test/Voices.mp3 -------------------------------------------------------------------------------- /assets/songs/test/Voices.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/songs/test/Voices.ogg -------------------------------------------------------------------------------- /assets/songs/tutorial/Inst.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/songs/tutorial/Inst.mp3 -------------------------------------------------------------------------------- /assets/songs/tutorial/Inst.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lunarcleint/Psych-Advanced-Hscript/c1ae1d612e5af466cf6a2789380a14e9265a0653/assets/songs/tutorial/Inst.ogg -------------------------------------------------------------------------------- /assets/videos/put-your-videos-here.txt: -------------------------------------------------------------------------------- 1 | They have to be in .mp4 and 1280x720 resolution!!! -------------------------------------------------------------------------------- /hxformat.json: -------------------------------------------------------------------------------- 1 | { 2 | "lineEnds": { 3 | "leftCurly": "both", 4 | "rightCurly": "both", 5 | "objectLiteralCurly": { 6 | "leftCurly": "after" 7 | } 8 | }, 9 | "sameLine": { 10 | "ifElse": "next", 11 | "doWhile": "next", 12 | "tryBody": "next", 13 | "tryCatch": "next" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /source/Init.hx: -------------------------------------------------------------------------------- 1 | package; 2 | 3 | import cpp.CPPInterface; 4 | import data.ClientPrefs; 5 | import data.Highscore; 6 | import data.Paths; 7 | import flixel.FlxG; 8 | import flixel.FlxState; 9 | import input.PlayerSettings; 10 | import lime.app.Application; 11 | import openfl.Lib; 12 | import shaders.ShaderUtil; 13 | import states.menus.StoryMenuState; 14 | import states.menus.TitleState; 15 | import util.CoolUtil; 16 | import util.Discord.DiscordClient; 17 | 18 | class Init extends FlxState 19 | { 20 | public override function new() 21 | { 22 | super(); 23 | FlxG.mouse.visible = false; 24 | } 25 | 26 | public override function create() 27 | { 28 | super.create(); 29 | 30 | #if cpp 31 | CPPInterface.darkMode(); 32 | #end 33 | 34 | #if cpp 35 | cpp.NativeGc.enable(true); 36 | cpp.NativeGc.run(true); 37 | #end 38 | 39 | ClientPrefs.loadDefaultKeys(); 40 | 41 | FlxG.autoPause = true; 42 | 43 | Paths.clearStoredMemory(); 44 | Paths.clearUnusedMemory(); 45 | 46 | FlxG.game.focusLostFramerate = 60; 47 | FlxG.sound.muteKeys = TitleState.muteKeys; 48 | FlxG.sound.volumeDownKeys = TitleState.volumeDownKeys; 49 | FlxG.sound.volumeUpKeys = TitleState.volumeUpKeys; 50 | FlxG.keys.preventDefaultKeys = [TAB]; 51 | 52 | PlayerSettings.init(); 53 | 54 | PlayerSettings.init(); 55 | 56 | FlxG.save.bind(CoolUtil.formatBindString(Lib.application.meta.get("file")), CoolUtil.formatBindString(Lib.application.meta.get("company"))); 57 | 58 | ClientPrefs.loadPrefs(); 59 | 60 | Highscore.load(); 61 | 62 | if (FlxG.save.data != null && FlxG.save.data.fullscreen) 63 | { 64 | FlxG.fullscreen = FlxG.save.data.fullscreen; 65 | } 66 | 67 | if (FlxG.save.data.weekCompleted != null) 68 | { 69 | StoryMenuState.weekCompleted = FlxG.save.data.weekCompleted; 70 | } 71 | 72 | #if desktop 73 | if (!DiscordClient.isInitialized) 74 | { 75 | DiscordClient.initialize(); 76 | Application.current.onExit.add(function(exitCode) 77 | { 78 | DiscordClient.shutdown(); 79 | }); 80 | } 81 | #end 82 | 83 | FlxG.switchState(Type.createInstance(Main.initialState, [])); 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /source/Main.hx: -------------------------------------------------------------------------------- 1 | package; 2 | 3 | import data.ClientPrefs; 4 | import flixel.FlxG; 5 | import flixel.FlxGame; 6 | import flixel.FlxState; 7 | import flixel.graphics.FlxGraphic; 8 | import openfl.Assets; 9 | import openfl.Lib; 10 | import openfl.display.FPS; 11 | import openfl.display.Sprite; 12 | import openfl.display.StageScaleMode; 13 | import openfl.events.Event; 14 | import states.menus.*; 15 | 16 | using StringTools; 17 | 18 | // crash handler stuff 19 | #if CRASH_HANDLER 20 | import haxe.CallStack; 21 | import haxe.io.Path; 22 | import lime.app.Application; 23 | import openfl.events.UncaughtErrorEvent; 24 | import sys.FileSystem; 25 | import sys.io.File; 26 | import sys.io.Process; 27 | import util.Discord.DiscordClient; 28 | #end 29 | 30 | class Main extends Sprite 31 | { 32 | var gameWidth:Int = 1280; // Width of the game in pixels (might be less / more in actual pixels depending on your zoom). 33 | var gameHeight:Int = 720; // Height of the game in pixels (might be less / more in actual pixels depending on your zoom). 34 | 35 | public static var initialState:Class = TitleState; // The FlxState the game starts with. 36 | 37 | var zoom:Float = -1; // If -1, zoom is automatically calculated to fit the window dimensions. 38 | var framerate:Int = 60; // How many frames per second the game should run at. 39 | var skipSplash:Bool = true; // Whether to skip the flixel splash screen that appears in release mode. 40 | var startFullscreen:Bool = false; // Whether to start the game in fullscreen on desktop targets 41 | 42 | public static var fpsVar:FPS; 43 | 44 | // You can pretty much ignore everything from here on - your code should go in your states. 45 | 46 | public static function main():Void 47 | { 48 | Lib.current.addChild(new Main()); 49 | } 50 | 51 | public function new() 52 | { 53 | super(); 54 | 55 | if (stage != null) 56 | { 57 | init(); 58 | } 59 | else 60 | { 61 | addEventListener(Event.ADDED_TO_STAGE, init); 62 | } 63 | } 64 | 65 | private function init(?E:Event):Void 66 | { 67 | if (hasEventListener(Event.ADDED_TO_STAGE)) 68 | { 69 | removeEventListener(Event.ADDED_TO_STAGE, init); 70 | } 71 | 72 | setupGame(); 73 | } 74 | 75 | private function setupGame():Void 76 | { 77 | var stageWidth:Int = Lib.current.stage.stageWidth; 78 | var stageHeight:Int = Lib.current.stage.stageHeight; 79 | 80 | if (zoom == -1) 81 | { 82 | var ratioX:Float = stageWidth / gameWidth; 83 | var ratioY:Float = stageHeight / gameHeight; 84 | zoom = Math.min(ratioX, ratioY); 85 | gameWidth = Math.ceil(stageWidth / zoom); 86 | gameHeight = Math.ceil(stageHeight / zoom); 87 | } 88 | 89 | addChild(new FlxGame(gameWidth, gameHeight, Init, zoom, framerate, framerate, skipSplash, startFullscreen)); 90 | 91 | #if !mobile 92 | fpsVar = new FPS(10, 5, 0xFFFFFF); 93 | addChild(fpsVar); 94 | Lib.current.stage.align = "tl"; 95 | Lib.current.stage.scaleMode = StageScaleMode.NO_SCALE; 96 | if (fpsVar != null) 97 | { 98 | fpsVar.visible = ClientPrefs.showFPS; 99 | } 100 | #end 101 | 102 | #if html5 103 | FlxG.autoPause = false; 104 | FlxG.mouse.visible = false; 105 | #end 106 | 107 | #if CRASH_HANDLER 108 | Lib.current.loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onCrash); 109 | #end 110 | } 111 | 112 | #if CRASH_HANDLER 113 | function onCrash(e:UncaughtErrorEvent):Void 114 | { 115 | var errMsg:String = ""; 116 | var path:String; 117 | var callStack:Array = CallStack.exceptionStack(true); 118 | var dateNow:String = Date.now().toString(); 119 | 120 | dateNow = dateNow.replace(" ", "_"); 121 | dateNow = dateNow.replace(":", "'"); 122 | 123 | path = "./crash/" + "PsychEngine_" + dateNow + ".txt"; 124 | 125 | for (stackItem in callStack) 126 | { 127 | switch (stackItem) 128 | { 129 | case FilePos(s, file, line, column): 130 | errMsg += file + " (line " + line + ")\n"; 131 | default: 132 | Sys.println(stackItem); 133 | } 134 | } 135 | 136 | errMsg += "\nUncaught Error: " 137 | + e.error 138 | + "\nPlease report this error to the GitHub page: https://github.com/ShadowMario/FNF-PsychEngine\n\n> Crash Handler written by: sqirra-rng"; 139 | 140 | if (!FileSystem.exists("./crash/")) 141 | FileSystem.createDirectory("./crash/"); 142 | 143 | File.saveContent(path, errMsg + "\n"); 144 | 145 | Sys.println(errMsg); 146 | Sys.println("Crash dump saved in " + Path.normalize(path)); 147 | 148 | Application.current.window.alert(errMsg, "Error!"); 149 | DiscordClient.shutdown(); 150 | Sys.exit(1); 151 | } 152 | #end 153 | } 154 | -------------------------------------------------------------------------------- /source/cpp/CPPInterface.hx: -------------------------------------------------------------------------------- 1 | package cpp; 2 | 3 | /** 4 | * ! LITTERLY THE ONLY REASON THIS EXIST IS BECAUSE IF YOU NATIVELY INTERACT WITH THE CPPWindows.hx FILE 5 | * ! THE COMPILIER WILL CRY 6 | */ 7 | class CPPInterface 8 | { 9 | #if windows 10 | public static function darkMode() 11 | { 12 | CPPWindows.setWindowColorMode(DARK); 13 | } 14 | 15 | public static function lightMode() 16 | { 17 | CPPWindows.setWindowColorMode(LIGHT); 18 | } 19 | 20 | public static function setWindowAlpha(a:Float) 21 | { 22 | CPPWindows.setWindowAlpha(a); 23 | } 24 | 25 | public static function _setWindowLayered() 26 | { 27 | CPPWindows._setWindowLayered(); 28 | } 29 | 30 | public static function messageBox(msg:ConstCharStar = null, title:ConstCharStar = null, ?handler:NullVoid> = null) 31 | { 32 | CPPWindows.messageBox(msg, title, handler); 33 | } 34 | #end 35 | 36 | #if windows 37 | public static function getRam():UInt64 38 | { 39 | return CPPWindows.obtainRAM(); 40 | } 41 | #elseif linux 42 | public static function getRam():UInt64 43 | { 44 | return CPPLinux.obtainRAM(); 45 | } 46 | #end 47 | } 48 | -------------------------------------------------------------------------------- /source/cpp/CPPLinux.hx: -------------------------------------------------------------------------------- 1 | package cpp; 2 | 3 | import cpp.ConstCharStar; 4 | import cpp.Native; 5 | import cpp.UInt64; 6 | 7 | #if cpp 8 | #if linux 9 | @:headerCode("#include ") 10 | #end 11 | #end 12 | class CPPLinux 13 | { 14 | #if cpp 15 | #if linux 16 | @:functionCode(' 17 | FILE *meminfo = fopen("/proc/meminfo", "r"); 18 | 19 | if(meminfo == NULL) 20 | return -1; 21 | 22 | char line[256]; 23 | while(fgets(line, sizeof(line), meminfo)) 24 | { 25 | int ram; 26 | if(sscanf(line, "MemTotal: %d kB", &ram) == 1) 27 | { 28 | fclose(meminfo); 29 | return (ram / 1024); 30 | } 31 | } 32 | 33 | fclose(meminfo); 34 | return -1; 35 | ') 36 | public static function obtainRAM():UInt64 37 | { 38 | return 0; 39 | } 40 | #end 41 | #end 42 | } 43 | -------------------------------------------------------------------------------- /source/cpp/CPPWindows.hx: -------------------------------------------------------------------------------- 1 | package cpp; 2 | 3 | #if cpp 4 | #if windows 5 | @:buildXml(' 6 | 7 | 8 | 9 | ') 10 | @:headerCode(' 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | ') 18 | #end 19 | #end 20 | class CPPWindows 21 | { 22 | #if cpp 23 | #if windows 24 | @:functionCode(' 25 | int darkMode = mode; 26 | HWND window = GetActiveWindow(); 27 | if (S_OK != DwmSetWindowAttribute(window, 19, &darkMode, sizeof(darkMode))) { 28 | DwmSetWindowAttribute(window, 20, &darkMode, sizeof(darkMode)); 29 | } 30 | UpdateWindow(window); 31 | ') 32 | public static function _setWindowColorMode(mode:Int) {} 33 | 34 | public static function setWindowColorMode(mode:WindowColorMode) 35 | { 36 | var darkMode:Int = cast(mode, Int); 37 | 38 | if (darkMode > 1 || darkMode < 0) 39 | { 40 | trace("WindowColorMode Not Found..."); 41 | 42 | return; 43 | } 44 | 45 | _setWindowColorMode(darkMode); 46 | } 47 | 48 | @:functionCode(' 49 | HWND window = GetActiveWindow(); 50 | SetWindowLong(window, GWL_EXSTYLE, GetWindowLong(window, GWL_EXSTYLE) ^ WS_EX_LAYERED); 51 | ') 52 | @:noCompletion 53 | public static function _setWindowLayered() {} 54 | 55 | @:functionCode(' 56 | HWND window = GetActiveWindow(); 57 | 58 | float a = alpha; 59 | 60 | if (alpha > 1) { 61 | a = 1; 62 | } 63 | if (alpha < 0) { 64 | a = 0; 65 | } 66 | 67 | SetLayeredWindowAttributes(window, 0, (255 * (a * 100)) / 100, LWA_ALPHA); 68 | 69 | ') 70 | /** 71 | * Set Whole Window's Opacity 72 | * ! MAKE SURE TO CALL _setWindowLayered(); BEFORE RUNNING THIS 73 | * @param alpha 74 | */ 75 | public static function setWindowAlpha(alpha:Float) 76 | { 77 | return alpha; 78 | } 79 | 80 | @:functionCode(" 81 | unsigned long long allocatedRAM = 0; 82 | GetPhysicallyInstalledSystemMemory(&allocatedRAM); 83 | return (allocatedRAM / 1024); 84 | ") 85 | public static function obtainRAM():UInt64 86 | { 87 | return 0; 88 | } 89 | 90 | // ! https://github.com/brightfyregit/Indie-Cross-Public/blob/master/source/SpecsDetector.hx#L87-L102 91 | public static function messageBox(msg:ConstCharStar = null, title:ConstCharStar = null, ?handler:NullVoid>) 92 | { 93 | var msgID:Int = untyped MessageBox(null, msg, title, untyped __cpp__("MB_ICONERROR | MB_OK")); 94 | 95 | if (handler != null) 96 | handler(msgID); 97 | 98 | return true; 99 | } 100 | #end 101 | #end 102 | } 103 | 104 | #if windows 105 | @:enum abstract WindowColorMode(Int) 106 | { 107 | var DARK:WindowColorMode = 1; 108 | var LIGHT:WindowColorMode = 0; 109 | } 110 | #end 111 | -------------------------------------------------------------------------------- /source/data/Highscore.hx: -------------------------------------------------------------------------------- 1 | package data; 2 | 3 | import flixel.FlxG; 4 | import util.CoolUtil; 5 | 6 | using StringTools; 7 | 8 | class Highscore 9 | { 10 | #if (haxe >= "4.0.0") 11 | public static var weekScores:Map = new Map(); 12 | public static var songScores:Map = new Map(); 13 | public static var songRating:Map = new Map(); 14 | #else 15 | public static var weekScores:Map = new Map(); 16 | public static var songScores:Map = new Map(); 17 | public static var songRating:Map = new Map(); 18 | #end 19 | 20 | public static function resetSong(song:String, diff:Int = 0):Void 21 | { 22 | var daSong:String = formatSong(song, diff); 23 | setScore(daSong, 0); 24 | setRating(daSong, 0); 25 | } 26 | 27 | public static function resetWeek(week:String, diff:Int = 0):Void 28 | { 29 | var daWeek:String = formatSong(week, diff); 30 | setWeekScore(daWeek, 0); 31 | } 32 | 33 | public static function floorDecimal(value:Float, decimals:Int):Float 34 | { 35 | if (decimals < 1) 36 | { 37 | return Math.floor(value); 38 | } 39 | 40 | var tempMult:Float = 1; 41 | for (i in 0...decimals) 42 | { 43 | tempMult *= 10; 44 | } 45 | var newValue:Float = Math.floor(value * tempMult); 46 | return newValue / tempMult; 47 | } 48 | 49 | public static function saveScore(song:String, score:Int = 0, ?diff:Int = 0, ?rating:Float = -1):Void 50 | { 51 | var daSong:String = formatSong(song, diff); 52 | 53 | if (songScores.exists(daSong)) 54 | { 55 | if (songScores.get(daSong) < score) 56 | { 57 | setScore(daSong, score); 58 | if (rating >= 0) 59 | setRating(daSong, rating); 60 | } 61 | } 62 | else 63 | { 64 | setScore(daSong, score); 65 | if (rating >= 0) 66 | setRating(daSong, rating); 67 | } 68 | } 69 | 70 | public static function saveWeekScore(week:String, score:Int = 0, ?diff:Int = 0):Void 71 | { 72 | var daWeek:String = formatSong(week, diff); 73 | 74 | if (weekScores.exists(daWeek)) 75 | { 76 | if (weekScores.get(daWeek) < score) 77 | setWeekScore(daWeek, score); 78 | } 79 | else 80 | setWeekScore(daWeek, score); 81 | } 82 | 83 | /** 84 | * YOU SHOULD FORMAT SONG WITH formatSong() BEFORE TOSSING IN SONG VARIABLE 85 | */ 86 | static function setScore(song:String, score:Int):Void 87 | { 88 | // Reminder that I don't need to format this song, it should come formatted! 89 | songScores.set(song, score); 90 | FlxG.save.data.songScores = songScores; 91 | FlxG.save.flush(); 92 | } 93 | 94 | static function setWeekScore(week:String, score:Int):Void 95 | { 96 | // Reminder that I don't need to format this song, it should come formatted! 97 | weekScores.set(week, score); 98 | FlxG.save.data.weekScores = weekScores; 99 | FlxG.save.flush(); 100 | } 101 | 102 | static function setRating(song:String, rating:Float):Void 103 | { 104 | // Reminder that I don't need to format this song, it should come formatted! 105 | songRating.set(song, rating); 106 | FlxG.save.data.songRating = songRating; 107 | FlxG.save.flush(); 108 | } 109 | 110 | public static function formatSong(song:String, diff:Int):String 111 | { 112 | return Paths.formatToSongPath(song) + CoolUtil.getDifficultyFilePath(diff); 113 | } 114 | 115 | public static function getScore(song:String, diff:Int):Int 116 | { 117 | var daSong:String = formatSong(song, diff); 118 | if (!songScores.exists(daSong)) 119 | setScore(daSong, 0); 120 | 121 | return songScores.get(daSong); 122 | } 123 | 124 | public static function getRating(song:String, diff:Int):Float 125 | { 126 | var daSong:String = formatSong(song, diff); 127 | if (!songRating.exists(daSong)) 128 | setRating(daSong, 0); 129 | 130 | return songRating.get(daSong); 131 | } 132 | 133 | public static function getWeekScore(week:String, diff:Int):Int 134 | { 135 | var daWeek:String = formatSong(week, diff); 136 | if (!weekScores.exists(daWeek)) 137 | setWeekScore(daWeek, 0); 138 | 139 | return weekScores.get(daWeek); 140 | } 141 | 142 | public static function load():Void 143 | { 144 | if (FlxG.save.data.weekScores != null) 145 | { 146 | weekScores = FlxG.save.data.weekScores; 147 | } 148 | if (FlxG.save.data.songScores != null) 149 | { 150 | songScores = FlxG.save.data.songScores; 151 | } 152 | if (FlxG.save.data.songRating != null) 153 | { 154 | songRating = FlxG.save.data.songRating; 155 | } 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /source/data/StageData.hx: -------------------------------------------------------------------------------- 1 | package data; 2 | 3 | import haxe.Json; 4 | import haxe.format.JsonParser; 5 | import openfl.utils.Assets; 6 | import song.Song; 7 | import sys.FileSystem; 8 | import sys.io.File; 9 | 10 | using StringTools; 11 | 12 | typedef StageFile = 13 | { 14 | var directory:String; 15 | var defaultZoom:Float; 16 | var isPixelStage:Bool; 17 | 18 | var boyfriend:Array; 19 | var girlfriend:Array; 20 | var opponent:Array; 21 | var hide_girlfriend:Bool; 22 | var camera_boyfriend:Array; 23 | var camera_opponent:Array; 24 | var camera_girlfriend:Array; 25 | var camera_speed:Null; 26 | } 27 | 28 | class StageData 29 | { 30 | public static var forceNextDirectory:String = null; 31 | 32 | public static function loadDirectory(SONG:SwagSong) 33 | { 34 | var stage:String = ''; 35 | if (SONG.stage != null) 36 | { 37 | stage = SONG.stage; 38 | } 39 | else if (SONG.song != null) 40 | { 41 | switch (SONG.song.toLowerCase().replace(' ', '-')) 42 | { 43 | default: 44 | stage = 'stage'; 45 | } 46 | } 47 | else 48 | { 49 | stage = 'stage'; 50 | } 51 | 52 | var stageFile:StageFile = getStageFile(stage); 53 | if (stageFile == null) 54 | { // preventing crashes 55 | forceNextDirectory = ''; 56 | } 57 | else 58 | { 59 | forceNextDirectory = stageFile.directory; 60 | } 61 | } 62 | 63 | public static function getStageFile(stage:String):StageFile 64 | { 65 | var rawJson:String = null; 66 | var path:String = Paths.getPreloadPath('stages/' + stage + '.json'); 67 | 68 | if (FileSystem.exists(path)) 69 | { 70 | rawJson = File.getContent(path); 71 | } 72 | else 73 | { 74 | return null; 75 | } 76 | return cast Json.parse(rawJson); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /source/flixel/addons/ui/FlxUIInputText.hx: -------------------------------------------------------------------------------- 1 | package flixel.addons.ui; 2 | 3 | import flixel.addons.ui.interfaces.IFlxUIWidget; 4 | import flixel.addons.ui.interfaces.IHasParams; 5 | import flixel.addons.ui.interfaces.IResizable; 6 | 7 | /** 8 | * @author Lars Doucet 9 | * Modified by PlankDev to support cut/copy/paste 10 | */ 11 | class FlxUIInputText extends FlxInputText implements IResizable implements IFlxUIWidget implements IHasParams 12 | { 13 | public var name:String; 14 | 15 | public var broadcastToFlxUI:Bool = true; 16 | 17 | public static inline var CHANGE_EVENT:String = "change_input_text"; // change in any way 18 | public static inline var ENTER_EVENT:String = "enter_input_text"; // hit enter in this text field 19 | public static inline var DELETE_EVENT:String = "delete_input_text"; // delete text in this text field 20 | public static inline var INPUT_EVENT:String = "input_input_text"; // input text in this text field 21 | public static inline var COPY_EVENT:String = "copy_input_text"; // copy text in this text field 22 | public static inline var PASTE_EVENT:String = "paste_input_text"; // paste text in this text field 23 | public static inline var CUT_EVENT:String = "cut_input_text"; // cut text in this text field 24 | 25 | public function resize(w:Float, h:Float):Void 26 | { 27 | width = w; 28 | height = h; 29 | calcFrame(); 30 | } 31 | 32 | private override function onChange(action:String):Void 33 | { 34 | super.onChange(action); 35 | if (broadcastToFlxUI) 36 | { 37 | switch (action) 38 | { 39 | case FlxInputText.ENTER_ACTION: // press enter 40 | FlxUI.event(ENTER_EVENT, this, text, params); 41 | case FlxInputText.DELETE_ACTION, FlxInputText.BACKSPACE_ACTION: // deleted some text 42 | FlxUI.event(DELETE_EVENT, this, text, params); 43 | FlxUI.event(CHANGE_EVENT, this, text, params); 44 | case FlxInputText.INPUT_ACTION: // text was input 45 | FlxUI.event(INPUT_EVENT, this, text, params); 46 | FlxUI.event(CHANGE_EVENT, this, text, params); 47 | case FlxInputText.COPY_ACTION: // text was copied 48 | FlxUI.event(COPY_EVENT, this, text, params); 49 | case FlxInputText.PASTE_ACTION: // text was pasted 50 | FlxUI.event(PASTE_EVENT, this, text, params); 51 | FlxUI.event(CHANGE_EVENT, this, text, params); 52 | case FlxInputText.CUT_ACTION: // text was cut 53 | FlxUI.event(CUT_EVENT, this, text, params); 54 | FlxUI.event(CHANGE_EVENT, this, text, params); 55 | } 56 | } 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /source/input/InputFormatter.hx: -------------------------------------------------------------------------------- 1 | package input; 2 | 3 | import flixel.FlxG; 4 | import flixel.input.keyboard.FlxKey; 5 | 6 | using StringTools; 7 | 8 | class InputFormatter 9 | { 10 | public static function getKeyName(key:FlxKey):String 11 | { 12 | switch (key) 13 | { 14 | case BACKSPACE: 15 | return "BckSpc"; 16 | case CONTROL: 17 | return "Ctrl"; 18 | case ALT: 19 | return "Alt"; 20 | case CAPSLOCK: 21 | return "Caps"; 22 | case PAGEUP: 23 | return "PgUp"; 24 | case PAGEDOWN: 25 | return "PgDown"; 26 | case ZERO: 27 | return "0"; 28 | case ONE: 29 | return "1"; 30 | case TWO: 31 | return "2"; 32 | case THREE: 33 | return "3"; 34 | case FOUR: 35 | return "4"; 36 | case FIVE: 37 | return "5"; 38 | case SIX: 39 | return "6"; 40 | case SEVEN: 41 | return "7"; 42 | case EIGHT: 43 | return "8"; 44 | case NINE: 45 | return "9"; 46 | case NUMPADZERO: 47 | return "#0"; 48 | case NUMPADONE: 49 | return "#1"; 50 | case NUMPADTWO: 51 | return "#2"; 52 | case NUMPADTHREE: 53 | return "#3"; 54 | case NUMPADFOUR: 55 | return "#4"; 56 | case NUMPADFIVE: 57 | return "#5"; 58 | case NUMPADSIX: 59 | return "#6"; 60 | case NUMPADSEVEN: 61 | return "#7"; 62 | case NUMPADEIGHT: 63 | return "#8"; 64 | case NUMPADNINE: 65 | return "#9"; 66 | case NUMPADMULTIPLY: 67 | return "#*"; 68 | case NUMPADPLUS: 69 | return "#+"; 70 | case NUMPADMINUS: 71 | return "#-"; 72 | case NUMPADPERIOD: 73 | return "#."; 74 | case SEMICOLON: 75 | return ";"; 76 | case COMMA: 77 | return ","; 78 | case PERIOD: 79 | return "."; 80 | // case SLASH: 81 | // return "/"; 82 | case GRAVEACCENT: 83 | return "`"; 84 | case LBRACKET: 85 | return "["; 86 | // case BACKSLASH: 87 | // return "\\"; 88 | case RBRACKET: 89 | return "]"; 90 | case QUOTE: 91 | return "'"; 92 | case PRINTSCREEN: 93 | return "PrtScrn"; 94 | case NONE: 95 | return '---'; 96 | default: 97 | var label:String = '' + key; 98 | if (label.toLowerCase() == 'null') 99 | return '---'; 100 | return '' + label.charAt(0).toUpperCase() + label.substr(1).toLowerCase(); 101 | } 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /source/input/PlayerSettings.hx: -------------------------------------------------------------------------------- 1 | package input; 2 | 3 | import flixel.FlxCamera; 4 | import flixel.FlxG; 5 | import flixel.util.FlxSignal; 6 | import input.Controls; 7 | 8 | // import ui.DeviceManager; 9 | // import props.Player; 10 | class PlayerSettings 11 | { 12 | static public var numPlayers(default, null) = 0; 13 | static public var numAvatars(default, null) = 0; 14 | static public var player1(default, null):PlayerSettings; 15 | static public var player2(default, null):PlayerSettings; 16 | 17 | #if (haxe >= "4.0.0") 18 | static public final onAvatarAdd = new FlxTypedSignalVoid>(); 19 | static public final onAvatarRemove = new FlxTypedSignalVoid>(); 20 | #else 21 | static public var onAvatarAdd = new FlxTypedSignalVoid>(); 22 | static public var onAvatarRemove = new FlxTypedSignalVoid>(); 23 | #end 24 | 25 | public var id(default, null):Int; 26 | 27 | #if (haxe >= "4.0.0") 28 | public final controls:Controls; 29 | #else 30 | public var controls:Controls; 31 | #end 32 | 33 | // public var avatar:Player; 34 | // public var camera(get, never):PlayCamera; 35 | 36 | function new(id, scheme) 37 | { 38 | this.id = id; 39 | this.controls = new Controls('player$id', scheme); 40 | } 41 | 42 | public function setKeyboardScheme(scheme) 43 | { 44 | controls.setKeyboardScheme(scheme); 45 | } 46 | 47 | /* 48 | static public function addAvatar(avatar:Player):PlayerSettings 49 | { 50 | var settings:PlayerSettings; 51 | 52 | if (player1 == null) 53 | { 54 | player1 = new PlayerSettings(0, Solo); 55 | ++numPlayers; 56 | } 57 | 58 | if (player1.avatar == null) 59 | settings = player1; 60 | else 61 | { 62 | if (player2 == null) 63 | { 64 | if (player1.controls.keyboardScheme.match(Duo(true))) 65 | player2 = new PlayerSettings(1, Duo(false)); 66 | else 67 | player2 = new PlayerSettings(1, None); 68 | ++numPlayers; 69 | } 70 | 71 | if (player2.avatar == null) 72 | settings = player2; 73 | else 74 | throw throw 'Invalid number of players: ${numPlayers + 1}'; 75 | } 76 | ++numAvatars; 77 | settings.avatar = avatar; 78 | avatar.settings = settings; 79 | 80 | splitCameras(); 81 | 82 | onAvatarAdd.dispatch(settings); 83 | 84 | return settings; 85 | } 86 | 87 | static public function removeAvatar(avatar:Player):Void 88 | { 89 | var settings:PlayerSettings; 90 | 91 | if (player1 != null && player1.avatar == avatar) 92 | settings = player1; 93 | else if (player2 != null && player2.avatar == avatar) 94 | { 95 | settings = player2; 96 | if (player1.controls.keyboardScheme.match(Duo(_))) 97 | player1.setKeyboardScheme(Solo); 98 | } 99 | else 100 | throw "Cannot remove avatar that is not for a player"; 101 | 102 | settings.avatar = null; 103 | while (settings.controls.gamepadsAdded.length > 0) 104 | { 105 | final id = settings.controls.gamepadsAdded.shift(); 106 | settings.controls.removeGamepad(id); 107 | DeviceManager.releaseGamepad(FlxG.gamepads.getByID(id)); 108 | } 109 | 110 | --numAvatars; 111 | 112 | splitCameras(); 113 | 114 | onAvatarRemove.dispatch(avatar.settings); 115 | } 116 | 117 | */ 118 | static public function init():Void 119 | { 120 | if (player1 == null) 121 | { 122 | player1 = new PlayerSettings(0, Solo); 123 | ++numPlayers; 124 | } 125 | 126 | var numGamepads = FlxG.gamepads.numActiveGamepads; 127 | if (numGamepads > 0) 128 | { 129 | var gamepad = FlxG.gamepads.getByID(0); 130 | if (gamepad == null) 131 | throw 'Unexpected null gamepad. id:0'; 132 | 133 | player1.controls.addDefaultGamepad(0); 134 | } 135 | 136 | if (numGamepads > 1) 137 | { 138 | if (player2 == null) 139 | { 140 | player2 = new PlayerSettings(1, None); 141 | ++numPlayers; 142 | } 143 | 144 | var gamepad = FlxG.gamepads.getByID(1); 145 | if (gamepad == null) 146 | throw 'Unexpected null gamepad. id:0'; 147 | 148 | player2.controls.addDefaultGamepad(1); 149 | } 150 | 151 | // DeviceManager.init(); 152 | } 153 | 154 | static public function reset() 155 | { 156 | player1 = null; 157 | player2 = null; 158 | numPlayers = 0; 159 | } 160 | } 161 | -------------------------------------------------------------------------------- /source/objects/AttachedSprite.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import data.ClientPrefs; 4 | import data.Paths; 5 | import flixel.FlxSprite; 6 | 7 | using StringTools; 8 | 9 | class AttachedSprite extends FlxSprite 10 | { 11 | public var sprTracker:FlxSprite; 12 | public var xAdd:Float = 0; 13 | public var yAdd:Float = 0; 14 | public var angleAdd:Float = 0; 15 | public var alphaMult:Float = 1; 16 | 17 | public var copyAngle:Bool = true; 18 | public var copyAlpha:Bool = true; 19 | public var copyVisible:Bool = false; 20 | 21 | public function new(?file:String = null, ?anim:String = null, ?library:String = null, ?loop:Bool = false) 22 | { 23 | super(); 24 | if (anim != null) 25 | { 26 | frames = Paths.getSparrowAtlas(file, library); 27 | animation.addByPrefix('idle', anim, 24, loop); 28 | animation.play('idle'); 29 | } 30 | else if (file != null) 31 | { 32 | loadGraphic(Paths.image(file)); 33 | } 34 | antialiasing = ClientPrefs.globalAntialiasing; 35 | scrollFactor.set(); 36 | } 37 | 38 | override function update(elapsed:Float) 39 | { 40 | super.update(elapsed); 41 | 42 | if (sprTracker != null) 43 | { 44 | setPosition(sprTracker.x + xAdd, sprTracker.y + yAdd); 45 | scrollFactor.set(sprTracker.scrollFactor.x, sprTracker.scrollFactor.y); 46 | 47 | if (copyAngle) 48 | angle = sprTracker.angle + angleAdd; 49 | 50 | if (copyAlpha) 51 | alpha = sprTracker.alpha * alphaMult; 52 | 53 | if (copyVisible) 54 | visible = sprTracker.visible; 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /source/objects/AttachedText.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import flixel.FlxSprite; 4 | import flixel.graphics.frames.FlxAtlasFrames; 5 | 6 | class AttachedText extends Alphabet 7 | { 8 | public var offsetX:Float = 0; 9 | public var offsetY:Float = 0; 10 | public var sprTracker:FlxSprite; 11 | public var copyVisible:Bool = true; 12 | public var copyAlpha:Bool = false; 13 | 14 | public function new(text:String = "", ?offsetX:Float = 0, ?offsetY:Float = 0, ?bold = false, ?scale:Float = 1) 15 | { 16 | super(0, 0, text, bold); 17 | 18 | this.scaleX = scale; 19 | this.scaleY = scale; 20 | this.isMenuItem = false; 21 | this.offsetX = offsetX; 22 | this.offsetY = offsetY; 23 | } 24 | 25 | override function update(elapsed:Float) 26 | { 27 | if (sprTracker != null) 28 | { 29 | setPosition(sprTracker.x + offsetX, sprTracker.y + offsetY); 30 | if (copyVisible) 31 | { 32 | visible = sprTracker.visible; 33 | } 34 | if (copyAlpha) 35 | { 36 | alpha = sprTracker.alpha; 37 | } 38 | } 39 | 40 | super.update(elapsed); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /source/objects/Boyfriend.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import flixel.FlxG; 4 | import flixel.FlxSprite; 5 | import flixel.graphics.frames.FlxAtlasFrames; 6 | import flixel.util.FlxTimer; 7 | 8 | using StringTools; 9 | 10 | class Boyfriend extends Character 11 | { 12 | public var startedDeath:Bool = false; 13 | 14 | public function new(x:Float, y:Float, ?char:String = 'bf') 15 | { 16 | super(x, y, char, true); 17 | } 18 | 19 | override function update(elapsed:Float) 20 | { 21 | if (!debugMode && animation.curAnim != null) 22 | { 23 | if (animation.curAnim.name.startsWith('sing')) 24 | { 25 | holdTimer += elapsed; 26 | } 27 | else 28 | holdTimer = 0; 29 | 30 | if (animation.curAnim.name.endsWith('miss') && animation.curAnim.finished && !debugMode) 31 | { 32 | playAnim('idle', true, false, 10); 33 | } 34 | 35 | if (animation.curAnim.name == 'firstDeath' && animation.curAnim.finished && startedDeath) 36 | { 37 | playAnim('deathLoop'); 38 | } 39 | } 40 | 41 | super.update(elapsed); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /source/objects/CheckboxThingie.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import data.ClientPrefs; 4 | import data.Paths; 5 | import flixel.FlxSprite; 6 | import flixel.graphics.frames.FlxAtlasFrames; 7 | 8 | class CheckboxThingie extends FlxSprite 9 | { 10 | public var sprTracker:FlxSprite; 11 | public var daValue(default, set):Bool; 12 | public var copyAlpha:Bool = true; 13 | public var offsetX:Float = 0; 14 | public var offsetY:Float = 0; 15 | 16 | public function new(x:Float = 0, y:Float = 0, ?checked = false) 17 | { 18 | super(x, y); 19 | 20 | frames = Paths.getSparrowAtlas('checkboxanim'); 21 | animation.addByPrefix("unchecked", "checkbox0", 24, false); 22 | animation.addByPrefix("unchecking", "checkbox anim reverse", 24, false); 23 | animation.addByPrefix("checking", "checkbox anim0", 24, false); 24 | animation.addByPrefix("checked", "checkbox finish", 24, false); 25 | 26 | antialiasing = ClientPrefs.globalAntialiasing; 27 | setGraphicSize(Std.int(0.9 * width)); 28 | updateHitbox(); 29 | 30 | animationFinished(checked ? 'checking' : 'unchecking'); 31 | animation.finishCallback = animationFinished; 32 | daValue = checked; 33 | } 34 | 35 | override function update(elapsed:Float) 36 | { 37 | if (sprTracker != null) 38 | { 39 | setPosition(sprTracker.x - 130 + offsetX, sprTracker.y + 30 + offsetY); 40 | if (copyAlpha) 41 | { 42 | alpha = sprTracker.alpha; 43 | } 44 | } 45 | super.update(elapsed); 46 | } 47 | 48 | private function set_daValue(check:Bool):Bool 49 | { 50 | if (check) 51 | { 52 | if (animation.curAnim.name != 'checked' && animation.curAnim.name != 'checking') 53 | { 54 | animation.play('checking', true); 55 | offset.set(34, 25); 56 | } 57 | } 58 | else if (animation.curAnim.name != 'unchecked' && animation.curAnim.name != 'unchecking') 59 | { 60 | animation.play("unchecking", true); 61 | offset.set(25, 28); 62 | } 63 | return check; 64 | } 65 | 66 | private function animationFinished(name:String) 67 | { 68 | switch (name) 69 | { 70 | case 'checking': 71 | animation.play('checked', true); 72 | offset.set(3, 12); 73 | 74 | case 'unchecking': 75 | animation.play('unchecked', true); 76 | offset.set(0, 2); 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /source/objects/HealthIcon.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import data.ClientPrefs; 4 | import data.Paths; 5 | import flixel.FlxSprite; 6 | import openfl.utils.Assets as OpenFlAssets; 7 | 8 | using StringTools; 9 | 10 | class HealthIcon extends FlxSprite 11 | { 12 | public var sprTracker:FlxSprite; 13 | 14 | private var isOldIcon:Bool = false; 15 | private var isPlayer:Bool = false; 16 | private var char:String = ''; 17 | 18 | public function new(char:String = 'bf', isPlayer:Bool = false) 19 | { 20 | super(); 21 | isOldIcon = (char == 'bf-old'); 22 | this.isPlayer = isPlayer; 23 | changeIcon(char); 24 | scrollFactor.set(); 25 | } 26 | 27 | override function update(elapsed:Float) 28 | { 29 | super.update(elapsed); 30 | 31 | if (sprTracker != null) 32 | setPosition(sprTracker.x + sprTracker.width + 12, sprTracker.y - 30); 33 | } 34 | 35 | public function swapOldIcon() 36 | { 37 | if (isOldIcon = !isOldIcon) 38 | changeIcon('bf-old'); 39 | else 40 | changeIcon('bf'); 41 | } 42 | 43 | private var iconOffsets:Array = [0, 0]; 44 | 45 | public function changeIcon(char:String) 46 | { 47 | if (this.char != char) 48 | { 49 | var name:String = 'icons/' + char; 50 | if (!Paths.fileExists('images/' + name + '.png', IMAGE)) 51 | name = 'icons/icon-' + char; // Older versions of psych engine's support 52 | if (!Paths.fileExists('images/' + name + '.png', IMAGE)) 53 | name = 'icons/icon-face'; // Prevents crash from missing icon 54 | var file:Dynamic = Paths.image(name); 55 | 56 | loadGraphic(file); // Load stupidly first for getting the file size 57 | loadGraphic(file, true, Math.floor(width / 2), Math.floor(height)); // Then load it fr 58 | iconOffsets[0] = (width - 150) / 2; 59 | iconOffsets[1] = (width - 150) / 2; 60 | updateHitbox(); 61 | 62 | animation.add(char, [0, 1], 0, false, isPlayer); 63 | animation.play(char); 64 | this.char = char; 65 | 66 | antialiasing = ClientPrefs.globalAntialiasing; 67 | if (char.endsWith('-pixel')) 68 | { 69 | antialiasing = false; 70 | } 71 | } 72 | } 73 | 74 | override function updateHitbox() 75 | { 76 | super.updateHitbox(); 77 | offset.x = iconOffsets[0]; 78 | offset.y = iconOffsets[1]; 79 | } 80 | 81 | public function getCharacter():String 82 | { 83 | return char; 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /source/objects/MenuCharacter.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import data.ClientPrefs; 4 | import data.Paths; 5 | import flixel.FlxSprite; 6 | import flixel.graphics.frames.FlxAtlasFrames; 7 | import haxe.Json; 8 | import haxe.format.JsonParser; 9 | import openfl.utils.Assets; 10 | import sys.FileSystem; 11 | import sys.io.File; 12 | 13 | typedef MenuCharacterFile = 14 | { 15 | var image:String; 16 | var scale:Float; 17 | var position:Array; 18 | var idle_anim:String; 19 | var confirm_anim:String; 20 | var flipX:Bool; 21 | } 22 | 23 | class MenuCharacter extends FlxSprite 24 | { 25 | public var character:String; 26 | public var hasConfirmAnimation:Bool = false; 27 | 28 | private static var DEFAULT_CHARACTER:String = 'bf'; 29 | 30 | public function new(x:Float, character:String = 'bf') 31 | { 32 | super(x); 33 | 34 | changeCharacter(character); 35 | } 36 | 37 | public function changeCharacter(?character:String = 'bf') 38 | { 39 | if (character == null) 40 | character = ''; 41 | if (character == this.character) 42 | return; 43 | 44 | this.character = character; 45 | antialiasing = ClientPrefs.globalAntialiasing; 46 | visible = true; 47 | 48 | var dontPlayAnim:Bool = false; 49 | scale.set(1, 1); 50 | updateHitbox(); 51 | 52 | hasConfirmAnimation = false; 53 | switch (character) 54 | { 55 | case '': 56 | visible = false; 57 | dontPlayAnim = true; 58 | default: 59 | var characterPath:String = 'images/menucharacters/' + character + '.json'; 60 | var rawJson = null; 61 | 62 | var path:String = Paths.getPreloadPath(characterPath); 63 | if (!Assets.exists(path) && !FileSystem.exists(path)) 64 | { 65 | path = Paths.getPreloadPath('images/menucharacters/' + DEFAULT_CHARACTER + '.json'); 66 | } 67 | rawJson = Assets.getText(path); 68 | 69 | var charFile:MenuCharacterFile = cast Json.parse(rawJson); 70 | frames = Paths.getSparrowAtlas('menucharacters/' + charFile.image); 71 | animation.addByPrefix('idle', charFile.idle_anim, 24); 72 | 73 | var confirmAnim:String = charFile.confirm_anim; 74 | if (confirmAnim != null && confirmAnim.length > 0 && confirmAnim != charFile.idle_anim) 75 | { 76 | animation.addByPrefix('confirm', confirmAnim, 24, false); 77 | if (animation.getByName('confirm') != null) // check for invalid animation 78 | hasConfirmAnimation = true; 79 | } 80 | 81 | flipX = (charFile.flipX == true); 82 | 83 | if (charFile.scale != 1) 84 | { 85 | scale.set(charFile.scale, charFile.scale); 86 | updateHitbox(); 87 | } 88 | offset.set(charFile.position[0], charFile.position[1]); 89 | animation.play('idle'); 90 | } 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /source/objects/MenuItem.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import data.ClientPrefs; 4 | import data.Paths; 5 | import flixel.FlxG; 6 | import flixel.FlxSprite; 7 | import flixel.graphics.frames.FlxAtlasFrames; 8 | import flixel.math.FlxMath; 9 | import flixel.util.FlxColor; 10 | import util.CoolUtil; 11 | 12 | class MenuItem extends FlxSprite 13 | { 14 | public var targetY:Float = 0; 15 | public var flashingInt:Int = 0; 16 | 17 | public function new(x:Float, y:Float, weekName:String = '') 18 | { 19 | super(x, y); 20 | loadGraphic(Paths.image('storymenu/' + weekName)); 21 | // trace('Test added: ' + WeekData.getWeekNumber(weekNum) + ' (' + weekNum + ')'); 22 | antialiasing = ClientPrefs.globalAntialiasing; 23 | } 24 | 25 | private var isFlashing:Bool = false; 26 | 27 | public function startFlashing():Void 28 | { 29 | isFlashing = true; 30 | } 31 | 32 | // if it runs at 60fps, fake framerate will be 6 33 | // if it runs at 144 fps, fake framerate will be like 14, and will update the graphic every 0.016666 * 3 seconds still??? 34 | // so it runs basically every so many seconds, not dependant on framerate?? 35 | // I'm still learning how math works thanks whoever is reading this lol 36 | var fakeFramerate:Int = Math.round((1 / FlxG.elapsed) / 10); 37 | 38 | override function update(elapsed:Float) 39 | { 40 | super.update(elapsed); 41 | y = FlxMath.lerp(y, (targetY * 120) + 480, CoolUtil.boundTo(elapsed * 10.2, 0, 1)); 42 | 43 | if (isFlashing) 44 | flashingInt += 1; 45 | 46 | if (flashingInt % fakeFramerate >= Math.floor(fakeFramerate / 2)) 47 | color = 0xFF33ffff; 48 | else 49 | color = FlxColor.WHITE; 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /source/objects/NoteSplash.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import data.ClientPrefs; 4 | import data.Paths; 5 | import flixel.FlxG; 6 | import flixel.FlxSprite; 7 | import flixel.graphics.frames.FlxAtlasFrames; 8 | import shaders.ColorSwap; 9 | import states.game.PlayState; 10 | 11 | class NoteSplash extends FlxSprite 12 | { 13 | public var colorSwap:ColorSwap = null; 14 | 15 | private var idleAnim:String; 16 | private var textureLoaded:String = null; 17 | 18 | public function new(x:Float = 0, y:Float = 0, ?note:Int = 0) 19 | { 20 | super(x, y); 21 | 22 | var skin:String = 'noteSplashes'; 23 | if (PlayState.SONG.splashSkin != null && PlayState.SONG.splashSkin.length > 0) 24 | skin = PlayState.SONG.splashSkin; 25 | 26 | loadAnims(skin); 27 | 28 | colorSwap = new ColorSwap(); 29 | shader = colorSwap.shader; 30 | 31 | setupNoteSplash(x, y, note); 32 | antialiasing = ClientPrefs.globalAntialiasing; 33 | } 34 | 35 | public function setupNoteSplash(x:Float, y:Float, note:Int = 0, texture:String = null, hueColor:Float = 0, satColor:Float = 0, brtColor:Float = 0) 36 | { 37 | setPosition(x - Note.swagWidth * 0.95, y - Note.swagWidth); 38 | alpha = 0.6; 39 | 40 | if (texture == null) 41 | { 42 | texture = 'noteSplashes'; 43 | if (PlayState.SONG.splashSkin != null && PlayState.SONG.splashSkin.length > 0) 44 | texture = PlayState.SONG.splashSkin; 45 | } 46 | 47 | if (textureLoaded != texture) 48 | { 49 | loadAnims(texture); 50 | } 51 | colorSwap.hue = hueColor; 52 | colorSwap.saturation = satColor; 53 | colorSwap.brightness = brtColor; 54 | offset.set(10, 10); 55 | 56 | var animNum:Int = FlxG.random.int(1, 2); 57 | animation.play('note' + note + '-' + animNum, true); 58 | if (animation.curAnim != null) 59 | animation.curAnim.frameRate = 24 + FlxG.random.int(-2, 2); 60 | } 61 | 62 | function loadAnims(skin:String) 63 | { 64 | frames = Paths.getSparrowAtlas(skin); 65 | for (i in 1...3) 66 | { 67 | animation.addByPrefix("note1-" + i, "note splash blue " + i, 24, false); 68 | animation.addByPrefix("note2-" + i, "note splash green " + i, 24, false); 69 | animation.addByPrefix("note0-" + i, "note splash purple " + i, 24, false); 70 | animation.addByPrefix("note3-" + i, "note splash red " + i, 24, false); 71 | } 72 | } 73 | 74 | override function update(elapsed:Float) 75 | { 76 | if (animation.curAnim != null) 77 | if (animation.curAnim.finished) 78 | kill(); 79 | 80 | super.update(elapsed); 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /source/objects/TypedAlphabet.hx: -------------------------------------------------------------------------------- 1 | package objects; 2 | 3 | import flash.media.Sound; 4 | import flixel.FlxG; 5 | import flixel.FlxSprite; 6 | import flixel.graphics.frames.FlxAtlasFrames; 7 | import flixel.group.FlxSpriteGroup; 8 | import flixel.math.FlxMath; 9 | import flixel.system.FlxSound; 10 | import flixel.util.FlxTimer; 11 | 12 | using StringTools; 13 | 14 | class TypedAlphabet extends Alphabet 15 | { 16 | public var onFinish:Void->Void = null; 17 | public var finishedText:Bool = false; 18 | public var delay:Float = 0.05; 19 | public var sound:String = 'dialogue'; 20 | public var volume:Float = 1; 21 | 22 | public function new(x:Float, y:Float, text:String = "", ?delay:Float = 0.05, ?bold:Bool = false) 23 | { 24 | super(x, y, text, bold); 25 | 26 | this.delay = delay; 27 | } 28 | 29 | override private function set_text(newText:String) 30 | { 31 | super.set_text(newText); 32 | 33 | resetDialogue(); 34 | return newText; 35 | } 36 | 37 | private var _curLetter:Int = -1; 38 | private var _timeToUpdate:Float = 0; 39 | 40 | override function update(elapsed:Float) 41 | { 42 | if (!finishedText) 43 | { 44 | var playedSound:Bool = false; 45 | _timeToUpdate += elapsed; 46 | while (_timeToUpdate >= delay) 47 | { 48 | showCharacterUpTo(_curLetter + 1); 49 | if (!playedSound && sound != '' && (delay > 0.025 || _curLetter % 2 == 0)) 50 | { 51 | FlxG.sound.play(Paths.sound(sound), volume); 52 | } 53 | playedSound = true; 54 | 55 | _curLetter++; 56 | if (_curLetter >= letters.length - 1) 57 | { 58 | finishedText = true; 59 | if (onFinish != null) 60 | onFinish(); 61 | _timeToUpdate = 0; 62 | break; 63 | } 64 | _timeToUpdate = 0; 65 | } 66 | } 67 | 68 | super.update(elapsed); 69 | } 70 | 71 | public function showCharacterUpTo(upTo:Int) 72 | { 73 | var start:Int = _curLetter; 74 | if (start < 0) 75 | start = 0; 76 | 77 | for (i in start...(upTo + 1)) 78 | { 79 | if (letters[i] != null) 80 | letters[i].visible = true; 81 | // trace('test, showing: $i'); 82 | } 83 | } 84 | 85 | public function resetDialogue() 86 | { 87 | _curLetter = -1; 88 | finishedText = false; 89 | _timeToUpdate = 0; 90 | for (letter in letters) 91 | { 92 | letter.visible = false; 93 | } 94 | } 95 | 96 | public function finishText() 97 | { 98 | if (finishedText) 99 | return; 100 | 101 | showCharacterUpTo(letters.length - 1); 102 | if (sound != '') 103 | FlxG.sound.play(Paths.sound(sound), volume); 104 | finishedText = true; 105 | 106 | if (onFinish != null) 107 | onFinish(); 108 | _timeToUpdate = 0; 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /source/openfl/display/FPS.hx: -------------------------------------------------------------------------------- 1 | package openfl.display; 2 | 3 | import flixel.FlxG; 4 | import openfl.display.Shader; 5 | import openfl.filters.ShaderFilter; 6 | import openfl.system.System; 7 | import openfl.text.TextField; 8 | import openfl.text.TextFormat; 9 | 10 | class FPS extends TextField 11 | { 12 | /** 13 | The current frame rate, expressed using frames-per-second 14 | **/ 15 | public var currentFPS(default, null):UInt; 16 | 17 | var peak:UInt = 0; 18 | 19 | @:noCompletion private var cacheCount:Int; 20 | @:noCompletion private var currentTime:Float; 21 | @:noCompletion private var times:Array; 22 | 23 | public function new(x:Float = 10, y:Float = 10, color:Int = 0x000000) 24 | { 25 | super(); 26 | 27 | this.x = x; 28 | this.y = y; 29 | 30 | currentFPS = 0; 31 | selectable = false; 32 | mouseEnabled = false; 33 | defaultTextFormat = new TextFormat("_sans", 12, color); 34 | text = "FPS: "; 35 | 36 | cacheCount = 0; 37 | currentTime = 0; 38 | times = []; 39 | 40 | autoSize = LEFT; 41 | backgroundColor = 0; 42 | 43 | #if flash 44 | addEventListener(Event.ENTER_FRAME, function(e) 45 | { 46 | var time = Lib.getTimer(); 47 | __enterFrame(time - currentTime); 48 | }); 49 | #end 50 | 51 | width = 350; 52 | } 53 | 54 | // Event Handlers 55 | @:noCompletion 56 | private #if !flash override #end function __enterFrame(deltaTime:Float):Void 57 | { 58 | currentTime += deltaTime; 59 | times.push(currentTime); 60 | 61 | while (times[0] < currentTime - 1000) 62 | { 63 | times.shift(); 64 | } 65 | 66 | var currentCount = times.length; 67 | currentFPS = Math.round((currentCount + cacheCount)); 68 | 69 | text = ""; 70 | 71 | text += "FPS: " + currentFPS + "\n"; 72 | 73 | var mem = System.totalMemory; 74 | if (mem > peak) 75 | peak = mem; 76 | 77 | text += "MEM: " + getSizeLabel(System.totalMemory) + "\n"; 78 | 79 | text += "MEM peak: " + getSizeLabel(peak) + "\n"; 80 | } 81 | 82 | final dataTexts = ["B", "KB", "MB", "GB", "TB", "PB"]; 83 | 84 | function getSizeLabel(num:UInt):String 85 | { 86 | var size:Float = num; 87 | var data = 0; 88 | while (size > 999 && data < dataTexts.length - 1) 89 | { 90 | data++; 91 | size = size / 999; 92 | } 93 | 94 | size = Math.round(size * 100) / 100; 95 | 96 | if (data <= 2) 97 | size = Math.round(size); 98 | 99 | return size + " " + dataTexts[data]; 100 | } 101 | } 102 | -------------------------------------------------------------------------------- /source/script/Interact.hx: -------------------------------------------------------------------------------- 1 | package script; 2 | 3 | import flixel.FlxBasic; 4 | 5 | class Interact extends FlxBasic 6 | { 7 | public var presetVars:Array = []; 8 | 9 | var parent:Script; 10 | 11 | public var interactObjs:Array = []; 12 | 13 | public function new(_:Script) 14 | { 15 | super(); 16 | parent = _; 17 | } 18 | 19 | public function loadPresetVars() 20 | { 21 | for (str in parent.variables.keys()) 22 | { 23 | presetVars.push(str); 24 | } 25 | } 26 | 27 | public function getNewObj():Dynamic 28 | { 29 | var newObj:Dynamic = {}; 30 | interactObjs.push(newObj); 31 | 32 | if (presetVars != []) 33 | { 34 | updateObjVars(newObj); 35 | } 36 | 37 | return newObj; 38 | } 39 | 40 | public function upadteObjs() 41 | { 42 | if (presetVars == []) 43 | return; 44 | 45 | for (obj in interactObjs) 46 | { 47 | if (obj == null) 48 | continue; 49 | 50 | updateObjVars(obj); 51 | } 52 | } 53 | 54 | function updateObjVars(interactObj:Dynamic) 55 | { 56 | var newVars:Array = getObjsNewVars(interactObj); 57 | var varsToUpdate:Map = getVarsToUpdate(interactObj); 58 | 59 | for (varName in newVars) 60 | { 61 | try 62 | { 63 | if (varsToUpdate.exists(varName)) 64 | { 65 | @:privateAccess 66 | parent._interp.setExistingVar(varName, varsToUpdate.get(varName)); 67 | } 68 | else 69 | { 70 | @:privateAccess 71 | var val:Dynamic = parent._interp.resolve(varName); 72 | Reflect.setProperty(interactObj, varName, val); 73 | } 74 | } 75 | catch (e) 76 | { 77 | parent.error("INTERACTION ERROR: " + Std.string(e), '${parent.name}: Interaction Error!'); 78 | } 79 | } 80 | } 81 | 82 | function getVarsToUpdate(interactObj:Dynamic):Map 83 | { 84 | var newVars:Array = getObjsNewVars(interactObj); 85 | 86 | var varsToUpdate:Map = []; 87 | 88 | if (interactObj != null && interactObj != {}) 89 | { 90 | for (fieldName in Reflect.fields(interactObj)) 91 | { 92 | if (!newVars.contains(fieldName)) 93 | continue; 94 | try 95 | { 96 | @:privateAccess 97 | var curVal:Dynamic = parent._interp.resolve(fieldName); 98 | 99 | if (Reflect.getProperty(interactObj, fieldName) != curVal) 100 | { 101 | varsToUpdate.set(fieldName, Reflect.getProperty(interactObj, fieldName)); 102 | } 103 | } 104 | } 105 | } 106 | 107 | return varsToUpdate; 108 | } 109 | 110 | function getObjsNewVars(interactObj:Dynamic):Array 111 | { 112 | if (presetVars == []) 113 | return []; 114 | 115 | var newVars:Array = []; 116 | 117 | @:privateAccess 118 | for (map in [parent.variables, parent._interp.locals]) 119 | { 120 | for (str in map.keys()) 121 | { 122 | var isScriptCheck:Bool = false; 123 | 124 | @:privateAccess 125 | var group:Null = parent._group; 126 | 127 | if (group != null) 128 | { 129 | var scriptNames:Array = []; 130 | 131 | for (script in group.scripts) 132 | { 133 | if (script != parent) 134 | scriptNames.push(script.name); 135 | } 136 | 137 | isScriptCheck = scriptNames.contains(str); 138 | } 139 | 140 | if (!presetVars.contains(str) && !isScriptCheck && !newVars.contains(str)) 141 | newVars.push(str); 142 | } 143 | } 144 | 145 | return newVars; 146 | } 147 | } 148 | -------------------------------------------------------------------------------- /source/script/ScriptGroup.hx: -------------------------------------------------------------------------------- 1 | package script; 2 | 3 | import flixel.FlxBasic; 4 | 5 | using StringTools; 6 | 7 | class ScriptGroup extends FlxBasic 8 | { 9 | public var scripts:Array