├── .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 | 
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