Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
567a7af392 | ||
|
|
082abad735 | ||
|
|
b40f7c94b8 | ||
|
|
4ab27ca8a6 | ||
|
|
9dfe5cfe42 | ||
|
|
a380fa16e5 | ||
|
|
6568703a7d | ||
|
|
d8513fc4a0 | ||
|
|
95415f5890 | ||
|
|
ce0fd00fba | ||
|
|
aa7cef2c25 | ||
|
|
3855c5ea9f | ||
|
|
a75e543fb8 | ||
|
|
d5121a6e8e | ||
|
|
de57ab82f6 | ||
|
|
851d5c241c | ||
|
|
9e1ccaf083 | ||
|
|
de17188ae4 | ||
|
|
dbbd0c2851 | ||
|
|
89fa9a3121 | ||
|
|
86aba3f004 | ||
|
|
0839f21e71 | ||
|
|
75a02413de | ||
|
|
32001dad2e | ||
|
|
303c9d14aa |
@@ -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
|
||||
@@ -1,3 +0,0 @@
|
||||
* text=auto eol=lf
|
||||
*.hxc linguist-language=Haxe
|
||||
*.hxp linguist-language=Haxe
|
||||
@@ -1,62 +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: checkboxes
|
||||
attributes:
|
||||
label: Issue Checklist
|
||||
options:
|
||||
- label: I have properly named the issue
|
||||
- label: I have checked the issues/discussions pages to see if the issue has been previously reported
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: What platform are you using?
|
||||
options:
|
||||
- Newgrounds (Web)
|
||||
- Itch.io (Web)
|
||||
- Itch.io (Downloadable Build) - Windows
|
||||
- Itch.io (Downloadable Build) - MacOS
|
||||
- Itch.io (Downloadable Build) - Linux
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: If you are playing on a browser, which one are you using?
|
||||
options:
|
||||
- Google Chrome
|
||||
- Microsoft Edge
|
||||
- Firefox
|
||||
- Opera
|
||||
- Safari
|
||||
- Other (Specify below)
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version are you using?
|
||||
placeholder: ex. 0.4.1
|
||||
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: markdown
|
||||
attributes:
|
||||
value: "#### Provide as many details as you can."
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Context (Provide images, videos, etc.)
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce (or crash logs, errors, etc.)
|
||||
@@ -1 +0,0 @@
|
||||
blank_issues_enabled: false
|
||||
@@ -1,70 +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: checkboxes
|
||||
attributes:
|
||||
label: Issue Checklist
|
||||
options:
|
||||
- label: I have properly named the issue
|
||||
- label: I have checked the issues/discussions pages to see if the issue has been previously reported
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: What platform are you using?
|
||||
options:
|
||||
- Newgrounds (Web)
|
||||
- Itch.io (Web)
|
||||
- Itch.io (Downloadable Build) - Windows
|
||||
- Itch.io (Downloadable Build) - MacOS
|
||||
- Itch.io (Downloadable Build) - Linux
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: If you are playing on a browser, which one are you using?
|
||||
options:
|
||||
- Google Chrome
|
||||
- Microsoft Edge
|
||||
- Firefox
|
||||
- Opera
|
||||
- Safari
|
||||
- Other (Specify below)
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version are you using?
|
||||
placeholder: ex. 0.4.1
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: "## Describe your issue."
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: "### Please do not report issues from other engines. These must be reported in their respective repositories."
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: "#### Provide as many details as you can."
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Context (Provide screenshots or videos of the crash happening)
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Crash logs (can be found in the logs folder where Funkin.exe is)
|
||||
validations:
|
||||
required: true
|
||||
@@ -1,15 +0,0 @@
|
||||
name: Enhancement
|
||||
description: Suggest a new feature.
|
||||
labels: ["type: enhancement", "status: pending triage"]
|
||||
title: "Enhancement: "
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Issue Checklist
|
||||
options:
|
||||
- label: I have properly named the enhancement
|
||||
- label: I have checked the issues/discussions pages to see if the enhancement has been previously suggested
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What is your suggestion, and why should it be implemented?
|
||||
@@ -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.4'
|
||||
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.1.0
|
||||
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
|
||||
@@ -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
|
||||
@@ -1,12 +0,0 @@
|
||||
# Add 'small' to any changes below 10 lines
|
||||
small:
|
||||
max: 9
|
||||
|
||||
# Add 'medium' to any changes between 10 and 100 lines
|
||||
medium:
|
||||
min: 10
|
||||
max: 99
|
||||
|
||||
# Add 'large' to any changes for more than 100 lines
|
||||
large:
|
||||
min: 100
|
||||
@@ -1,5 +0,0 @@
|
||||
# Git Hooks
|
||||
These work even on Windows because of Git Bash.
|
||||
|
||||
## Setup
|
||||
`git config core.hooksPath .github/hooks`
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
git submodule update --init --recursive
|
||||
@@ -1,2 +0,0 @@
|
||||
#!/bin/sh
|
||||
git submodule update --init --recursive
|
||||
@@ -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
|
||||
@@ -1,44 +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: true
|
||||
# Remove other status labels
|
||||
unlabel:
|
||||
- 'status: pending triage'
|
||||
# Set a close reason
|
||||
close-reason: 'not planned'
|
||||
prs:
|
||||
# Post a comment
|
||||
comment: >
|
||||
This pull request is a duplicate. Please direct all discussion to the original pull request.
|
||||
# Remove other status labels
|
||||
unlabel:
|
||||
- 'status: pending triage'
|
||||
# Close the pull request
|
||||
close: true
|
||||
# Set a close reason
|
||||
close-reason: 'not planned'
|
||||
|
||||
'status: rejected':
|
||||
issues:
|
||||
# Close the issue
|
||||
close: true
|
||||
# Remove other status labels
|
||||
unlabel:
|
||||
- 'status: pending triage'
|
||||
# Set a close reason
|
||||
close-reason: 'not planned'
|
||||
prs:
|
||||
# Close the pull request
|
||||
close: true
|
||||
# Remove other status labels
|
||||
unlabel:
|
||||
- 'status: pending triage'
|
||||
# Set a close reason
|
||||
close-reason: 'not planned'
|
||||
@@ -1,11 +0,0 @@
|
||||
# Add Documentation tag to PR's changing markdown files, or anyhting in the docs folder
|
||||
Documentation:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file:
|
||||
- docs/*
|
||||
- '**/*.md'
|
||||
|
||||
# Adds Haxe tag to PR's changing haxe code files
|
||||
Haxe:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: '**/*.hx'
|
||||
@@ -1,6 +0,0 @@
|
||||
<!-- Please check for duplicates or similar PRs 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.
|
||||
@@ -1,53 +0,0 @@
|
||||
name: Create and publish Docker image
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
paths:
|
||||
- '**/Dockerfile'
|
||||
- '.github/workflows/build-docker-image.yml'
|
||||
|
||||
jobs:
|
||||
build-and-push-image:
|
||||
runs-on: build-set
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
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: false
|
||||
token: ${{ steps.app_token.outputs.token }}
|
||||
|
||||
- name: Log into GitHub Container Registry
|
||||
uses: docker/login-action@v3.1.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@v5.3.0
|
||||
with:
|
||||
context: ./build
|
||||
push: true
|
||||
tags: |
|
||||
ghcr.io/funkincrew/build-dependencies:latest
|
||||
ghcr.io/funkincrew/build-dependencies:${{ github.sha }}
|
||||
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 }}
|
||||
@@ -1,157 +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:
|
||||
paths-ignore:
|
||||
- '**/Dockerfile'
|
||||
- '.github/workflows/build-docker-image.yml'
|
||||
|
||||
jobs:
|
||||
|
||||
build-game-on-host:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- target: windows
|
||||
- target: macos
|
||||
runs-on:
|
||||
- ${{ matrix.target }}
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
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
|
||||
if: ${{ matrix.target == 'windows' }}
|
||||
run: |
|
||||
haxelib run lime build windows -v -release ${{ github.event.inputs.build-defines }}
|
||||
timeout-minutes: 120
|
||||
- name: Build game
|
||||
if: ${{ matrix.target != 'windows' }}
|
||||
run: |
|
||||
haxelib run lime build ${{ matrix.target }} -v -release --times ${{ github.event.inputs.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:
|
||||
runs-on: build-set
|
||||
container: ghcr.io/funkincrew/build-dependencies:latest
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- target: linux
|
||||
- target: html5
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
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 ${{ github.event.inputs.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);
|
||||
@@ -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,52 +0,0 @@
|
||||
name: "Issue Labeler"
|
||||
on:
|
||||
issues:
|
||||
types:
|
||||
- opened
|
||||
- reopened
|
||||
- edited
|
||||
|
||||
jobs:
|
||||
# When an issue is opened, perform a similarity check for potential duplicates.
|
||||
# If some are found, add a label and comment listing the potential duplicate issues.
|
||||
potential-duplicate:
|
||||
name: Detect potential duplicate issues
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: wow-actions/potential-duplicates@v1
|
||||
with:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# Issue title filter work with anymatch https://www.npmjs.com/package/anymatch.
|
||||
# Any matched issue will stop detection immediately.
|
||||
# You can specify multi filters in each line.
|
||||
filter: ''
|
||||
# Exclude keywords in title before detecting.
|
||||
exclude: ''
|
||||
# Label to set, when potential duplicates are detected.
|
||||
label: 'potential duplicate'
|
||||
# Get issues with state to compare. Supported state: 'all', 'closed', 'open'.
|
||||
state: all
|
||||
# If similarity is higher than this threshold([0,1]), issue will be marked as duplicate.
|
||||
# Turn this up if the detection is too sensitive
|
||||
threshold: 0.6
|
||||
# Reactions to be add to comment when potential duplicates are detected.
|
||||
# Available reactions: "-1", "+1", "confused", "laugh", "heart", "hooray", "rocket", "eyes"
|
||||
# reactions: '-1'
|
||||
# Comment to post when potential duplicates are detected.
|
||||
comment: >
|
||||
Potential duplicates: {{#issues}}
|
||||
- [#{{ number }}] {{ title }} ({{ accuracy }}%)
|
||||
{{/issues}}
|
||||
# When an issue is opened, detect if it has an empty body or incomplete issue form.
|
||||
# If it does, close the issue immediately.
|
||||
empty-issues:
|
||||
name: Close empty issues
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Run empty issues closer action
|
||||
uses: rickstaa/empty-issues-closer-action@v1
|
||||
env:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
close_comment: Closing this issue because it appears to be empty. Please update the issue for it to be reopened.
|
||||
open_comment: Reopening this issue because the author provided more information.
|
||||
@@ -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 +1,2 @@
|
||||
.DS_STORE
|
||||
.haxelib/
|
||||
.vs/
|
||||
APIStuff.hx
|
||||
dump/
|
||||
export/
|
||||
RECOVER_*.fla
|
||||
shitAudio/
|
||||
.build_time
|
||||
.swp
|
||||
|
||||
# Exclude JS stuff
|
||||
node_modules/
|
||||
package.json
|
||||
package-lock.json
|
||||
.aider*
|
||||
.vscode/
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.
|
||||
};
|
||||
@@ -1,12 +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
|
||||
"ryanluker.vscode-coverage-gutters" // Highlight code coverage
|
||||
]
|
||||
}
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,262 +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": false,
|
||||
"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",
|
||||
"target": "windows",
|
||||
"args": ["-debug", "-DFEATURE_DEBUG_FUNCTIONS"]
|
||||
},
|
||||
{
|
||||
"label": "Windows / Debug (Tracy)",
|
||||
"target": "windows",
|
||||
"args": ["-debug", "-DFEATURE_DEBUG_TRACY", "-DFEATURE_DEBUG_FUNCTIONS"]
|
||||
},
|
||||
{
|
||||
"label": "Linux / Debug",
|
||||
"target": "linux",
|
||||
"args": ["-debug", "-DFEATURE_DEBUG_FUNCTIONS"]
|
||||
},
|
||||
{
|
||||
"label": "HashLink / Debug",
|
||||
"target": "hl",
|
||||
"args": ["-debug"]
|
||||
},
|
||||
{
|
||||
"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 Chart Editor)",
|
||||
"target": "windows",
|
||||
"args": ["-debug", "-DCHARTING", "-DFEATURE_DEBUG_FUNCTIONS"]
|
||||
},
|
||||
{
|
||||
"label": "HashLink / Debug (Straight to Chart Editor)",
|
||||
"target": "hl",
|
||||
"args": ["-debug", "-DCHARTING"]
|
||||
},
|
||||
{
|
||||
"label": "Windows / Debug (Straight to Animation Editor)",
|
||||
"target": "windows",
|
||||
"args": ["-debug", "-DANIMDEBUG", "-DFEATURE_DEBUG_FUNCTIONS"]
|
||||
},
|
||||
{
|
||||
"label": "Windows / Debug (Debug hxCodec)",
|
||||
"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",
|
||||
"target": "windows",
|
||||
"args": ["-release"]
|
||||
},
|
||||
{
|
||||
"label": "Windows / Release (GitHub Actions)",
|
||||
"target": "windows",
|
||||
"args": ["-release", "-DGITHUB_BUILD"]
|
||||
},
|
||||
{
|
||||
"label": "HashLink / Debug (Waveform Test)",
|
||||
"target": "hl",
|
||||
"args": ["-debug", "-DWAVEFORM"]
|
||||
},
|
||||
{
|
||||
"label": "HTML5 / Debug",
|
||||
"target": "html5",
|
||||
"args": ["-debug", "-DFEATURE_DEBUG_FUNCTIONS"]
|
||||
},
|
||||
{
|
||||
"label": "HTML5 / Debug (Watch)",
|
||||
"target": "html5",
|
||||
"args": ["-debug", "-watch", "-DFEATURE_DEBUG_FUNCTIONS"]
|
||||
},
|
||||
{
|
||||
"label": "macOS / Debug",
|
||||
"target": "mac",
|
||||
"args": ["-debug", "-DFEATURE_DEBUG_FUNCTIONS"]
|
||||
},
|
||||
{
|
||||
"label": "macOS / Release",
|
||||
"target": "mac",
|
||||
"args": ["-release"]
|
||||
},
|
||||
{
|
||||
"label": "macOS / Release (GitHub Actions)",
|
||||
"target": "mac",
|
||||
"args": ["-release", "-DGITHUB_BUILD"]
|
||||
}
|
||||
],
|
||||
"cmake.configureOnOpen": false,
|
||||
"coverage-gutters.coverageFileNames": [
|
||||
"lcov.info",
|
||||
"cov.xml",
|
||||
"coverage.xml",
|
||||
"jacoco.xml",
|
||||
"coverage.cobertura.xml"
|
||||
]
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"type": "lime",
|
||||
"command": "test",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,413 +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.5.0] - 2024-09-12
|
||||
### 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 from 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 from in the Character Select screen
|
||||
- Darnell (BF Mix)
|
||||
- Added 2 new Erect remixes! Access them by switching difficulty on the song
|
||||
- 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)
|
||||
- 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.
|
||||
- Note style data can now specify custom combo count graphics, judgement graphics, countdown graphics, and countdown audio. (community feature by anysad)
|
||||
- These were previously using hardcoded values based on whether the stage was `school` or `schoolEvil`.
|
||||
- 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.
|
||||
- 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!
|
||||
- Cutscenes now automatically pause when tabbing out (community fix by AbnormalPoof)
|
||||
- Characters will now respect the `danceEvery` property (community fix by gamerbross)
|
||||
- The F5 function now reloads the current song's chart data from disc (community feature by gamerbross)
|
||||
- Refactored the compilation guide and added common troubleshooting steps (community fix by Hundrec)
|
||||
- Made several layout improvements and fixes to the Animation Offsets editor in the Debug menu (community fix by gamerbross)
|
||||
- Fixed a bug where the Back sound would be not played when leaving the Story menu and Options menu (community fix by AppleHair)
|
||||
- Animation offsets no longer directly modify the `x` and `y` position of props, which makes props work better with tweens (community fix by Sword352)
|
||||
- The YEAH! events in Tutorial now use chart events rather than being hard-coded (community fix by anysad)
|
||||
- The player's Score now displays commas in it (community fix by loggo)
|
||||
## Fixed
|
||||
- Fixed an issue where songs with no notes would crash on the Results screen.
|
||||
- Fixed an issue where the old icon easter egg would not work properly on pixel levels.
|
||||
- Fixed an issue where you could play notes during the Thorns cutscene.
|
||||
- Fixed an issue where the Heart icon when favoriting a song in Freeplay would be malformed.
|
||||
- Fixed an issue where Pico's death animation displays a faint blue background (community fix by doggogit)
|
||||
- Fixed an issue where mod songs would not play a preview in the Freeplay menu (community fix by KarimAkra)
|
||||
- Fixed an issue where the Memory Usage counter could overflow and display a negative number (community fix by KarimAkra)
|
||||
- Fixed an issue where pressing the Chart Editor keybind while playtesting a chart would reset the chart editor (community fix by gamerbross)
|
||||
- Fixed a crash bug when pressing F5 after seeing the sticker transition (community fix by gamerbross)
|
||||
- Fixed an issue where the Story Mode menu couldn't be scrolled with a mouse (community fix by JVNpixels)
|
||||
- Fixed an issue causing the song to majorly desync sometimes (community fix by Burgerballs)
|
||||
- Fixed an issue where the Freeplay song preview would not respect the instrumental ID specified in the song metadata (community fix by AppleHair)
|
||||
- Fixed an issue where Tankman's icon wouldn't display in the Chart Editor (community fix by hundrec)
|
||||
- Fixed an issue where pausing the game during a camera zoom would zoom the pause menu. (community fix by gamerbros)
|
||||
- Fixed an issue where certain UI elements would not flash at a consistent rate (community fix by cyn0x8)
|
||||
- Fixed an issue where the game would not use the placeholder health icon as a fallback (community fix by gamerbross)
|
||||
- Fixed an issue where the chart editor could get stuck creating a hold note when using Live Inputs (community fix by gamerbross)
|
||||
- Fixed an issue where character graphics could not be placed in week folders (community fix by 7oltan)
|
||||
- Fixed a crash issue when a Freeplay song has no `Normal` difficulty (community fix by Applehair and gamerbross)
|
||||
- Fixed an issue in Story Mode where a song that isn't valid for the current variation could be selected (community fix by Applehair)
|
||||
|
||||
## [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, which fixes the issue where people would overwrite their saves with higher scores,
|
||||
which would remove their rank if they had a lower one.
|
||||
- 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)!)
|
||||
- On Freeplay, heart icons are shifted to the right when you favorite a song that has no rank on it.
|
||||
- Only play `scrollMenu` sound effect when there's a real change on the freeplay menu ([thanks gamerbross for the PR!](https://github.com/FunkinCrew/Funkin/pull/2741))
|
||||
- Gave antialiasing to the edge of the dad graphic on Freeplay
|
||||
- Rearranged some controls in the controls menu
|
||||
- Made several chart revisions
|
||||
- Re-enabled custom camera events in Roses (Erect/Nightmare)
|
||||
- Tweaked the chart for Lit Up (Hard)
|
||||
- Corrected the difficulty ratings for M.I.L.F. (Easy/Normal/Hard)
|
||||
### Fixed
|
||||
- Fixed an issue in the controls menu where some control binds would overlap their names
|
||||
- Fixed crash when attempting to exit the gameover screen when also attempting to retry the song ([thanks DMMaster636 for the PR!](https://github.com/FunkinCrew/Funkin/pull/2709))
|
||||
- Fix botplay sustain release bug ([thanks Hundrec!](Fix botplay sustain release bug #2683))
|
||||
- Fix for the camera not pausing during a gameplay pause ([thanks gamerbross!](https://github.com/FunkinCrew/Funkin/pull/2684))
|
||||
- Fixed issue where Pico's gameplay sprite would unintentionally appear on the gameover screen when dying on 2Hot from an explosion
|
||||
- Freeplay previews properly fade volume during the BF idle animation
|
||||
- Fixed bug where Dadbattle incorrectly appeared as Dadbattle Erect when returning to freeplay on Hard
|
||||
- Fixed 2Hot not appearing under the "#" category in Freeplay menu
|
||||
- Fixed a bug where the Chart Editor would crash when attempting to select an event with the Event toolbox open
|
||||
- Improved offsets for Pico and Tankman opponents so they don't slide around as much.
|
||||
- Fixed the black "temp" graphic on freeplay from being incorrectly sized / masked, now it's identical to the dad freeplay graphic
|
||||
|
||||
## [0.4.0] - 2024-06-06
|
||||
### 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!)
|
||||
### Changed
|
||||
- Tweaked the 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!)
|
||||
- Health icons now support a Winning frame without requiring a spritesheet, simply include a third frame in the icon file. (thanks gamerbross!)
|
||||
- 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
|
||||
- Fixed an issue where Nene's visualizer would not play on Desktop builds
|
||||
- Fixed a bug where the game would silently fail to load saves on HTML5
|
||||
- Fixed some bugs with the props on the Story Menu not bopping properly
|
||||
- Additional fixes to the Loading bar on HTML5 (thanks lemz1!)
|
||||
- Fixed several bugs with the TitleState, including missing music when returning from the Main Menu (thanks gamerbross!)
|
||||
- Fixed a camera bug in the Main Menu (thanks richTrash21!)
|
||||
- Fixed a bug where changing difficulties in Story mode wouldn't update the score (thanks sectorA!)
|
||||
- Fixed a crash in Freeplay caused by a level referencing an invalid song (thanks gamerbross!)
|
||||
- Fixed a bug where pressing the volume keys would stop the Toy commercial (thanks gamerbross!)
|
||||
- Fixed a bug where the Chart Editor Playtest would crash when losing (thanks gamerbross!)
|
||||
- Fixed a bug where hold notes would display improperly in the Chart Editor when downscroll was enabled for gameplay (thanks gamerbross!)
|
||||
- Fixed a bug where hold notes would be positioned wrong on downscroll (thanks MaybeMaru!)
|
||||
- Removed a large number of unused imports to optimize builds (thanks Ethan-makes-music!)
|
||||
- Improved debug logging for unscripted stages (thanks gamerbross!)
|
||||
- Made improvements to compiling documentation (thanks gedehari!)
|
||||
- Fixed a crash on Linux caused by an old version of hxCodec (thanks Noobz4Life!)
|
||||
- Optimized animation handling for characters (thanks richTrash21!)
|
||||
- Made improvements to compiling documentation (thanks gedehari!)
|
||||
- Fixed an issue where the Chart Editor would use an incorrect instrumental on imported Legacy songs (thanks gamerbross!)
|
||||
- Fixed a camera bug in the Main Menu (thanks richTrash21!)
|
||||
- Fixed a bug where opening the game from the command line would crash the preloader (thanks NotHyper474!)
|
||||
- Fixed a bug where characters would sometimes use the wrong scale value (thanks PurSnake!)
|
||||
- Additional bug fixes and optimizations.
|
||||
|
||||
## [0.3.3] - 2024-05-14
|
||||
### Changed
|
||||
- Cleaned up some code in `PlayAnimationSongEvent.hx` (thanks BurgerBalls!)
|
||||
### Fixed
|
||||
- Fixes to the Loading bar on HTML5 (thanks lemz1!)
|
||||
- Don't allow any more inputs when exiting freeplay (thanks gamerbros!)
|
||||
- Fixed using mouse wheel to scroll on freeplay (thanks JugieNoob!)
|
||||
- Fixed the reset's of the health icons, score, and notes when re-entering gameplay from gameover (thanks ImCodist!)
|
||||
- Fixed the chart editor character selector's hitbox width (thanks MadBear422!)
|
||||
- Fixed camera stutter once a wipe transition to the Main Menu completes (thanks ImCodist!)
|
||||
- Fixed an issue where hold note would be invisible for a single frame (thanks ImCodist!)
|
||||
- Fix tween accumulation on title screen when pressing Y multiple times (thanks TheGaloXx!)
|
||||
- Fix a crash when querying FlxG.state in the crash handler
|
||||
- Fix for a game over easter egg so you don't accidentally exit it when viewing
|
||||
- Fix an issue where the Freeplay menu never displays 100% clear
|
||||
- Fix an issue where Weekend 1 Pico attempted to retrieve a missing asset.
|
||||
- Fix an issue where duplicate keybinds would be stoed, 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!)
|
||||
- Fix a crash on Freeplay found on AMD graphics cards
|
||||
|
||||
## [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 current 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`)
|
||||
- Fixed an issue where health icon transition animations would loop and never finish properly.
|
||||
- Fixed an issue where video cutscenes flagged as mid-song would crash the game when they finish.
|
||||
- Fixed an issue where some substate lifecycle events were not being dispatched.
|
||||
- Fixed a crash when trying to load into the Animation Offsets menu with an invalid character.
|
||||
- Fixed an issue where the preloader would spam the logs when it was 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 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
|
||||
- Fix a crash when retrieving system specs while handing a crash.
|
||||
- Fix a crash triggered when pausing before the song started.
|
||||
- Fix a crash triggered when dying before the song started.
|
||||
- Fix a crash triggered when unloading certain graphics.
|
||||
- Pico game over confirm 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)
|
||||
- Fix for arrow keys causing web browser page scroll
|
||||
|
||||
## [0.3.0] - 2024-04-30
|
||||
### Added
|
||||
- New Story Level: Weekend 1, starting 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 Ludem 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/ninjamuffin99/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/ninjamuffin99/Funkin/pull/382))
|
||||
- Fixed sustain note trails ALSO THANKS TO MTH U A REAL ONE ([MTH VERY POWERFUL](https://github.com/ninjamuffin99/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/ninjamuffin99/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/ninjamuffin99/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/ninjamuffin99/Funkin/pull/155))
|
||||
- Song no longer loops when finishing the song. ([Thanks Injourn for the Pull Request!](https://github.com/ninjamuffin99/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/ninjamuffin99/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/ninjamuffin99/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/ninjamuffin99/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/ninjamuffin99/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/ninjamuffin99/Funkin/issues/10), [HotSauceBurritos](https://github.com/ninjamuffin99/Funkin/issues/13) and [LobsterMango](https://lobstermango.newgrounds.com))
|
||||
- Fixed tiny note bleed over thingies (shoutouts [lotusotho](https://github.com/ninjamuffin99/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/ninjamuffin99/Funkin/issues/15))
|
||||
- Think I fixed issue that led to in-game scores being off by 2 ([shoutouts Mike](https://github.com/ninjamuffin99/Funkin/issues/4))
|
||||
- Should have fixed the 1 frame note appearance thing. ([shoutouts Mike](https://github.com/ninjamuffin99/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/ninjamuffin99/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
|
||||
@@ -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 intentation 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 serverities 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 intentation 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.
|
||||
- Reconfigure `MethodLength`
|
||||
- Reconfigure `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 singleline objects are automatically expanded, and short multiline 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.
|
||||
@@ -1,212 +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.
|
||||
@@ -1,13 +0,0 @@
|
||||
# RIGHT NOW THE MODS FOLDER DOES NOT WORK ENTIRELY JUST YET!!!
|
||||
## THIS IS WORK IN PROGRESS!!!
|
||||
|
||||
# QUICK AND DIRTY MOD GUIDE
|
||||
|
||||
With the 0.2.6 update, I added a bit of a slightly nicer mod support backend.
|
||||
|
||||
It's POLYMOD, which is made by Lars Doucet: https://github.com/larsiusprime/polymod
|
||||
|
||||
You may have noticed that there's a new folder in the assets. MODS. Within it you will see 2 files. modList.txt, and a folder called introMod.
|
||||
modList.txt will load any folder into the game. Put the folder you want to load into a new line in modList.txt, and reboot the game.
|
||||
|
||||
Now you may be wondering, what do I put in the folder? Well later down it'll get a bit more complicated, especially as I'll make the IN-GAME mod loader nicer.
|
||||
@@ -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>
|
||||
@@ -1,44 +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 check out our [building the game](/docs/COMPILING.md) guide.
|
||||
|
||||
# Contributing
|
||||
|
||||
Please check out our [Contributor's guide](./CONTRIBUTORS.md) on how you can actively participate in the development of Friday Night Funkin'.
|
||||
|
||||
# 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
|
||||
@@ -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
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"song": "Bopeebo",
|
||||
"bpm": 100,
|
||||
"sections": 15
|
||||
}
|
||||
|
After Width: | Height: | Size: 116 B |
|
After Width: | Height: | Size: 122 B |
|
After Width: | Height: | Size: 127 B |
|
After Width: | Height: | Size: 100 B |
|
After Width: | Height: | Size: 117 B |
|
After Width: | Height: | Size: 127 B |
|
After Width: | Height: | Size: 125 B |
|
After Width: | Height: | Size: 127 B |
|
After Width: | Height: | Size: 128 B |
|
After Width: | Height: | Size: 123 B |
|
After Width: | Height: | Size: 126 B |
|
After Width: | Height: | Size: 123 B |
|
After Width: | Height: | Size: 117 B |
|
After Width: | Height: | Size: 127 B |
|
After Width: | Height: | Size: 127 B |
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"song": "Fresh",
|
||||
"bpm": 120,
|
||||
"sections": 16
|
||||
}
|
||||
|
After Width: | Height: | Size: 129 B |
|
After Width: | Height: | Size: 123 B |
|
After Width: | Height: | Size: 121 B |
|
After Width: | Height: | Size: 125 B |
|
After Width: | Height: | Size: 139 B |
|
After Width: | Height: | Size: 149 B |
|
After Width: | Height: | Size: 129 B |
|
After Width: | Height: | Size: 133 B |
|
After Width: | Height: | Size: 133 B |
|
After Width: | Height: | Size: 116 B |
|
After Width: | Height: | Size: 120 B |
|
After Width: | Height: | Size: 121 B |
|
After Width: | Height: | Size: 127 B |
|
After Width: | Height: | Size: 139 B |
|
After Width: | Height: | Size: 149 B |
|
After Width: | Height: | Size: 117 B |
@@ -0,0 +1,4 @@
|
||||
wanda
|
||||
fizzd
|
||||
kiddbrute
|
||||
HenryEYES
|
||||
|
After Width: | Height: | Size: 1.3 MiB |
@@ -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>
|
||||
|
After Width: | Height: | Size: 1.1 MiB |
@@ -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>
|
||||
|
After Width: | Height: | Size: 868 KiB |
@@ -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>
|
||||
|
After Width: | Height: | Size: 700 KiB |
@@ -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>
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 152 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 136 KiB |
|
After Width: | Height: | Size: 307 B |
|
After Width: | Height: | Size: 22 KiB |
@@ -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>
|
||||
|
After Width: | Height: | Size: 85 KiB |
|
After Width: | Height: | Size: 231 KiB |