Compare commits

..
25 Commits
Author SHA1 Message Date
Cameron Taylor 567a7af392 RELEAAASE 2020-10-05 15:29:59 -07:00
Cameron Taylor 082abad735 BACKGROUNDS 2020-10-05 13:55:48 -07:00
Cameron Taylor b40f7c94b8 HEALTH IN PROGRESS 2020-10-05 13:32:41 -07:00
Cameron Taylor 4ab27ca8a6 ready set go bullshit 2020-10-05 11:33:56 -07:00
Cameron Taylor 9dfe5cfe42 bunch of polish bullshit 2020-10-05 11:24:51 -07:00
Cameron Taylor a380fa16e5 grafiti scores 2020-10-05 07:03:38 -07:00
Cameron Taylor 6568703a7d grafiti assets 2020-10-05 06:02:02 -07:00
Cameron Taylor d8513fc4a0 assets and gf and shit 2020-10-05 05:55:39 -07:00
Cameron Taylor 95415f5890 gf base shit 2020-10-05 04:46:57 -07:00
Cameron Taylor ce0fd00fba more performance shit 2020-10-05 03:53:10 -07:00
Cameron Taylor aa7cef2c25 RIP WEED LMAO 2020-10-05 03:25:14 -07:00
Cameron Taylor 3855c5ea9f perfornance and optimization 2020-10-05 02:48:30 -07:00
Cameron Taylor a75e543fb8 note missing 2020-10-05 00:49:53 -07:00
Cameron Taylor d5121a6e8e hold notes and temp bg 2020-10-04 22:13:12 -07:00
Cameron Taylor de57ab82f6 MISS NOTES 2020-10-04 20:29:35 -07:00
Cameron Taylor 851d5c241c fresh Song charted 2020-10-04 19:31:38 -07:00
Cameron Taylor 9e1ccaf083 dynamic camer, reformat chart, lvl2 2020-10-04 17:53:49 -07:00
Cameron Taylor de17188ae4 fixed the dad bullshit 2020-10-04 15:27:49 -07:00
Cameron Taylor dbbd0c2851 a boy and his offsets... 2020-10-04 14:44:52 -07:00
Cameron Taylor 89fa9a3121 offsets "generally" 2020-10-04 11:50:12 -07:00
Cameron Taylor 86aba3f004 notes in da house 2020-10-04 01:38:21 -07:00
Cameron Taylor 0839f21e71 DOPE SHIT ALL DAY LETS GOOOOO 2020-10-03 23:42:58 -07:00
Cameron Taylor 75a02413de scores and dope shit 2020-10-03 12:32:15 -07:00
Cameron Taylor 32001dad2e fixed holding notes 2020-10-03 10:36:39 -07:00
Cameron Taylor 303c9d14aa INIT COMMIT 2020-10-02 23:50:15 -07:00
689 changed files with 2385 additions and 109781 deletions
-7
View File
@@ -1,7 +0,0 @@
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
end_of_line = lf
insert_final_newline = true
-3
View File
@@ -1,3 +0,0 @@
* text=auto eol=lf
*.hxc linguist-language=Haxe
*.hxp linguist-language=Haxe
-72
View File
@@ -1,72 +0,0 @@
name: Bug Report
description: Report a bug or an issue in the game.
labels: ["type: minor bug", "status: pending triage"]
title: "Bug Report: "
body:
- type: markdown
attributes:
value: "# PLEASE READ THE [CONTRIBUTING GUIDE](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md) BEFORE OPENING ISSUES!"
- type: checkboxes
attributes:
label: Issue Checklist
description: Be sure to complete these steps to increase the chances of your issue being addressed!
options:
- label: I have read the [Contributing Guide](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md)
- label: I have checked the Issues/Discussions pages to see if my issue has already been reported
- label: I have properly titled my issue
- type: dropdown
attributes:
label: Platform
description: Which platform are you playing on?
options:
- Newgrounds (Web/HTML5)
- Itch.io (Web/HTML5)
- Itch.io (Downloadable Build) - Windows
- Itch.io (Downloadable Build) - MacOS
- Itch.io (Downloadable Build) - Linux
- Compiled from GitHub Source Code
validations:
required: true
- type: dropdown
attributes:
label: Browser
description: (Web/HTML5 users only) Which browser are you playing on?
options:
- Google Chrome
- Microsoft Edge
- Firefox
- Opera
- Safari
- Other (Specify in Description field)
- type: input
attributes:
label: Version
description: Which version are you playing on? The game version is in the bottom left corner of the main menu.
placeholder: ex. 0.6.2
validations:
required: true
- type: markdown
attributes:
value: "## Describe your bug."
- type: markdown
attributes:
value: "### Please do not report issues from other engines. These must be reported in their respective repositories."
- type: textarea
attributes:
label: Description (include any images, videos, errors, or crash logs)
description: Provide as much detail as you can. The better others understand your issue, the more they can help you!
placeholder: Describe your issue here...
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce
description: What steps can other people take to reliably encounter this issue?
placeholder: 1. Open the game...
-75
View File
@@ -1,75 +0,0 @@
name: Charting Issue
description: Report an issue with the placement of notes in the game.
labels: ["type: charting issue", "status: pending triage"]
title: "Charting Issue: "
body:
- type: markdown
attributes:
value: "# PLEASE READ THE [CONTRIBUTING GUIDE](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md) BEFORE OPENING ISSUES!"
- type: checkboxes
attributes:
label: Issue Checklist
description: Be sure to complete these steps to increase the chances of your issue being addressed!
options:
- label: I have read the [Contributing Guide](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md)
- label: I have checked the Issues/Discussions pages to see if my issue has already been reported
- label: I have properly titled my issue
- type: dropdown
attributes:
label: Platform
description: Which platform are you playing on?
options:
- Newgrounds (Web/HTML5)
- Itch.io (Web/HTML5)
- Itch.io (Downloadable Build) - Windows
- Itch.io (Downloadable Build) - MacOS
- Itch.io (Downloadable Build) - Linux
- Compiled from GitHub Source Code
validations:
required: true
- type: dropdown
attributes:
label: Browser
description: (Web/HTML5 users only) Which browser are you playing on?
options:
- Google Chrome
- Microsoft Edge
- Firefox
- Opera
- Safari
- Other (Specify in Description field)
- type: input
attributes:
label: Version
description: Which version are you playing on? The game version is in the bottom left corner of the main menu.
placeholder: ex. 0.6.2
validations:
required: true
- type: markdown
attributes:
value: "## Describe the charting issue(s)."
- type: markdown
attributes:
value: "### Please do not report issues from other engines. These must be reported in their respective repositories."
- type: textarea
attributes:
label: Location
description: Where did you find the issue(s)? Include the name of the song, the variation, the difficulty, the time/section of the song, and any images or videos.
placeholder: ex. Cocoa Erect on Erect/Nightmare difficulties at Section 30
validations:
required: true
- type: textarea
attributes:
label: Description
description: Why do you believe this is an issue? Is a note at the wrong time, a hold note too short/long, or something else?
placeholder: Describe the charting issue(s) here...
validations:
required: true
-63
View File
@@ -1,63 +0,0 @@
name: Compiling Help
description: Report an issue with compiling the game.
labels: ["type: compilation help", "status: pending triage"]
title: "Compiling Help: "
body:
- type: markdown
attributes:
value: "# PLEASE READ THE [CONTRIBUTING GUIDE](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md) BEFORE OPENING ISSUES!"
- type: checkboxes
attributes:
label: Issue Checklist
description: Be sure to complete these steps to increase the chances of your issue being addressed!
options:
- label: I have followed the [Compiling Guide](https://github.com/FunkinCrew/Funkin/blob/main/docs/COMPILING.md) and the [Troubleshooting Guide](https://github.com/FunkinCrew/Funkin/blob/main/docs/TROUBLESHOOTING.md)
- label: I have read the [Contributing Guide](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md)
- label: I have checked the Issues/Discussions pages to see if my issue has already been reported
- label: I have properly titled my issue
- type: dropdown
attributes:
label: Platform
description: Which platform are you compiling for?
options:
- Web/HTML5
- Desktop (Windows)
- Desktop (Mac)
- Desktop (Linux)
- Other
validations:
required: true
- type: input
attributes:
label: Version
description: Which version are you compiling? The game version is in the bottom left corner of the main menu or in the project.hxp file.
placeholder: ex. 0.6.2
validations:
required: true
- type: markdown
attributes:
value: "## Describe your compiling issue."
- type: markdown
attributes:
value: "### Please do not report issues from other engines. These must be reported in their respective repositories."
- type: textarea
attributes:
label: Console Output
description: Paste any errors or warnings from the console here.
placeholder: Paste output here...
validations:
required: true
- type: textarea
attributes:
label: Context
description: Provide as much detail as you can. Did you modify any code? Provide any relevant images or videos.
placeholder: Describe the context here...
validations:
required: true
-1
View File
@@ -1 +0,0 @@
blank_issues_enabled: false
-83
View File
@@ -1,83 +0,0 @@
name: Crash Report
description: Report a crash that occurred while playing the game.
labels: ["type: major bug", "status: pending triage"]
title: "Crash Report: "
body:
- type: markdown
attributes:
value: "# PLEASE READ THE [CONTRIBUTING GUIDE](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md) BEFORE OPENING ISSUES!"
- type: checkboxes
attributes:
label: Issue Checklist
description: Be sure to complete these steps to increase the chances of your issue being addressed!
options:
- label: I have read the [Contributing Guide](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md)
- label: I have checked the Issues/Discussions pages to see if my issue has already been reported
- label: I have properly titled my issue
- type: dropdown
attributes:
label: Platform
description: Which platform are you playing on?
options:
- Newgrounds (Web/HTML5)
- Itch.io (Web/HTML5)
- Itch.io (Downloadable Build) - Windows
- Itch.io (Downloadable Build) - MacOS
- Itch.io (Downloadable Build) - Linux
- Compiled from GitHub Source Code
validations:
required: true
- type: dropdown
attributes:
label: Browser
description: (Web/HTML5 users only) Which browser are you playing on?
options:
- Google Chrome
- Microsoft Edge
- Firefox
- Opera
- Safari
- Other (Specify in Description field)
- type: input
attributes:
label: Version
description: Which version are you playing on? The game version is in the bottom left corner of the main menu.
placeholder: ex. 0.6.2
validations:
required: true
- type: markdown
attributes:
value: "## Describe the crash."
- type: markdown
attributes:
value: "### Please do not report issues from other engines. These must be reported in their respective repositories."
- type: textarea
attributes:
label: Description
description: Include screenshots or videos of the crash happening. Provide as much detail as you can.
placeholder: Describe the crash here...
validations:
required: true
- type: textarea
attributes:
label: Steps to Reproduce
description: What steps can other people take to reliably trigger this crash?
placeholder: 1. Open the game...
validations:
required: true
- type: textarea
attributes:
label: Crash logs
description: These can be found in the logs folder where Funkin.exe is.
placeholder: Upload your logs here...
validations:
required: true
-23
View File
@@ -1,23 +0,0 @@
name: Enhancement
description: Suggest a new feature.
labels: ["type: enhancement", "status: pending triage"]
title: "Enhancement: "
body:
- type: markdown
attributes:
value: "# PLEASE READ THE [CONTRIBUTING GUIDE](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md) BEFORE OPENING ISSUES!"
- type: checkboxes
attributes:
label: Issue Checklist
description: Be sure to complete these steps to increase the chances of your suggestion being considered!
options:
- label: I have read the [Contributing Guide](https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md)
- label: I have checked the Issues/Discussions pages to see if my enhancement has already been suggested
- label: I have properly titled my enhancement
- type: textarea
attributes:
label: What is your suggestion, and why should it be implemented?
validations:
required: true
-154
View File
@@ -1,154 +0,0 @@
name: setup-haxeshit
description: "sets up haxe shit, using HMM!"
inputs:
haxe:
description: 'Version of haxe to install'
required: true
default: '4.3.6'
hxcpp-cache:
description: 'Whether to use a shared hxcpp compile cache'
required: true
default: 'true'
hxcpp-cache-path:
description: 'Path to create hxcpp cache in'
required: true
default: ${{ runner.temp }}/hxcpp_cache
targets:
description: 'Targets we plan to compile to. Installs native dependencies needed.'
required: true
gh-token:
description: 'GitHub secret for private repos as dependencies'
runs:
using: "composite"
steps:
- name: Setup timers
shell: bash
run: |
echo "TIMER_HAXE=$(date +%s)" >> "$GITHUB_ENV"
- name: Install Haxe
uses: funkincrew/ci-haxe@v3.2.7
with:
haxe-version: ${{ inputs.haxe }}
- name: Install native dependencies
if: ${{ runner.os == 'Linux' }}
shell: bash
run: |
ls -lah /usr/lib/x86_64-linux-gnu/
apt-get update
apt-get install -y \
g++ \
libx11-dev libxi-dev libxext-dev libxinerama-dev libxrandr-dev \
libgl-dev libgl1-mesa-dev \
libasound2-dev libpulse-dev
ln -s /usr/lib/x86_64-linux-gnu/libffi.so.8 /usr/lib/x86_64-linux-gnu/libffi.so.6 || true
- name: Install linux-specific dependencies
if: ${{ runner.os == 'Linux' && contains(inputs.targets, 'linux') }}
shell: bash
run: |
apt-get install -y libvlc-dev libvlccore-dev
- name: Config haxelib
shell: bash
run: |
echo "TIMER_HAXELIB=$(date +%s)" >> "$GITHUB_ENV"
haxelib fixrepo --global || true
haxelib --debug --never --global install haxelib 4.1.0
haxelib --debug --global set haxelib 4.1.0
haxelib --global remove haxelib git || true
haxelib --global remove hmm || true
rm -rf .haxelib
haxelib --debug --never --global git haxelib https://github.com/FunkinCrew/haxelib.git funkin-patches --skip-dependencies
haxelib --debug --never --global git hmm https://github.com/FunkinCrew/hmm funkin-patches
haxelib --debug --never newrepo
haxelib version
echo "HAXEPATH=$(haxelib config)" >> "$GITHUB_ENV"
echo "TIMER_DEPS=$(date +%s)" >> "$GITHUB_ENV"
- name: Restore cached dependencies
id: cache-hmm
uses: actions/cache@v4
with:
path: .haxelib
key: haxe-hmm-${{ runner.os }}-${{ hashFiles('**/hmm.json') }}
- if: ${{ steps.cache-hmm.outputs.cache-hit != 'true' }}
name: Prep git for dependency install
uses: gacts/run-and-post-run@v1
with:
run: |
git config --global --name-only --get-regexp 'url\.https\:\/\/x-access-token:.+@github\.com\/\.insteadOf' \
| xargs -I {} git config --global --unset {}
git config -l --show-scope --show-origin
git config --global 'url.https://x-access-token:${{ inputs.gh-token }}@github.com/.insteadOf' https://github.com/
post: git config --global --unset 'url.https://x-access-token:${{ inputs.gh-token }}@github.com/.insteadOf'
- if: ${{ steps.cache-hmm.outputs.cache-hit != 'true' }}
name: Install dependencies
shell: bash
run: |
haxelib --global run hmm install -q
echo "TIMER_DONE=$(date +%s)" >> "$GITHUB_ENV"
# by default use a shared hxcpp cache
- if: ${{ inputs.hxcpp-cache == 'true' }}
name: Restore hxcpp cache
uses: actions/cache@v4
with:
path: ${{ inputs.hxcpp-cache-path }}
key: haxe-hxcpp-${{ runner.os }}-${{ github.ref_name }}-${{ github.sha }}
restore-keys: haxe-hxcpp-${{ runner.os }}-${{ github.ref_name }}
# export env for it to reuse in builds
- if: ${{ inputs.hxcpp-cache == 'true' }}
name: Persist env for hxcpp cache
shell: bash
run: |
echo "HXCPP_COMPILE_CACHE=${{ inputs.hxcpp-cache-path }}" >> "$GITHUB_ENV"
echo 'HXCPP_CACHE_MB="4096"' >> "$GITHUB_ENV"
# if it's explicitly disabled, still cache export/ since that then contains the builds
- if: ${{ inputs.hxcpp-cache != 'true' }}
name: Restore export cache
uses: actions/cache@v4
with:
path: ${{ inputs.hxcpp-cache-path }}
key: haxe-export-${{ runner.os }}-${{ github.ref_name }}-${{ github.sha }}
restore-keys: haxe-export-${{ runner.os }}-${{ github.ref_name }}
- name: Print debug info
shell: bash
run: |
cat << EOF
runner:
kernel: $(uname -a)
haxe:
version: $(haxe -version)
which: $(which haxe)
haxepath: $HAXEPATH
took: $((TIMER_HAXELIB - TIMER_HAXE))s
haxelib:
version: $(haxelib version)
which: $(which haxelib)
local:
config: $(haxelib config)
path: $(haxelib path haxelib || true)
global
config: $(haxelib config --global)
path: $(haxelib path haxelib --global || true)
system
version: $(haxelib --system version)
local:
config: $(haxelib --system config)
global:
config: $(haxelib --system config --global)
took: $((TIMER_DEPS - TIMER_HAXELIB))s
deps:
took: $((TIMER_DONE - TIMER_DEPS))s
hxcpp_cache: |
$(haxelib run hxcpp cache list || true)
EOF
-124
View File
@@ -1,124 +0,0 @@
name: upload-itch
description: "installs Butler, and uploads to itch.io!"
inputs:
butler-key:
description: "Butler API secret key"
required: true
itch-repo:
description: "Where to upload the game to"
required: true
default: "ninja-muffin24/funkin-secret"
build-dir:
description: "Directory of the game build"
required: false
target:
description: "Target (html5, windows, linux, macos)"
required: true
runs:
using: "composite"
steps:
# RUNNER_OS = Windows | macOS | Linux
# TARGET_BUILD = windows | macos | linux
# TARGET_ITCH = win | macos | linux
# TARGET_BUTLER_DOWNLOAD = windows-amd64 | darwin-amd64 | linux-amd64
- name: Setup variables
shell: bash
run: |
TARGET_OS=${{ inputs.target }}
RUNNER=${RUNNER_OS@L}
TARGET=${TARGET_OS@L}
case "$TARGET" in
"windows")
TARGET_ITCH=win
;;
*)
TARGET_ITCH=$TARGET
;;
esac
case "$RUNNER" in
"macos")
OS_NODE=darwin
;;
*)
OS_NODE=$RUNNER
;;
esac
BUTLER_PATH=$RUNNER_TEMP/butler
echo BUILD_DIR="export/release/$TARGET/bin" >> "$GITHUB_ENV"
echo ITCH_TAG=${{ inputs.itch-repo }}:$TARGET_ITCH-$GITHUB_REF_NAME >> "$GITHUB_ENV"
echo OS_AND_ARCH=$OS_NODE-amd64 >> "$GITHUB_ENV"
echo BUTLER_API_KEY=${{ inputs.butler-key }} >> "$GITHUB_ENV"
echo BUTLER_INSTALL_PATH=$BUTLER_PATH >> "$GITHUB_ENV"
echo TIMER_BUTLER=$(date +%s) >> "$GITHUB_ENV"
echo TARGET_ITCH=$TARGET_ITCH >> "$GITHUB_ENV"
echo "$BUTLER_PATH" >> "$GITHUB_PATH"
- name: Get latest butler version
shell: bash
run: |
LATEST=$(curl -sfL https://broth.itch.ovh/butler/$OS_AND_ARCH/LATEST)
echo BUTLER_LATEST=$LATEST >> "$GITHUB_ENV"
command -v butler \
&& echo BUTLER_CURRENT=$(butler -V 2>&1 | cut -d ',' -f 1) >> "$GITHUB_ENV" \
|| echo BUTLER_CURRENT=none >> "$GITHUB_ENV"
- name: Try to get butler from cache
id: cache-butler
uses: actions/cache@v4
with:
path: ${{ env.BUTLER_INSTALL_PATH }}
key: butler-${{ runner.os }}-${{ env.BUTLER_LATEST }}
- if: steps.cache-butler.outputs.cache-hit == 'true'
name: Make sure butler is executable
shell: bash
run: |
chmod +x $BUTLER_INSTALL_PATH/butler
- if: steps.cache-butler.outputs.cache-hit != 'true'
name: Install butler
shell: bash
run: |
mkdir -p $BUTLER_INSTALL_PATH
cd $BUTLER_INSTALL_PATH
curl -L -o butler.zip https://broth.itch.ovh/butler/$OS_AND_ARCH/LATEST/archive/default
unzip butler.zip
chmod +x butler
- name: Upload game to itch.io
shell: bash
run: |
echo "TIMER_UPLOAD=$(date +%s)" >> "$GITHUB_ENV"
butler login
butler push $BUILD_DIR $ITCH_TAG
echo "TIMER_DONE=$(date +%s)" >> "$GITHUB_ENV"
- name: Print debug info
shell: bash
run: |
cat << EOF
butler:
version: $(
if [[ "$BUTLER_CURRENT" == "$BUTLER_LATEST" ]]
then
echo $BUTLER_CURRENT
else
echo $BUTLER_CURRENT -> $BUTLER_LATEST
fi
)
install:
took: $(($TIMER_UPLOAD-$TIMER_BUTLER))s
upload:
tag: $TARGET_ITCH/$GITHUB_REF_NAME
took: $(($TIMER_DONE-$TIMER_UPLOAD))s
EOF
cat << EOF >> "$GITHUB_STEP_SUMMARY"
### open in launcher: [$TARGET_ITCH/$GITHUB_REF_NAME](https://run.funkin.me/$TARGET_ITCH/$GITHUB_REF_NAME)
EOF
-12
View File
@@ -1,12 +0,0 @@
# Add 'size: small' to any changes below 10 lines
'size: small':
max: 9
# Add 'size: medium' to any changes between 10 and 100 lines
'size: medium':
min: 10
max: 99
# Add 'size: large' to any changes of at least 100 lines
'size: large':
min: 100
-5
View File
@@ -1,5 +0,0 @@
# Git Hooks
These work even on Windows because of Git Bash.
## Setup
`git config core.hooksPath .github/hooks`
-2
View File
@@ -1,2 +0,0 @@
#!/bin/sh
git submodule update --init --recursive
-2
View File
@@ -1,2 +0,0 @@
#!/bin/sh
git submodule update --init --recursive
-5
View File
@@ -1,5 +0,0 @@
#!/bin/sh
if git diff --cached --submodule | grep -q "^+"; then
echo "WARNING: You have unpushed changes in submodules."
exit 1
fi
-157
View File
@@ -1,157 +0,0 @@
# Configuration for Label Actions - https://github.com/dessant/label-actions
# Automatically close issues and pull requests when the `status: duplicate` label is applied
'status: duplicate':
issues:
# Post a comment
comment: >
This issue is a duplicate. Please direct all discussion to the original issue.
# Close the issue
close: false
# Set a close reason
# close-reason: 'not planned'
# Remove other status labels
unlabel:
- 'status: accepted'
- 'status: bug reproduced'
- 'status: cannot reproduce'
- 'status: needs clarification'
- 'status: needs r&d'
- 'status: needs revision'
- 'status: pending pull request'
- 'status: pending triage'
- 'status: planned'
- 'status: rejected'
- 'status: resolved'
- 'status: resolved internally'
- 'status: reviewing internally'
- 'status: stale'
prs:
# Post a comment
comment: >
This pull request is a duplicate. Please direct all discussion to the original pull request.
# Close the pull request
close: false
# Remove other status labels
unlabel:
- 'status: accepted'
- 'status: bug reproduced'
- 'status: cannot reproduce'
- 'status: needs clarification'
- 'status: needs r&d'
- 'status: needs revision'
- 'status: pending pull request'
- 'status: pending triage'
- 'status: planned'
- 'status: rejected'
- 'status: resolved'
- 'status: resolved internally'
- 'status: reviewing internally'
- 'status: stale'
'status: stale':
issues:
# Close the issue
close: true
# Set a close reason
close-reason: 'not planned'
# Remove other status labels
unlabel:
- 'status: accepted'
- 'status: bug reproduced'
- 'status: cannot reproduce'
- 'status: duplicate'
- 'status: needs clarification'
- 'status: needs r&d'
- 'status: needs revision'
- 'status: pending pull request'
- 'status: pending triage'
- 'status: planned'
- 'status: rejected'
- 'status: resolved'
- 'status: resolved internally'
- 'status: reviewing internally'
prs:
# Close the pull request
close: true
# Remove other status labels
unlabel:
- 'status: accepted'
- 'status: bug reproduced'
- 'status: cannot reproduce'
- 'status: duplicate'
- 'status: needs clarification'
- 'status: needs r&d'
- 'status: needs revision'
- 'status: pending pull request'
- 'status: pending triage'
- 'status: planned'
- 'status: rejected'
- 'status: resolved'
- 'status: resolved internally'
- 'status: reviewing internally'
'status: rejected':
issues:
# Close the issue
close: true
# Set a close reason
close-reason: 'not planned'
# Remove other status labels
unlabel:
- 'status: accepted'
- 'status: bug reproduced'
- 'status: cannot reproduce'
- 'status: duplicate'
- 'status: needs clarification'
- 'status: needs r&d'
- 'status: needs revision'
- 'status: pending pull request'
- 'status: pending triage'
- 'status: planned'
- 'status: resolved'
- 'status: resolved internally'
- 'status: reviewing internally'
- 'status: stale'
prs:
# Close the pull request
close: true
# Remove other status labels
unlabel:
- 'status: accepted'
- 'status: bug reproduced'
- 'status: cannot reproduce'
- 'status: duplicate'
- 'status: needs clarification'
- 'status: needs r&d'
- 'status: needs revision'
- 'status: pending pull request'
- 'status: pending triage'
- 'status: planned'
- 'status: resolved'
- 'status: resolved internally'
- 'status: reviewing internally'
- 'status: stale'
'status: resolved':
issues:
# Close the issue
close: true
# Set a close reason
close-reason: 'completed'
# Remove other status labels
unlabel:
- 'status: accepted'
- 'status: bug reproduced'
- 'status: cannot reproduce'
- 'status: duplicate'
- 'status: needs clarification'
- 'status: needs r&d'
- 'status: needs revision'
- 'status: pending pull request'
- 'status: pending triage'
- 'status: planned'
- 'status: rejected'
- 'status: resolved internally'
- 'status: reviewing internally'
- 'status: stale'
-18
View File
@@ -1,18 +0,0 @@
# Add Documentation tag to PR's changing markdown files, or anything in the docs folder
'pr: documentation':
- changed-files:
- any-glob-to-any-file:
- docs/*
- '**/*.md'
# Add Haxe tag to PR's changing haxe code files
'pr: haxe':
- changed-files:
- any-glob-to-any-file: '**/*.hx'
# Add GitHub tag to PR's changing yml files, or anything in the .github folder
'pr: github':
- changed-files:
- any-glob-to-any-file:
- github/*
- '**/*.yml'
-6
View File
@@ -1,6 +0,0 @@
<!-- Please read the Contributing Guide (https://github.com/FunkinCrew/Funkin/blob/main/docs/CONTRIBUTING.md) before submitting this PR. -->
## Does this PR close any issues? If so, link them below.
## Briefly describe the issue(s) fixed.
## Include any relevant screenshots or videos.
-250
View File
@@ -1,250 +0,0 @@
name: Build and Upload nightly game builds
on:
workflow_dispatch:
inputs:
build-defines:
type: string
description: Build defines to use
default: '-DGITHUB_BUILD'
save-artifact:
type: boolean
description: Save the build artifact to Github Actions (sends to itch otherwise)
default: false
push:
jobs:
gather-changes:
runs-on: build-set
outputs:
trigger-build: ${{ steps.should-trigger.outputs.result }}
steps:
- name: Checkout repo
uses: funkincrew/ci-checkout@v6
with:
submodules: false
- uses: dorny/paths-filter@v3
id: filter
with:
base: ${{ github.ref }}
filters: |
docker:
- '.github/workflows/build-game.yml'
- '**/Dockerfile'
- uses: actions/github-script@v7
id: should-trigger
with:
result-encoding: string
script: |
const { payload } = context
const changes = ${{ steps.filter.outputs.changes }}
const manual = payload.commits
.some(c => c.message.toLowerCase().replace(/\W/g, " ").includes("docker rebuild"))
console.log({ payload, changes, manual, commits: payload.commits })
return payload.created
|| payload.forced
|| changes.includes("docker")
|| manual
gather-tags:
runs-on: build-set
outputs:
primary: ${{ steps.build-tags.outputs.primary }}
list: ${{ steps.build-tags.outputs.list }}
steps:
- name: Gather build tags
uses: actions/github-script@v7
id: build-tags
with:
script: |
const base = "ghcr.io/funkincrew/build-dependencies"
const default_branch = "rewrite/master"
const ref_path = context.ref.split("/").slice(2)
const ref = ref_path.join("/")
const ref_tag = ref_path.join("-")
const tags = [ref_tag, context.sha]
if (ref === default_branch) tags.push("latest")
console.log([
`ref: ${ref}`,
`default_branch: ${default_branch}`,
`tags: ${tags.join(", ")}`
].join('\n'))
const tag_list = tags
.map(tag => `${base}:${tag}`)
.join("\n")
core.setOutput("primary", ref_tag)
core.setOutput("list", tag_list)
docker-image:
needs: [gather-changes, gather-tags]
if: needs.gather-changes.outputs.trigger-build == 'true'
runs-on: build-set
permissions:
contents: read
packages: write
steps:
- name: Checkout repo
uses: funkincrew/ci-checkout@v6
with:
submodules: false
- name: Log into GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: ./build
push: true
tags: ${{ needs.gather-tags.outputs.list }}
labels: |
org.opencontainers.image.description=precooked haxe build dependencies
org.opencontainers.image.revision=${{ github.sha }}
org.opencontainers.image.source=https://github.com/${{ github.repository }}
org.opencontainers.image.title=${{ github.repository_owner }}/build-dependencies
org.opencontainers.image.url=https://github.com/${{ github.repository }}
org.opencontainers.image.version=${{ github.sha }}
build-game-on-host:
strategy:
fail-fast: false
matrix:
include:
- target: windows
runs-on: windows
- target: macos
runs-on: macos
runs-on:
- ${{ matrix.runs-on }}
defaults:
run:
shell: bash
env:
BUILD_DEFINES: ${{ github.event.inputs.build-defines || '-DGITHUB_BUILD' }}
steps:
- name: Make git happy
run: |
git config --global --replace-all safe.directory $GITHUB_WORKSPACE
- name: Get checkout token
uses: actions/create-github-app-token@v1
id: app_token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PEM }}
owner: ${{ github.repository_owner }}
- name: Checkout repo
uses: funkincrew/ci-checkout@v6
with:
submodules: 'recursive'
token: ${{ steps.app_token.outputs.token }}
persist-credentials: false
- name: Setup build environment
uses: ./.github/actions/setup-haxe
with:
gh-token: ${{ steps.app_token.outputs.token }}
- name: Setup HXCPP dev commit
run: |
cd .haxelib/hxcpp/git/tools/hxcpp
haxe compile.hxml
cd ../../../../..
- name: Build game (windows)
if: ${{ matrix.target == 'windows' }}
run: |
haxelib run lime build windows -v -release $BUILD_DEFINES
timeout-minutes: 120
- name: Build game (unix)
if: ${{ matrix.target != 'windows' }}
run: |
haxelib run lime build ${{ matrix.target }} -v -release --times $BUILD_DEFINES
timeout-minutes: 120
- name: Save build artifact to Github Actions
if: ${{ github.event.inputs.save-artifact }}
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.target }}
path: export/release/${{matrix.target}}/bin/
- name: Upload build artifacts
uses: ./.github/actions/upload-itch
with:
butler-key: ${{ secrets.BUTLER_API_KEY}}
target: ${{ matrix.target }}
build-game-in-container:
needs: [gather-tags, docker-image]
if: ${{ ! cancelled() }}
runs-on: build-set
container: ghcr.io/funkincrew/build-dependencies:${{ needs.gather-tags.outputs.primary }}
strategy:
matrix:
include:
- target: linux
- target: html5
defaults:
run:
shell: bash
env:
BUILD_DEFINES: ${{ github.event.inputs.build-defines || '-DGITHUB_BUILD' }}
steps:
- name: Get checkout token
uses: actions/create-github-app-token@v1
id: app_token
with:
app-id: ${{ vars.APP_ID }}
private-key: ${{ secrets.APP_PEM }}
owner: ${{ github.repository_owner }}
- name: Checkout repo
uses: funkincrew/ci-checkout@v6
with:
submodules: 'recursive'
token: ${{ steps.app_token.outputs.token }}
persist-credentials: false
- name: Config haxelib
run: |
haxelib --never newrepo
echo "HAXEPATH=$(haxelib config)" >> "$GITHUB_ENV"
- name: Restore cached dependencies
id: cache-hmm
uses: actions/cache@v4
with:
path: .haxelib
key: haxe-hmm-${{ runner.os }}-${{ hashFiles('**/hmm.json') }}
- if: ${{ steps.cache-hmm.outputs.cache-hit != 'true' }}
name: Install dependencies
run: |
git config --global 'url.https://x-access-token:${{ steps.app_token.outputs.token }}@github.com/.insteadOf' https://github.com/
git config --global advice.detachedHead false
haxelib --global run hmm install -q
cd .haxelib/hxcpp/git/tools/hxcpp && haxe compile.hxml
- if: ${{ matrix.target != 'html5' }}
name: Restore hxcpp cache
uses: actions/cache@v4
with:
path: /usr/share/hxcpp
key: haxe-hxcpp-${{ runner.os }}-${{ github.ref_name }}-${{ github.sha }}
restore-keys: haxe-hxcpp-${{ runner.os }}-${{ github.ref_name }}
- name: Build game
run: |
haxelib run lime build ${{ matrix.target }} -v -release --times $BUILD_DEFINES
timeout-minutes: 120
- name: Save build artifact to Github Actions
if: ${{ github.event.inputs.save-artifact }}
uses: actions/upload-artifact@v4
with:
name: build-${{ matrix.target }}
path: export/release/${{matrix.target}}/bin/
- name: Upload build artifacts
uses: ./.github/actions/upload-itch
with:
butler-key: ${{ secrets.BUTLER_API_KEY}}
target: ${{ matrix.target }}
@@ -1,38 +0,0 @@
name: Cancel queued workflows on PR merge
on:
pull_request:
types:
- closed
jobs:
cancel_stuff:
if: github.event.pull_request.merged == true
runs-on: build-set
permissions:
actions: write
steps:
- name: Cancel queued workflows for ${{ github.event.pull_request.head.ref }}
uses: actions/github-script@v7
with:
result-encoding: string
retries: 3
script: |
let branch_workflows = await github.rest.actions.listWorkflowRuns({
owner: context.repo.owner,
repo: context.repo.repo,
workflow_id: "build-shit.yml",
status: "queued",
branch: "${{ github.event.pull_request.head.ref }}"
});
let runs = branch_workflows.data.workflow_runs;
runs.forEach((run) => {
github.rest.actions.cancelWorkflowRun({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: run.id
});
});
console.log(runs);
-29
View File
@@ -1,29 +0,0 @@
# Perform actions when labels are applied to issues, discussions, or pull requests
# See .github/label-actions.yml
name: 'Label Actions'
on:
issues:
types:
- labeled
- unlabeled
pull_request_target:
types:
- labeled
- unlabeled
discussion:
types:
- labeled
- unlabeled
permissions:
contents: read
issues: write
pull-requests: write
discussions: write
jobs:
action:
runs-on: ubuntu-latest
steps:
- uses: dessant/label-actions@v4
@@ -1,19 +0,0 @@
name: "Pull Request Labeler 2 (Runs on PR creation)"
on:
pull_request_target:
types:
- opened
jobs:
# Apply `status: pending triage` to newly created pull requests
apply-pending-triage:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Apply "status pending triage" to new pull requests
uses: actions-ecosystem/action-add-labels@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
labels: "status: pending triage"
-29
View File
@@ -1,29 +0,0 @@
name: "Pull Request Labeler"
on:
- pull_request_target
jobs:
# Apply labels to pull requests based on which files were edited
labeler:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- name: Set basic labels
uses: actions/labeler@v5
with:
sync-labels: true
# Apply labels to pull requests based on how many lines were edited
changed-lines-count-labeler:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
name: An action for automatically labelling pull requests based on the changed lines count
steps:
- name: Set change count labels
uses: vkirilichev/changed-lines-count-labeler@v0.2
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
configuration-path: .github/changed-lines-count-labeler.yml
+1 -16
View File
@@ -1,17 +1,2 @@
.DS_STORE
.haxelib/
.vs/
APIStuff.hx
dump/
export/
RECOVER_*.fla
shitAudio/
.build_time
.swp
NewgroundsCredentials.hx
# Exclude JS stuff
node_modules/
package.json
package-lock.json
.aider*
.vscode/
-6
View File
@@ -1,6 +0,0 @@
[submodule "assets"]
path = assets
url = https://github.com/FunkinCrew/Funkin-assets-secret
[submodule "art"]
path = art
url = https://github.com/FunkinCrew/Funkin-art-secret
-13
View File
@@ -1,13 +0,0 @@
# Ignore artifacts
export
# Ignore all JSONS in the images folder (including FlxAnimate JSONs)
assets/preload/images
assets/shared/images
assets/weekend1/images
# Don't ignore data files
# TODO: These don't work.
!assets/preload/data/
assets/exclude/data/credits.json
-21
View File
@@ -1,21 +0,0 @@
/**
* Configuration for JSON file formatting.
*/
module.exports = {
// Line width before Prettier tries to add new lines.
printWidth: 80,
// Indent with 2 spaces.
tabs: false,
useTabs: false,
tabWidth: 2,
// Use double quotes.
singleQuote: false,
quoteProps: "preserve",
parser: "json",
bracketSpacing: true, // Spacing between brackets in object literals.
trailingComma: "none", // No trailing commas.
semi: false, // No semicolons at ends of statements.
};
-11
View File
@@ -1,11 +0,0 @@
{
"recommendations": [
"nadako.vshaxe", // Basic Haxe integration
"wiggin77.codedox", // Haxe documentation
"vshaxe.haxe-checkstyle", // Haxe code style and conventions
"vshaxe.hxcpp-debugger", // CPP debugging
"openfl.lime-vscode-extension", // Lime integration
"esbenp.prettier-vscode", // JSON formatting
"redhat.vscode-xml" // XML formatting
]
}
-41
View File
@@ -1,41 +0,0 @@
{
"version": "0.2.0",
"configurations": [
{
// Launch in native/CPP on Windows/OSX/Linux
"name": "Lime Build+Debug",
"type": "lime",
"request": "launch"
},
{
// Launch in native/CPP on Windows/OSX/Linux
"name": "Lime Debug (No Build)",
"type": "lime",
"request": "launch",
"preLaunchTask": null
},
{
// Launch in browser
"name": "HTML5 Debug",
"type": "chrome",
"request": "launch",
"url": "http://127.0.0.1:3001",
"sourceMaps": true,
"webRoot": "${workspaceFolder}",
"preLaunchTask": "debug: html"
},
{
// Performs a build for debugging macros
// Debugging is attached on the compilation rather than the game itself
"name": "Haxe Eval",
"type": "haxe-eval",
"request": "launch"
},
{
// Attaches the debugger to an already running game
"name": "HXCPP - Attach",
"type": "hxcpp",
"request": "attach"
}
]
}
-229
View File
@@ -1,229 +0,0 @@
{
"[haxe]": {
// Automatically keep Haxe files formatted.
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.codeActionsOnSave": {
"source.organizeImports": "never"
},
"editor.defaultFormatter": "nadako.vshaxe",
"editor.tabSize": 2
},
"[json]": {
// Automatically keep JSON files formatted.
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
// Automatically keep JSONC files formatted.
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"prettier.tabWidth": 2,
// XML formatting style configuration
"xml.format.enabled": true,
"xml.format.legacy": false,
"xml.format.emptyElements": "collapse",
"xml.preferences.quoteStyle": "double",
"xml.format.enforceQuoteStyle": "preferred",
"xml.format.preserveAttributeLineBreaks": false,
"xml.format.preservedNewlines": 0,
"xml.format.splitAttributes": false,
"xml.format.joinCDATALines": true,
"xml.format.preserveEmptyContent": false,
"xml.format.joinCommentLines": false,
"xml.format.joinContentLines": false,
"xml.format.spaceBeforeEmptyCloseTag": true,
"xml.format.xsiSchemaLocationSplit": "onPair",
"xml.format.splitAttributesIndentSize": 2,
"xml.format.closingBracketNewLine": false,
"xml.format.preserveSpace": [
"xsl:text",
"xsl:comment",
"xsl:processing-instruction",
"literallayout",
"programlisting",
"screen",
"synopsis",
"pre",
"xd:pre"
],
"xml.format.maxLineWidth": 0,
"xml.format.grammarAwareFormatting": true,
// Generic file formatting style configuration
"files.insertFinalNewline": true,
"files.trimFinalNewlines": false,
"files.trimTrailingWhitespace": true,
// Automatically detect indentation.
"editor.detectIndentation": true,
"editor.insertSpaces": true,
"editor.tabSize": 2,
// Automatically enforce Linux style line endings.
"files.eol": "\n",
"haxe.displayPort": "auto",
"haxe.enableCompilationServer": true,
"haxe.enableServerView": true,
"haxe.displayServer": {
"arguments": ["-v"]
},
// Fix file associations for HScript.
"files.associations": {
"*.hxp": "haxe",
"*.hscript": "haxe",
"*.haxe": "haxe",
"*.hxs": "haxe",
"*.hxc": "haxe"
},
"projectManager.git.baseFolders": ["./"],
"haxecheckstyle.sourceFolders": ["src", "source"],
"haxecheckstyle.externalSourceRoots": [],
"haxecheckstyle.configurationFile": "checkstyle.json",
"haxecheckstyle.codeSimilarityBufferSize": 100,
"lime.targetConfigurations": [
{
"label": "Windows / Debug (Discord)",
"target": "windows",
"args": ["-debug", "-DFEATURE_DEBUG_FUNCTIONS", "-DFEATURE_DISCORD_RPC"]
},
{
"label": "Windows / Debug (FlxAnimate Test)",
"target": "windows",
"args": ["-debug", "-DANIMATE", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "HashLink / Debug (FlxAnimate Test)",
"target": "hl",
"args": ["-debug", "-DANIMATE"]
},
{
"label": "Windows / Debug (Straight to Freeplay)",
"target": "windows",
"args": ["-debug", "-DFREEPLAY", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "HashLink / Debug (Straight to Freeplay)",
"target": "hl",
"args": ["-debug", "-DFREEPLAY"]
},
{
"label": "Windows / Debug (Straight to Play - Bopeebo Normal)",
"target": "windows",
"args": [
"-debug",
"-DSONG=bopeebo -DDIFFICULTY=normal",
"-DFEATURE_DEBUG_FUNCTIONS"
]
},
{
"label": "Windows / Debug (Straight to Play - 2hot)",
"target": "windows",
"args": ["-debug", "-DSONG=2hot", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "HashLink / Debug (Straight to Play - Bopeebo Normal)",
"target": "hl",
"args": ["-debug", "-DSONG=bopeebo -DDIFFICULTY=normal"]
},
{
"label": "Windows / Debug (Conversation Test)",
"target": "windows",
"args": ["-debug", "-DDIALOGUE", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "HashLink / Debug (Conversation Test)",
"target": "hl",
"args": ["-debug", "-DDIALOGUE"]
},
{
"label": "Windows / Debug (Results Screen Test)",
"target": "windows",
"args": ["-debug", "-DRESULTS"]
},
{
"label": "Windows / Debug (Straight to Animation Editor)",
"target": "windows",
"args": ["-debug", "-DANIMDEBUG", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "Windows / Debug (Debug hxvlc)",
"target": "windows",
"args": ["-debug", "-DHXC_LIBVLC_LOGGING", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "HashLink / Debug (Straight to Animation Editor)",
"target": "hl",
"args": ["-debug", "-DANIMDEBUG"]
},
{
"label": "Windows / Debug (Latency Test)",
"target": "windows",
"args": ["-debug", "-DLATENCY", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "HashLink / Debug (Latency Test)",
"target": "hl",
"args": ["-debug", "-DLATENCY"]
},
{
"label": "Windows / Debug (Waveform Test)",
"target": "windows",
"args": ["-debug", "-DWAVEFORM", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "Windows / Release (GitHub Actions)",
"target": "windows",
"args": ["-release", "-DGITHUB_BUILD"]
},
{
"label": "HashLink / Debug (Waveform Test)",
"target": "hl",
"args": ["-debug", "-DWAVEFORM"]
},
{
"label": "HTML5 / Debug (Watch)",
"target": "html5",
"args": ["-debug", "-watch", "-DFEATURE_DEBUG_FUNCTIONS"]
}
],
"lime.buildTypes": [
{
"label": "Debug",
"args": ["-debug", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "Debug (Tracy)",
"args": ["-debug", "-DFEATURE_DEBUG_TRACY", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "Debug (Straight to Chart Editor)",
"args": ["-debug", "-DCHARTING", "-DFEATURE_DEBUG_FUNCTIONS"]
},
{
"label": "Release",
"args": ["-release"]
},
{
"label": "Release (GitHub Actions)",
"args": ["-release", "-DGITHUB_BUILD"]
}
],
"cmake.configureOnOpen": false,
"coverage-gutters.coverageFileNames": [
"lcov.info",
"cov.xml",
"coverage.xml",
"jacoco.xml",
"coverage.cobertura.xml"
]
}
-13
View File
@@ -1,13 +0,0 @@
{
"version": "2.0.0",
"tasks": [
{
"type": "lime",
"command": "test",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
-859
View File
@@ -1,859 +0,0 @@
# Changelog
All notable changes will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.6.2] - 2025-03-31
### Added
- Updated the 0.6 credits list
### Fixed
- Additional shader fix for Stress (Pico Mix) crashing at the end (was the same issue as Senpai Pico shader error, just in a different shaderfile)
## [0.6.1] - 2025-03-31
### Fixed
- Hopefully Senpai Pico/Erect mix shader isn't brokey
- NG API encryption key was added proper, so medals + leaderboards posting should work
## [0.6.0] - 2025-03-31
The Pit Stop 2 update!
### Added
- Added six (!) new playable songs! Check them out in the Freeplay menu for their respective characters.
- Cocoa (Pico Mix)
- Senpai (Pico Mix)
- Roses (Pico Mix)
- Stress (Pico Mix)
- Darnell Erect
- Lit Up (BF Mix)
- Senpai (Pico Mix) and Roses (Pico Mix) take place on a new Erect variant of the Week 6 stage!
- This stage is now used by Senpai Erect, Roses Erect, and Thorns Erect.
- Stress (Pico Mix) takes place on a new Erect variant of the Week 7 stage!
- This stage is now used by Ugh Erect, Ugh (Pico Mix), and Guns (Pico Mix).
- Newly revamped Newgrounds integration! You can now earn Medals and submit scores to the Leaderboards while logged in on Newgrounds!
- Existing medals have been re-enabled, and new medals have been added! Think you're a Rap God?
- This feature is also available on desktop, check the options menu to find the prompt to login.
- There is no feature to view unlocked medals in-game yet, but the feature is planned.
- Reworked the sticker system to allow different sets of stickers to be used for different characters and songs.
- Added new stickers which appear when exiting Pico songs!
- The new sticker system isn't fully available to mods yet, but we're working on it!
- New option in the Preferences menu: Strumline Backgrounds!
- Options in the Preferences menu now display an on-screen description when selected.
- New song event type in the Chart Editor: Set Health Icon!
- This event is now used in Stress (Pico Mix).
- The HOME and END keys now jump to the top and bottom of the Freeplay song list, respectively. ([bb974c2](https://github.com/FunkinCrew/Funkin/commit/bb974c264270d10ff503784063e5d77bb352b3f7)) - by @AbnormalPoof in [#4103](https://github.com/FunkinCrew/Funkin/pull/4103)
- Added an option to launch the game in fullscreen. ([ee53ccd](https://github.com/FunkinCrew/Funkin/commit/ee53ccd32721e0790adfe82c60d4aca419db0a7f)) - by @AbnormalPoof in [#3738](https://github.com/FunkinCrew/Funkin/pull/3738)
- Added on-screen descriptions for each item in the Preferences menu. ([a17b0e8](https://github.com/FunkinCrew/Funkin/commit/a17b0e8b3cc1d56fcdc0b51eaca9fd57cdb5bce0)) - by @anysad in [#3872](https://github.com/FunkinCrew/Funkin/pull/3872)
- Added precise scrolling in the Chart Editor using Ctrl-Mouse Wheel. ([0d8e4a5](https://github.com/FunkinCrew/Funkin/commit/0d8e4a53305d6d069454812766300122f3581e31)) - by @ninjamuffin99 in [#3806](https://github.com/FunkinCrew/Funkin/pull/3806)
- Added a “None” option to the character selector in the Chart Editor. ([d9637d3](https://github.com/FunkinCrew/Funkin/commit/d9637d3a19466b9fc68a102676c46a74ef504909)) - by @Lasercar in [#4279](https://github.com/FunkinCrew/Funkin/pull/4279)
- Added the ability to flip the character in the Animation Editor. ([de02137](https://github.com/FunkinCrew/Funkin/commit/de02137d7c7d1779e85aeda34743f506a5b9cc27)) - by @AbnormalPoof in [#3028](https://github.com/FunkinCrew/Funkin/pull/3028)
- Added offsets support for album titles. ([69d8570](https://github.com/FunkinCrew/Funkin/commit/69d8570a9eb06011ed6dd95fcbef83d90f7f8684)) - by @AbnormalPoof in [#3618](https://github.com/FunkinCrew/Funkin/pull/3618)
- Added three new properties to stage data: `angle`, `scroll`, and `alpha`. ([ff56b19](https://github.com/FunkinCrew/Funkin/commit/ff56b1948aef42bbb6bb4ede4f9b2012d49ab044)) - by @AbnormalPoof in [#3720](https://github.com/FunkinCrew/Funkin/pull/3720)
- Added script events for losing/gaining focus. ([4b127b6](https://github.com/FunkinCrew/Funkin/commit/4b127b64130f6f753d0574ec66a1672322e4bd13)) - by @AbnormalPoof in [#3721](https://github.com/FunkinCrew/Funkin/pull/3721)
- Added 10 new functions to `ReflectUtil`. ([6216655](https://github.com/FunkinCrew/Funkin/commit/62166554e7a176245d1a63bd15122033044c4e40)) - by @AbnormalPoof in [#3622](https://github.com/FunkinCrew/Funkin/pull/3622), [#3809](https://github.com/FunkinCrew/Funkin/pull/3809), and [#4019](https://github.com/FunkinCrew/Funkin/pull/4019)
- Added `DEBUG_BUILD` value to `Constants` to indicate whether a build has debug functions enabled. ([ad45b72](https://github.com/FunkinCrew/Funkin/commit/ad45b72b1ae8eb73a12dc51bcb59f66cc55e7bbd)) - by @AbnormalPoof in [#3853](https://github.com/FunkinCrew/Funkin/pull/3853)
### Changed
- Switched from hxCodec to hxvlc for video playback. This may break a mod or two.
- Check the [Funkin Modding Docs](https://funkincrew.github.io/funkin-modding-docs/09-migration/09-02-0.5.0-to-0.6.0.html) for more info on how to update your mods.
- Polymod should now ignore `.git` files when loading mods.
- The pause menu can now be opened and closed rapidly.
- Adjusted difficulty ratings and scroll speeds for many songs.
- Chart Editor event fields now allow for values to be as specific as desired.
- For example, the Zoom Camera event can now be set to 0.9857.
- Lots of improvements to GitHub issue and pull request organization. - by @Hundrec and @AbnormalPoof
- Overhauled the Changelog to improve readability and properly credit contributors. ([4383fcf](https://github.com/FunkinCrew/Funkin/commit/4383fcf32c280a1c0ee7b9c80d255611d497cabc)) - by @Hundrec in [#4296](https://github.com/FunkinCrew/Funkin/pull/4296) and [#4298](https://github.com/FunkinCrew/Funkin/pull/4298)
- Made various improvements to the screenshot function. ([9ce7bbc](https://github.com/FunkinCrew/Funkin/commit/9ce7bbcfbb8f30ae120c876194f89bc4c787f585)) - by @Lasercar in [#4082](https://github.com/FunkinCrew/Funkin/pull/4082)
- Accept keybinds (Z and Space by default) can now be used to exit the Results screen. ([edb270d](https://github.com/FunkinCrew/Funkin/commit/edb270d15e41784dccbf75639ac731840e80fe23)) - by @JVNpixels in [#3799](https://github.com/FunkinCrew/Funkin/pull/3799)
- Reordered UI keybinds in the controls menu for consistency. ([a01bcc3](https://github.com/FunkinCrew/Funkin/commit/a01bcc3da836ec52851ca9de13ef459daf61269a)) - by @lemz1 in [#3027](https://github.com/FunkinCrew/Funkin/pull/3027)
- New save files now have default Freeplay controls for gamepads. ([2b7f62e](https://github.com/FunkinCrew/Funkin/commit/2b7f62edd33de5527e259d9e5643f926d35da734)) - by @MrMadera in [#3934](https://github.com/FunkinCrew/Funkin/pull/3934)
- Made scrolling smoother in the Chart Editor. ([20d9016](https://github.com/FunkinCrew/Funkin/commit/20d90169845f1e50f849e39f4c5f818359756c78)) - by @ninjamuffin99 in [#3768](https://github.com/FunkinCrew/Funkin/pull/3768)
- Mods with missing dependencies are now skipped instead of preventing all mods from loading. ([1c2fb43](https://github.com/FunkinCrew/Funkin/commit/1c2fb43ae16cf40be5ef94c40b047e8e772b1211)) - by @AbnormalPoof in [#3993](https://github.com/FunkinCrew/Funkin/pull/3993)
- Slightly improved flexibility for modding note hit animations. ([3aad825](https://github.com/FunkinCrew/Funkin/commit/3aad825f865c4ed87016983d44121e2c1610d332)) - by @TechnikTil in [#3936](https://github.com/FunkinCrew/Funkin/pull/3936)
- Introduced several QoL modding changes. ([785c4be](https://github.com/FunkinCrew/Funkin/commit/785c4be88b52dc1b5899013822fc004ba7d9894d)) - by @Kade-github in [#4009](https://github.com/FunkinCrew/Funkin/pull/4009)
- Lots of smaller changes.
### Fixed
- Shaders no longer create thin seams within atlas sprites.
- Completing a song in Practice Mode no longer plays a new rank animation in the Freeplay menu.
- Fixed lots of charting issues across many songs.
- The Chart Editor grid now properly adjusts to the new BPM after switching variations.
- Fixed a few crashes in the Stage Editor.
- Fixed a bug where the song would restart from the beginning instead of moving to the Results screen. ([3667c51](https://github.com/FunkinCrew/Funkin/commit/3667c51c1efe14cfe7c810e2f35991f08f50781a)) - by @KoloInDaCrib in [#4309](https://github.com/FunkinCrew/Funkin/pull/4309) and @Lasercar in [#4330](https://github.com/FunkinCrew/Funkin/pull/4330)
- Reduced stuttering when resyncing instrumental and voices tracks. ([22d41d2](https://github.com/FunkinCrew/Funkin/commit/22d41d21b88acb7422a0afcda8414682710bd2ed)) - by @TechnikTil in [#3955](https://github.com/FunkinCrew/Funkin/pull/3955)
- Songs with only instrumental tracks no longer stutter. ([dfe02ec](https://github.com/FunkinCrew/Funkin/commit/dfe02ec668b61d6308f459c978d12a7487f9dc28)) - by @KoloInDaCrib in [#3861](https://github.com/FunkinCrew/Funkin/pull/3861)
- The debug mouse cursor no longer flickers before the Title Screen loads. ([1c12b84](https://github.com/FunkinCrew/Funkin/commit/1c12b8467eca350eb28138473360d5358fa620e2)) - by @sphis-Sinco in [#3881](https://github.com/FunkinCrew/Funkin/pull/3881)
- Unbound keys now display as [N/A] instead of crashing the game. ([94e5d3c](https://github.com/FunkinCrew/Funkin/commit/94e5d3ca258cbaa5d9ab6f0cb26feda83b3433a2)) - by @NotHyper-474 in [#4355](https://github.com/FunkinCrew/Funkin/pull/4355)
- Songs can no longer be spam-selected after selecting an instrumental in Freeplay. ([0e0c4ae](https://github.com/FunkinCrew/Funkin/commit/0e0c4aeb7745cfb9479685ccbb635cf3743cddbb)) - by @AbnormalPoof in [#3866](https://github.com/FunkinCrew/Funkin/pull/3866)
- The Random capsule can now switch to Erect/Nightmare difficulties in Freeplay. ([6f32747](https://github.com/FunkinCrew/Funkin/commit/6f327474f30374f50774f432ea3ccb6d02579445)) - by @KoloInDaCrib in [#3838](https://github.com/FunkinCrew/Funkin/pull/3838)
- Fixed a rare bug where a song would not register as beaten. ([a3e2373](https://github.com/FunkinCrew/Funkin/commit/a3e23733db104b1ef00cfcff17db3a5d032a4d67)) - by @AbnormalPoof in [#3820](https://github.com/FunkinCrew/Funkin/pull/3820)
- The difficulty graphic on the Results screen no longer cuts off incorrectly. ([b13bf05](https://github.com/FunkinCrew/Funkin/commit/b13bf05d16ff2977309e0c7ba3f049c0134e8902)) - by @AbnormalPoof in [#4161](https://github.com/FunkinCrew/Funkin/pull/4161)
- Four-digit long Total Notes values in the Results screen no longer overflow to the right. ([2be4c0c](https://github.com/FunkinCrew/Funkin/commit/2be4c0c7196e018a43f9697f015179f3efc3fcdb)) - by @Hundrec in [#4356](https://github.com/FunkinCrew/Funkin/pull/4356)
- The Character Select screen no longer plays the unlock animation for some locked characters. ([7058126](https://github.com/FunkinCrew/Funkin/commit/7058126e99adb55e43f5f487b007d3efa9f324d5)) - by @AbnormalPoof in [#3748](https://github.com/FunkinCrew/Funkin/pull/3748)
- All time signatures in the Chart Editor now display the correct number of beat/step tick lines. ([e570dfb](https://github.com/FunkinCrew/Funkin/commit/e570dfb8e754f9cb29ac2d8fff6e8513bc68b630)) - by @Keoiki in [#2860](https://github.com/FunkinCrew/Funkin/pull/2860)
- The Debug menu now opens with the correct camera position. ([090ddd1](https://github.com/FunkinCrew/Funkin/commit/090ddd1f1c2aa48fdb83127b2235041643c99af5)) - by @ninjamuffin99 in [#3769](https://github.com/FunkinCrew/Funkin/pull/3769)
- Removed some Freeplay variables left over from legacy versions. ([6f6529f](https://github.com/FunkinCrew/Funkin/commit/6f6529f3c460721755dfdd0a7a26578c0de429d2)) - by @AbnormalPoof in [#4370](https://github.com/FunkinCrew/Funkin/pull/4370)
- Blacklisted an additional class for security. ([3492d41](https://github.com/FunkinCrew/Funkin/commit/3492d412c65c7f3fd61e6fc6c9410d8467122ab0)) - by @AbnormalPoof in [#4074](https://github.com/FunkinCrew/Funkin/pull/4074)
- Removed an unused class from Polymod blacklist. ([06c12e3](https://github.com/FunkinCrew/Funkin/commit/06c12e36c6bd6df4e2be32a3bec540172e79e162)) - by @AbnormalPoof in [#3729](https://github.com/FunkinCrew/Funkin/pull/3729)
- Many additional small bug fixes.
## New Contributors for 0.6.0
* @PatoFlamejanteTV made their first contribution in [#3843](https://github.com/FunkinCrew/Funkin/pull/3843)
* @sphis-Sinco made their first contribution in [#3881](https://github.com/FunkinCrew/Funkin/pull/3881)
* @MrMadera made their first contribution in [#3934](https://github.com/FunkinCrew/Funkin/pull/3934)
* @MidyGamy made their first contribution in [#4068](https://github.com/FunkinCrew/Funkin/pull/4068)
* @Lasercar made their first contribution in [#4082](https://github.com/FunkinCrew/Funkin/pull/4082)
* @MrScottyPieey made their first contribution in [#4085](https://github.com/FunkinCrew/Funkin/pull/4085)
## [0.5.3] - 2024-10-18
This patch resolves a critical issue that could cause user's save data to become corrupted. It is recommended that users switch to this version immediately and avoid using version 0.5.2.
### Fixed
- Fixed a critical issue in which the Stage Editor theme value could not be parsed by older versions of the game, resulting in all save data being destroyed.
- Added a check that prevents save data from being loaded if it is corrupted rather than overwriting it.
- Converted `optionsStageEditor.theme`, `optionsChartEditor.theme`, and `optionsChartEditor.chartEditorLiveInputStyle` in the save data from an Enum to a String to fix save data compatibility issues.
- In the future, Enum values should not be used in order to prevent incompatibilities caused by introducing new types to the save data that older versions cannot parse.
## [0.5.2] - 2024-10-11
### Added
- Added InverseDotsShader that emulates flash selections. ([097dbf5](https://github.com/FunkinCrew/Funkin/commit/097dbf5bb4346d431d8ca9f0ec4bc5b5e6f4523f)) - by @ninjamuffin99
- Added a new reworked Stage Editor. ([27a0b44](https://github.com/FunkinCrew/Funkin/pull/3482/commits/27a0b4426f86f04362f97e16e2eff580c9402f34)) - by @KoloInDaCrib in [#3482](https://github.com/FunkinCrew/Funkin/pull/3482)
- Added the `color` attribute to stage prop JSON data to allow them to be tinted without code. ([27a0b44](https://github.com/FunkinCrew/Funkin/pull/3482/commits/27a0b4426f86f04362f97e16e2eff580c9402f34)) - by @KoloInDaCrib in [#3482](https://github.com/FunkinCrew/Funkin/pull/3482)
- Added the `angle` attribute to stage prop JSON data to allow them to be rotated without code. ([27a0b44](https://github.com/FunkinCrew/Funkin/pull/3482/commits/27a0b4426f86f04362f97e16e2eff580c9402f34)) - by @KoloInDaCrib in [#3482](https://github.com/FunkinCrew/Funkin/pull/3482)
- Added the `blend` attribute to the stage prop JSON data to allow blend modes to be applied without code. ([27a0b44](https://github.com/FunkinCrew/Funkin/pull/3482/commits/27a0b4426f86f04362f97e16e2eff580c9402f34)) - by @KoloInDaCrib in [#3482](https://github.com/FunkinCrew/Funkin/pull/3482)
### Fixed
- Input offsets no longer cause songs to stutter or skip. ([410cfe9](https://github.com/FunkinCrew/Funkin/commit/410cfe972d6df9de4d4d128375cf8380c4f06d92)) - by @KoloInDaCrib in [#3546](https://github.com/FunkinCrew/Funkin/pull/3546)
- Exiting the Input Offset menu no longer crashes the game. ([39b1a42](https://github.com/FunkinCrew/Funkin/commit/39b1a42cfeafe2b7be8b66e2fe529e853d9ae197)) - by @lemz1 in [#3493](https://github.com/FunkinCrew/Funkin/pull/3493)
- Pico's songs now display properly in the Freeplay Menu. ([1d2bd61](https://github.com/FunkinCrew/Funkin/commit/1d2bd61119e5f418df7f11d7ef2a0fdedee17d3d)) - by @ninjamuffin99 in [#3506](https://github.com/FunkinCrew/Funkin/pull/3506)
- Fixed issues with variation/difficulty loading for Freeplay Menu which caused some songs to disappear. ([c0314c8](https://github.com/FunkinCrew/Funkin/commit/c0314c85ecd5116641aff3de8e9153f7fe48e79c)) - by @ninjamuffin99 in [#3506](https://github.com/FunkinCrew/Funkin/pull/3506)
- `Song.getFirstValidVariation()` now properly takes into account multiple variation/difficulty inputs. ([d2e2987](https://github.com/FunkinCrew/Funkin/commit/d2e29879fe2acc6febfe0f335f655b741d630c34)) - by @ninjamuffin99 in [#3506](https://github.com/FunkinCrew/Funkin/pull/3506)
- Song previews no longer restart when changing difficulties within the same variation. ([903b3fc](https://github.com/FunkinCrew/Funkin/commit/903b3fc59905a70802618a1cd67407722ea956ed)) - by @KoloInDaCrib in [#3587](https://github.com/FunkinCrew/Funkin/pull/3587)
- Main menu music no longer cuts out when switching states. ([711e0a6](https://github.com/FunkinCrew/Funkin/commit/711e0a6b7547eb04113e9318dab900f01ad576a5)) - by @EliteMasterEric in [#3530](https://github.com/FunkinCrew/Funkin/pull/3530)
- Centered preloader 'fnf' and 'dsp' text so they don't clip anymore. ([165ad60](https://github.com/FunkinCrew/Funkin/commit/165ad6015539a295e9eefdaef291c312e9566b26)) - by @Burgerballs in [#3567](https://github.com/FunkinCrew/Funkin/pull/3567)
- FPS setting in options menu no longer flickers when selected. ([b2647fe](https://github.com/FunkinCrew/Funkin/commit/b2647fe09f5281ce7074b26d47bc1524764168ee)) - by @lemz1 in [#3629](https://github.com/FunkinCrew/Funkin/pull/3629)
- Volume sound tray is now anti-aliased/smoothed. ([e66290c](https://github.com/FunkinCrew/Funkin/commit/e66290c55f7141402223644f06ec8a69edeee089)) - by @Kn1ghtNight in [#2853](https://github.com/FunkinCrew/Funkin/pull/2853)
- Fixed looping animations for modded StrumlineNote sprites. ([bc546e8](https://github.com/FunkinCrew/Funkin/commit/bc546e86aa77ffc795b3f079de5f590289a9c583)) - by @DaWaterMalone in [#3577](https://github.com/FunkinCrew/Funkin/pull/3577)
- Stopped allowing inputs after selecting a character in Character Select. ([dbf66ac](https://github.com/FunkinCrew/Funkin/commit/dbf66ac250137262866d75f7c1387645b35d88d0)) - by @ACrazyTown in [#3398](https://github.com/FunkinCrew/Funkin/pull/3398)
- The player and girlfriend no longer disappear or overlap themselves in Character Select. ([9324359](https://github.com/FunkinCrew/Funkin/commit/9324359d2fce6a7097077d169a0efcd80e6fefa1)) - by @gamerbross in [#3457](https://github.com/FunkinCrew/Funkin/pull/3457)
- The player no longer enters twice after entering Character Select or when spamming buttons. ([30a9887](https://github.com/FunkinCrew/Funkin/commit/30a98871367b494c85934cd3fcfa91eeb774a7d5)) - by @gamerbross in [#3457](https://github.com/FunkinCrew/Funkin/pull/3457)
- The wrong girlfriend no longer appears in Character Select. ([9324359](https://github.com/FunkinCrew/Funkin/commit/9324359d2fce6a7097077d169a0efcd80e6fefa1)) - by @gamerbross in [#3457](https://github.com/FunkinCrew/Funkin/pull/3457)
- Cursor now updates properly when moving and selecting in Character Select. ([9324359](https://github.com/FunkinCrew/Funkin/commit/9324359d2fce6a7097077d169a0efcd80e6fefa1)) - by @gamerbross in [#3457](https://github.com/FunkinCrew/Funkin/pull/3457)
- Cursor now moves properly at lower framerates in Character Select. ([ab5bda3](https://github.com/FunkinCrew/Funkin/commit/ab5bda3ee573a6e03595ec6941e6de38df851889)) - by @ninjamuffin99 in [#3507](https://github.com/FunkinCrew/Funkin/pull/3507)
- Exiting the Chart Editor no longer crashes the game. ([f52472a](https://github.com/FunkinCrew/Funkin/commit/f52472a4767388b22cfbab0f5f7860f6e6762856)) - by @EliteMasterEric and @ianharrigan in [#3519](https://github.com/FunkinCrew/Funkin/pull/3519)
- The millisecond counter in the Chart Editor playbar is now properly formatted. ([f1b6e6c](https://github.com/FunkinCrew/Funkin/commit/f1b6e6c4e42455e0c2900d738ebc24893f2479a0)) - by @afreetoplaynoob in [#3537](https://github.com/FunkinCrew/Funkin/pull/3537)
- Pressing F1 multiple times no longer creates more than one help window in the Chart Editor. ([777978f](https://github.com/FunkinCrew/Funkin/commit/777978f5a544e1b7c89b47dcc365f734eb6d0df1)) - by @amyspark-ng in [#3552](https://github.com/FunkinCrew/Funkin/pull/3552)
- The dialog box now shows up in the Animation Editor. ([1fde59f](https://github.com/FunkinCrew/Funkin/commit/1fde59f999eac94eb10fc22094885de2f5310705)) - by @EliteMasterEric in [#3530](https://github.com/FunkinCrew/Funkin/pull/3530)
- (debug) No more fullscreening when typing "F" in the flixel debugger console. ([29b6763](https://github.com/FunkinCrew/Funkin/commit/29b6763290df05d42039806f3d142740568c80f0)) - by @ninjamuffin99
- Added additional classes to Polymod blacklist for security. ([b0b73c8](https://github.com/FunkinCrew/Funkin/commit/b0b73c83994f33118c6a69550da9ec8ec1c07adc)) - by @EliteMasterEric in [#3558](https://github.com/FunkinCrew/Funkin/pull/3558)
## New Contributors for 0.5.2
* @Kn1ghtNight made their first contribution in [#2853](https://github.com/FunkinCrew/Funkin/pull/2853)
* @Cartridge-Man made their first contribution in [#3082](https://github.com/FunkinCrew/Funkin/pull/3082)
* @afreetoplaynoob made their first contribution in [#3537](https://github.com/FunkinCrew/Funkin/pull/3537)
* @amyspark-ng made their first contribution in [#3552](https://github.com/FunkinCrew/Funkin/pull/3552)
* @DaWaterMalone made their first contribution in [#3577](https://github.com/FunkinCrew/Funkin/pull/3577)
## [0.5.1] - 2024-09-30
### Added
- Readded the Merch button to the main menu.
- Click it to check out our Makeship campaign!
- Added Discord Rich Presence support. People can now see what song you are playing from Discord!
- We'll get mod support working for this eventually.
- Added an FPS limit option to the Preferences menu.
- You can now change how high the game tries to push your frame rate, from as little as 30 to as high as 300.
- Added support for the Tracy instrumentation-based profiling tool in development environments. Enable it with the `-DFEATURE_DEBUG_TRACY` compilation flag.
- For the people who aren't nerds, this is a tool for tracking down performance issues!
- Playable Character data now defines an asset location for an Animate Atlas to display Girlfriend.
- This includes the option to display a visualizer, if configured correctly.
- Separated the Perfect and Perfect (Gold) animations in the Playable Character data.
- Base game just uses the same animation for both, but modders can split the animations up on their custom characters now.
- Added a bunch of Flash project files from the Weekend 1 and Playable Pico updates to the `funkin.art` repository.
- Added the `flipX` and `flipY` parameters to props in the Stage data. ([community feature by AbnormalPoof](https://github.com/FunkinCrew/Funkin/pull/3474))
### Changed
- Pico is no longer unlocked for all players automatically.
- You need to beat Weekend 1 in Story Mode in order to unlock him in Character Select.
- The game's mod API version check is now more dynamic.
- The update accepts mods with API version `0.5.0` as well as `0.5.1`.
- Removed some of the more spammy `trace()` calls to improve debugging a bit.
- The game now complains if you create a song variation with symbols in its name.
- Switched the force crash keybind from Ctrl-Shift-L to Ctrl-Alt-Shift-L.
- Added some additional functions to `funkin.Assets` after `openfl.utils.Assets` had to get blacklisted from scripts.
### Fixed
- Pico is no longer locked every time the game starts, so you no longer have to watch the unlock animation each game boot.
- The animation should now play only once per save file.
- The clear % now displays in Freeplay after switching characters.
- Character remixes no longer display the base song's highscore in Freeplay.
- Freeplay no longer displays the wrong text on capsules.
- Freeplay now displays custom songs when switching characters.
- Duplicate difficulties from custom variations now display properly in Freeplay.
- DadBattle (Pico Mix) now has charts for Normal and Easy difficulties.
- DadBattle (Pico Mix) is now properly credited to `TeraVex (ft. Saruky)`.
- Spookeez (Pico Mix) is now properly credited to `Six Impala (ft. Saster)`.
- The audio track now unmutes if you miss a note just before Pico burps.
- Pico now plays out his full burp animation in South (Pico Mix).
- Removed a tap note stacked on top of a hold note in Cocoa Erect (Erect difficulty).
- Pico Erect can no longer be played with different instrumentals.
- The curtains in Week 1 no longer display in front of larger characters.
- Boyfriend now plays his death animation properly on the Week 2 Remix stage.
- The game no longer stutters when playing on the Week 5 Remix stage.
- The "Shit!" judgement no longer displays with anti-aliasing in Week 6.
- Spirit's trail in Week 6 now displays correctly.
- Pico now plays his shooting animations in Stress.
- Characters with high offsets no longer shift over after the player dies or restarts.
- Custom note styles no longer sometimes use default values rather than the fallback note style.
- Custom note styles no longer randomly fail to fetch information about their fallback note style.
- Screenshots and Chart Editor binds no longer display in the controls menu on Web builds (where they are disabled).
- Stage Editor bind no longer displays in the controls menu even when the feature is disabled.
- Freeplay Character Select keybind no longer displays strangely in the controls menu.
- Audio tracks no longer get destroyed if they are flagged as persistent.
- Video cutscenes now scale their volume properly.
- Results screen audio no longer continues into Freeplay or gameplay.
- The Results screen now plays the percentage tick sound when the value changes instead of spamming the sound.
- The save data version number is now written to the save data properly.
- The example mod can now be loaded.
- Pressing F5 to force reload a song no longer occasionally causes the game to crash.
- Animations on Animate Atlas characters no longer throw a bunch of warnings in the console.
- Entering Blazin' no longer displays a script error.
- The Input Offsets menu no longer crashes when entering it before playing a song on web builds.
- Setting the input offset or visual offset to high values no longer causes the song to skip.
- Classic FocusCamera song events no longer cause the camera to snap in place. ([community fix by nebulazorua](https://github.com/FunkinCrew/Funkin/pull/2331))
- Pixel hold note trails in Week 6 are now scaled/positioned correctly. ([community fix by dombomb64](https://github.com/FunkinCrew/Funkin/pull/3351))
- Achieving the same rank on a song with a lower clear % no longer overwrites your clear %. ([community fix by lemz1](https://github.com/FunkinCrew/Funkin/pull/3019))
- The FPS counter no longer displays if Debug Display is turned off. ([community fix by Lethrial](https://github.com/FunkinCrew/Funkin/pull/3356))
- The Chart Editor can now be interacted with properly. ([community fix by Kade-github](https://github.com/FunkinCrew/Funkin/pull/3337))
- Selecting the area to the left of the Chart Editor no longer selects some of the player's notes. ([community fix by NotHyper-474](https://github.com/FunkinCrew/Funkin/pull/3093))
- Pixel icons now display correctly in the Chart Editor. ([community fix by TechnikTil](https://github.com/FunkinCrew/Funkin/pull/3339))
- Audio offsets now interact with the Chart Editor properly. ([community fix by Kade-github](https://github.com/FunkinCrew/Funkin/pull/3384))
- Players can no longer crash the game by interacting with Character Select during the unlock sequence. ([community fix by ActualMandM](https://github.com/FunkinCrew/Funkin/pull/3355))
- `Stage.addCharacter` now properly assigns the `characterType`. ([community fix by Kade-github](https://github.com/FunkinCrew/Funkin/pull/3357))
- Fetching Modules during the `onDestroy` event no longer fails at random. ([community fix by cyn0x8](https://github.com/FunkinCrew/Funkin/pull/3131))
- `onSubStateOpenEnd` and `onSubStateCloseEnd` script events are now called consistently. ([community fix by lemz1](https://github.com/FunkinCrew/Funkin/pull/3138))
## New Contributors for 0.5.1
* @dombomb64 made their first contribution in [#3351](https://github.com/FunkinCrew/Funkin/pull/3351)
* @Lethrial made their first contribution in [#3356](https://github.com/FunkinCrew/Funkin/pull/3356)
* @KoloInDaCrib made their first contribution in [#3371](https://github.com/FunkinCrew/Funkin/pull/3371)
## [0.5.0] - 2024-09-12
The Playable Pico Update!
### Added
- Added a new Character Select screen to switch between playable characters in Freeplay.
- Modding isn't 100% there but we're working on it!
- Added Pico as a playable character! Unlock him by completing Weekend 1 (if you haven't already done that).
- The songs from Weekend 1 have moved; you must now switch to Pico via Character Select screen in Freeplay to access them.
- Added 11 new Pico remixes! Access them by selecting Pico in the Character Select screen.
- Bopeebo (Pico Mix)
- Fresh (Pico Mix)
- DadBattle (Pico Mix)
- Spookeez (Pico Mix)
- South (Pico Mix)
- Pico (Pico Mix)
- Philly Nice (Pico Mix)
- Blammed (Pico Mix)
- Eggnog (Pico Mix)
- Ugh (Pico Mix)
- Guns (Pico Mix)
- Added 1 new Boyfriend remix! Access it by completing Weekend 1 as Pico and then selecting Boyfriend in the Character Select screen.
- Darnell (BF Mix)
- Added 2 new Erect remixes! Access them by switching difficulties on the songs.
- Cocoa Erect
- Ugh Erect
- Implemented support for a new Instrumental Selector in Freeplay.
- Beating a Pico remix lets you use that instrumental when playing as Boyfriend.
- Added the first batch of Erect Stages! These graphical overhauls of the original stages will be used when playing Erect remixes and Pico remixes:
- Week 1 Erect Stage
- Week 2 Erect Stage
- Week 3 Erect Stage
- Week 4 Erect Stage
- Week 5 Erect Stage
- Weekend 1 Erect Stage
- Implemented alternate animations and music for Pico in the Results screen.
- These display on Pico remixes, as well as when playing Weekend 1.
- Implemented support for scripted Note Kinds. You can use HScript define a different note style to display for these notes as well as custom behavior. (community feature by lemz1)
- Implemented support for Numeric and Selector options in the Options menu. ([community feature by FlooferLand](https://github.com/FunkinCrew/Funkin/pull/2942))
- Implemented new animations for Tankman and Pico.
## Changed
- Girlfriend and Nene now perform previously unused animations when you achieve a large combo, or drop a large combo.
- The pixel character icons in the Freeplay menu now display an animation!
- Altered how Week 6 displays sprites to make things look more retro.
- Character offsets are now independent of the character's scale.
- This should resolve issues with offsets when porting characters from older mods.
- Pixel character offsets have been modified to compensate.
- Reworked the JSON merging system in Polymod; you can now include JSONPatch files under `_merge` in your mod folder to add, modify, or remove values in a JSON without replacing it entirely!
- The `danceEvery` property of characters and stage props can now use values with a precision of `0.25`, to play their idle animation up to four times per beat.
- Characters now respect the `danceEvery` property. ([community fix by gamerbross](https://github.com/FunkinCrew/Funkin/pull/2925))
- Note style data can now specify custom combo count graphics, judgement graphics, countdown graphics, and countdown audio. ([community feature by anysad](https://github.com/FunkinCrew/Funkin/pull/3020))
- These were previously using hardcoded values based on whether the stage was `school` or `schoolEvil`.
- The YEAH! events in Tutorial now use chart events rather than being hard-coded. ([community fix by anysad](https://github.com/FunkinCrew/Funkin/pull/3007))
- Cutscenes now automatically pause when tabbing out. ([community fix by AbnormalPoof](https://github.com/FunkinCrew/Funkin/pull/2903))
- The F5 function now reloads the current song's chart data from disk. ([community feature by gamerbross](https://github.com/FunkinCrew/Funkin/pull/2990))
- Made several layout improvements and fixes to the Animation Offsets editor in the Debug menu. ([community fix by gamerbross](https://github.com/FunkinCrew/Funkin/pull/2820))
- Animation offsets no longer directly modify the `x` and `y` position of props, making props work better with tweens. ([community fix by Sword352](https://github.com/FunkinCrew/Funkin/pull/2310))
- Fixed a bug where the Back sound would be not played when leaving the Story menu and Options menu. ([community fix by AppleHair](https://github.com/FunkinCrew/Funkin/pull/2986))
- The player's Score now displays commas in it. (community fix by loggo)
## Fixed
- Songs with no notes no longer crash on the Results screen.
- Note inputs are no longer accepted during the Thorns cutscene.
- The old icon easter egg now works properly on pixel levels.
- The Heart icon is no longer malformed when favoriting a song in Freeplay.
- Freeplay songs with no `Normal` difficulty no longer crash the game. ([community fix by AppleHair](https://github.com/FunkinCrew/Funkin/pull/3036) and [gamerbross](https://github.com/FunkinCrew/Funkin/pull/2712))
- Songs that aren't valid for the current variation can no longer be selected. ([community fix by AppleHair](https://github.com/FunkinCrew/Funkin/pull/3037))
- The Freeplay song preview now respects the instrumental ID specified in the song metadata. ([community fix by AppleHair](https://github.com/FunkinCrew/Funkin/pull/2742))
- Modded songs now play previews in the Freeplay menu. ([community fix by KarimAkra](https://github.com/FunkinCrew/Funkin/pull/2724))
- The Story Mode menu can now be scrolled using the mouse wheel. ([community fix by JVNpixels](https://github.com/FunkinCrew/Funkin/pull/2873))
- Pressing F5 after seeing the sticker transition no longer crashes the game. ([community fix by gamerbross](https://github.com/FunkinCrew/Funkin/pull/2863))
- Pausing the game during a camera zoom no longer zooms the pause menu as well. ([community fix by gamerbross](https://github.com/FunkinCrew/Funkin/pull/2567))
- The song no longer majorly desyncs at times. ([community fix by Burgerballs](https://github.com/FunkinCrew/Funkin/pull/3058))
- Pico's death animation no longer displays a faint blue background. ([community fix by doggogit](https://github.com/FunkinCrew/funkin.assets/pull/1))
- The game now uses the placeholder health icon as a fallback. ([community fix by gamerbross](https://github.com/FunkinCrew/Funkin/pull/3005))
- Pressing the Chart Editor keybind while playtesting a chart no longer resets the Chart Editor. ([community fix by gamerbross](https://github.com/FunkinCrew/Funkin/pull/2739))
- The Chart Editor no longer gets stuck creating a hold note when using Live Inputs. ([community fix by gamerbross](https://github.com/FunkinCrew/Funkin/pull/2992))
- Tankman's icon now displays in the Chart Editor. ([community fix by Hundrec](https://github.com/FunkinCrew/Funkin/pull/2912))
- The Memory Usage counter no longer overflows and displays a negative number. ([community fix by KarimAkra](https://github.com/FunkinCrew/Funkin/pull/2713))
- Certain UI elements now flash at a consistent rate. ([community fix by cyn0x8](https://github.com/FunkinCrew/Funkin/pull/2494))
- Character graphics can now be placed in week folders. ([community fix by 7oltan](https://github.com/FunkinCrew/Funkin/pull/3035))
## New Contributors for 0.5.0
* @Sword352 made their first contribution in [#2310](https://github.com/FunkinCrew/Funkin/pull/2310)
* @cyn0x8 made their first contribution in [#2494](https://github.com/FunkinCrew/Funkin/pull/2494)
* @KarimAkra made their first contribution in [#2713](https://github.com/FunkinCrew/Funkin/pull/2713)
* @tposejank made their first contribution in [#2717](https://github.com/FunkinCrew/Funkin/pull/2717)
* @AppleHair made their first contribution in [#2742](https://github.com/FunkinCrew/Funkin/pull/2742)
* @JVNpixels made their first contribution in [#2873](https://github.com/FunkinCrew/Funkin/pull/2873)
* @Flooferland made their first contribution in [#2942](https://github.com/FunkinCrew/Funkin/pull/2942)
* @Punkinator7 made their first contribution in [#2962](https://github.com/FunkinCrew/Funkin/pull/2962)
* @anysad made their first contribution in [#3007](https://github.com/FunkinCrew/Funkin/pull/3007)
* @7oltan made their first contribution in [#3035](https://github.com/FunkinCrew/Funkin/pull/3035)
## [0.4.1] - 2024-06-12
### Added
- Pressing ESCAPE on the title screen on desktop now exits the game, allowing you to exit the game while in fullscreen on desktop.
- Freeplay menu controls (favoriting and switching categories) are now rebindable from the Options menu, and now have default binds on controllers.
### Changed
- Highscores and ranks are now saved separately, fixing an issue where lower ranks would overwrite higher ranks if the player achieved a new highscore.
- A-Bot speaker now reacts to the user's volume preference on desktop. ([thanks to M7theguy for the issue report/suggestion](https://github.com/FunkinCrew/Funkin/issues/2744)!)
- Freeplay heart icons are now shifted to the right when favoriting a song with no rank.
- The `scrollMenu` sound effect now only plays when there's a real change on the Freeplay menu. ([thanks gamerbross for the PR!](https://github.com/FunkinCrew/Funkin/pull/2741))
- Applied anti-aliasing to the edge of the Freeplay Dad graphic.
- Rearranged some controls in the controls menu.
- Made several chart revisions:
- Re-enabled custom camera events in Roses (Erect/Nightmare)
- Tweaked chart for Lit Up (Hard)
- Corrected difficulty ratings for M.I.L.F (Easy/Normal/Hard)
### Fixed
- Control binds in the controls menu no longer overlap their names.
- Attempting to exit the gameover screen and retry the song at the same time no longer crashes the game. ([thanks DMMaster636 for the PR!](https://github.com/FunkinCrew/Funkin/pull/2709))
- Botplay mode now handles the player's animations properly during hold notes. ([thanks Hundrec!](https://github.com/FunkinCrew/Funkin/pull/2683))
- Camera movement now pauses when the game is paused. ([thanks Matriculaso!](https://github.com/FunkinCrew/Funkin/pull/2684))
- Pico's gameplay sprite no longer appears on the gameover screen when dying from an explosion in 2hot.
- Freeplay previews now properly fade in volume during the BF idle animation.
- DadBattle no longer incorrectly appears as DadBattle Erect when returning to Freeplay on Hard.
- 2hot now appears under the "#" category in Freeplay menu.
- The Chart Editor no longer crashes when selecting an event with the Event toolbox open.
- Improved offsets for Pico and Tankman opponents so they don't slide around as much.
- The black "temp" graphic in Freeplay is now correctly sized/masked, now it's identical to the Dad Freeplay graphic.
## New Contributors for 0.4.1
* @Hundrec made their first contribution in [#2661](https://github.com/FunkinCrew/Funkin/pull/2661)
* @DMMaster636 made their first contribution in [#2709](https://github.com/FunkinCrew/Funkin/pull/2709)
* @eltociear made their first contribution in [#2730](https://github.com/FunkinCrew/Funkin/pull/2730)
## [0.4.0] - 2024-06-06
The Pit Stop 1 update!
### Added
- 2 new Erect remixes, Eggnog and Satin Panties. Check them out from the Freeplay menu!
- Major visual improvements to the Results screen, with additional animations and audio based on your performance.
- Major visual improvements to the Freeplay screen, with song difficulty ratings and player rank displays.
- Freeplay now plays a preview of songs when you hover over them.
- Added a Charter field to the chart format, to allow for crediting the creator of a level's chart.
- You can see who charted a song from the Pause menu.
- Added a new Scroll Speed chart event to change the note speed mid-song. ([thanks Burgerballs!](https://github.com/FunkinCrew/Funkin/pull/2409))
### Changed
- Tweaked charts for several songs:
- Tutorial (increased the note speed slightly)
- Spookeez
- Monster
- Winter Horrorland
- M.I.L.F
- Senpai (increased the note speed)
- Roses
- Thorns (increased the note speed slightly)
- Ugh
- Stress
- Lit Up
- Favorite songs marked in Freeplay are now stored between sessions.
- The Freeplay easter eggs are now easier to see.
- In the event that the game cannot load your save data, it will now perform a backup before clearing it, so that we can try to repair it in the future.
- Custom note styles are now properly supported for songs; add new notestyles via JSON, then select it for use from the Chart Editor Metadata toolbox. ([thanks Keoiki!](https://github.com/FunkinCrew/Funkin/pull/2581))
- Health icons now support a Winning frame without requiring a spritesheet, simply include a third frame in the icon file. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2593))
- Remember that for more complex behaviors such as animations or transitions, you should use an XML file to define each frame.
- Improved the Event Toolbox in the Chart Editor; dropdowns are now bigger, include search field, and display elements in alphabetical order rather than a random order.
### Fixed
- Nene's visualizer now plays on Desktop builds.
- The game no longer silently fails to load saves on HTML5.
- Props on the Story Menu now bop properly.
- Additional fixes for the loading bar on HTML5. ([thanks lemz1!](https://github.com/FunkinCrew/Funkin/pull/2553))
- Fixed several bugs with the TitleState, including missing music when returning from the Main Menu. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2539))
- The Main Menu camera now properly follows the selected item. ([thanks richTrash21!](https://github.com/FunkinCrew/Funkin/pull/2576))
- Changing difficulties in Story Mode now updates the score text. ([thanks sector-a!](https://github.com/FunkinCrew/Funkin/pull/2585))
- Fixed a crash in Freeplay caused by a level referencing an invalid song. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2457))
- Pressing the volume keys no longer stops the Toy commercial. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2540))
- Playtesting in the Chart Editor no longer crashes when losing. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2518))
- Hold notes now display properly in the Chart Editor when downscroll is enabled for gameplay. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2565))
- Hold notes are now positioned correctly with downscroll enabled. ([thanks MaybeMaru!](https://github.com/FunkinCrew/Funkin/pull/2488))
- Removed a large number of unused imports to optimize builds. ([thanks Ethan-makes-music!](https://github.com/FunkinCrew/Funkin/pull/2624))
- Improved debug logging for unscripted stages. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2603))
- Fixed a crash on Linux caused by an old version of hxCodec. ([thanks Noobz4Life!](https://github.com/FunkinCrew/Funkin/pull/2472))
- Optimized animation handling for characters. ([thanks richTrash21!](https://github.com/FunkinCrew/Funkin/pull/2493))
- The Chart Editor no longer uses an incorrect instrumental on imported Legacy songs. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2604))
- Opening the game from the command line no longer crashes the preloader. ([thanks NotHyper-474!](https://github.com/FunkinCrew/Funkin/pull/2629))
- Characters no longer use the wrong scale value sometimes. ([thanks PurSnake!](https://github.com/FunkinCrew/Funkin/pull/2610))
- Additional bug fixes and optimizations.
## New Contributors for 0.4.0
* @Noobz4Life made their first contribution in [#2472](https://github.com/FunkinCrew/Funkin/pull/2472)
* @MaybeMaru made their first contribution in [#2488](https://github.com/FunkinCrew/Funkin/pull/2488)
* @NotHyper-474 made their first contribution in [#2490](https://github.com/FunkinCrew/Funkin/pull/2490)
* @richTrash21 made their first contribution in [#2493](https://github.com/FunkinCrew/Funkin/pull/2493)
* @TechnikTil made their first contribution in [#2508](https://github.com/FunkinCrew/Funkin/pull/2508)
* @SanicBTW made their first contribution in [#2544](https://github.com/FunkinCrew/Funkin/pull/2544)
* @EnterTheVoid-x86 made their first contribution in [#2573](https://github.com/FunkinCrew/Funkin/pull/2573)
* @Keoiki made their first contribution in [#2581](https://github.com/FunkinCrew/Funkin/pull/2581)
* @sector-a made their first contribution in [#2585](https://github.com/FunkinCrew/Funkin/pull/2585)
* @PurSnake made their first contribution in [#2610](https://github.com/FunkinCrew/Funkin/pull/2610)
* @Ethan-makes-music made their first contribution in [#2624](https://github.com/FunkinCrew/Funkin/pull/2624)
* @An-enderman made their first contribution in [#2662](https://github.com/FunkinCrew/Funkin/pull/2662)
* @moondroidcoder made their first contribution in [#2701](https://github.com/FunkinCrew/Funkin/pull/2701)
## [0.3.3] - 2024-05-14
### Changed
- Cleaned up some code in `PlayAnimationSongEvent.hx`. ([thanks Burgerballs!](https://github.com/FunkinCrew/Funkin/pull/2308))
### Fixed
- Fixes for the Loading bar on HTML5. ([thanks lemz1!](https://github.com/FunkinCrew/Funkin/pull/2499))
- Don't allow inputs when exiting Freeplay. ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2470))
- Fixed mouse wheel scrolling in Freeplay. ([thanks JugieNoob!](https://github.com/FunkinCrew/Funkin/pull/2466))
- Health icons, score, and notes now reset properly when re-entering gameplay from gameover. ([thanks ImCodist!](https://github.com/FunkinCrew/Funkin/pull/2390))
- Fixed the character selector's hitbox width in the Chart Editor. ([thanks MadBear422!](https://github.com/FunkinCrew/Funkin/pull/2370))
- Fixed camera stutter once a wipe transition to the Main Menu completes. ([thanks ImCodist!](https://github.com/FunkinCrew/Funkin/pull/2315))
- Hold notes no longer become invisible for a single frame. ([thanks ImCodist!](https://github.com/FunkinCrew/Funkin/pull/2309))
- Tweens no longer accumulate on the Title screen when pressing Y multiple times. ([thanks TheGaloXx!](https://github.com/FunkinCrew/Funkin/pull/2300))
- Fixed a crash when querying FlxG.state in the crash handler.
- Fixed a game over easter egg so you don't accidentally exit it when viewing.
- The Freeplay menu can now display 100% clear.
- Weekend 1 Pico no longer attempts to retrieve a missing asset.
- Fixed an issue where duplicate keybinds would be stored, potentially causing a crash.
- Chart debug key now properly returns you to the previous chart editor session if you were playtesting a chart. ([thanks nebulazorua!](https://github.com/FunkinCrew/Funkin/pull/2323))
- Fixed a crash on Freeplay found on AMD graphics cards.
## New Contributors for 0.3.3
* @Chubercik made their first contribution in [#2297](https://github.com/FunkinCrew/Funkin/pull/2297)
* @TheGaloXx made their first contribution in [#2300](https://github.com/FunkinCrew/Funkin/pull/2300)
* @Burgerballs made their first contribution in [#2308](https://github.com/FunkinCrew/Funkin/pull/2308)
* @ImCodist made their first contribution in [#2309](https://github.com/FunkinCrew/Funkin/pull/2309)
* @nebulazorua made their first contribution in [#2323](https://github.com/FunkinCrew/Funkin/pull/2323)
* @MadBear422 made their first contribution in [#2370](https://github.com/FunkinCrew/Funkin/pull/2370)
* @JugieNoob made their first contribution in [#2466](https://github.com/FunkinCrew/Funkin/pull/2466)
* @gamerbross made their first contribution in [#2470](https://github.com/FunkinCrew/Funkin/pull/2470)
* @lemz1 made their first contribution in [#2499](https://github.com/FunkinCrew/Funkin/pull/2499)
## [0.3.2] - 2024-05-03
### Added
- Added `,` and `.` keybinds to the Chart Editor. These place Focus Camera events at the playhead, for the opponent and player respectively.
- Implemented a blacklist to prevent mods from calling system functions.
- Added a couple utility functions to call useful stuff that got blacklisted.
- Added an `onSongLoad` script event which allows for mutation of notes and events.
- Added the currently loaded modlist to crash logs.
- Added the `visible` attribute to Level JSON data.
- Enabled ZIP file system support for Polymod (make sure the metadata is in the root of the ZIP).
### Changed
- Songs in the mod folders will display in Freeplay without any extra scripting.
- Story levels in the mod folders will display in Story without any extra scripting.
- All audio should sound better in HTML5, less muddy.
### Fixed
- Fixed a typo in the credits folder (`Custcene` -> `Cutscene`)
- Health icon transition animations now finish properly instead of looping forever.
- Video cutscenes flagged as mid-song no longer crash the game when they finish.
- Substate lifecycle events are now dispatched consistently.
- Trying to load into the Animation Offsets menu with an invalid character no longer crashes the game.
- The preloader no longer spams the logs when it is complete and waiting for user input.
- Should definitely have the fix for Freeplay where it stops taking control of the main menu below it.
- Changed the code for the Story Mode menu difficulties so that "normal" doesn't overlap the arrows after leaving Weekend 1.
### Removed
- Removed some unused `.txt` files in the `assets/data` folder.
## [0.3.1] - 2024-05-01
### Changed
- Ensure the Git commit hash always displays in the log files.
- Added whether the local Git repo was modified to the log files.
- Removed "PROTOTYPE" text on release builds only (it still shows on debug builds).
- Added additional credits and special thanks.
- Updated peepo in creds to peepo173.
### Fixed
- Fixed a crash when retrieving system specs while handing a crash.
- Fixed a crash triggered when pausing before the song starts.
- Fixed a crash triggered when dying before the song starts.
- Fixed a crash triggered when unloading certain graphics.
- Pico game over confirm now plays correctly.
- When exiting from a song into Freeplay, main menu no longer takes inputs unintentionally (aka issues with merch links opening up when selecting songs).
- Arrow keys no longer cause the web browser page to scroll.
## [0.3.0] - 2024-04-30
The Weekend 1 update!
### Added
- New Story Level: Weekend 1, starring Pico, Darnell, and Nene.
- Beat the level in Story Mode to unlock the songs for Freeplay!
- 12 new Erect remixes, featuring Kawai Sprite, Saruky, Kohta Takahashi, and Saster.
- Unlocked instantly in Freeplay
- New visually enhanced Freeplay menu.
- Sorting, favorites, and more
- New Results screen upon completing any song or story level.
- New refactored Chart Editor prototype (accessible via `~` in the main menu or `7` in the Play State, rebindable). (VERY EARLY PROTOTYPE. EXPECT BUGS AND CRASHES)
- Implemented a new scripting system using HScript (an interpreted language with Haxe-like syntax) for incredible flexibility.
- All character-specific, stage-specific, or song-specific behaviors have been moved to HScript.
- New song events system allows for simple customization of camera behavior.
- Mods can implement custom song events via HScript, and new built-in song events will come in the future.
- New credits menu to list all the dozens of people who contributed.
### Changed
- Completely refactored the game's input system for higher reliability and accuracy.
- Reworked note rendering to massively reduce lag on larger charts.
- Reworks to scoring and health gain.
- Dedicated gamepad support with the ability to rebind buttons.
- Improvements to video cutscenes and dialogue, allowing them to be easily skipped or restarted.
- Updated Polymod by several major versions, allowing for fully dynamic asset replacement and support for scripted classes.
- Completely refactored almost every part of the game's code for performance, stability, and extensibility.
- This is not the Ludum Dare game held together with sticks and glue you played three years ago.
- Characters, stages, songs, story levels, and dialogue are now built from JSON data registries rather than being hardcoded.
- All of these also support attaching scripts for custom behavior, more documentation on this soon.
- You can forcibly reload the game's JSON data and scripts by pressing F5.
- Fully refactored the game's chart file format for extensibility and readability.
- You can migrate old charts using the Import FNF Legacy option in the chart editor.
- Various visual tweaks and improvements.
### Fixed
- 17 quadrillion bugs across hundreds of PRs.
## [0.2.8] - 2021-04-18 (note, this one is iffy cuz we slacked wit it lol!)
### Added
- TANKMAN! 3 NEW SONGS BY KAWAISPRITE (UGH, GUNS, STRESS)! Charting help by MtH!
- Monster added into week 2, FINALLY (Charting help by MtH and ChaoticGamer!)
- Can now change song difficulty mid-game.
- Shows some song info on pause screen.
- Cute little icons onto freeplay menu
- Offset files for easier modification of characters
### Changed
- ASSET LOADING OVERHAUL, WAY FASTER LOAD TIMES ON WEB!!! (THANKS TO GEOKURELI WOKE KING)
- Made difficulty selector on freeplay menu more apparent
### Fixed
- That one random note on Bopeebo
## [0.2.7.1] - 2021-02-14
### Added
- Easter eggs
- readme's in desktop versions of the game
### Changed
- New icons, old one was placeholder since October woops!
- Made the transitions between the story mode levels more seamless.
- Offset of the Newgrounds logo on boot screen.
- Made the changelog txt so it can be opened easier by normal people who don't have a markdown reader (most normal people);
### Fixed
- Fixed crashes on Week 6 story mode dialogue if spam too fast ([Thanks to Lotusotho for the Pull Request!](https://github.com/FunkinCrew/Funkin/pull/357))
- Should show intro credits on desktop versions of the game more consistently
- Layering on Week 4 songs with GF and the LIMO LOL HOW TF I MISS THIS
- Chart's and chart editor now support changeBPM, GOD BLESS MTH FOR THIS ONE I BEEN STRUGGLIN WIT THAT SINCE OCTOBER LMAO ([GOD BLESS MTH](https://github.com/FunkinCrew/Funkin/pull/382))
- Fixed sustain note trails ALSO THANKS TO MTH U A REAL ONE ([MTH VERY POWERFUL](https://github.com/FunkinCrew/Funkin/pull/415))
- Antialiasing on the skyscraper lights
## [0.2.7] - 2021-02-02
### Added
- PIXEL DAY UPDATE LOL 1 WEEK LATER
- 3 New songs by Kawaisprite!
- COOL CUTSCENES
- WEEK 6 YOYOYOYOY
- Swaggy pixel art by Moawling!
### Changed
- Made it so you lose sliiiightly more health when you miss a note.
- Removed the default HaxeFlixel pause screen when the game window loses focus, can get screenshots of the game easier hehehe
### Fixed
- Idle animation bug with BF christmas and BF hair blow sprites ([Thanks to Injourn for the Pull Request!](https://github.com/FunkinCrew/Funkin/pull/237))
## [0.2.6] - 2021-01-20
### Added
- 3 NEW CHRISTMAS SONGS. 2 BY KAWAISPRITE, 1 BY BASSETFILMS!!!!! BF WITH DRIP! SANTA HANGIN OUT!
- Enemy icons change when they you are winning a lot ([Thanks to pahaze for the Pull Request!](https://github.com/FunkinCrew/Funkin/pull/138))
- Holding CTRL in charting editor places notes on both sides
- Q and E changes sustain lengths in note editor
- Other charting editor workflow improvements
- More hair physics
- Heads appear at top of chart editor to help show which side ur charting for
### Changed
- Tweaked code relating to inputs, hopefully making notes that are close together more fair to hit
### Removed
- Removed APE
### Fixed
- Maybe fixed double notes / jump notes. Need to tweak it for balance, but should open things up for cooler charts in the future.
- Old Verison popup screen weirdness ([Thanks to gedehari for the Pull Request!](https://github.com/FunkinCrew/Funkin/pull/155))
- Song no longer loops when finishing the song. ([Thanks Injourn for the Pull Request!](https://github.com/FunkinCrew/Funkin/pull/132))
- Screen wipe being cut off in the limo/mom stage. Should fill the whole screen now.
- Boyfriend animations on hold notes, and pressing on repeating notes should behave differently
## [0.2.5] - 2020-12-27
### Added
- MOMMY GF, 3 NEW ASS SONGS BY KAWAISPRITE, NEW ART BY PHANTOMARCADE,WOOOOOOAH!!!!
- Different icons depending on which character you are against, art by EVILSK8R!!
- Autosave to chart editor
- Clear section button to note editor
- Swap button in note editor
- a new boot text or two
- automatic check for when you're on an old version of the game!
### Changed
- Made Spookeez on Normal easier.
- Mouse is now visible in note editor
### Fixed
- Crash when playing Week 3 and then playing a non-week 3 song
- When pausing music at the start, it doesn't continue the song anyways. ([shoutouts gedehari for the Pull Request!](https://github.com/FunkinCrew/Funkin/pull/48))
- IDK i think backing out of song menu should play main menu songs again hehe ([shoutouts gedehari for the Pull Request!](https://github.com/FunkinCrew/Funkin/pull/48))
## [0.2.4] - 2020-12-11
### Added
- 3 NEW SONGS BY KAWAISPRITE. Pico, Philly, and Blammed.
- NEW CHARACTER, PICO. Based off the classic Flash game "Pico's School" by Tom Fulp
- NEW LEVEL WOW! PHILLY BABEEEE
### Changed
- Made it less punishing to ATTEMPT to hit a note and miss, rather than let it pass you
### Fixed
- Song desync of you paused and unpaused frequently ([shoutouts SonicBlam](https://github.com/FunkinCrew/Funkin/issues/37))
- Animation offsets when GF is scared
## [0.2.3] - 2020-12-04
### Added
- More intro texts
### Fixed
- Exploit where you could potentially give yourself a high score via the debug menu
- Issue/bug where you could spam the confirm button on the story menu ([shoutouts lotusotho for the CODE contribution/pull request!](https://github.com/FunkinCrew/Funkin/pull/19))
- Glitch where if you never would lose health if you missed a note on a fast song (shoutouts [MrDulfin](https://github.com/FunkinCrew/Funkin/issues/10), [HotSauceBurritos](https://github.com/FunkinCrew/Funkin/issues/13) and [LobsterMango](https://lobstermango.newgrounds.com))
- Fixed tiny note bleed over thingies (shoutouts [lotusotho](https://github.com/FunkinCrew/Funkin/pull/24))
## [0.2.2] - 2020-11-20
### Added
- Music playing on the freeplay menu.
- UI sounds on freeplay menu
- Score now shows mid-song.
- Menu on pause screen! Can resume, and restart song, or go back to main menu.
- New music made for pause menu!
### Changed
- Moved all the intro texts to its own txt file instead of being hardcoded, this allows for much easier customization. File is in the data folder, called "introText.txt", follow the format in there and you're probably good to go!
### Fixed
- Fixed soft lock when pausing on song finish ([shoutouts gedehari](https://github.com/FunkinCrew/Funkin/issues/15))
- Think I fixed issue that led to in-game scores being off by 2 ([shoutouts Mike](https://github.com/FunkinCrew/Funkin/issues/4))
- Should have fixed the 1 frame note appearance thing. ([shoutouts Mike](https://github.com/FunkinCrew/Funkin/issues/6))
- Cleaned up some charting on South on hard mode
- Fixed some animation timings, should feel both better to play, and watch. (shoutouts Dave/Ivan lol)
- Animation issue where GF would freak out on the title screen if you returned to it([shoutouts MultiXIII](https://github.com/FunkinCrew/Funkin/issues/12)).
## [0.2.1.2] - 2020-11-06
### Fixed
- Story mode scores not properly resetting, leading to VERY inflated highscores on the leaderboards. This also requires me to clear the scores that are on the leaderboard right now, sorry!
- Difficulty on storymode and in freeplay scores
- Hard mode difficulty on campaign levels have been fixed
## [0.2.1.1] - 2020-11-06
### Fixed
- Week 2 not unlocking properly
## [0.2.1] - 2020-11-06
### Added
- Scores to the freeplay menu
- A few new intro boot messages.
- Lightning effect in Spooky stages
- Campaign scores, can now compete on scoreboards for campaign!
- Can now change difficulties in Freeplay mode
### Changed
- Balanced out Normal mode for the harder songs(DadBattle and Spookeez, not South yet). Should be much easier all around.
- Put tutorial in it's own 'week', so that if you want to play week 1, you don't have to play the tutorial.
### Fixed
- One of the charting bits on South and Spookeez during the intro.
## [0.2.0] - 2020-11-01
### Added
- Uhh Newgrounds release lolol I always lose track of shit.
## [0.1.0] - 2020-10-05
### Added
- Uh, everything. This the game's initial gamejam release. We put it out
-32
View File
@@ -1,32 +0,0 @@
# Code Style Guide
Code style is enforced using Visual Studio Code extensions.
## .hx
Formatting is handled by the `nadako.vshaxe` extension, which includes Haxe Formatter.
Haxe Formatter automatically resolves issues such as indentation style and line breaks, and can be configured in `hxformat.json`.
Code Quality is handled by the `vshaxe.haxe-checkstyle` extension, which includes Haxe Checkstyle.
### Haxe Checkstyle Notes
* Checks can be escalated to display as different severities in the Problems window.
* Checks can be disabled by setting the severity to `IGNORE`.
* `IndentationCharacter` checks what is used to indent, `Indentation` checks how deep the indentation is.
* `CommentedOutCode` check is in place because old code should be retrieved via Git history.
* TODO items: Enable these one-by-one and fix them to improve the overall code quality.
- Re-configure `MethodLength`
- Re-configure `CyclomaticComplexity`
- Re-enable `MagicNumber`
- Re-configure `NestedControlFlow`
- Re-configure `NestedIfDepth`
- Figure out something for `Trace`
- Fix bug and enable `DocCommentStyle`
## .json
Formatting is handled by the `esbenp.prettier-vscode` extension, which includes Prettier.
Prettier automatically handles formatting of JSON files, and can be configured in `.prettierrc.js`.
### Prettier Notes
* Prettier will automatically attempt to place expressions on a single line if they fit, but will keep them multi-line if they are manually made multi-line.
* This means that long single-line objects are automatically expanded, and short multi-line objects aren't automatically collapsed.
* You may want to use regex replacement to manually remove the first newline in short multi-line objects to convince Prettier to collapse them.
-213
View File
@@ -1,213 +0,0 @@
# Friday Night Funkin'
The Friday Night Funkin' source code is licensed under the Apache 2.0 license: (https://www.apache.org/licenses/LICENSE-2.0)
Friday Night Funkin' Copyright 2020-2024 The Funkin' Crew Inc.
All Rights Reserved. "Friday Night Funkin'" and the "Friday Night Funkin'" logo are trademarks of The Funkin' Crew Inc.
You can view the `funkin-assets` license here: (https://github.com/FunkinCrew/funkin.assets/blob/main/LICENSE.md)
## Apache 2.0 License
```
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2020-2024 The Funkin' Crew Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```
+84
View File
@@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<project>
<!-- _________________________ Application Settings _________________________ -->
<app title="ld47" file="ld47" main="Main" version="0.0.1" company="HaxeFlixel" />
<!--The flixel preloader is not accurate in Chrome. You can use it regularly if you embed the swf into a html file
or you can set the actual size of your file manually at "FlxPreloaderBase-onUpdate-bytesTotal"-->
<app preloader="flixel.system.FlxPreloader" />
<!--Minimum without FLX_NO_GAMEPAD: 11.8, without FLX_NO_NATIVE_CURSOR: 11.2-->
<set name="SWF_VERSION" value="11.8" />
<!-- ____________________________ Window Settings ___________________________ -->
<!--These window settings apply to all targets-->
<window width="1280" height="720" fps="60" background="#000000" hardware="true" vsync="false" />
<!--HTML5-specific-->
<window if="html5" resizable="true" />
<!--Desktop-specific-->
<window if="desktop" orientation="landscape" fullscreen="false" resizable="true" />
<!--Mobile-specific-->
<window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" />
<!-- _____________________________ Path Settings ____________________________ -->
<set name="BUILD_DIR" value="export/debug" if="debug" />
<set name="BUILD_DIR" value="export/release" unless="debug" />
<classpath name="source" />
<assets path="assets" />
<!-- _______________________________ Libraries ______________________________ -->
<haxelib name="flixel" />
<!--In case you want to use the addons package-->
<haxelib name="flixel-addons" />
<!--In case you want to use the ui package-->
<!-- <haxelib name="flixel-ui" /> -->
<!--In case you want to use nape with flixel-->
<!--<haxelib name="nape-haxe4" />-->
<!-- ______________________________ Haxedefines _____________________________ -->
<!--Enable the Flixel core recording system-->
<!--<haxedef name="FLX_RECORD" />-->
<!--Disable the right and middle mouse buttons-->
<haxedef name="FLX_NO_MOUSE_ADVANCED" />
<!--Disable the native cursor API on Flash-->
<!--<haxedef name="FLX_NO_NATIVE_CURSOR" />-->
<!--Optimise inputs, be careful you will get null errors if you don't use conditionals in your game-->
<haxedef name="FLX_NO_MOUSE" if="mobile" />
<haxedef name="FLX_NO_KEYBOARD" if="mobile" />
<haxedef name="FLX_NO_TOUCH" if="desktop" />
<!--<haxedef name="FLX_NO_GAMEPAD" />-->
<!--Disable the Flixel core sound tray-->
<!--<haxedef name="FLX_NO_SOUND_TRAY" />-->
<!--Disable the Flixel sound management code-->
<!--<haxedef name="FLX_NO_SOUND_SYSTEM" />-->
<!--Disable the Flixel core focus lost screen-->
<!--<haxedef name="FLX_NO_FOCUS_LOST_SCREEN" />-->
<!--Disable the Flixel core debugger. Automatically gets set whenever you compile in release mode!-->
<haxedef name="FLX_NO_DEBUG" unless="debug" />
<!--Enable this for Nape release builds for a serious peformance improvement-->
<haxedef name="NAPE_RELEASE_BUILD" unless="debug" />
<!-- _________________________________ Custom _______________________________ -->
<!--Place custom nodes like icons here (higher priority to override the HaxeFlixel icon)-->
</project>
-48
View File
@@ -1,48 +0,0 @@
# Friday Night Funkin'
Friday Night Funkin' is a rhythm game. Built using HaxeFlixel for Ludum Dare 47.
This game was made with love to Newgrounds and its community. Extra love to Tom Fulp.
- [Playable web demo on Newgrounds!](https://www.newgrounds.com/portal/view/770371)
- [Demo download builds for Windows, Mac, and Linux from Itch.io!](https://ninja-muffin24.itch.io/funkin)
# Getting Started
**PLEASE USE THE LINKS ABOVE IF YOU JUST WANT TO PLAY THE GAME**
To learn how to install the necessary dependencies and compile the game from source, please follow our [Compiling Guide](/docs/COMPILING.md).
# Contributing
Check out our [Contributing Guide](/docs/CONTRIBUTING.md) to learn how you can actively contribute to the development of Friday Night Funkin'!
# Modding
Feel free to start learning to mod the game by reading our [documentation](https://funkincrew.github.io/funkin-modding-docs/) and guide to modding.
# Credits and Special Thanks
Full credits can be found in-game, or in the `credits.json` file which is located [here](https://github.com/FunkinCrew/funkin.assets/blob/main/exclude/data/credits.json).
## Programming
- [ninjamuffin99](https://twitter.com/ninja_muffin99) - Lead Programmer
- [EliteMasterEric](https://twitter.com/EliteMasterEric) - Programmer
- [MtH](https://twitter.com/emmnyaa) - Charting and Additional Programming
- [GeoKureli](https://twitter.com/Geokureli/) - Additional Programming
- Our contributors on GitHub
## Art / Animation / UI
- [PhantomArcade3K](https://twitter.com/phantomarcade3k) - Artist and Animator
- [Evilsk8r](https://twitter.com/evilsk8r) - Art
- [Moawling](https://twitter.com/moawko) - Week 6 Pixel Art
- [IvanAlmighty](https://twitter.com/IvanA1mighty) - Misc UI Design
## Music
- [Kawaisprite](https://twitter.com/kawaisprite) - Musician
- [BassetFilms](https://twitter.com/Bassetfilms) - Music for "Monster", Additional Character Design
## Special Thanks
- [Tom Fulp](https://twitter.com/tomfulp) - For being a great guy and for Newgrounds
- [JohnnyUtah](https://twitter.com/JohnnyUtahNG/) - Voice of Tankman
- [L0Litsmonica](https://twitter.com/L0Litsmonica) - Voice of Mommy Mearest
Submodule art deleted from 78dc310219
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
+11
View File
@@ -0,0 +1,11 @@
@echo off
color 0a
cd ..
@echo on
echo BUILDING GAME
lime build html5 -final -clean
echo UPLOADING TO ITCH
butler push ./export/debug/html5/bin ninja-muffin24/ld47:html5
butler status ninja-muffin24/ld47:html5
echo ITCH SHIT UPDATED LMAOOOOO
pause
Submodule assets deleted from ac932c19f9
+5
View File
@@ -0,0 +1,5 @@
{
"song": "Bopeebo",
"bpm": 100,
"sections": 15
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

+5
View File
@@ -0,0 +1,5 @@
{
"song": "Fresh",
"bpm": 120,
"sections": 16
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 B

Binary file not shown.
+4
View File
@@ -0,0 +1,4 @@
wanda
fizzd
kiddbrute
HenryEYES
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

+300
View File
@@ -0,0 +1,300 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="BOYFRIEND.png">
<!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="BF HEY!!0000" x="3264" y="410" width="395" height="416" frameX="0" frameY="0" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0001" x="3264" y="410" width="395" height="416" frameX="0" frameY="0" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0002" x="1224" y="0" width="413" height="410" frameX="-1" frameY="-8" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0003" x="1224" y="0" width="413" height="410" frameX="-1" frameY="-8" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0004" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0005" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0006" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0007" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0008" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0009" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0010" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0011" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0012" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0013" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0014" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0015" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0016" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0017" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0018" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0019" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0020" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0021" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0022" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0023" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0024" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF HEY!!0025" x="805" y="0" width="414" height="412" frameX="-1" frameY="-6" frameWidth="415" frameHeight="418"/>
<SubTexture name="BF NOTE DOWN0000" x="0" y="848" width="374" height="357" frameX="-1" frameY="-5" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0001" x="0" y="848" width="374" height="357" frameX="-1" frameY="-5" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0002" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0003" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0004" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0005" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0006" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0007" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0008" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0009" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0010" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0011" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0012" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0013" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0014" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0015" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0016" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0017" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0018" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0019" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0020" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0021" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0022" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0023" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0024" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0025" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0026" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0027" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0028" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN0029" x="3245" y="831" width="373" height="362" frameX="0" frameY="0" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN MISS0000" x="0" y="848" width="374" height="357" frameX="-1" frameY="-35" frameWidth="375" frameHeight="362"/>
<SubTexture name="BF NOTE DOWN MISS0001" x="1559" y="813" width="376" height="392" frameX="-1" frameY="0" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0002" x="1559" y="813" width="376" height="392" frameX="-1" frameY="0" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0003" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0004" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0005" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0006" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0007" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0008" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0009" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0010" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0011" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0012" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0013" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0014" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0015" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0016" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0017" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0018" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0019" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0020" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0021" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0022" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0023" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0024" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0025" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0026" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0027" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE DOWN MISS0028" x="2422" y="815" width="378" height="388" frameX="0" frameY="-4" frameWidth="378" frameHeight="392"/>
<SubTexture name="BF NOTE LEFT0000" x="0" y="437" width="383" height="406" frameX="0" frameY="0" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0001" x="0" y="437" width="383" height="406" frameX="0" frameY="0" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0002" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0003" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0004" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0005" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0006" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0007" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0008" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0009" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0010" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0011" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0012" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0013" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT0014" x="1180" y="813" width="374" height="404" frameX="-11" frameY="-2" frameWidth="385" frameHeight="406"/>
<SubTexture name="BF NOTE LEFT MISS0000" x="388" y="437" width="383" height="406" frameX="0" frameY="-26" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0001" x="2048" y="417" width="369" height="430" frameX="-15" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0002" x="2048" y="417" width="369" height="430" frameX="-15" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0003" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0004" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0005" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0006" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0007" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0008" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0009" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0010" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0011" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0012" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0013" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0014" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0015" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0016" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0017" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0018" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0019" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0020" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0021" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0022" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0023" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0024" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0025" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0026" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0027" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0028" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0029" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0030" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0031" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0032" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE LEFT MISS0033" x="805" y="417" width="370" height="430" frameX="-13" frameY="0" frameWidth="384" frameHeight="432"/>
<SubTexture name="BF NOTE RIGHT0000" x="3264" y="0" width="408" height="405" frameX="-1" frameY="-2" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0001" x="3264" y="0" width="408" height="405" frameX="-1" frameY="-2" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0002" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0003" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0004" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0005" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0006" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0007" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0008" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0009" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0010" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0011" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0012" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0013" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0014" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0015" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0016" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0017" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0018" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0019" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0020" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0021" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0022" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0023" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0024" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0025" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0026" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0027" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0028" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0029" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0030" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0031" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0032" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0033" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0034" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0035" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0036" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0037" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0038" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0039" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0040" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0041" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0042" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0043" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0044" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0045" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0046" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0047" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0048" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0049" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0050" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0051" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0052" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0053" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0054" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0055" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0056" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0057" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0058" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0059" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0060" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT0061" x="2470" y="0" width="408" height="407" frameX="0" frameY="0" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT MISS0000" x="3264" y="0" width="408" height="405" frameX="-7" frameY="-30" frameWidth="409" frameHeight="407"/>
<SubTexture name="BF NOTE RIGHT MISS0001" x="405" y="0" width="395" height="432" frameX="0" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0002" x="405" y="0" width="395" height="432" frameX="0" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0003" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0004" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0005" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0006" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0007" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0008" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0009" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0010" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0011" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0012" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0013" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0014" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0015" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0016" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0017" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0018" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0019" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0020" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0021" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0022" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0023" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0024" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0025" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0026" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0027" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0028" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0029" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0030" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0031" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0032" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0033" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0034" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0035" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0036" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0037" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0038" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0039" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0040" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0041" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0042" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0043" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0044" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE RIGHT MISS0045" x="0" y="0" width="400" height="432" frameX="-1" frameY="0" frameWidth="415" frameHeight="435"/>
<SubTexture name="BF NOTE UP0000" x="3677" y="0" width="369" height="446" frameX="-5" frameY="0" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0001" x="3677" y="0" width="369" height="446" frameX="-5" frameY="0" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0002" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0003" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0004" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0005" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0006" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0007" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0008" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0009" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0010" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0011" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0012" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0013" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP0014" x="2883" y="0" width="376" height="441" frameX="0" frameY="-5" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0000" x="3677" y="0" width="369" height="446" frameX="-9" frameY="0" frameWidth="376" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0001" x="2880" y="446" width="360" height="427" frameX="0" frameY="-13" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0002" x="2880" y="446" width="360" height="427" frameX="0" frameY="-13" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0003" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0004" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0005" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0006" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0007" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0008" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0009" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0010" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0011" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0012" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0013" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0014" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0015" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0016" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0017" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0018" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0019" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0020" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0021" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0022" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF NOTE UP MISS0023" x="3664" y="451" width="357" height="430" frameX="-1" frameY="-10" frameWidth="378" frameHeight="446"/>
<SubTexture name="BF idle dance0000" x="1637" y="416" width="406" height="392" frameX="-1" frameY="-20" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0001" x="1637" y="416" width="406" height="392" frameX="-1" frameY="-20" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0002" x="1224" y="415" width="408" height="393" frameX="0" frameY="-19" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0003" x="1224" y="415" width="408" height="393" frameX="0" frameY="-19" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0004" x="2470" y="412" width="405" height="398" frameX="-3" frameY="-14" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0005" x="2470" y="412" width="405" height="398" frameX="-3" frameY="-14" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0006" x="1642" y="0" width="410" height="411" frameX="-1" frameY="-1" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0007" x="1642" y="0" width="410" height="411" frameX="-1" frameY="-1" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0008" x="2057" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0009" x="2057" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0010" x="2057" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0011" x="2057" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0012" x="2057" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
<SubTexture name="BF idle dance0013" x="2057" y="0" width="408" height="412" frameX="-2" frameY="0" frameWidth="411" frameHeight="412"/>
</TextureAtlas>
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

+50
View File
@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="DADDY_DEAREST.png">
<!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="Dad Sing Note DOWN0000" x="1369" y="0" width="470" height="730" frameX="0" frameY="-5" frameWidth="470" frameHeight="735"/>
<SubTexture name="Dad Sing Note DOWN0001" x="1369" y="0" width="470" height="730" frameX="0" frameY="-5" frameWidth="470" frameHeight="735"/>
<SubTexture name="Dad Sing Note DOWN0002" x="1839" y="0" width="462" height="735" frameX="-4" frameY="0" frameWidth="470" frameHeight="735"/>
<SubTexture name="Dad Sing Note DOWN0003" x="1839" y="0" width="462" height="735" frameX="-4" frameY="0" frameWidth="470" frameHeight="735"/>
<SubTexture name="Dad Sing Note DOWN0004" x="1839" y="0" width="462" height="735" frameX="-4" frameY="0" frameWidth="470" frameHeight="735"/>
<SubTexture name="Dad Sing Note DOWN0005" x="1839" y="0" width="462" height="735" frameX="-4" frameY="0" frameWidth="470" frameHeight="735"/>
<SubTexture name="Dad Sing Note DOWN0006" x="1839" y="0" width="462" height="735" frameX="-4" frameY="0" frameWidth="470" frameHeight="735"/>
<SubTexture name="Dad Sing Note LEFT0000" x="843" y="793" width="370" height="777"/>
<SubTexture name="Dad Sing Note RIGHT0000" x="0" y="0" width="465" height="792" frameX="0" frameY="-1" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0001" x="0" y="0" width="465" height="792" frameX="0" frameY="-1" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0002" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0003" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0004" x="917" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0005" x="917" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0006" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0007" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0008" x="917" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0009" x="917" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0010" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0011" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0012" x="917" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0013" x="917" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0014" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0015" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0016" x="917" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0017" x="917" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note RIGHT0018" x="465" y="0" width="452" height="793" frameX="0" frameY="0" frameWidth="465" frameHeight="793"/>
<SubTexture name="Dad Sing Note UP0000" x="2301" y="0" width="408" height="818" frameX="-1" frameY="0" frameWidth="409" frameHeight="818"/>
<SubTexture name="Dad Sing Note UP0001" x="2301" y="0" width="408" height="818" frameX="-1" frameY="0" frameWidth="409" frameHeight="818"/>
<SubTexture name="Dad Sing Note UP0002" x="2709" y="0" width="408" height="810" frameX="0" frameY="-8" frameWidth="409" frameHeight="818"/>
<SubTexture name="Dad Sing Note UP0003" x="2709" y="0" width="408" height="810" frameX="0" frameY="-8" frameWidth="409" frameHeight="818"/>
<SubTexture name="Dad Sing Note UP0004" x="3117" y="0" width="408" height="810" frameX="0" frameY="-8" frameWidth="409" frameHeight="818"/>
<SubTexture name="Dad idle dance0000" x="1369" y="730" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0001" x="1369" y="730" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0002" x="3525" y="0" width="429" height="759" frameX="0" frameY="-8" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0003" x="3525" y="0" width="429" height="759" frameX="0" frameY="-8" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0004" x="0" y="792" width="424" height="757" frameX="-2" frameY="-10" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0005" x="0" y="792" width="424" height="757" frameX="-2" frameY="-10" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0006" x="3525" y="759" width="423" height="759" frameX="-3" frameY="-8" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0007" x="3525" y="759" width="423" height="759" frameX="-3" frameY="-8" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0008" x="424" y="793" width="419" height="766" frameX="-5" frameY="-1" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0009" x="424" y="793" width="419" height="766" frameX="-5" frameY="-1" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0010" x="1788" y="735" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0011" x="1788" y="735" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
<SubTexture name="Dad idle dance0012" x="1369" y="730" width="419" height="767" frameX="-6" frameY="0" frameWidth="429" frameHeight="767"/>
</TextureAtlas>
Binary file not shown.

After

Width:  |  Height:  |  Size: 868 KiB

+136
View File
@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="GF_assets.png">
<!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="GF Cheer0000" x="0" y="0" width="646" height="654"/>
<SubTexture name="GF Cheer0001" x="0" y="0" width="646" height="654"/>
<SubTexture name="GF Cheer0002" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0003" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0004" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0005" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0006" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0007" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0008" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0009" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0010" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0011" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0012" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0013" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0014" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0015" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0016" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0017" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0018" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0019" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Cheer0020" x="651" y="0" width="646" height="651" frameX="0" frameY="-3" frameWidth="646" frameHeight="654"/>
<SubTexture name="GF Dancing Beat0000" x="651" y="1933" width="646" height="631" frameX="0" frameY="-14" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0001" x="651" y="1933" width="646" height="631" frameX="0" frameY="-14" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0002" x="0" y="1936" width="646" height="629" frameX="0" frameY="-16" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0003" x="3255" y="2565" width="646" height="629" frameX="0" frameY="-16" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0004" x="3255" y="1928" width="646" height="632" frameX="0" frameY="-13" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0005" x="1953" y="1929" width="646" height="632" frameX="0" frameY="-13" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0006" x="2604" y="650" width="646" height="634" frameX="0" frameY="-11" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0007" x="1302" y="0" width="646" height="645"/>
<SubTexture name="GF Dancing Beat0008" x="1302" y="0" width="646" height="645"/>
<SubTexture name="GF Dancing Beat0009" x="1302" y="0" width="646" height="645"/>
<SubTexture name="GF Dancing Beat0010" x="1953" y="0" width="646" height="645"/>
<SubTexture name="GF Dancing Beat0011" x="1953" y="0" width="646" height="645"/>
<SubTexture name="GF Dancing Beat0012" x="1953" y="0" width="646" height="645"/>
<SubTexture name="GF Dancing Beat0013" x="2604" y="0" width="646" height="645"/>
<SubTexture name="GF Dancing Beat0014" x="2604" y="0" width="646" height="645"/>
<SubTexture name="GF Dancing Beat0015" x="651" y="1295" width="646" height="633" frameX="0" frameY="-12" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0016" x="651" y="1295" width="646" height="633" frameX="0" frameY="-12" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0017" x="0" y="1298" width="646" height="633" frameX="0" frameY="-12" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0018" x="2604" y="1928" width="646" height="633" frameX="0" frameY="-12" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0019" x="651" y="656" width="646" height="634" frameX="0" frameY="-11" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0020" x="0" y="659" width="646" height="634" frameX="0" frameY="-11" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0021" x="1953" y="650" width="646" height="635" frameX="0" frameY="-10" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0022" x="3255" y="0" width="646" height="640" frameX="0" frameY="-5" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0023" x="3255" y="0" width="646" height="640" frameX="0" frameY="-5" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0024" x="3255" y="0" width="646" height="640" frameX="0" frameY="-5" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0025" x="3255" y="645" width="646" height="639" frameX="0" frameY="-6" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0026" x="3255" y="645" width="646" height="639" frameX="0" frameY="-6" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0027" x="3255" y="645" width="646" height="639" frameX="0" frameY="-6" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0028" x="1302" y="650" width="646" height="639" frameX="0" frameY="-6" frameWidth="646" frameHeight="645"/>
<SubTexture name="GF Dancing Beat0029" x="1302" y="650" width="646" height="639" frameX="0" frameY="-6" frameWidth="646" frameHeight="645"/>
<SubTexture name="gf sad0000" x="1302" y="1933" width="646" height="631" frameX="0" frameY="-3" frameWidth="646" frameHeight="634"/>
<SubTexture name="gf sad0001" x="1302" y="1933" width="646" height="631" frameX="0" frameY="-3" frameWidth="646" frameHeight="634"/>
<SubTexture name="gf sad0002" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0003" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0004" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0005" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0006" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0007" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0008" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0009" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0010" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0011" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0012" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0013" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0014" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0015" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0016" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0017" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0018" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0019" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0020" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0021" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0022" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0023" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0024" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0025" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0026" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0027" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0028" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0029" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0030" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0031" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0032" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0033" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0034" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0035" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0036" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0037" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0038" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0039" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0040" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0041" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0042" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0043" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0044" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0045" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0046" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0047" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0048" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0049" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0050" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0051" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0052" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0053" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0054" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0055" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0056" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0057" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0058" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0059" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0060" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0061" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0062" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0063" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0064" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0065" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0066" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0067" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0068" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0069" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0070" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0071" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0072" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0073" x="1302" y="1294" width="646" height="634"/>
<SubTexture name="gf sad0074" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0075" x="2604" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0076" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0077" x="3255" y="1289" width="646" height="634"/>
<SubTexture name="gf sad0078" x="1953" y="1290" width="646" height="634"/>
<SubTexture name="gf sad0079" x="1953" y="1290" width="646" height="634"/>
</TextureAtlas>
Binary file not shown.

After

Width:  |  Height:  |  Size: 700 KiB

+53
View File
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="NOTE_assets.png">
<!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="arrowDOWN0000" x="0" y="235" width="157" height="153"/>
<SubTexture name="arrowLEFT0000" x="310" y="235" width="153" height="157"/>
<SubTexture name="arrowRIGHT0000" x="157" y="235" width="153" height="157"/>
<SubTexture name="arrowUP0000" x="784" y="232" width="157" height="153"/>
<SubTexture name="blue0000" x="1850" y="154" width="157" height="154"/>
<SubTexture name="blue hold end0000" x="1170" y="447" width="50" height="64"/>
<SubTexture name="blue hold piece0000" x="1370" y="449" width="50" height="44"/>
<SubTexture name="down confirm0000" x="0" y="0" width="238" height="235"/>
<SubTexture name="down confirm0001" x="238" y="0" width="238" height="235"/>
<SubTexture name="down confirm0002" x="1176" y="230" width="220" height="217" frameX="-6" frameY="-12" frameWidth="238" frameHeight="235"/>
<SubTexture name="down confirm0003" x="1176" y="230" width="220" height="217" frameX="-6" frameY="-12" frameWidth="238" frameHeight="235"/>
<SubTexture name="down press0000" x="149" y="392" width="142" height="140" frameX="-4" frameY="-2" frameWidth="149" frameHeight="146"/>
<SubTexture name="down press0001" x="149" y="392" width="142" height="140" frameX="-4" frameY="-2" frameWidth="149" frameHeight="146"/>
<SubTexture name="down press0002" x="0" y="388" width="149" height="146"/>
<SubTexture name="down press0003" x="0" y="388" width="149" height="146"/>
<SubTexture name="green0000" x="1850" y="0" width="157" height="154"/>
<SubTexture name="green hold end0000" x="1120" y="442" width="50" height="64"/>
<SubTexture name="green hold piece0000" x="1320" y="447" width="50" height="44"/>
<SubTexture name="left confirm0000" x="948" y="0" width="228" height="231"/>
<SubTexture name="left confirm0001" x="1402" y="228" width="218" height="221" frameX="-5" frameY="-5" frameWidth="228" frameHeight="231"/>
<SubTexture name="left confirm0002" x="1402" y="0" width="225" height="228" frameX="-2" frameY="-1" frameWidth="228" frameHeight="231"/>
<SubTexture name="left confirm0003" x="1402" y="0" width="225" height="228" frameX="-2" frameY="-1" frameWidth="228" frameHeight="231"/>
<SubTexture name="left press0000" x="291" y="392" width="140" height="142" frameX="-3" frameY="-3" frameWidth="146" frameHeight="149"/>
<SubTexture name="left press0001" x="291" y="392" width="140" height="142" frameX="-3" frameY="-3" frameWidth="146" frameHeight="149"/>
<SubTexture name="left press0002" x="463" y="389" width="146" height="149"/>
<SubTexture name="left press0003" x="463" y="389" width="146" height="149"/>
<SubTexture name="pruple end hold0000" x="1220" y="447" width="50" height="64"/>
<SubTexture name="purple0000" x="630" y="232" width="154" height="157"/>
<SubTexture name="purple hold piece0000" x="1420" y="449" width="50" height="44"/>
<SubTexture name="red0000" x="476" y="232" width="154" height="157"/>
<SubTexture name="red hold end0000" x="1070" y="442" width="50" height="64"/>
<SubTexture name="red hold piece0000" x="1270" y="447" width="50" height="44"/>
<SubTexture name="right confirm0000" x="1627" y="0" width="223" height="226" frameX="-1" frameY="-3" frameWidth="226" frameHeight="230"/>
<SubTexture name="right confirm0001" x="1627" y="226" width="223" height="226" frameX="-1" frameY="-3" frameWidth="226" frameHeight="230"/>
<SubTexture name="right confirm0002" x="1176" y="0" width="226" height="230"/>
<SubTexture name="right confirm0003" x="1176" y="0" width="226" height="230"/>
<SubTexture name="right press0000" x="932" y="442" width="138" height="141" frameX="-3" frameY="-7" frameWidth="148" frameHeight="151"/>
<SubTexture name="right press0001" x="932" y="442" width="138" height="141" frameX="-3" frameY="-7" frameWidth="148" frameHeight="151"/>
<SubTexture name="right press0002" x="784" y="385" width="148" height="151"/>
<SubTexture name="right press0003" x="784" y="385" width="148" height="151"/>
<SubTexture name="up confirm0000" x="476" y="0" width="236" height="232"/>
<SubTexture name="up confirm0001" x="712" y="0" width="236" height="232"/>
<SubTexture name="up confirm0002" x="948" y="231" width="214" height="211" frameX="-11" frameY="-10" frameWidth="236" frameHeight="232"/>
<SubTexture name="up confirm0003" x="948" y="231" width="214" height="211" frameX="-11" frameY="-10" frameWidth="236" frameHeight="232"/>
<SubTexture name="up press0000" x="609" y="389" width="144" height="141" frameX="-5" frameY="-4" frameWidth="153" frameHeight="150"/>
<SubTexture name="up press0001" x="609" y="389" width="144" height="141" frameX="-5" frameY="-4" frameWidth="153" frameHeight="150"/>
<SubTexture name="up press0002" x="1850" y="308" width="153" height="150"/>
<SubTexture name="up press0003" x="1850" y="308" width="153" height="150"/>
</TextureAtlas>
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 307 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<TextureAtlas imagePath="healthHeads.png">
<!-- Created with Adobe Animate version 20.0.0.17400 -->
<!-- http://www.adobe.com/products/animate.html -->
<SubTexture name="Boys instance 10000" x="0" y="126" width="180" height="118" frameX="0" frameY="0" frameWidth="190" frameHeight="121"/>
<SubTexture name="Boys instance 10001" x="0" y="0" width="190" height="121"/>
</TextureAtlas>
Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 231 KiB

Some files were not shown because too many files have changed in this diff Show More