Author SHA1 Message Date
Yoshman29 908d933fa7 goodbye lua branch, see you next year 2023-01-19 13:57:44 +01:00
Yoshman29 2fd60900c4 fuck 2023-01-18 13:44:17 +01:00
Yoshman29 0ea3eeda32 object oriented lua support test branch 2023-01-18 03:25:38 +01:00
967 changed files with 35947 additions and 438237 deletions
+2 -2
View File
@@ -16,5 +16,5 @@ labels: compiling help
[ ] Mac
### Explain your issue
##### Please check first if your issue haven't already been reported yet, and make sure you ran the `update.bat` file before building.
[weed]: <> (MAKE SURE TO ADD A SCREENSHOT OF THE CRASH HANDLER, IF AVAILABLE, AND STEPS TO REPRODUCE THE BUG!)
##### Please check first if your issue haven't already been reported yet.
[weed]: <> (MAKE SURE TO ADD A SCREENSHOT OF THE CRASH HANDLER, IF AVAILABLE, AND STEPS TO REPRODUCE THE BUG!)
+2 -3
View File
@@ -5,7 +5,6 @@ on:
jobs:
build:
name: Linux Build
permissions: write-all
runs-on: ubuntu-latest
steps:
- name: Pulling the source
@@ -27,7 +26,7 @@ jobs:
cache-build-linux
- name: Installing/Updating libraries
run: |
haxe -cp commandline -D analyzer-optimize --run Main setup
haxe -cp ./update -D analyzer-optimize -main Update --interp
- name: Building the game
run: |
haxelib run lime build linux
@@ -70,4 +69,4 @@ jobs:
export/release/linux/haxe/
export/release/linux/obj/
restore-keys: |
cache-build-linux
cache-build-linux
+2 -3
View File
@@ -5,7 +5,6 @@ on:
jobs:
build:
name: Mac OS Build
permissions: write-all
runs-on: macos-latest
steps:
- name: Pulling the new commit
@@ -27,7 +26,7 @@ jobs:
cache-build-mac
- name: Installing/Updating libraries
run: |
haxe -cp commandline -D analyzer-optimize --run Main setup
haxe -cp ./update -D analyzer-optimize -main Update --interp
- name: Building the game
run: |
haxelib run lime build mac
@@ -70,4 +69,4 @@ jobs:
export/release/macos/haxe/
export/release/macos/obj/
restore-keys: |
cache-build-mac
cache-build-mac
+2 -3
View File
@@ -5,7 +5,6 @@ on:
jobs:
build:
name: Windows Build
permissions: write-all
runs-on: windows-latest
steps:
- name: Pulling the new commit
@@ -27,7 +26,7 @@ jobs:
cache-build-windows
- name: Installing/Updating libraries
run: |
haxe -cp commandline -D analyzer-optimize --run Main setup
haxe -cp ./update -D analyzer-optimize -main Update --interp
- name: Building the game
run: |
haxelib run lime build windows
@@ -70,4 +69,4 @@ jobs:
export/release/windows/haxe/
export/release/windows/obj/
restore-keys: |
cache-build-windows
cache-build-windows
+1 -2
View File
@@ -2,6 +2,5 @@ export/
dump/
latest/windows/obj/
latest/windows/haxe/
.vscode/*
!.vscode/settings.json
.vscode/
.haxelib/
-10
View File
@@ -1,10 +0,0 @@
{
"editor.detectIndentation": false,
"editor.insertSpaces": false,
"files.associations": {
"*.hx": "haxe",
"*.hscript": "haxe",
"*.hsc": "haxe",
"*.hxs": "haxe"
}
}
-76
View File
@@ -1,76 +0,0 @@
# Codename Engine features
This markdown file contains every single feature Codename has, separated into multiple categories. List may be incomplete.
_**QOL = Quality of Life**_
<details>
<summary><h2>Player QOL Features</h2></summary>
- New input system
- New accuracy and misses system, added to fix the base game UI.
- New options, including:
- Controls rebinds (for P1 and P2)
- Downscroll
- Ghost Tapping
- Opponent & Co-op modes
- Memory optimisation (most of the game runs < 500mb)
- Usage of [flxanimate](https://github.com/Dot-Stuff/flxanimate) on big sprites, such as Girlfriend to save memory.
- You can further optimize it on certain stages by enabling `Low Memory Mode` in `Options > Appearance`.
- New volume change SFX (no more loud flixel beep, customizable)
- New FPS counter allowing you to see advanced info by pressing F3.
- Simple but advanced modding system (press TAB on main menu)
- **Windows only:**
- (Windows) FNF is no longer blurry on 125-150% DPI
- FNF auto fixes audio on state change when you plug in/out your headphones.
- FNF auto applies dark titlebar
- **Week 7 included** with softcoded cutscenes (no MP4)
- Auto updating: Once the engine updates, a prompt will be available at launch. If you accept to update, the engine will auto install the newest version. All of the following update files will be downloaded from the GitHub releases:
- `Update-Windows.exe` - Containing the latest Windows executable. (~60mb)
- `Update-Assets.zip` - Every asset change from the latest version to the newest. If upgrading from even older version, all of the `Update-Assets.zip` files for the versions in between and the latest one will be downloaded.
</details>
<details>
<summary><h2>Modding QOL features</h2></summary>
- New assets and scripting management - **Applies both to the `assets` folder and mods.**
- Support for `hscript-improved`, a fork made to allow HScript to push modding even further
- Allows for imports
- Allows for public variables (variables shared between every script in a ScriptPack such as a song scripts)
- Allows for static variables (variabels shared between every single script ran in this mod)
- Allows you to use for example `boyfriend` instead of `PlayState.boyfriend` or `game.boyfriend`, for smaller and easier to comprehend code.
- Allows you to use `@:bypassAccessor`
- Allows you to use maps
- Usage of XML files for Characters instead of hardcoding them.
- Animation names, prefixes, indices, etc... can be set in the XML without an additional line of code.
- Offsets are automatically fixed. That means changes such as scaling, rotation, and playing as an opponent character wont break them.
- Entirely new song structure (`songs/name/`)
- Usage of `meta.json`, which allows you to synchronize data between charts and the Freeplay menu.
- Charts can use their own by specifying `meta` in the JSON (Codename charts only)
- Charts are now located in `songs/name/charts/`, and are named after the difficulty `hard.json` instead of `name-hard.json`
- Difficulties are auto-detected in case they aren't specified in the `meta.json` file.
- Scripts are located in `songs/name/scripts/`, and only applies to the current song.
- Script that applies on every song are located in `data/charts/`.
- Song files are now located in `songs/name/song/`. They still follow their `Inst.ogg` and `Voices.ogg` names.
- Inst/Voices for custom difficulties can be set by naming those files `Inst-difficulty.ogg` and/or `Voices-difficulty.ogg`.
- Song length limits
- Usage of XML files for stages. XMLs can:
- Change camera zooms, camera offsets, etc...
- Add elements to the stage and
- Position them
- Add animations
- Change their scale
- Change their scrollfactor
- Change their zoomfactor
- Turn on/off their antialiasing (on by default)
- Change additional properties via child nodes.
- Change boyfriend, girlfriend and dad's info
- Moving the `<boyfriend />`, `<girlfriend />` and `<dad />` nodes will move them in the layers
- Adding x and y attributes to them will change their position
- You can add positioning for custom characters by adding `<character name="name" />`
- Usage of XML files for weeks.
- Characters are located in `data/weeks/characters`.
- Weeks are located in `data/weeks/weeks/`
- If you need to rearrange the weeks in-game, you can use the `data/weeks/weeks.txt` file.
- Every single state & substate can be modified via HScript (`data/states/StateName.hx`)
- **Instances launched via `lime test windows` will automatically use assets from source.**
</details>
+22 -40
View File
@@ -2,16 +2,7 @@
<project>
<!-- _________________________ Application Settings _________________________ -->
<app
title="Friday Night Funkin' - Codename Engine" main="funkin.backend.system.Main"
file="CodenameEngine" packageName="com.yoshman29.codenameengine"
package="com.yoshman29.codenameengine"
version="0.1.0" company="Yoshman29" />
<!--
CHANGE THE SAVE PATH & NAME FOR YOUR MOD HERE!
-->
<app save-path="YoshiCrafter29/CodenameEngine" save-name="save-default" mod-saves="true" />
<app title="Friday Night Funkin' - Codename Engine" file="CodenameEngine" packageName="com.yoshman29.codenameengine" package="com.yoshman29.codenameengine" main="funkin.system.Main" version="0.1.0" company="Yoshman29" />
<!--Switch Export with Unique ApplicationID and Icon-->
<set name="APP_ID" value="0x0100f6c013bbc000" />
@@ -37,7 +28,6 @@
<!--Desktop-specific-->
<window if="desktop" orientation="landscape" fullscreen="false" resizable="true" vsync="false"/>
<window if="mac" allow-high-dpi="true" />
<!--Mobile-specific-->
<window if="mobile" orientation="landscape" fullscreen="true" width="0" height="0" resizable="false"/>
@@ -57,22 +47,17 @@
<define name="PRELOAD_ALL" unless="web" />
<define name="NO_PRELOAD_ALL" unless="PRELOAD_ALL"/>
<library name="assets" preload="true" if="PRELOAD_ALL"/>
<library name="assets" preload="false" if="NO_PRELOAD_ALL" />
<section unless="TEST_BUILD">
<assets path="assets/" rename="assets" exclude="*.ogg" if="web"/>
<assets path="assets/" rename="assets" exclude="*.mp3" unless="web"/>
</section>
<assets path="assets/" rename="assets" exclude="*.ogg" if="web"/>
<assets path="assets/" rename="assets" exclude="*.mp3" unless="web"/>
<assets path='mods' rename='mods' embed='false'/>
<assets path='art/readme.txt' rename='do NOT readme.txt' />
<!-- ______________________________ Haxedefines _____________________________ -->
<haxeflag name="--macro" value="funkin.backend.system.macros.NewHaxeWarning.warn()" />
<!--Enable the Flixel core recording system-->
<!--<haxedef name="FLX_RECORD" />-->
@@ -105,7 +90,6 @@
<!-- Comment this out to disable multiple windows for editors !-->
<define name="ALLOW_MULTITASKING" />
<define name="openfl_dpi_aware" />
<!-- Comment this out to disable updates !-->
<!-- <define name="UPDATE_CHECKING" unless="web || hl || neko"/> -->
@@ -135,41 +119,35 @@
<!-- Comment this out to disable softcoded states and state scripting !-->
<haxedef name="SOFTCODED_STATES" />
<!-- Comment this out to disable usage of source assets when using lime test windows !-->
<haxedef name="USE_SOURCE_ASSETS" />
<!-- Comment this out to use the default OpenFL assets system for the assets/ folder. !-->
<haxedef name="USE_ADAPTED_ASSETS" />
<!-- Comment this out to disable support for custom ndlls. !-->
<haxedef name="NDLLS_SUPPORTED" />
<!-- Comment this out to disable support for custom extended classes (data/classes). !-->
<define name="SOFTCODED_CLASSES" />
<!-- Comment this out to disable the use of luajit. !-->
<define name="ENABLE_LUA" if="windows || mac || linux"/>
<!-- Comment this out to disable video cutscene support, in case of compilation errors. !-->
<define name="VIDEO_CUTSCENES" unless="web || linux || hl || mac" />
<!-- Comment this out to disable commit number on FPS -->
<define name="SHOW_BUILD_ON_FPS" />
<!-- Comment this out to disable dark mode windows -->
<define name="DARK_MODE_WINDOW"/>
<haxedef name="ENABLE_LUA" if="ENABLE_LUA" />
<haxedef name="VIDEO_CUTSCENES" if="VIDEO_CUTSCENES" />
<haxedef name="UPDATE_CHECKING" if="UPDATE_CHECKING" />
<haxedef name="LUAJIT_ENABLE_LUA52COMPAT" if="ENABLE_LUA" />
<haxedef name="DISCORD_RPC" if="DISCORD_RPC" />
<haxedef name="SHOW_BUILD_ON_FPS" if="SHOW_BUILD_ON_FPS" />
<haxedef name="SOFTCODED_CLASSES" if="SOFTCODED_CLASSES" />
<haxedef name="openfl_dpi_aware" if="openfl_dpi_aware" />
<haxeflag name="--macro" value="funkin.macros.StdDeprecationsRemover.init()" />
<!-- _______________________________ Libraries ______________________________ -->
<haxelib name="flixel" />
<haxelib name="flixel-addons" />
<haxelib name="linc_luajit" if="ENABLE_LUA" />
<haxelib name="hxCodec" if="VIDEO_CUTSCENES" />
<haxelib name="away3d" />
<haxelib name="format" />
<haxelib name="flxanimate" />
<haxelib name="flixel-yc29" rename="flixel" />
<haxedev set='webgl' />
<haxelib name="hscript-improved" />
@@ -177,16 +155,20 @@
<haxelib name="markdown" />
<haxelib name="hxcpp-debug-server" if="desktop debug"/>
<!-- <haxelib name="hxcpp-debug-server" if="desktop"/> -->
<!-- _________________________________ HScript classes _______________________________ -->
<!-- _________________________________ Additional stuff _______________________________ -->
<section if="COMPILE_ALL_CLASSES">
<haxeflag name="-dce" value="no" />
<haxeflag name="--macro" value="funkin.backend.system.macros.ScriptsMacro.addAdditionalClasses()" />
<haxeflag name="--macro" value="funkin.macros.ScriptsMacro.addAdditionalClasses()" />
</section>
<haxeflag name="--macro" value="exclude('funkin.updating')" unless="UPDATE_CHECKING"/>
<haxeflag name="--macro" value="exclude('funkin.multitasking')" unless="ALLOW_MULTITASKING"/>
<haxeflag name="--macro" value="exclude('funkin.backend.system.updating')" unless="UPDATE_CHECKING"/>
<!-- MACROS & DOCUMENTATION !-->
<haxeflag name="--macro" value="funkin.macros.BuildCounterMacro.getBuildNumber()" />
<haxedef name="HXCPP_CHECK_POINTER" if="release" />
<haxedef name="HXCPP_STACK_LINE" if="release" />
+5 -16
View File
@@ -1,27 +1,16 @@
# Friday Night Funkin' - Codename Engine (WIP)
## PLEASE NOTE - THIS IS STILL IN A BETA STATE
### Mods created with beta versions of Codename may not be compatible with the release version
Known issues in the beta:
- Some options are missing
- Week 5 has no monster animation
- Week 6 still have no dialogue
- Week 7 have no running tankman
Build instructions are below. Press TAB on the main menu to switch mods.
Build instructions are below. Press TAB on the main menu to switch mods (make sure a mod folder exists or it crashes).
Also, `lime test windows` uses the source assets folder instead of the export one for easier development.
## Codename Engine
Codename Engine is a new Friday Night Funkin' Engine aimed for easier modding, along with extensiblity and ease of use.
### It includes many new features, as seen [here](FEATURES.md)
## How to download
Latest builds for the engine can be found in the [Actions](https://github.com/YoshiCrafter29/CodenameEngine/actions) tab.
<details>
<summary><h2>Credits</h2></summary>
@@ -38,7 +27,7 @@ Latest builds for the engine can be found in the [Actions](https://github.com/Yo
<summary>Windows</summary>
##### Tested on Windows 10 21H2
1. Install [version 4.2.5 of Haxe](https://haxe.org/download/version/4.2.5/).
1. Install the [latest version of Haxe](https://haxe.org/download/).
2. Download [Visual Studio Build Tools](https://aka.ms/vs/17/release/vs_BuildTools.exe)
3. Wait for the Visual Studio Installer to install
4. On the Visual Studio installer screen, go to the "Individual components" tab and only select those options:
@@ -63,7 +52,7 @@ Latest builds for the engine can be found in the [Actions](https://github.com/Yo
<summary>Linux</summary>
##### Requires testing
1. Install [version 4.2.5 of Haxe](https://haxe.org/download/version/4.2.5/).
1. Install the [latest version of Haxe](https://haxe.org/download/).
2. Install `g++`, if not present already.
3. Download and install [`git-scm`](https://git-scm.com/download/linux).
4. Open a terminal in the Codename Engine source folder, and run `update.sh`.
@@ -74,7 +63,7 @@ Latest builds for the engine can be found in the [Actions](https://github.com/Yo
<summary>MacOS</summary>
##### Requires testing
1. Install [version 4.2.5 of Haxe](https://haxe.org/download/version/4.2.5/).
1. Install the [latest version of Haxe](https://haxe.org/download/).
2. Install `Xcode` to allow C++ app building.
3. Download and install [`git-scm`](https://git-scm.com/download/mac).
4. Open a terminal in the Codename Engine source folder, and run `update.sh`.
@@ -84,4 +73,4 @@ Latest builds for the engine can be found in the [Actions](https://github.com/Yo
</details>
</details>
</details>
-37
View File
@@ -1,37 +0,0 @@
# Codename Engine Todo List
## `v1.0.0` - Initial release
- [x] Remove Herobrine
- [ ] Chart Editor
- [x] Place & Delete notes
- [x] Ctrl+Z & Ctrl+Y
- [x] Selection box & dragging
- [x] Scroll bar at the right + Song info
- [x] Fix the strumlines bar when zooming out
- [x] Algorithm to make note placements faster & sorted out
- [x] Play here working
- [ ] Events (including Camera Movement)
- [ ] Custom Notes
- [ ] Metadata Editing
- [ ] Cap zoom in & out
- [ ] Step based zooming
- [ ] Use latest hxCodec
- [ ] Re-export gf-christmas, gf-car and gf-tankmen with padding
- [ ] Multiple state scripts & Multiple global scripts
- [ ] Re-add shader camera stuff
- [ ] Make update.bat use libs.xml instead of hmm.json
- [ ] New Switch Mod menu
- [ ] Port shader camera stuff over to new flixel fork
- [ ] Add note offset
- [ ] Dialogue
- [ ] Finish Base Game port
- [ ] Character Editor
- [ ] Fix bugs
## `v1.1.0`
- [ ] Charter Waveforms (maybe in v1.1.0, dont wanna slow shit down)
- [ ] Custom classes
- [ ] Full 3D support via stages files
- [ ] Multithread sprites loading (for faster load times) ?
- [ ] Stage Editor
-10
View File
@@ -1,10 +0,0 @@
## DEV (PRIVATE) REPO INSTRUCTIONS TO SYNC UP WITH IT INSTEAD OF SYNCING WITH THE PUBLIC ONE
- Open a Command Prompt window in the public codename repo folder
- Type those commands:
- `git remote add dev https://www.github.com/YoshiCrafter29/CodenameEngine-Dev`
- `git branch --set-upstream-to dev/main`
- GitHub desktop should be synchronized with the dev repo now. If you're unsure,
- Repo name should still say "CodenameEngine"
- Current branch should still say "main"
- "Fetch" button should say "Fetch dev"
- You shouldn't have any commit to push.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

+122 -123
View File
@@ -1,128 +1,127 @@
<!DOCTYPE codename-engine-alphabet>
<letters fps="24">
<bold spritesheet="menus/alphabet-bold">
<!-- Bold Letters !-->
<letter char="A" anim="A bold" />
<letter char="B" anim="B bold" />
<letter char="C" anim="C bold" />
<letter char="D" anim="D bold" />
<letter char="E" anim="E bold" />
<letter char="F" anim="F bold" />
<letter char="G" anim="G bold" />
<letter char="H" anim="H bold" />
<letter char="I" anim="I bold" />
<letter char="J" anim="J bold" />
<letter char="K" anim="K bold" />
<letter char="L" anim="L bold" />
<letter char="M" anim="M bold" />
<letter char="N" anim="N bold" />
<letter char="O" anim="O bold" />
<letter char="P" anim="P bold" />
<letter char="Q" anim="Q bold" />
<letter char="R" anim="R bold" />
<letter char="S" anim="S bold" />
<letter char="T" anim="T bold" />
<letter char="U" anim="U bold" />
<letter char="V" anim="V bold" />
<letter char="W" anim="W bold" />
<letter char="X" anim="X bold" />
<letter char="Y" anim="Y bold" />
<letter char="Z" anim="Z bold" />
<letter char=">" anim="> Bold" />
</bold>
<normal spritesheet="menus/alphabet">
<!-- Symbols !-->
<letter char="$" anim="dollarsign" />
<letter char="#" anim="hashtag" />
<letter char="%" anim="%" />
<letter char="&amp;" anim="amp" />
<letter char="(" anim="(" />
<letter char=")" anim=")" />
<letter char="*" anim="*" center="middle" />
<letter char="+" anim="+" center="middle" />
<letter char="-" anim="-" center="middle" />
<letter char="0" anim="0" />
<letter char="1" anim="1" />
<letter char="2" anim="2" />
<letter char="3" anim="3" />
<letter char="4" anim="4" />
<letter char="5" anim="5" />
<letter char="6" anim="6" />
<letter char="7" anim="7" />
<letter char="8" anim="8" />
<letter char="9" anim="9" />
<letter char=":" anim=":" />
<letter char=";" anim=";" />
<letter char="<" anim="<" />
<letter char=">" anim=">" />
<letter char="=" anim="=" />
<letter char="@" anim="@" />
<letter char="|" anim="|" />
<letter char="~" anim="~" />
<letter char="[" anim="[" />
<letter char="]" anim="]" />
<letter char="→" anim="right arrow" center="middle" />
<letter char="←" anim="left arrow" center="middle" />
<letter char="↓" anim="down arrow" center="middle" />
<letter char="↑" anim="up arrow" center="middle" />
<letter char="." anim="period" center="middle" />
<letter char="?" anim="question mark" />
<letter char="&#34;" anim="start parentheses" />
<bold spritesheet="menus/alphabet-bold">
<!-- Bold Letters !-->
<letter char="A" anim="A bold" />
<letter char="B" anim="B bold" />
<letter char="C" anim="C bold" />
<letter char="D" anim="D bold" />
<letter char="E" anim="E bold" />
<letter char="F" anim="F bold" />
<letter char="G" anim="G bold" />
<letter char="H" anim="H bold" />
<letter char="I" anim="I bold" />
<letter char="J" anim="J bold" />
<letter char="K" anim="K bold" />
<letter char="L" anim="L bold" />
<letter char="M" anim="M bold" />
<letter char="N" anim="N bold" />
<letter char="O" anim="O bold" />
<letter char="P" anim="P bold" />
<letter char="Q" anim="Q bold" />
<letter char="R" anim="R bold" />
<letter char="S" anim="S bold" />
<letter char="T" anim="T bold" />
<letter char="U" anim="U bold" />
<letter char="V" anim="V bold" />
<letter char="W" anim="W bold" />
<letter char="X" anim="X bold" />
<letter char="Y" anim="Y bold" />
<letter char="Z" anim="Z bold" />
</bold>
<normal spritesheet="menus/alphabet">
<!-- Symbols !-->
<letter char="$" anim="dollarsign" />
<letter char="#" anim="hashtag" />
<letter char="%" anim="%" />
<letter char="&amp;" anim="amp" />
<letter char="(" anim="(" />
<letter char=")" anim=")" />
<letter char="*" anim="*" center="middle" />
<letter char="+" anim="+" center="middle" />
<letter char="-" anim="-" center="middle" />
<letter char="0" anim="0" />
<letter char="1" anim="1" />
<letter char="2" anim="2" />
<letter char="3" anim="3" />
<letter char="4" anim="4" />
<letter char="5" anim="5" />
<letter char="6" anim="6" />
<letter char="7" anim="7" />
<letter char="8" anim="8" />
<letter char="9" anim="9" />
<letter char=":" anim=":" />
<letter char=";" anim=";" />
<letter char="<" anim="<" />
<letter char=">" anim=">" />
<letter char="=" anim="=" />
<letter char="@" anim="@" />
<letter char="|" anim="|" />
<letter char="~" anim="~" />
<letter char="[" anim="[" />
<letter char="]" anim="]" />
<letter char="→" anim="right arrow" center="middle" />
<letter char="←" anim="left arrow" center="middle" />
<letter char="↓" anim="down arrow" center="middle" />
<letter char="↑" anim="up arrow" center="middle" />
<letter char="." anim="period" center="middle" />
<letter char="?" anim="question mark" />
<letter char="&#34;" anim="start parentheses" />
<!-- Capital Letters !-->
<letter char="A" anim="A capital" />
<letter char="B" anim="B capital" />
<letter char="C" anim="C capital" />
<letter char="D" anim="D capital" />
<letter char="E" anim="E capital" />
<letter char="F" anim="F capital" />
<letter char="G" anim="G capital" />
<letter char="H" anim="H capital" />
<letter char="I" anim="I capital" />
<letter char="J" anim="J capital" />
<letter char="K" anim="K capital" />
<letter char="L" anim="L capital" />
<letter char="M" anim="M capital" />
<letter char="N" anim="N capital" />
<letter char="O" anim="O capital" />
<letter char="P" anim="P capital" />
<letter char="Q" anim="Q capital" />
<letter char="R" anim="R capital" />
<letter char="S" anim="S capital" />
<letter char="T" anim="T capital" />
<letter char="U" anim="U capital" />
<letter char="V" anim="V capital" />
<letter char="W" anim="W capital" />
<letter char="X" anim="X capital" />
<letter char="Y" anim="Y capital" />
<letter char="Z" anim="Z capital" />
<!-- Capital Letters !-->
<letter char="A" anim="A capital" />
<letter char="B" anim="B capital" />
<letter char="C" anim="C capital" />
<letter char="D" anim="D capital" />
<letter char="E" anim="E capital" />
<letter char="F" anim="F capital" />
<letter char="G" anim="G capital" />
<letter char="H" anim="H capital" />
<letter char="I" anim="I capital" />
<letter char="J" anim="J capital" />
<letter char="K" anim="K capital" />
<letter char="L" anim="L capital" />
<letter char="M" anim="M capital" />
<letter char="N" anim="N capital" />
<letter char="O" anim="O capital" />
<letter char="P" anim="P capital" />
<letter char="Q" anim="Q capital" />
<letter char="R" anim="R capital" />
<letter char="S" anim="S capital" />
<letter char="T" anim="T capital" />
<letter char="U" anim="U capital" />
<letter char="V" anim="V capital" />
<letter char="W" anim="W capital" />
<letter char="X" anim="X capital" />
<letter char="Y" anim="Y capital" />
<letter char="Z" anim="Z capital" />
<!-- Lowercase Letters !-->
<letter char="a" anim="a lowercase" />
<letter char="b" anim="b lowercase" />
<letter char="c" anim="c lowercase" />
<letter char="d" anim="d lowercase" />
<letter char="e" anim="e lowercase" />
<letter char="f" anim="f lowercase" />
<letter char="g" anim="g lowercase" />
<letter char="h" anim="h lowercase" />
<letter char="i" anim="i lowercase" />
<letter char="j" anim="j lowercase" />
<letter char="k" anim="k lowercase" />
<letter char="l" anim="l lowercase" />
<letter char="m" anim="m lowercase" />
<letter char="n" anim="n lowercase" />
<letter char="o" anim="o lowercase" />
<letter char="p" anim="p lowercase" />
<letter char="q" anim="q lowercase" />
<letter char="r" anim="r lowercase" />
<letter char="s" anim="s lowercase" />
<letter char="t" anim="t lowercase" />
<letter char="u" anim="u lowercase" />
<letter char="v" anim="v lowercase" />
<letter char="w" anim="w lowercase" />
<letter char="x" anim="x lowercase" />
<letter char="y" anim="y lowercase" />
<letter char="z" anim="z lowercase" />
</normal>
<!-- Lowercase Letters !-->
<letter char="a" anim="a lowercase" />
<letter char="b" anim="b lowercase" />
<letter char="c" anim="c lowercase" />
<letter char="d" anim="d lowercase" />
<letter char="e" anim="e lowercase" />
<letter char="f" anim="f lowercase" />
<letter char="g" anim="g lowercase" />
<letter char="h" anim="h lowercase" />
<letter char="i" anim="i lowercase" />
<letter char="j" anim="j lowercase" />
<letter char="k" anim="k lowercase" />
<letter char="l" anim="l lowercase" />
<letter char="m" anim="m lowercase" />
<letter char="n" anim="n lowercase" />
<letter char="o" anim="o lowercase" />
<letter char="p" anim="p lowercase" />
<letter char="q" anim="q lowercase" />
<letter char="r" anim="r lowercase" />
<letter char="s" anim="s lowercase" />
<letter char="t" anim="t lowercase" />
<letter char="u" anim="u lowercase" />
<letter char="v" anim="v lowercase" />
<letter char="w" anim="w lowercase" />
<letter char="x" anim="x lowercase" />
<letter char="y" anim="y lowercase" />
<letter char="z" anim="z lowercase" />
</normal>
</letters>
+9 -9
View File
@@ -1,12 +1,12 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="true" flipX="true" x="0" y="350" icon="bf" camx="25">
<anim name="idle" anim="BF idle dance" fps="24" loop="false" x="-5" y="0"/>
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="-6"/>
<anim name="singRIGHT" anim="BF NOTE RIGHT0" fps="24" loop="false" x="-38" y="-7"/>
<anim name="singDOWN" anim="BF NOTE DOWN0" fps="24" loop="false" x="-10" y="-50"/>
<anim name="singUPmiss" anim="BF NOTE UP MISS" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="24"/>
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-30" y="21"/>
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-11" y="-19"/>
<anim name="idle" anim="BF idle dance" fps="24" loop="false" x="-5" y="0"/>
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="-6"/>
<anim name="singRIGHT" anim="BF NOTE RIGHT0" fps="24" loop="false" x="-38" y="-7"/>
<anim name="singDOWN" anim="BF NOTE DOWN0" fps="24" loop="false" x="-10" y="-50"/>
<anim name="singUPmiss" anim="BF NOTE UP MISS" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="24"/>
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-30" y="21"/>
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-11" y="-19"/>
</character>
+10 -10
View File
@@ -1,13 +1,13 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="true" flipX="true" x="0" y="350" icon="bf">
<anim name="idle" anim="BF idle dance" fps="24" loop="false" x="-5" y="0"/>
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="-6"/>
<anim name="singRIGHT" anim="BF NOTE RIGHT0" fps="24" loop="false" x="-38" y="-7"/>
<anim name="singDOWN" anim="BF NOTE DOWN0" fps="24" loop="false" x="-10" y="-50"/>
<anim name="singUPmiss" anim="BF NOTE UP MISS" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="24"/>
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-30" y="21"/>
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-11" y="-19"/>
<anim name="hey" anim="BF HEY" fps="24" loop="false" x="7" y="4"/>
<anim name="idle" anim="BF idle dance" fps="24" loop="false" x="-5" y="0"/>
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="-6"/>
<anim name="singRIGHT" anim="BF NOTE RIGHT0" fps="24" loop="false" x="-38" y="-7"/>
<anim name="singDOWN" anim="BF NOTE DOWN0" fps="24" loop="false" x="-10" y="-50"/>
<anim name="singUPmiss" anim="BF NOTE UP MISS" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="24"/>
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-30" y="21"/>
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-11" y="-19"/>
<anim name="hey" anim="BF HEY" fps="24" loop="false" x="7" y="4"/>
</character>
+3 -3
View File
@@ -1,6 +1,6 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="true" flipX="true" x="0" y="350">
<anim name="firstDeath" anim="BF dies" fps="24" loop="false" x="37" y="11"/>
<anim name="deathLoop" anim="BF Dead Loop" fps="24" loop="false" x="37" y="5"/>
<anim name="deathConfirm" anim="BF Dead confirm" fps="24" loop="false" x="37" y="69"/>
<anim name="firstDeath" anim="BF dies" fps="24" loop="false" x="37" y="11"/>
<anim name="deathLoop" anim="BF Dead Loop" fps="24" loop="false" x="37" y="5"/>
<anim name="deathConfirm" anim="BF Dead confirm" fps="24" loop="false" x="37" y="69"/>
</character>
+10 -10
View File
@@ -1,13 +1,13 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="true" flipX="true" x="0" y="350" icon="bf">
<anim name="idle" anim="BF idle dance" fps="24" loop="false"/>
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="10"/>
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="7"/>
<anim name="singRIGHT" anim="BF NOTE RIGHT0" fps="24" loop="false" x="-41" y="23"/>
<anim name="singDOWN" anim="BF NOTE DOWN0" fps="24" loop="false" x="-10" y="-10"/>
<anim name="singUPmiss" anim="BF NOTE UP MISS" fps="24" loop="false" x="-29" y="10"/>
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="7"/>
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-41" y="23"/>
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-10" y="-10"/>
<anim name="bfCatch" anim="BF catches GF" fps="24" loop="false" x="0" y="0"/>
<anim name="idle" anim="BF idle dance" fps="24" loop="false"/>
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="10"/>
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="7"/>
<anim name="singRIGHT" anim="BF NOTE RIGHT0" fps="24" loop="false" x="-41" y="23"/>
<anim name="singDOWN" anim="BF NOTE DOWN0" fps="24" loop="false" x="-10" y="-10"/>
<anim name="singUPmiss" anim="BF NOTE UP MISS" fps="24" loop="false" x="-29" y="10"/>
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="7"/>
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-41" y="23"/>
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-10" y="-10"/>
<anim name="bfCatch" anim="BF catches GF" fps="24" loop="false" x="0" y="0"/>
</character>
+6 -6
View File
@@ -1,10 +1,10 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="true" flipX="true" x="200" y="570" antialiasing="false" scale="6" camx="-200" camy="-20">
<anim name="idle" anim="BF IDLE" fps="24" loop="false" x="0" y="0" />
<anim name="idle" anim="BF IDLE" fps="24" loop="false" x="0" y="0" />
<!-- Offsets are actually multiplied by scale -->
<anim name="singLEFT" anim="BF LEFT NOTE" fps="24" loop="false" x="0" y="0" />
<anim name="singDOWN" anim="BF DOWN NOTE" fps="24" loop="false" x="0" y="0" />
<anim name="singUP" anim="BF UP NOTE" fps="24" loop="false" x="0" y="0" />
<anim name="singRIGHT" anim="BF RIGHT NOTE" fps="24" loop="false" x="0" y="0" />
<!-- Offsets are actually multiplied by scale -->
<anim name="singLEFT" anim="BF LEFT NOTE" fps="24" loop="false" x="0" y="0" />
<anim name="singDOWN" anim="BF DOWN NOTE" fps="24" loop="false" x="0" y="0" />
<anim name="singUP" anim="BF UP NOTE" fps="24" loop="false" x="0" y="0" />
<anim name="singRIGHT" anim="BF RIGHT NOTE" fps="24" loop="false" x="0" y="0" />
</character>
+11 -11
View File
@@ -1,14 +1,14 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="true" flipX="true" x="0" y="350">
<anim name="idle" anim="BF idle dance" fps="24" loop="false" x="-5" y="0"/>
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="-6"/>
<anim name="singRIGHT" anim="BF NOTE RIGHT0" fps="24" loop="false" x="-38" y="-7"/>
<anim name="singDOWN" anim="BF NOTE DOWN0" fps="24" loop="false" x="-10" y="-50"/>
<anim name="singUPmiss" anim="BF NOTE UP MISS" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="24"/>
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-30" y="21"/>
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-11" y="-19"/>
<anim name="hey" anim="BF HEY" fps="24" loop="false" x="7" y="4"/>
<anim name="scared" anim="BF idle shaking" fps="24" loop="true" x="-4" y="0"/>
<anim name="idle" anim="BF idle dance" fps="24" loop="false" x="-5" y="0"/>
<anim name="singUP" anim="BF NOTE UP0" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFT" anim="BF NOTE LEFT0" fps="24" loop="false" x="12" y="-6"/>
<anim name="singRIGHT" anim="BF NOTE RIGHT0" fps="24" loop="false" x="-38" y="-7"/>
<anim name="singDOWN" anim="BF NOTE DOWN0" fps="24" loop="false" x="-10" y="-50"/>
<anim name="singUPmiss" anim="BF NOTE UP MISS" fps="24" loop="false" x="-29" y="27"/>
<anim name="singLEFTmiss" anim="BF NOTE LEFT MISS" fps="24" loop="false" x="12" y="24"/>
<anim name="singRIGHTmiss" anim="BF NOTE RIGHT MISS" fps="24" loop="false" x="-30" y="21"/>
<anim name="singDOWNmiss" anim="BF NOTE DOWN MISS" fps="24" loop="false" x="-11" y="-19"/>
<anim name="hey" anim="BF HEY" fps="24" loop="false" x="7" y="4"/>
<anim name="scared" anim="BF idle shaking" fps="24" loop="true" x="-4" y="0"/>
</character>
-8
View File
@@ -1,8 +0,0 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" holdTime="6.1" icon="dad" y="150">
<anim name="idle" anim="Dad idle dance" fps="24" loop="false" x="0" y="0"/>
<anim name="singUP" anim="Dad Sing note UP" fps="24" loop="false" x="-2" y="50"/>
<anim name="singLEFT" anim="dad sing note right" fps="24" loop="false" x="-2" y="10"/>
<anim name="singRIGHT" anim="Dad Sing Note LEFT" fps="24" loop="false" x="-5" y="27"/>
<anim name="singDOWN" anim="Dad Sing Note DOWN" fps="24" loop="false" x="0" y="-30"/>
</character>
+5 -5
View File
@@ -1,8 +1,8 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" holdTime="6.1">
<anim name="idle" anim="Dad idle dance" fps="24" loop="false" x="0" y="0"/>
<anim name="singUP" anim="Dad Sing note UP" fps="24" loop="false" x="-6" y="50"/>
<anim name="singLEFT" anim="dad sing note right" fps="24" loop="false" x="-10" y="10"/>
<anim name="singRIGHT" anim="Dad Sing Note LEFT" fps="24" loop="false" x="0" y="27"/>
<anim name="singDOWN" anim="Dad Sing Note DOWN" fps="24" loop="false" x="0" y="-30"/>
<anim name="idle" anim="Dad idle dance" fps="24" loop="false" x="0" y="0"/>
<anim name="singUP" anim="Dad Sing Note UP" fps="24" loop="false" x="-6" y="50"/>
<anim name="singLEFT" anim="Dad Sing Note LEFT" fps="24" loop="false" x="-10" y="10"/>
<anim name="singRIGHT" anim="Dad Sing Note RIGHT" fps="24" loop="false" x="0" y="27"/>
<anim name="singDOWN" anim="Dad Sing Note DOWN" fps="24" loop="false" x="0" y="-30"/>
</character>
+2 -2
View File
@@ -1,5 +1,5 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" isGF="true" x="75" y="335">
<anim name="danceLeft" anim="GF Dancing Beat Hair blowing CAR" fps="24" loop="false" x="0" y="0" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="GF Dancing Beat Hair blowing CAR" fps="24" loop="false" x="0" y="0" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
<anim name="danceLeft" anim="GF Dancing Beat Hair blowing CAR" fps="24" loop="false" x="0" y="0" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="GF Dancing Beat Hair blowing CAR" fps="24" loop="false" x="0" y="0" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</character>
+11 -11
View File
@@ -1,14 +1,14 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" isGF="true" x="115" y="325">
<anim name="cheer" anim="GF Cheer" fps="24" loop="false" />
<anim name="singUP" anim="GF Up Note" fps="24" loop="false" x="0" y="4" />
<anim name="singLEFT" anim="GF left note" fps="24" loop="false" x="0" y="-19" />
<anim name="singRIGHT" anim="GF Right Note" fps="24" loop="false" x="0" y="-20" />
<anim name="singDOWN" anim="GF Down Note" fps="24" loop="false" x="0" y="-20" />
<anim name="danceLeft" anim="GF Dancing Beat" fps="24" loop="false" x="0" y="-9" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="GF Dancing Beat" fps="24" loop="false" x="0" y="-9" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
<anim name="hairBlow" anim="GF Dancing Beat Hair blowing" fps="24" loop="false" x="45" y="-8" indices="0,1,2,3" />
<anim name="hairFall" anim="GF Dancing Beat Hair Landing" fps="24" loop="false" x="0" y="-9" indices="0,1,2,3,4,5,6,7,8,9,10,11" />
<anim name="scared" anim="GF FEAR" fps="24" loop="true" x="-2" y="-17" />
<anim name="sad" anim="gf sad" fps="24" loop="true" x="-2" y="-21" indices="0,1,2,3,4,5,6,7,8,9,10,11,12" />
<anim name="cheer" anim="GF Cheer" fps="24" loop="false" />
<anim name="singUP" anim="GF Up Note" fps="24" loop="false" x="0" y="4" />
<anim name="singLEFT" anim="GF left note" fps="24" loop="false" x="0" y="-19" />
<anim name="singRIGHT" anim="GF Right Note" fps="24" loop="false" x="0" y="-20" />
<anim name="singDOWN" anim="GF Down Note" fps="24" loop="false" x="0" y="-20" />
<anim name="danceLeft" anim="GF Dancing Beat" fps="24" loop="false" x="0" y="-9" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="GF Dancing Beat" fps="24" loop="false" x="0" y="-9" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
<anim name="hairBlow" anim="GF Dancing Beat Hair blowing" fps="24" loop="false" x="45" y="-8" indices="0,1,2,3" />
<anim name="hairFall" anim="GF Dancing Beat Hair Landing" fps="24" loop="false" x="0" y="-9" indices="0,1,2,3,4,5,6,7,8,9,10,11" />
<anim name="scared" anim="GF FEAR" fps="24" loop="true" x="-2" y="-17" />
<anim name="sad" anim="gf sad" fps="24" loop="true" x="-2" y="-21" indices="0,1,2,3,4,5,6,7,8,9,10,11,12" />
</character>
+2 -2
View File
@@ -1,5 +1,5 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" x="180" y="300" antialiasing="false" scale="6" camx="180" camy="300">
<anim name="danceLeft" anim="GF IDLE" fps="24" loop="false" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" x="0" y="0" />
<anim name="danceRight" anim="GF IDLE" fps="24" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" x="0" y="0" />
<anim name="danceLeft" anim="GF IDLE" fps="24" loop="false" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" x="0" y="0" />
<anim name="danceRight" anim="GF IDLE" fps="24" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" x="0" y="0" />
</character>
+4 -5
View File
@@ -1,7 +1,6 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" isGF="true" x="100" y="275">
<anim name="danceLeft" anim="GF Dancing at Gunpoint" fps="24" loop="false" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="GF Dancing at Gunpoint" fps="24" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
<anim name="dance-cutscene" anim="GF Dancing at Gunpoint" fps="24" loop="true" />
<anim name="sad" anim="GF Crying at Gunpoint" fps="24" loop="true" indices="0,1,2,3,4,5,6,7,8,9,10,11,12"/>
<character isPlayer="false" flipX="false" isGF="true">
<anim name="danceLeft" anim="GF Dancing at Gunpoint" fps="24" loop="false" x="0" y="-9" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="GF Dancing at Gunpoint" fps="24" loop="false" x="0" y="-9" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
<anim name="sad" anim="GF Crying at Gunpoint" fps="24" loop="true" x="-2" y="-21" indices="0,1,2,3,4,5,6,7,8,9,10,11,12"/>
</character>
+11 -11
View File
@@ -1,14 +1,14 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" isGF="true" x="100" y="275">
<anim name="cheer" anim="GF Cheer" fps="24" loop="false" />
<anim name="singUP" anim="GF Up Note" fps="24" loop="false" x="0" y="0" />
<anim name="singLEFT" anim="GF left note" fps="24" loop="false" x="0" y="0" />
<anim name="singRIGHT" anim="GF Right Note" fps="24" loop="false" x="0" y="0" />
<anim name="singDOWN" anim="GF Down Note" fps="24" loop="false" x="0" y="0" />
<anim name="danceLeft" anim="GF Dancing Beat" fps="24" loop="false" x="0" y="0" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="GF Dancing Beat" fps="24" loop="false" x="0" y="0" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
<anim name="hairBlow" anim="GF Dancing Beat Hair blowing" fps="24" loop="false" x="0" y="0" indices="0,1,2,3" />
<anim name="hairFall" anim="GF Dancing Beat Hair Landing" fps="24" loop="false" x="0" y="0" indices="0,1,2,3,4,5,6,7,8,9,10,11" />
<anim name="scared" anim="GF FEAR" fps="24" loop="true" x="0" y="0" />
<anim name="sad" anim="gf sad" fps="24" loop="true" x="0" y="0" indices="0,1,2,3,4,5,6,7,8,9,10,11,12" />
<anim name="cheer" anim="GF Cheer" fps="24" loop="false" />
<anim name="singUP" anim="GF Up Note" fps="24" loop="false" x="0" y="0" />
<anim name="singLEFT" anim="GF left note" fps="24" loop="false" x="0" y="0" />
<anim name="singRIGHT" anim="GF Right Note" fps="24" loop="false" x="0" y="0" />
<anim name="singDOWN" anim="GF Down Note" fps="24" loop="false" x="0" y="0" />
<anim name="danceLeft" anim="GF Dancing Beat" fps="24" loop="false" x="0" y="0" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="GF Dancing Beat" fps="24" loop="false" x="0" y="0" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
<anim name="hairBlow" anim="GF Dancing Beat Hair blowing" fps="24" loop="false" x="0" y="0" indices="0,1,2,3" />
<anim name="hairFall" anim="GF Dancing Beat Hair Landing" fps="24" loop="false" x="0" y="0" indices="0,1,2,3,4,5,6,7,8,9,10,11" />
<anim name="scared" anim="GF FEAR" fps="24" loop="true" x="0" y="0" />
<anim name="sad" anim="gf sad" fps="24" loop="true" x="0" y="0" indices="0,1,2,3,4,5,6,7,8,9,10,11,12" />
</character>
+6 -6
View File
@@ -1,10 +1,10 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" icon="mom">
<anim name="idle" anim="Mom Idle" fps="24" loop="false" />
<anim name="singUP" anim="Mom Up Pose" fps="24" loop="false" x="14" y="71"/>
<anim name="singDOWN" anim="MOM DOWN POSE" fps="24" loop="false" x="20" y="-160"/>
<anim name="singLEFT" anim="Mom Left Pose" fps="24" loop="false" x="250" y="-23"/>
<!-- ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT -->
<anim name="idle" anim="Mom Idle" fps="24" loop="false" />
<anim name="singUP" anim="Mom Up Pose" fps="24" loop="false" x="14" y="71"/>
<anim name="singDOWN" anim="MOM DOWN POSE" fps="24" loop="false" x="20" y="-160"/>
<anim name="singLEFT" anim="Mom Left Pose" fps="24" loop="false" x="250" y="-23"/>
<!-- ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT -->
<!-- CUZ DAVE IS DUMB! -->
<anim name="singRIGHT" anim="Mom Pose Left" fps="24" loop="false" x="10" y="-60"/>
<anim name="singRIGHT" anim="Mom Pose Left" fps="24" loop="false" x="10" y="-60"/>
</character>
+6 -6
View File
@@ -1,10 +1,10 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false">
<anim name="idle" anim="Mom Idle" fps="24" loop="false" />
<anim name="singUP" anim="Mom Up Pose" fps="24" loop="false" x="14" y="71"/>
<anim name="singDOWN" anim="MOM DOWN POSE" fps="24" loop="false" x="20" y="-160"/>
<anim name="singLEFT" anim="Mom Left Pose" fps="24" loop="false" x="250" y="-23"/>
<!-- ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT -->
<anim name="idle" anim="Mom Idle" fps="24" loop="false" />
<anim name="singUP" anim="Mom Up Pose" fps="24" loop="false" x="14" y="71"/>
<anim name="singDOWN" anim="MOM DOWN POSE" fps="24" loop="false" x="20" y="-160"/>
<anim name="singLEFT" anim="Mom Left Pose" fps="24" loop="false" x="250" y="-23"/>
<!-- ANIMATION IS CALLED MOM LEFT POSE BUT ITS FOR THE RIGHT -->
<!-- CUZ DAVE IS DUMB! -->
<anim name="singRIGHT" anim="Mom Pose Left" fps="24" loop="false" x="10" y="-60"/>
<anim name="singRIGHT" anim="Mom Pose Left" fps="24" loop="false" x="10" y="-60"/>
</character>
+5 -5
View File
@@ -1,8 +1,8 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" x="0" y="130" icon="monster">
<anim name="idle" anim="monster idle" fps="24" loop="false" x="0" y="0"/>
<anim name="singUP" anim="monster up note" fps="24" loop="false" x="-20" y="50"/>
<anim name="singRIGHT" anim="Monster left note" fps="24" loop="false" x="-30" y="0"/>
<anim name="singLEFT" anim="Monster Right note" fps="24" loop="false" x="-51" y="0"/>
<anim name="singDOWN" anim="monster down" fps="24" loop="false" x="-40" y="-94"/>
<anim name="idle" anim="monster idle" fps="24" loop="false" x="0" y="0"/>
<anim name="singUP" anim="monster up note" fps="24" loop="false" x="-20" y="50"/>
<anim name="singLEFT" anim="Monster left note" fps="24" loop="false" x="-30" y="0"/>
<anim name="singRIGHT" anim="Monster Right note" fps="24" loop="false" x="-51" y="0"/>
<anim name="singDOWN" anim="monster down" fps="24" loop="false" x="-40" y="-94"/>
</character>
+5 -5
View File
@@ -1,8 +1,8 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" x="0" y="100">
<anim name="idle" anim="monster idle" fps="24" loop="false" />
<anim name="singUP" anim="monster up note" fps="24" loop="false" x="-20" y="94"/>
<anim name="singRIGHT" anim="Monster left note" fps="24" loop="false" x="-30" y="20"/>
<anim name="singLEFT" anim="Monster Right note" fps="24" loop="false" x="-51" y="30"/>
<anim name="singDOWN" anim="monster down" fps="24" loop="false" x="-50" y="-80"/>
<anim name="idle" anim="monster idle" fps="24" loop="false" />
<anim name="singUP" anim="monster up note" fps="24" loop="false" x="-20" y="94"/>
<anim name="singLEFT" anim="Monster left note" fps="24" loop="false" x="-30" y="20"/>
<anim name="singRIGHT" anim="Monster Right note" fps="24" loop="false" x="-51" y="30"/>
<anim name="singDOWN" anim="monster down" fps="24" loop="false" x="-50" y="-80"/>
</character>
+9 -9
View File
@@ -1,12 +1,12 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" x="-500" y="0">
<anim name="idle" anim="Parent Christmas Idle" fps="24" loop="false"/>
<anim name="singUP" anim="Parent Up Note Dad" fps="24" loop="false" x="-47" y="24"/>
<anim name="singDOWN" anim="Parent Down Note Dad" fps="24" loop="false" x="-31" y="-29"/>
<anim name="singLEFT" anim="Parent Left Note Dad" fps="24" loop="false" x="-30" y="16"/>
<anim name="singRIGHT" anim="Parent Right Note Dad" fps="24" loop="false" x="-1" y="-23"/>
<anim name="singUP-alt" anim="Parent Up Note Mom" fps="24" loop="false" x="-47" y="24"/>
<anim name="singDOWN-alt" anim="Parent Down Note Mom" fps="24" loop="false" x="-30" y="-27"/>
<anim name="singLEFT-alt" anim="Parent Left Note Mom" fps="24" loop="false" x="-30" y="15"/>
<anim name="singRIGHT-alt" anim="Parent Right Note Mom" fps="24" loop="false" x="-1" y="-24"/>
<anim name="idle" anim="Parent Christmas Idle" fps="24" loop="false"/>
<anim name="singUP" anim="Parent Up Note Dad" fps="24" loop="false" x="-47" y="24"/>
<anim name="singDOWN" anim="Parent Down Note Dad" fps="24" loop="false" x="-31" y="-29"/>
<anim name="singLEFT" anim="Parent Left Note Dad" fps="24" loop="false" x="-30" y="16"/>
<anim name="singRIGHT" anim="Parent Right Note Dad" fps="24" loop="false" x="-1" y="-23"/>
<anim name="singUP-alt" anim="Parent Up Note Mom" fps="24" loop="false" x="-47" y="24"/>
<anim name="singDOWN-alt" anim="Parent Down Note Mom" fps="24" loop="false" x="-30" y="-27"/>
<anim name="singLEFT-alt" anim="Parent Left Note Mom" fps="24" loop="false" x="-30" y="15"/>
<anim name="singRIGHT-alt" anim="Parent Right Note Mom" fps="24" loop="false" x="-1" y="-24"/>
</character>
+8 -8
View File
@@ -1,19 +1,19 @@
var dir = 2;
function onDance(event) {
event.cancel();
playAnim("idle" + Std.string(dir), true, "DANCE");
event.cancel();
playAnim("idle" + Std.string(dir), true, "DANCE");
}
function onPlaySingAnim(event) {
dir = FlxG.random.int(0, 1) + (event.direction == 0 ? 3 : 1);
event.cancel();
dir = FlxG.random.int(0, 1) + (event.direction == 0 ? 1 : 3);
event.cancel();
playAnim("shoot" + Std.string(dir), true);
playAnim("shoot" + Std.string(dir), true);
}
function update(elapsed) {
if (getAnimName() == null || (getAnimName().substr(0, 5) == "shoot" && isAnimFinished()))
dance();
if (animation.curAnim == null || (animation.curAnim.name.substr(0, 5) == "shoot" && animation.curAnim.finished))
dance();
}
+11 -11
View File
@@ -1,16 +1,16 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" icon="pico" x="-50" y="-120" camx="195" camy="365">
<!-- Left Animations -->
<anim name="shoot1" anim="Pico shoot 1" fps="24" loop="false" indices="0,1,2,3" />
<anim name="idle1" anim="Pico shoot 1" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" />
<character isPlayer="false" flipX="false" icon="pico" x="140" y="-125">
<!-- Left Animations -->
<anim name="shoot1" anim="Pico shoot 1" fps="24" loop="false" indices="0,1,2,3" />
<anim name="idle1" anim="Pico shoot 1" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" />
<anim name="shoot2" anim="Pico shoot 2" fps="24" loop="false" indices="0,1,2,3" />
<anim name="idle2" anim="Pico shoot 2" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" />
<anim name="shoot2" anim="Pico shoot 2" fps="24" loop="false" indices="0,1,2,3" x="-1" y="-128" />
<anim name="idle2" anim="Pico shoot 2" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" x="-1" y="-128" />
<!-- Right Animations-->
<anim name="shoot3" anim="Pico shoot 3" fps="24" loop="false" indices="0,1,2,3" />
<anim name="idle3" anim="Pico shoot 3" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" />
<!-- Right Animations-->
<anim name="shoot3" anim="Pico shoot 3" fps="24" loop="false" indices="0,1,2,3" x="412" y="-64" />
<anim name="idle3" anim="Pico shoot 3" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" x="412" y="-64" />
<anim name="shoot4" anim="Pico shoot 4" fps="24" loop="false" indices="0,1,2,3" />
<anim name="idle4" anim="Pico shoot 4" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" />
<anim name="shoot4" anim="Pico shoot 4" fps="24" loop="false" indices="0,1,2,3" x="439" y="-19" />
<anim name="idle4" anim="Pico shoot 4" fps="24" loop="false" indices="4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24" x="439" y="-19" />
</character>
+11 -11
View File
@@ -1,16 +1,16 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="true" x="100" y="300" camx="-100">
<anim name="idle" anim="Pico Idle Dance" fps="24" loop="false"/>
<anim name="idle" anim="Pico Idle Dance" fps="24" loop="false"/>
<!-- Sing Animations -->
<anim name="singLEFT" anim="Pico Note Right0" fps="24" loop="false" x="65" y="9" />
<anim name="singDOWN" anim="Pico Down Note0" fps="24" loop="false" x="200" y="-70" />
<anim name="singUP" anim="pico Up note0" fps="24" loop="false" x="-20" y="50" />
<anim name="singRIGHT" anim="Pico NOTE LEFT0" fps="24" loop="false" x="-51" y="0" />
<!-- Sing Animations -->
<anim name="singLEFT" anim="Pico Note Right0" fps="24" loop="false" x="65" y="9" />
<anim name="singDOWN" anim="Pico Down Note0" fps="24" loop="false" x="200" y="-70" />
<anim name="singUP" anim="pico Up note0" fps="24" loop="false" x="-20" y="50" />
<anim name="singRIGHT" anim="Pico NOTE LEFT0" fps="24" loop="false" x="-51" y="0" />
<!-- Miss Animations -->
<anim name="singLEFTmiss" anim="Pico Note Right Miss" fps="24" loop="false" x="62" y="64" />
<anim name="singDOWNmiss" anim="Pico Down Note MISS" fps="24" loop="false" x="200" y="-70" />
<anim name="singUPmiss" anim="pico Up note miss" fps="24" loop="false" x="-19" y="67" />
<anim name="singRIGHTmiss" anim="Pico NOTE LEFT miss" fps="24" loop="false" x="-60" y="41" />
<!-- Miss Animations -->
<anim name="singLEFTmiss" anim="Pico Note Right Miss" fps="24" loop="false" x="62" y="64" />
<anim name="singDOWNmiss" anim="Pico Down Note MISS" fps="24" loop="false" x="200" y="-70" />
<anim name="singUPmiss" anim="pico Up note miss" fps="24" loop="false" x="-19" y="67" />
<anim name="singRIGHTmiss" anim="Pico NOTE LEFT miss" fps="24" loop="false" x="-60" y="41" />
</character>
+6 -6
View File
@@ -1,10 +1,10 @@
<!DOCTYPE codename-engine-character>
<character sprite="senpai" isPlayer="false" flipX="false" x="150" y="360" antialiasing="false" scale="6" icon="senpai" camx="100">
<anim name="idle" anim="Angry Senpai Idle" fps="24" loop="false" x="0" y="0" />
<anim name="idle" anim="Angry Senpai Idle" fps="24" loop="false" x="0" y="0" />
<!-- Offsets are actually multiplied by scale -->
<anim name="singLEFT" anim="Angry Senpai LEFT NOTE" fps="24" loop="false" x="7" y="0" />
<anim name="singDOWN" anim="Angry Senpai DOWN NOTE" fps="24" loop="false" x="2" y="0" />
<anim name="singUP" anim="Angry Senpai UP NOTE" fps="24" loop="false" x="1" y="6" />
<anim name="singRIGHT" anim="Angry Senpai RIGHT NOTE" fps="24" loop="false" x="0" y="0" />
<!-- Offsets are actually multiplied by scale -->
<anim name="singLEFT" anim="Angry Senpai LEFT NOTE" fps="24" loop="false" x="7" y="0" />
<anim name="singDOWN" anim="Angry Senpai DOWN NOTE" fps="24" loop="false" x="2" y="0" />
<anim name="singUP" anim="Angry Senpai UP NOTE" fps="24" loop="false" x="1" y="6" />
<anim name="singRIGHT" anim="Angry Senpai RIGHT NOTE" fps="24" loop="false" x="0" y="0" />
</character>
+6 -6
View File
@@ -1,10 +1,10 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" x="150" y="360" antialiasing="false" scale="6" camx="100">
<anim name="idle" anim="Senpai Idle" fps="12" loop="false" x="0" y="0" />
<anim name="idle" anim="Senpai Idle" fps="12" loop="false" x="0" y="0" />
<!-- Offsets are actually multiplied by scale -->
<anim name="singLEFT" anim="SENPAI LEFT NOTE" fps="12" loop="false" x="7" y="0" />
<anim name="singDOWN" anim="SENPAI DOWN NOTE" fps="12" loop="false" x="2" y="0" />
<anim name="singUP" anim="SENPAI UP NOTE" fps="12" loop="false" x="1" y="6" />
<anim name="singRIGHT" anim="SENPAI RIGHT NOTE" fps="12" loop="false" x="0" y="0" />
<!-- Offsets are actually multiplied by scale -->
<anim name="singLEFT" anim="SENPAI LEFT NOTE" fps="12" loop="false" x="7" y="0" />
<anim name="singDOWN" anim="SENPAI DOWN NOTE" fps="12" loop="false" x="2" y="0" />
<anim name="singUP" anim="SENPAI UP NOTE" fps="12" loop="false" x="1" y="6" />
<anim name="singRIGHT" anim="SENPAI RIGHT NOTE" fps="12" loop="false" x="0" y="0" />
</character>
+6 -6
View File
@@ -1,10 +1,10 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" x="70" y="380" antialiasing="false" scale="6" camx="100">
<anim name="idle" anim="idle spirit_" fps="24" loop="false" x="0" y="0" />
<anim name="idle" anim="idle spirit_" fps="24" loop="false" x="0" y="0" />
<!-- Offsets are actually multiplied by scale -->
<anim name="singLEFT" anim="left_" fps="24" loop="false" x="3" y="0" />
<anim name="singDOWN" anim="spirit down_" fps="24" loop="false" x="65" y="65" />
<anim name="singUP" anim="up_" fps="24" loop="false" x="0" y="7" />
<anim name="singRIGHT" anim="right_" fps="24" loop="false" x="0" y="0" />
<!-- Offsets are actually multiplied by scale -->
<anim name="singLEFT" anim="left_" fps="24" loop="false" x="3" y="0" />
<anim name="singDOWN" anim="spirit down_" fps="24" loop="false" x="65" y="65" />
<anim name="singUP" anim="up_" fps="24" loop="false" x="0" y="7" />
<anim name="singRIGHT" anim="right_" fps="24" loop="false" x="0" y="0" />
</character>
+6 -6
View File
@@ -1,9 +1,9 @@
<!DOCTYPE codename-engine-character>
<character isPlayer="false" flipX="false" x="0" y="200">
<anim name="danceLeft" anim="spooky dance idle" fps="12" loop="false" x="0" y="0" indices="0,2,6"/>
<anim name="danceRight" anim="spooky dance idle" fps="12" loop="false" x="0" y="0" indices="8,10,12,14"/>
<anim name="singUP" anim="spooky UP NOTE" fps="24" loop="false" x="-20" y="26"/>
<anim name="singLEFT" anim="note sing left" fps="24" loop="false" x="130" y="-10"/>
<anim name="singRIGHT" anim="spooky sing right" fps="24" loop="false" x="-130" y="-14"/>
<anim name="singDOWN" anim="spooky DOWN note" fps="24" loop="false" x="-50" y="-130"/>
<anim name="danceLeft" anim="spooky dance idle" fps="12" loop="false" x="0" y="0" indices="0,2,6"/>
<anim name="danceRight" anim="spooky dance idle" fps="12" loop="false" x="0" y="0" indices="8,10,12,14"/>
<anim name="singUP" anim="spooky UP NOTE" fps="24" loop="false" x="-20" y="26"/>
<anim name="singLEFT" anim="note sing left" fps="24" loop="false" x="130" y="-10"/>
<anim name="singRIGHT" anim="spooky sing right" fps="24" loop="false" x="-130" y="-14"/>
<anim name="singDOWN" anim="spooky DOWN note" fps="24" loop="false" x="-50" y="-130"/>
</character>
+9 -9
View File
@@ -2,14 +2,14 @@
<!-- tankman actually have player offsets !-->
<character isPlayer="true" flipX="true" x="0" y="180" camx="0">
<anim name="idle" anim="Tankman Idle Dance instance 100" fps="24" loop="false" x="0" y="0" />
<anim name="singRIGHT" anim="Tankman Right Note instance 1000" fps="24" loop="false" x="-1" y="-7" />
<anim name="singDOWN" anim="Tankman DOWN note instance 1000" fps="24" loop="false" x="98" y="-90" />
<anim name="singUP" anim="Tankman UP note instance 1000" fps="24" loop="false" x="24" y="56" />
<anim name="singLEFT" anim="Tankman Note Left instance 1000" fps="24" loop="false" x="100" y="-14" />
<anim name="idle" anim="Tankman Idle Dance instance 100" fps="24" loop="false" x="0" y="0" />
<anim name="singRIGHT" anim="Tankman Right Note instance 1000" fps="24" loop="false" x="-1" y="-7" />
<anim name="singDOWN" anim="Tankman DOWN note instance 1000" fps="24" loop="false" x="98" y="-90" />
<anim name="singUP" anim="Tankman UP note instance 1000" fps="24" loop="false" x="24" y="56" />
<anim name="singLEFT" anim="Tankman Note Left instance 1000" fps="24" loop="false" x="100" y="-14" />
<!-- Heh! Pretty Good! -->
<anim name="singDOWN-alt" anim="PRETTY GOOD tankman instance 100" fps="24" loop="false" x="98" y="-90" />
<!-- Ugh! -->
<anim name="singUP-alt" anim="TANKMAN UGH instance 100" fps="30" loop="false" x="24" y="56" />
<!-- Heh! Pretty Good! -->
<anim name="singDOWN-alt" anim="PRETTY GOOD tankman instance 100" fps="24" loop="false" x="98" y="-90" />
<!-- Ugh! -->
<anim name="singUP-alt" anim="TANKMAN UGH instance 100" fps="30" loop="false" x="24" y="56" />
</character>
+7
View File
@@ -0,0 +1,7 @@
<!DOCTYPE codename-config >
<mod name="Codename Engine" desc="New FNF engine designed to make mod making easier, both in source and via softcoding!">
<!-- This line is ignored if in source assets. Use the project.xml to change settings. !-->
<window icon="icon.ico" title="Friday Night Funkin' - Codename Engine" width="1280" height="720" />
</mod>
-4
View File
@@ -1,4 +0,0 @@
{
"clientID": "1027994136193810442",
"logoKey": "icon"
}
-3
View File
@@ -1,3 +0,0 @@
story mode
freeplay
options
-14
View File
@@ -1,14 +0,0 @@
<!DOCTYPE codename-mod-options>
<!-- TEMPLATE FOR CUSTOM OPTIONS!!! -->
<menu name="Mod Options" desc="Modify mod options here">
<checkbox id="checkboxExample" name="Checkbox example" />
<choice id="choiceExample" name="Choice Example">
<value name="Disabled" value="disabled" />
<value name="This Only" value="thisonly" />
<value name="All" value="all" />
</choice>
<menu name="Submenu Example" desc="Submenu test">
<checkbox id="levelOfIdk2" name="Level of idk" />
</menu>
</menu>
-24
View File
@@ -1,24 +0,0 @@
<!DOCTYPE codename-engine-dialogue-box>
<dialoguebox scale="0.9" y="75">
<!--
Node containing all text settings
-->
<text font="vcr.ttf" x="107" y="206" width="1053" color="#000000" size="40"/>
<!--
All positions for characters
-->
<charpos name="left" x="-500" y="184" />
<charpos name="middle" x="0" y="184" />
<charpos name="right" x="500" y="184" flipBubble="true" />
<!--
All animations for the dialogue box
For example, if you wanna add an "angry" animation, add an animation named "angry" (box idle), and "angry-open" (not needed, for box apparition)
-->
<anim name="normal" anim="speech bubble normal" fps="24" loop="true" x="-30"/>
<anim name="normal-open" anim="Speech Bubble Normal Open" fps="24" />
<anim name="angry" anim="AHH speech bubble" fps="24" loop="true" y="60"/>
<anim name="angry-open" anim="speech bubble loud open" fps="24" y="60"/>
</dialoguebox>
@@ -1,4 +0,0 @@
<!DOCTYPE codename-engine-dialogue-character>
<character x="285">
<anim name="normal" anim="normal" fps="24" />
</character>
-4
View File
@@ -1,4 +0,0 @@
<!DOCTYPE codename-engine-dialogue-character>
<character x="50" y="-60">
<anim name="normal" anim="normal" fps="24" />
</character>
-4
View File
@@ -1,4 +0,0 @@
<!DOCTYPE codename-engine-dialogue-character>
<character x="250" y="-350">
<anim name="normal" anim="normal" fps="24" />
</character>
+133
View File
@@ -0,0 +1,133 @@
{
"addOGSongs": false,
"songs": [
{
"name": "test",
"icon": "bf"
},
{
"name": "Tutorial",
"icon": "gf",
"color": "#9271FD"
},
{
"name": "Bopeebo",
"icon": "dad",
"color": "#9271FD"
},
{
"name": "Fresh",
"icon": "dad",
"color": "#9271FD"
},
{
"name": "Dadbattle",
"icon": "dad",
"color": "#9271FD"
},
{
"name": "Spookeez",
"icon": "spooky",
"color": "#223344"
},
{
"name": "South",
"icon": "spooky",
"color": "#223344"
},
{
"name": "Monster",
"icon": "monster",
"color": "#223344"
},
{
"name": "Pico",
"icon": "pico",
"color": "#941653"
},
{
"name": "Philly Nice",
"icon": "pico",
"color": "#941653"
},
{
"name": "Blammed",
"icon": "pico",
"color": "#941653"
},
{
"name": "Satin Panties",
"icon": "mom",
"color": "#FC96D7"
},
{
"name": "High",
"icon": "mom",
"color": "#FC96D7"
},
{
"name": "MILF",
"icon": "mom",
"color": "#FC96D7"
},
{
"name": "Cocoa",
"icon": "parents-christmas",
"color": "#A0D1FF"
},
{
"name": "Eggnog",
"icon": "parents-christmas",
"color": "#A0D1FF"
},
{
"name": "Winter Horrorland",
"icon": "monster",
"color": "#A0D1FF"
},
{
"name": "Senpai",
"icon": "senpai",
"color": "#FF78BF"
},
{
"name": "Roses",
"icon": "senpai",
"color": "#FF78BF"
},
{
"name": "Thorns",
"icon": "spirit",
"color": "#FF78BF"
},
{
"name": "Ugh",
"icon": "tankman",
"color": "#F6B604"
},
{
"name": "Guns",
"icon": "tankman",
"color": "#F6B604"
},
{
"name": "Stress",
"icon": "tankman",
"color": "#F6B604"
}
]
}
-30
View File
@@ -1,30 +0,0 @@
test
tutorial
bopeebo
fresh
dadbattle
spookeez
south
monster
pico
philly nice
blammed
satin panties
high
milf
cocoa
eggnog
winter horrorland
senpai
roses
thorns
ugh
guns
stress
-3
View File
@@ -1,3 +0,0 @@
function update(elapsed)
if (FlxG.keys.justPressed.F5)
FlxG.resetState();
+105 -104
View File
@@ -16,153 +16,154 @@ static var daPixelZoom = 6;
* UI
*/
function onNoteCreation(event) {
if (event.note.strumLine == playerStrums && !pixelNotesForBF) return;
if (event.note.strumLine == cpuStrums && !pixelNotesForDad) return;
if (event.note.mustPress && !pixelNotesForBF) return;
if (!event.note.mustPress && !pixelNotesForDad) return;
event.cancel();
event.cancel();
var note = event.note;
if (event.note.isSustainNote) {
note.loadGraphic(Paths.image('stages/school/ui/arrowEnds'), true, 7, 6);
note.animation.add("hold", [event.strumID]);
note.animation.add("holdend", [4 + event.strumID]);
} else {
note.loadGraphic(Paths.image('stages/school/ui/arrows-pixels'), true, 17, 17);
note.animation.add("scroll", [4 + event.strumID]);
}
note.scale.set(daPixelZoom, daPixelZoom);
note.updateHitbox();
var note = event.note;
if (event.note.isSustainNote) {
note.loadGraphic(Paths.image('stages/school/ui/arrowEnds'), true, 7, 6);
note.animation.add("hold", [event.strumID]);
note.animation.add("holdend", [4 + event.strumID]);
} else {
note.loadGraphic(Paths.image('stages/school/ui/arrows-pixels'), true, 17, 17);
note.animation.add("scroll", [4 + event.strumID]);
}
note.scale.set(daPixelZoom, daPixelZoom);
note.updateHitbox();
}
function onStrumCreation(event) {
if (event.player == 1 && !pixelNotesForBF) return;
if (event.player == 0 && !pixelNotesForDad) return;
if (event.player == 1 && !pixelNotesForBF) return;
if (event.player == 0 && !pixelNotesForDad) return;
event.cancel();
event.cancel();
var strum = event.strum;
strum.loadGraphic(Paths.image('stages/school/ui/arrows-pixels'), true, 17, 17);
strum.animation.add("static", [event.strumID]);
strum.animation.add("pressed", [4 + event.strumID, 8 + event.strumID], 12, false);
strum.animation.add("confirm", [12 + event.strumID, 16 + event.strumID], 24, false);
strum.scale.set(daPixelZoom, daPixelZoom);
strum.updateHitbox();
var strum = event.strum;
strum.loadGraphic(Paths.image('stages/school/ui/arrows-pixels'), true, 17, 17);
strum.animation.add("static", [event.strumID]);
strum.animation.add("pressed", [4 + event.strumID, 8 + event.strumID], 12, false);
strum.animation.add("confirm", [12 + event.strumID, 16 + event.strumID], 24, false);
strum.scale.set(daPixelZoom, daPixelZoom);
strum.updateHitbox();
}
function onCountdown(event) {
if (!enablePixelUI) return;
if (!enablePixelUI) return;
if (event.soundPath != null) event.soundPath = 'pixel/' + event.soundPath;
event.antialiasing = false;
event.scale = daPixelZoom;
event.spritePath = switch(event.swagCounter) {
case 0: null;
case 1: 'stages/school/ui/ready';
case 2: 'stages/school/ui/set';
case 3: 'stages/school/ui/go';
};
if (event.soundPath != null) event.soundPath = 'pixel/' + event.soundPath;
event.antialiasing = false;
event.scale = daPixelZoom;
event.spritePath = switch(event.swagCounter) {
case 0: null;
case 1: 'stages/school/ui/ready';
case 2: 'stages/school/ui/set';
case 3: 'stages/school/ui/go';
};
}
function onPlayerHit(event:NoteHitEvent) {
if (!enablePixelUI) return;
event.ratingPrefix = "stages/school/ui/";
event.ratingScale = daPixelZoom * 0.7;
event.ratingAntialiasing = false;
if (!enablePixelUI) return;
event.ratingPrefix = "stages/school/ui/";
event.ratingScale = daPixelZoom * 0.7;
event.ratingAntialiasing = false;
event.numScale = daPixelZoom;
event.numAntialiasing = false;
event.numScale = daPixelZoom;
event.numAntialiasing = false;
}
/**
* CAMERA HACKS!!
*/
function postCreate() {
if (enablePauseMenu) {
PauseSubState.script = 'data/scripts/week6-pause';
}
if (enableCameraHacks) {
FlxG.camera.antialiasing = false;
FlxG.camera.pixelPerfectRender = true;
iconP1.antialiasing = false;
iconP2.antialiasing = false;
makeCameraPixely(camGame);
defaultCamZoom /= daPixelZoom;
}
if (enablePixelGameOver) {
gameOverSong = "pixel/gameOver";
lossSFX = "pixel/gameOverSFX";
retrySFX = "pixel/gameOverEnd";
}
if (enablePauseMenu) {
PauseSubState.script = 'data/scripts/week6-pause';
}
if (enableCameraHacks) {
FlxG.camera.antialiasing = false;
FlxG.camera.pixelPerfectRender = true;
iconP1.antialiasing = false;
iconP2.antialiasing = false;
makeCameraPixely(camGame);
defaultCamZoom /= daPixelZoom;
}
if (enablePixelGameOver) {
gameOverSong = "pixel/gameOver";
lossSFX = "pixel/gameOverSFX";
retrySFX = "pixel/gameOverEnd";
}
}
function onStartCountdown() {
var newNoteCamera = new HudCamera();
newNoteCamera.bgColor = 0; // transparent
FlxG.cameras.add(newNoteCamera, false);
var newNoteCamera = new HudCamera();
newNoteCamera.bgColor = 0; // transparent
FlxG.cameras.add(newNoteCamera, false);
var pixelSwagWidth = Note.swagWidth + (daPixelZoom - (Note.swagWidth % daPixelZoom));
for(p in strumLines) {
var i = 0;
for(str in p.members) {
str.x = (FlxG.width * strumOffset) + (pixelSwagWidth * (i - 2));
str.x -= str.x % daPixelZoom;
i++;
}
}
makeCameraPixely(newNoteCamera);
var pixelSwagWidth = Note.swagWidth + (daPixelZoom - (Note.swagWidth % daPixelZoom));
// TODO: multikey support??
for(s in 0...4) {
var i = 0;
for(str in [cpuStrums.members[s], playerStrums.members[s]]) {
// TODO: middlescroll???
str.x = (FlxG.width * (0.25 + (0.5 * i))) + (pixelSwagWidth * (s - 2));
str.x -= str.x % daPixelZoom;
str.cameras = [newNoteCamera];
i++;
}
}
makeCameraPixely(newNoteCamera);
}
/**
* Use this to make any camera pixelly (you wont be able to zoom with it anymore!)
*/
public function makeCameraPixely(cam) {
cam.pixelPerfectRender = true;
cam.zoom /= Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y) * daPixelZoom;
cam.pixelPerfectRender = true;
cam.zoom /= Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y) * daPixelZoom;
var shad = new CustomShader('pixelZoomShader');
cam.addShader(shad);
var shad = new CustomShader('pixelZoomShader');
cam.addShader(shad);
pixellyCameras.push(cam);
pixellyShaders.push(shad);
pixellyCameras.push(cam);
pixellyShaders.push(shad);
FlxG.game.stage.quality = 2;
FlxG.game.stage.quality = 2;
}
function destroy() {
// resets the stage quality
FlxG.game.stage.quality = oldStageQuality;
// resets the stage quality
FlxG.game.stage.quality = oldStageQuality;
}
function pixelCam(cam) {
makeCameraPixely(cam);
makeCameraPixely(cam);
}
var pixellyCameras = [];
var pixellyShaders = [];
function postUpdate(elapsed) {
for(e in pixellyCameras) {
if (Std.isOfType(e, HudCamera))
e.downscroll = camHUD.downscroll;
}
if (enableCameraHacks) {
for(p in strumLines)
p.notes.forEach(function(n) {
n.y -= n.y % daPixelZoom;
n.x -= n.x % daPixelZoom;
});
}
for(e in pixellyCameras) {
if (!e.exists) continue;
e.zoom = 1 / daPixelZoom / Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y);
}
for(e in pixellyShaders) {
e.pixelZoom = 1 / daPixelZoom / Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y);
}
for(e in pixellyCameras) {
if (Std.isOfType(e, HudCamera))
e.downscroll = camHUD.downscroll;
}
if (enableCameraHacks) {
notes.forEach(function(n) {
n.y -= n.y % daPixelZoom;
n.x -= n.x % daPixelZoom;
});
}
for(e in pixellyCameras) {
if (!e.exists) continue;
e.zoom = 1 / daPixelZoom / Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y);
}
for(e in pixellyShaders) {
e.pixelZoom = 1 / daPixelZoom / Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y);
}
}
+78 -78
View File
@@ -11,117 +11,117 @@ var hand:FlxSprite;
var texts:Array<FlxText> = [];
var isThorns = PlayState.SONG.meta.name.toLowerCase() == "thorns";
var isThorns = PlayState.SONG.song.toLowerCase() == "thorns";
function create(event) {
// cancel default pause menu!!
event.cancel();
// cancel default pause menu!!
event.cancel();
event.music = isThorns ? "pixel/LunchboxScary" : "pixel/Lunchbox";
event.music = isThorns ? "pixel/LunchboxScary" : "pixel/Lunchbox";
cameras = [];
cameras = [];
pixelScript = game.scripts.getByName("pixel.hx");
pixelScript.call("pixelCam", [pauseCam]);
pixelScript = game.scripts.getByName("pixel.hx");
pixelScript.call("pixelCam", [pauseCam]);
FlxG.cameras.add(pauseCam, false);
FlxG.cameras.add(pauseCam, false);
pauseCam.bgColor = isThorns ? 0x88000000 : 0x88FF99CC;
pauseCam.alpha = 0;
pauseCam.bgColor = isThorns ? 0x88000000 : 0x88FF99CC;
pauseCam.alpha = 0;
bg = new FlxSprite(44 * 6, 14 * 6);
bg.loadGraphic(Paths.image('stages/school/pause/bg'));
if (isThorns)
bg.color = 0xFF000000;
bg.scale.set(6, 6);
bg.updateHitbox();
bg.scale.y = 4;
bg.cameras = [pauseCam];
add(bg);
bg = new FlxSprite(44 * 6, 14 * 6);
bg.loadGraphic(Paths.image('stages/school/pause/bg'));
if (isThorns)
bg.color = 0xFF000000;
bg.scale.set(6, 6);
bg.updateHitbox();
bg.scale.y = 4;
bg.cameras = [pauseCam];
add(bg);
songText = new FlxText(0, 22 * 6, 0, "Pause", 8, false);
confText(songText);
add(songText);
songText = new FlxText(0, 22 * 6, 0, "Pause", 8, false);
confText(songText);
add(songText);
var i = 2;
for(e in menuItems) {
text = new FlxText(0, (22 * 6) + (i * 9 * 6), 0, e, 8, false);
confText(text);
add(text);
texts.push(text);
i++;
}
var i = 2;
for(e in menuItems) {
text = new FlxText(0, (22 * 6) + (i * 9 * 6), 0, e, 8, false);
confText(text);
add(text);
texts.push(text);
i++;
}
hand = new FlxSprite().loadGraphic(Paths.image('stages/school/ui/hand_textbox'));
hand.scale.set(6, 6);
hand.updateHitbox();
add(hand);
hand = new FlxSprite().loadGraphic(Paths.image('stages/school/ui/hand_textbox'));
hand.scale.set(6, 6);
hand.updateHitbox();
add(hand);
FlxTween.tween(bg, {"scale.y": 6}, 0.75, {ease: FlxEase.elasticOut});
FlxTween.tween(bg, {"scale.y": 6}, 0.75, {ease: FlxEase.elasticOut});
cameras = [pauseCam];
cameras = [pauseCam];
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
}
function confText(text) {
text.scale.set(6, 6);
text.updateHitbox();
text.screenCenter(FlxAxes.X);
text.borderStyle = FlxTextBorderStyle.OUTLINE;
if (!isThorns) text.borderColor = 0xFF953E3E;
text.scale.set(6, 6);
text.updateHitbox();
text.screenCenter(FlxAxes.X);
text.borderStyle = FlxTextBorderStyle.OUTLINE;
if (!isThorns) text.borderColor = 0xFF953E3E;
}
function destroy() {
FlxG.cameras.remove(pauseCam);
FlxG.cameras.remove(pauseCam);
}
var canDoShit = true;
var time:Float = 0;
function update(elapsed) {
pixelScript.call("postUpdate", [elapsed]);
pixelScript.call("postUpdate", [elapsed]);
pauseCam.alpha = lerp(pauseCam.alpha, 1, 0.25);
time += elapsed;
pauseCam.alpha = lerp(pauseCam.alpha, 1, 0.25);
time += elapsed;
var curText = texts[curSelected];
hand.setPosition(curText.x - hand.width - 18 + (Math.sin(time * Math.PI * 2) * 12), curText.y + (text.height - hand.height) - 6);
hand.x -= hand.x % 6;
hand.y -= hand.y % 6;
var curText = texts[curSelected];
hand.setPosition(curText.x - hand.width - 18 + (Math.sin(time * Math.PI * 2) * 12), curText.y + (text.height - hand.height) - 6);
hand.x -= hand.x % 6;
hand.y -= hand.y % 6;
if (!canDoShit) return;
var oldSec = curSelected;
if (controls.DOWN_P)
changeSelection(1, false);
if (controls.UP_P)
changeSelection(-1);
if (!canDoShit) return;
var oldSec = curSelected;
if (controls.DOWN_P)
changeSelection(1, false);
if (controls.UP_P)
changeSelection(-1);
if (oldSec != curSelected) {
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/type' : 'pixel/pixelText'));
}
if (oldSec != curSelected) {
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/type' : 'pixel/pixelText'));
}
if (controls.ACCEPT) {
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
var option = menuItems[curSelected];
if (option == "Resume" || option == "Exit to menu") {
canDoShit = false;
for(t in texts) t.visible = false;
hand.visible = songText.visible = false;
FlxTween.tween(bg, {"scale.y": 0}, 0.125, {ease: FlxEase.cubeOut, onComplete: function() {
selectOption();
}});
} else {
selectOption();
}
}
if (controls.ACCEPT) {
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
var option = menuItems[curSelected];
if (option == "Resume" || option == "Exit to menu") {
canDoShit = false;
for(t in texts) t.visible = false;
hand.visible = songText.visible = false;
FlxTween.tween(bg, {"scale.y": 0}, 0.125, {ease: FlxEase.cubeOut, onComplete: function() {
selectOption();
}});
} else {
selectOption();
}
}
}
function changeSelection(change) {
curSelected += change;
curSelected += change;
if (curSelected < 0)
curSelected = menuItems.length - 1;
if (curSelected >= menuItems.length)
curSelected = 0;
if (curSelected < 0)
curSelected = menuItems.length - 1;
if (curSelected >= menuItems.length)
curSelected = 0;
}
+16 -16
View File
@@ -1,19 +1,19 @@
<!DOCTYPE codename-engine-splashes>
<splashes sprite="game/splashes/default" alpha="0.6">
<strum id="0"> <!-- LEFT -->
<anim name="splashleft1" anim="note impact 1 purple" fps="24" x="0" y="0" />
<anim name="splashleft2" anim="note impact 2 purple" fps="24" x="0" y="0" />
</strum>
<strum id="1"> <!-- DOWN -->
<anim name="splashdown1" anim="note impact 1 blue" fps="24" x="0" y="0" />
<anim name="splashdown2" anim="note impact 2 blue" fps="24" x="0" y="0" />
</strum>
<strum id="2"> <!-- UP -->
<anim name="splashup1" anim="note impact 1 green" fps="24" x="0" y="0" />
<anim name="splashup2" anim="note impact 2 green" fps="24" x="0" y="0" />
</strum>
<strum id="3"> <!-- RIGHT -->
<anim name="splashright1" anim="note impact 1 red" fps="24" x="0" y="0" />
<anim name="splashright2" anim="note impact 2 red" fps="24" x="0" y="0" />
</strum>
<strum id="0"> <!-- LEFT -->
<anim name="splashleft1" anim="note impact 1 purple" fps="24" x="0" y="0" />
<anim name="splashleft2" anim="note impact 2 purple" fps="24" x="0" y="0" />
</strum>
<strum id="1"> <!-- DOWN -->
<anim name="splashdown1" anim="note impact 1 blue" fps="24" x="0" y="0" />
<anim name="splashdown2" anim="note impact 2 blue" fps="24" x="0" y="0" />
</strum>
<strum id="2"> <!-- UP -->
<anim name="splashup1" anim="note impact 1 green" fps="24" x="0" y="0" />
<anim name="splashup2" anim="note impact 2 green" fps="24" x="0" y="0" />
</strum>
<strum id="3"> <!-- RIGHT -->
<anim name="splashright1" anim="note impact 1 red" fps="24" x="0" y="0" />
<anim name="splashright2" anim="note impact 2 red" fps="24" x="0" y="0" />
</strum>
</splashes>
+12 -12
View File
@@ -1,15 +1,15 @@
<!DOCTYPE codename-engine-splashes>
<splashes sprite="game/splashes/secret" alpha="0.6" scale="0.75">
<strum id="0"> <!-- LEFT -->
<anim name="splash purple" anim="splash purple" fps="24" x="0" y="0" />
</strum>
<strum id="1"> <!-- DOWN -->
<anim name="splash blue" anim="splash blue" fps="24" x="0" y="0" />
</strum>
<strum id="2"> <!-- UP -->
<anim name="splash green" anim="splash green" fps="24" x="0" y="0" />
</strum>
<strum id="3"> <!-- RIGHT -->
<anim name="splash red" anim="splash red" fps="24" x="0" y="0" />
</strum>
<strum id="0"> <!-- LEFT -->
<anim name="splash purple" anim="splash purple" fps="24" x="0" y="0" />
</strum>
<strum id="1"> <!-- DOWN -->
<anim name="splash blue" anim="splash blue" fps="24" x="0" y="0" />
</strum>
<strum id="2"> <!-- UP -->
<anim name="splash green" anim="splash green" fps="24" x="0" y="0" />
</strum>
<strum id="3"> <!-- RIGHT -->
<anim name="splash red" anim="splash red" fps="24" x="0" y="0" />
</strum>
</splashes>
+18 -22
View File
@@ -1,39 +1,35 @@
var fastCarCanDrive:Bool = true;
function create() {
resetFastCar();
resetFastCar();
}
function update(elapsed:Float) {
if (!fastCarCanDrive && fastCar.x > 2000) {
resetFastCar();
fastCarCanDrive = true;
}
if (!fastCarCanDrive && fastCar.x > 2000) {
resetFastCar();
fastCarCanDrive = true;
}
// back limo drive
if (Options.lowMemoryMode) {
bgLimo.frameOffset.x = Math.sin(curBeatFloat / 4) * Math.cos(curBeatFloat / 16) * 85;
} else {
for(e in [bgLimo, dancer1, dancer2, dancer3, dancer4, dancer5]) {
e.frameOffset.x = Math.sin(curBeatFloat / 4) * Math.cos(curBeatFloat / 16) * 85;
}
}
// back limo drive
for(e in [bgLimo, dancer1, dancer2, dancer3, dancer4, dancer5]) {
e.rotOffset.x = Math.sin(curBeatFloat / 4) * Math.cos(curBeatFloat / 16) * 85;
}
}
function beatHit(curBeat:Int) {
if (FlxG.random.bool(10) && fastCarCanDrive)
fastCarDrive();
if (FlxG.random.bool(10) && fastCarCanDrive)
fastCarDrive();
}
function resetFastCar() {
fastCar.x = -12600;
fastCar.y = FlxG.random.int(140, 250);
fastCar.velocity.x = 0;
fastCarCanDrive = true;
fastCar.x = -12600;
fastCar.y = FlxG.random.int(140, 250);
fastCar.velocity.x = 0;
fastCarCanDrive = true;
}
function fastCarDrive()
{
FlxG.sound.play(Paths.soundRandom('carPass', 0, 1), 0.7);
FlxG.sound.play(Paths.soundRandom('carPass', 0, 1), 0.7);
fastCar.velocity.x = (FlxG.random.int(170, 220) / FlxG.elapsed) * 3;
fastCarCanDrive = false;
fastCar.velocity.x = (FlxG.random.int(170, 220) / FlxG.elapsed) * 3;
fastCarCanDrive = false;
}
+33 -40
View File
@@ -1,46 +1,39 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="0.9" name="limo" folder="stages/limo/">
<!-- BG LIMOS !-->
<sprite name="skyBG" x="-120" y="-50" sprite="limoSunset" scroll="0.1" zoomfactor="0"/>
<sprite name="bgLimo" x="-200" y="480" sprite="bgLimo" scroll="0.4" zoomfactor="0.55" />
<!-- BG LIMOS !-->
<sprite name="skyBG" x="-120" y="-50" sprite="limoSunset" scroll="0.1" zoomfactor="0"/>
<sprite name="bgLimo" x="-200" y="480" sprite="bgLimo" scroll="0.4" zoomfactor="0.55" />
<!-- ONLY FOR INSTANCES WITH LOW MEMORY MODE DISABLED -->
<high-memory>
<!-- DANCERS !-->
<sprite name="dancer1" x="130" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprite name="dancer2" x="500" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprite name="dancer3" x="870" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprite name="dancer4" x="1240" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprite name="dancer5" x="1610" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<!-- DANCERS !-->
<sprite name="dancer1" x="130" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprite name="dancer2" x="500" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprite name="dancer3" x="870" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprite name="dancer4" x="1240" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprite name="dancer5" x="1610" y="80" sprite="limoDancer" scroll="0.4" zoomfactor="0.55">
<anim name="danceLeft" anim="bg dancer sketch PINK" loop="false" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="bg dancer sketch PINK" loop="false" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<!-- SUPER FAST CAR !-->
<sprite name="fastCar" x="-300" y="160" sprite="fastCarLol" zoomfactor="0.75" />
</high-memory>
<!-- SUPER FAST CAR !-->
<sprite name="fastCar" x="-300" y="160" sprite="fastCarLol" zoomfactor="0.75" />
<!-- MORE LIMO STUFF !-->
<girlfriend />
<sprite name="limo" x="-120" y="550" sprite="limoDrive" />
<boyfriend x="1030" y="-120" camxoffset="-300"/>
<high-memory>
<sprite name="overlayShit" x="-500" y="480" sprite="limoOverlay" scroll="0">
<property name="alpha" type="float" value="0.5" />
</sprite>
</high-memory>
<!-- MORE LIMO STUFF !-->
<girlfriend />
<sprite name="limo" x="-120" y="550" sprite="limoDrive" />
<boyfriend x="1030" y="-120" camxoffset="-300"/>
<sprite name="overlayShit" x="-500" y="480" sprite="limoOverlay" scroll="0">
<property name="alpha" type="float" value="0.5" />
</sprite>
</stage>
+6 -6
View File
@@ -1,10 +1,10 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="1.05" name="mall-evil" folder="stages/mall/">
<sprite name="bg" x="-400" y="-500" sprite="evilBG" scroll="0.2"/>
<sprite name="evilTree" x="300" y="-300" sprite="evilTree" scroll="0.2"/>
<sprite name="evilSnow" x="-200" y="700" sprite="evilSnow" />
<sprite name="bg" x="-400" y="-500" sprite="evilBG" scroll="0.2"/>
<sprite name="evilTree" x="300" y="-300" sprite="evilTree" scroll="0.2"/>
<sprite name="evilSnow" x="-200" y="700" sprite="evilSnow" />
<girlfriend />
<dad y="20"/>
<boyfriend x="1090"/>
<girlfriend />
<dad y="20"/>
<boyfriend x="1090"/>
</stage>
+10 -16
View File
@@ -1,20 +1,14 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="0.8" name="mall" folder="stages/mall/">
<sprite name="bg" x="-1000" y="-500" sprite="bgWalls" scroll="0.2"/>
<high-memory>
<sprite name="upperBoppers" x="-240" y="-90" sprite="upperBop" scroll="0.2" />
</high-memory>
<sprite name="bgEscalator" x="-1100" y="-600" sprite="bgEscalator" scroll="0.3" scale="0.9" updateHitbox="true"/>
<sprite name="tree" x="370" y="-250" sprite="christmasTree" scroll="0.4"/>
<sprite name="bottomBoppers" x="-300" y="140" sprite="bottomBop" scroll="0.9"/>
<sprite name="fgSnow" x="-600" y="700" sprite="fgSnow"/>
<high-memory>
<sprite name="santa" x="-840" y="150" sprite="santa"/>
</high-memory>
<sprite name="bg" x="-1000" y="-500" sprite="bgWalls" scroll="0.2"/>
<sprite name="upperBoppers" x="-240" y="-90" sprite="upperBop" scroll="0.2" />
<sprite name="bgEscalator" x="-1100" y="-600" sprite="bgEscalator" scroll="0.3" scale="0.9" updateHitbox="true"/>
<sprite name="tree" x="370" y="-250" sprite="christmasTree" scroll="0.4"/>
<sprite name="bottomBoppers" x="-300" y="140" sprite="bottomBop" scroll="0.9"/>
<sprite name="fgSnow" x="-600" y="700" sprite="fgSnow"/>
<sprite name="santa" x="-840" y="150" sprite="santa"/>
<girlfriend />
<dad />
<boyfriend x="870" camyoffset="-200"/>
<girlfriend />
<dad />
<boyfriend x="870" camyoffset="-200"/>
</stage>
+59 -59
View File
@@ -5,11 +5,11 @@ import funkin.game.PlayState;
var curColor:Int = 0;
var trainSound:FlxSound;
var colors = [
0xFF31A2FD,
0xFF31FD8C,
0xFFFB33F5,
0xFFFD4531,
0xFFFBA633
0xFF31A2FD,
0xFF31FD8C,
0xFFFB33F5,
0xFFFD4531,
0xFFFBA633
];
var trainMoving:Bool = false;
var trainFrameTiming:Float = 0;
@@ -18,84 +18,84 @@ var trainFinishing:Bool = false;
var trainCooldown:Int = 0;
function create() {
// defaultCamZoom = 0.5;
light.color = colors[curColor];
trainSound = FlxG.sound.load(Paths.sound("train_passes"));
// defaultCamZoom = 0.5;
light.color = colors[curColor];
trainSound = FlxG.sound.load(Paths.sound("train_passes"));
}
function beatHit(curBeat:Int) {
if (curBeat % 4 == 0) {
// switches color
var newColor = FlxG.random.int(0, colors.length-2);
if (newColor >= curColor) newColor++;
curColor = newColor;
light.color = colors[curColor];
}
if (curBeat % 4 == 0) {
// switches color
var newColor = FlxG.random.int(0, colors.length-2);
if (newColor >= curColor) newColor++;
curColor = newColor;
light.color = colors[curColor];
}
if (!trainMoving)
trainCooldown += 1;
if (!trainMoving)
trainCooldown += 1;
if (curBeat % 8 == 4 && FlxG.random.bool(30) && !trainMoving && trainCooldown > 8 && !trainSound.playing)
{
trainCooldown = FlxG.random.int(-4, 0);
trainStart();
}
if (curBeat % 8 == 4 && FlxG.random.bool(30) && !trainMoving && trainCooldown > 8 && !trainSound.playing)
{
trainCooldown = FlxG.random.int(-4, 0);
trainStart();
}
}
function update(elapsed:Float) {
if (Conductor.songPosition > 0)
light.alpha = 1 - (FlxEase.cubeIn((curBeatFloat / 4) % 1) * 0.85);
else
light.alpha = 0;
if (Conductor.songPosition > 0)
light.alpha = 1 - (FlxEase.cubeIn((curBeatFloat / 4) % 1) * 0.85);
else
light.alpha = 0;
if (trainMoving) {
updateTrainPos();
}
if (trainMoving) {
updateTrainPos();
}
}
function trainStart():Void
{
trainMoving = true;
if (!trainSound.playing)
trainSound.play(true);
trainMoving = true;
if (!trainSound.playing)
trainSound.play(true);
}
var startedMoving:Bool = false;
function updateTrainPos():Void
{
if (trainSound.time >= 4700)
{
startedMoving = true;
gf.playAnim('hairBlow');
}
if (trainSound.time >= 4700)
{
startedMoving = true;
gf.playAnim('hairBlow');
}
if (startedMoving)
{
phillyTrain.velocity.x = -400 * 24;
if (phillyTrain.x < -2000 && !trainFinishing)
{
phillyTrain.x = -1150;
trainCars -= 1;
if (startedMoving)
{
phillyTrain.velocity.x = -400 * 24;
if (phillyTrain.x < -2000 && !trainFinishing)
{
phillyTrain.x = -1150;
trainCars -= 1;
if (trainCars <= 0)
trainFinishing = true;
}
if (trainCars <= 0)
trainFinishing = true;
}
if (phillyTrain.x < -4000 && trainFinishing)
trainReset();
}
if (phillyTrain.x < -4000 && trainFinishing)
trainReset();
}
}
function trainReset():Void
{
gf.playAnim('hairFall');
phillyTrain.x = FlxG.width + 200;
trainMoving = false;
// trainSound.stop();
// trainSound.time = 0;
trainCars = 8;
trainFinishing = false;
startedMoving = false;
phillyTrain.velocity.x = 0;
gf.playAnim('hairFall');
phillyTrain.x = FlxG.width + 200;
trainMoving = false;
// trainSound.stop();
// trainSound.time = 0;
trainCars = 8;
trainFinishing = false;
startedMoving = false;
phillyTrain.velocity.x = 0;
}
+6 -6
View File
@@ -1,9 +1,9 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="1.05" name="philly" folder="stages/philly/">
<sprite name="bg" x="-100" y="0" sprite="sky" scroll="0.1" zoomfactor="0"/>
<sprite name="city" x="-10" y="0" sprite="city" scroll="0.3" scale="0.85" updateHitbox="true" zoomfactor="0.3"/>
<sprite name="light" x="-10" y="0" sprite="win" scroll="0.3" scale="0.85" updateHitbox="true" zoomfactor="0.3"/>
<sprite name="streetBehind" x="-40" y="50" sprite="behindTrain" zoomfactor="1" />
<sprite name="phillyTrain" x="2000" y="360" sprite="train" zoomfactor="1" />
<sprite name="street" x="-40" y="50" sprite="street" zoomfactor="1" />
<sprite name="bg" x="-100" y="0" sprite="sky" scroll="0.1" zoomfactor="0"/>
<sprite name="city" x="-10" y="0" sprite="city" scroll="0.3" scale="0.85" updateHitbox="true" zoomfactor="0.3"/>
<sprite name="light" x="-10" y="0" sprite="win" scroll="0.3" scale="0.85" updateHitbox="true" zoomfactor="0.3"/>
<sprite name="streetBehind" x="-40" y="50" sprite="behindTrain" zoomfactor="1" />
<sprite name="phillyTrain" x="2000" y="360" sprite="train" zoomfactor="1" />
<sprite name="street" x="-40" y="50" sprite="street" zoomfactor="1" />
</stage>
+2 -2
View File
@@ -1,4 +1,4 @@
function create() {
importScript("data/scripts/pixel");
isSpooky = true;
importScript("data/scripts/pixel");
isSpooky = true;
}
+3 -3
View File
@@ -1,5 +1,5 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="1" name="school-evil" folder="stages/school/" >
<sprite name="bg" x="400" y="200" sprite="animatedEvilSchool"
antialiasing="false" scale="6" scrollx="0.8" scrolly="0.9" type="loop"/>
<stage zoom="0.5" name="school-evil" folder="stages/school/" >
<sprite name="bg" x="400" y="200" sprite="animatedEvilSchool"
antialiasing="false" scale="6" scrollx="0.8" scrolly="0.9" type="loop"/>
</stage>
+9 -9
View File
@@ -1,14 +1,14 @@
function create() {
importScript("data/scripts/pixel");
if (PlayState.SONG.song == "Roses") {
flabbergastGirls();
}
importScript("data/scripts/pixel");
if (PlayState.SONG.song == "Roses") {
flabbergastGirls();
}
}
public function flabbergastGirls() {
bgGirls.animation.remove("danceLeft");
bgGirls.animation.remove("danceRight");
bgGirls.animation.addByIndices('danceLeft', 'BG fangirls dissuaded', CoolUtil.numberArray(14), "", 24, false);
bgGirls.animation.addByIndices('danceRight', 'BG fangirls dissuaded', CoolUtil.numberArray(30, 15), "", 24, false);
bgGirls.animation.play("danceLeft", true);
bgGirls.animation.remove("danceLeft");
bgGirls.animation.remove("danceRight");
bgGirls.animation.addByIndices('danceLeft', 'BG fangirls dissuaded', CoolUtil.numberArray(14), "", 24, false);
bgGirls.animation.addByIndices('danceRight', 'BG fangirls dissuaded', CoolUtil.numberArray(30, 15), "", 24, false);
bgGirls.animation.play("danceLeft", true);
}
+16 -19
View File
@@ -1,28 +1,25 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="1" folder="stages/school/" >
<sprite name="bgSky" x="-12" y="0" sprite="weebSky"
antialiasing="false" scale="6" scroll="0.1" updateHitbox="true"/>
<sprite name="bgSky" x="-12" y="0" sprite="weebSky"
antialiasing="false" scale="6" scroll="0.1" updateHitbox="true"/>
<sprite name="bgSchool" x="-216" y="0" sprite="weebSchool"
antialiasing="false" scale="6" scrollx="0.6" scrolly="0.9" updateHitbox="true"/>
<sprite name="bgSchool" x="-216" y="0" sprite="weebSchool"
antialiasing="false" scale="6" scrollx="0.6" scrolly="0.9" updateHitbox="true"/>
<sprite name="bgStreet" x="-204" y="0" sprite="weebStreet"
antialiasing="false" scale="6" scroll="0.95" updateHitbox="true"/>
<sprite name="bgStreet" x="-204" y="0" sprite="weebStreet"
antialiasing="false" scale="6" scroll="0.95" updateHitbox="true"/>
<sprite name="fgTrees" x="-30" y="130" sprite="weebTreesBack"
antialiasing="false" scale="4.8" scroll="0.9" updateHitbox="true" type="loop"/>
<sprite name="fgTrees" x="-30" y="130" sprite="weebTreesBack"
antialiasing="false" scale="4.8" scroll="0.9" updateHitbox="true" type="loop"/>
<sprite name="bgTrees" x="-1180" y="-1600" sprite="weebTrees"
antialiasing="false" scale="8.4" scroll="0.85" updateHitbox="true" type="loop"/>
<sprite name="bgTrees" x="-1180" y="-1600" sprite="weebTrees"
antialiasing="false" scale="8.4" scroll="0.85" updateHitbox="true" type="loop"/>
<sprite name="treeLeaves" x="-200" y="-40" sprite="petals"
antialiasing="false" scale="6" scroll="0.85" updateHitbox="true" type="loop"/>
<high-memory>
<sprite name="treeLeaves" x="-200" y="-40" sprite="petals"
antialiasing="false" scale="6" scroll="0.85" updateHitbox="true" type="loop"/>
</high-memory>
<sprite name="bgGirls" x="-100" y="190" sprite="bgFreaks" scroll="0.9" scale="6" antialiasing="false" updateHitbox="true">
<anim name="danceLeft" anim="BG girls group" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13" fps="24" loop="false"/>
<anim name="danceRight" anim="BG girls group" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" fps="24" loop="false"/>
</sprite>
<sprite name="bgGirls" x="-100" y="190" sprite="bgFreaks" scroll="0.9" scale="6" antialiasing="false" updateHitbox="true">
<anim name="danceLeft" anim="BG girls group" indices="0,1,2,3,4,5,6,7,8,9,10,11,12,13" fps="24" loop="false"/>
<anim name="danceRight" anim="BG girls group" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" fps="24" loop="false"/>
</sprite>
</stage>
+10 -16
View File
@@ -1,28 +1,22 @@
public var lightningStrike:Bool = true;
public var lightningStrikeBeat:Int = 0;
public var lightningOffset:Int = 8;
public var thunderSFXamount:Int = 2;
function create() {
for(i in 1...thunderSFXamount+1)
FlxG.sound.load(Paths.sound('thunder_' + Std.string(i)));
bg.playAnim('idle');
}
public function lightningStrikeShit():Void
{
FlxG.sound.play(Paths.soundRandom('thunder_', 1, thunderSFXamount));
bg.playAnim('lightning');
FlxG.sound.play(Paths.soundRandom('thunder_', 1, 2));
bg.animation.play('lightning');
lightningStrikeBeat = curBeat;
lightningOffset = FlxG.random.int(8, 24);
lightningStrikeBeat = curBeat;
lightningOffset = FlxG.random.int(8, 24);
boyfriend.playAnim('scared', true, "SING"); // SING so that they dont get indefinitely looped
gf.playAnim('scared', true, "SING");
boyfriend.playAnim('scared', true, "SING"); // SING so that they dont get indefinitely looped
gf.playAnim('scared', true, "SING");
}
function beatHit(curBeat) {
if (lightningStrike && FlxG.random.bool(10) && curBeat > lightningStrikeBeat + lightningOffset)
{
lightningStrikeShit();
}
if (lightningStrike && FlxG.random.bool(10) && curBeat > lightningStrikeBeat + lightningOffset)
{
lightningStrikeShit();
}
}
+4 -4
View File
@@ -1,7 +1,7 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="1.05" name="spooky" folder="stages/spooky/">
<sprite name="bg" x="-200" y="-100" sprite="halloween_bg" anim="idle" type="none" scale="1.05">
<anim name="idle" anim="halloweem bg0" type="loop" />
<anim name="lightning" anim="halloweem bg lightning strike" loop="false"/>
</sprite>
<sprite name="bg" x="-200" y="-100" sprite="halloween_bg" anim="idle" type="none">
<anim name="idle" anim="halloweem bg0" type="loop" />
<anim name="lightning" anim="halloweem bg lightning strike" loop="false"/>
</sprite>
</stage>
+6 -6
View File
@@ -1,9 +1,9 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="0.9" name="stage" folder="stages/default/">
<sprite name="bg" x="-600" y="-200" sprite="stageback" scroll="0.9" />
<sprite name="stageFront" x="-600" y="600" sprite="stagefront" scroll="0.9" />
<girlfriend />
<dad />
<boyfriend />
<sprite name="stageCurtains" x="-500" y="-300" sprite="stagecurtains" scroll="1.3" />
<sprite name="bg" x="-600" y="-200" sprite="stageback" scroll="0.9" />
<sprite name="stageFront" x="-600" y="600" sprite="stagefront" scroll="0.9" />
<girlfriend />
<dad />
<boyfriend />
<sprite name="stageCurtains" x="-500" y="-300" sprite="stagecurtains" scroll="1.3" />
</stage>
+4 -4
View File
@@ -2,8 +2,8 @@ var tankAngle:Float = FlxG.random.int(-90, 45);
var tankSpeed:Float = FlxG.random.float(5, 7);
function update(elapsed:Float) {
tankAngle += elapsed * tankSpeed;
tankRolling.angle = tankAngle - 90 + 15;
tankRolling.x = 400 + (1500 * Math.cos(Math.PI / 180 * (1 * tankAngle + 180)));
tankRolling.y = 1300 + (1100 * Math.sin(Math.PI / 180 * (1 * tankAngle + 180)));
tankAngle += elapsed * tankSpeed;
tankRolling.angle = tankAngle - 90 + 15;
tankRolling.x = 400 + (1500 * Math.cos(Math.PI / 180 * (1 * tankAngle + 180)));
tankRolling.y = 1300 + (1100 * Math.sin(Math.PI / 180 * (1 * tankAngle + 180)));
}
+25 -35
View File
@@ -1,40 +1,30 @@
<!DOCTYPE codename-engine-stage>
<stage zoom="0.9" name="tank" folder="stages/tank/">
<!-- BG STUFF -->
<sprite name="tankBg" x="-500" y="0" sprite="tankBg" scroll="0" zoomfactor="0"/>
<sprite name="tankSky" x="-400" y="-600" sprite="tankSky" scroll="0" zoomfactor="0"/>
<high-memory>
<sprite name="tankClouds" x="-350" y="0" sprite="tankClouds" scroll="0.1" zoomfactor="0">
<property name="velocity.x" type="float" value="10" />
</sprite>
</high-memory>
<sprite name="tankMountains" x="-300" y="-20" sprite="tankMountains" scroll="0.2" scale="1.2" updateHitbox="true" zoomfactor="0.10"/>
<high-memory>
<sprite name="tankBuildings" x="-300" y="-20" sprite="tankBuildings" scroll="0.3" scale="1.1" updateHitbox="true" zoomfactor="0.25"/>
<sprite name="tankRuins" x="-200" y="0" sprite="tankRuins" scroll="0.35" scale="1.1" updateHitbox="true" zoomfactor="0.35"/>
</high-memory>
<high-memory>
<sprite name="smokeLeft" x="-200" y="-100" sprite="smokeLeft" scroll="0.4" zoomfactor="0.6"/>
<sprite name="smokeRight" x="1100" y="-100" sprite="smokeRight" scroll="0.4" zoomfactor="0.6"/>
<sprite name="tankWatchtower" x="100" y="50" sprite="tankWatchtower" scroll="0.5" onBeat="true" zoomfactor="0.7"/>
</high-memory>
<sprite name="tankRolling" x="300" y="300" sprite="tankRolling" scroll="0.5" zoomfactor="0.8" type="loop"/>
<sprite name="tankGround" x="-420" y="-150" sprite="tankGround" scale="1.15" updateHitbox="true" zoomfactor="1.0"/>
<!-- BG STUFF -->
<sprite name="tankBg" x="-500" y="0" sprite="tankBg" scroll="0" zoomfactor="0"/>
<sprite name="tankSky" x="-400" y="-600" sprite="tankSky" scroll="0" zoomfactor="0"/>
<sprite name="tankClouds" x="-350" y="0" sprite="tankClouds" scroll="0.1" zoomfactor="0">
<property name="velocity.x" type="float" value="10" />
</sprite>
<sprite name="tankMountains" x="-300" y="-20" sprite="tankMountains" scroll="0.2" scale="1.2" updateHitbox="true" zoomfactor="0.10"/>
<sprite name="tankBuildings" x="-300" y="-20" sprite="tankBuildings" scroll="0.3" scale="1.1" updateHitbox="true" zoomfactor="0.25"/>
<sprite name="tankRuins" x="-200" y="0" sprite="tankRuins" scroll="0.35" scale="1.1" updateHitbox="true" zoomfactor="0.35"/>
<sprite name="smokeLeft" x="-200" y="-100" sprite="smokeLeft" scroll="0.4" zoomfactor="0.6"/>
<sprite name="smokeRight" x="1100" y="-100" sprite="smokeRight" scroll="0.4" zoomfactor="0.6"/>
<sprite name="tankWatchtower" x="100" y="50" sprite="tankWatchtower" scroll="0.5" onBeat="true" zoomfactor="0.7"/>
<sprite name="tankRolling" x="300" y="300" sprite="tankRolling" scroll="0.5" zoomfactor="0.8" type="loop"/>
<sprite name="tankGround" x="-420" y="-150" sprite="tankGround" scale="1.15" updateHitbox="true" zoomfactor="1.0"/>
<!-- CHARACTERS -->
<girlfriend x="305" y="105"/>
<dad x="20" y="160"/>
<boyfriend x="810"/>
<!-- CHARACTERS -->
<girlfriend x="230" y="55"/>
<dad x="20" y="160"/>
<boyfriend x="810"/>
<!-- FOREGROUND TANKMANS -->
<high-memory>
<sprite name="tank0" x="-500" y="650" sprite="tank0" scrollx="1.7" scrolly="1.5" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank1" x="-300" y="750" sprite="tank1" scrollx="2" scrolly="0.2" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank2" x="450" y="940" sprite="tank2" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank4" x="1300" y="900" sprite="tank4" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank5" x="1620" y="700" sprite="tank5" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank3" x="1300" y="1200" sprite="tank3" scrollx="3.5" scrolly="2.5" onBeat="true" zoomfactor="1.25"/>
</high-memory>
<!-- FOREGROUND TANKMANS -->
<sprite name="tank0" x="-500" y="650" sprite="tank0" scrollx="1.7" scrolly="1.5" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank1" x="-300" y="750" sprite="tank1" scrollx="2" scrolly="0.2" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank2" x="450" y="940" sprite="tank2" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank4" x="1300" y="900" sprite="tank4" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank5" x="1620" y="700" sprite="tank5" scroll="1.5" onBeat="true" zoomfactor="1.25"/>
<sprite name="tank3" x="1300" y="1200" sprite="tank3" scrollx="3.5" scrolly="2.5" onBeat="true" zoomfactor="1.25"/>
</stage>
+55 -55
View File
@@ -1,71 +1,71 @@
<!DOCTYPE codename-titlestate >
<titlestate>
<sprites folder="menus/titlescreen">
<sprite name="logo" sprite="logo" x="-150" y="-100" />
<sprite name="gf" sprite="gf" x="512" y="50">
<anim name="danceLeft" anim="gfDance" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="gfDance" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<sprites folder="menus/titlescreen">
<sprite name="logo" sprite="logo" x="-150" y="-100" />
<sprite name="gf" sprite="gf" x="512" y="50">
<anim name="danceLeft" anim="gfDance" indices="30,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14" />
<anim name="danceRight" anim="gfDance" indices="15,16,17,18,19,20,21,22,23,24,25,26,27,28,29" />
</sprite>
<titleEnter sprite="titleEnter" x="-150" y="-100" />
</sprites>
<titleEnter sprite="titleEnter" x="-150" y="-100" />
</sprites>
<intro length="16">
<text beat="1">
<line text="ninjamuffin99" />
<line text="phantomArcade" />
<line text="kawaisprite" />
<line text="evilsk8er" />
</text>
<intro length="16">
<text beat="1">
<line text="ninjamuffin99" />
<line text="phantomArcade" />
<line text="kawaisprite" />
<line text="evilsk8er" />
</text>
<text beat="3">
<line text="ninjamuffin99" />
<line text="phantomArcade" />
<line text="kawaisprite" />
<line text="evilsk8er" />
<line text="presents" />
</text>
<text beat="3">
<line text="ninjamuffin99" />
<line text="phantomArcade" />
<line text="kawaisprite" />
<line text="evilsk8er" />
<line text="presents" />
</text>
<text beat="4" /> <!-- clears the screen !-->
<text beat="4" /> <!-- clears the screen !-->
<text beat="5">
<line text="In association" />
<line text="with" />
</text>
<text beat="5">
<line text="In association" />
<line text="with" />
</text>
<text beat="7">
<line text="In association" />
<line text="with" />
<line text="Newgrounds" />
<sprite path="menus/titlescreen/newgrounds_logo" scale="0.8"/>
</text>
<text beat="7">
<line text="In association" />
<line text="with" />
<line text="Newgrounds" />
<sprite path="menus/titlescreen/newgrounds_logo" scale="0.8"/>
</text>
<text beat="8" /> <!-- clears the screen !-->
<text beat="8" /> <!-- clears the screen !-->
<text beat="9">
<introtext line="1" />
</text>
<text beat="9">
<introtext line="1" />
</text>
<text beat="11">
<introtext line="1" />
<introtext line="2" />
</text>
<text beat="11">
<introtext line="1" />
<introtext line="2" />
</text>
<text beat="12"/>
<text beat="12"/>
<text beat="13">
<line text="Friday" />
</text>
<text beat="13">
<line text="Friday" />
</text>
<text beat="14">
<line text="Friday" />
<line text="Night" />
</text>
<text beat="14">
<line text="Friday" />
<line text="Night" />
</text>
<text beat="15">
<line text="Friday" />
<line text="Night" />
<line text="Funkin'" />
</text>
</intro>
<text beat="15">
<line text="Friday" />
<line text="Night" />
<line text="Funkin'" />
</text>
</intro>
</titlestate>
+72
View File
@@ -0,0 +1,72 @@
<!DOCTYPE codename-engine-weeks>
<config>
<characters>
<!-- BOYFRIEND -->
<char name="bf" scale="0.9" x="80">
<anim name="idle" anim="BF idle dance white" fps="24" loop="true" />
<anim name="confirm" anim="BF HEY!!" fps="24" loop="false"/>
</char>
<!-- ANIMATION IS AUTOMATICALLY ADDED. IF YOU WANT TO SPECIFY A PREFIX, ADD AN IDLE ANIM LIKE ABOVE. -->
<char name="dad" scale="0.5" x="50" />
<char name="gf" scale="0.5" />
<char name="spooky" scale="0.7" x="125" />
<char name="pico" scale="0.7" x="100" y="-30" flip="true"/>
<char name="mom" scale="0.5" x="50" y="10"/>
<char name="parents-christmas" scale="0.4" x="150" y="-20" />
<char name="senpai" x="130" y="-50"/>
<char name="tankman" x="75" y="-35"/>
</characters>
<weeks>
<!-- SPRITE BUTTONS ARE LOCATED IN "images/menus/storymenu/weeks/" -->
<!-- IF NO SPRITE ARE SPECIFIED, "week(week number)" WILL BE USED. -->
<!-- IF YOU WANT CUSTOM DIFFICULTIES, ADD THIS: difficulties="easy,normal,hard" -->
<!-- DIFFICULTIES SPRITES IN "images/menus/storymenu/difficulties/" -->
<week name="" chars="none,bf,gf" sprite="tutorial">
<song name="Tutorial" />
</week>
<week name="DADDY DEAREST" chars="dad,bf,gf" sprite="week1">
<song name="Bopeebo" />
<song name="Fresh" />
<song name="Dadbattle" />
</week>
<week name="SPOOKY MONTH" chars="spooky,bf,gf" sprite="week2">
<song name="Spookeez" />
<song name="South" />
<song name="Monster" hide="true" />
</week>
<week name="PICO" chars="pico,bf,gf" sprite="week3">
<song name="Pico" />
<song name="Philly" />
<song name="Blammed" />
</week>
<week name="MOMMY MUST MURDER" chars="mom,bf,gf" sprite="week4">
<song name="Satin Panties" />
<song name="High" />
<song name="MILF" />
</week>
<week name="RED SNOW" chars="parents-christmas,bf,gf" sprite="week5">
<song name="Cocoa" />
<song name="Eggnog" />
<song name="Winter-Horrorland" hide="true" />
</week>
<week name="HATING SIMULATOR FT. MOAWLING" chars="senpai,bf,gf" sprite="week6">
<song name="Senpai" />
<song name="Roses" />
<song name="Thorns" hide="true" />
</week>
<week name="TANKMAN" chars="tankman,bf,gf" sprite="week7">
<song name="Ugh" />
<song name="Guns" />
<song name="Stress" />
</week>
</weeks>
</config>
-5
View File
@@ -1,5 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char scale="0.9" x="80">
<anim name="idle" anim="BF idle dance white" fps="24" loop="true" />
<anim name="confirm" anim="BF HEY!!" fps="24" loop="false"/>
</char>
-2
View File
@@ -1,2 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char scale="0.5" x="50" />
-2
View File
@@ -1,2 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char scale="0.5" />
-2
View File
@@ -1,2 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char scale="0.5" x="50" y="10"/>
@@ -1,2 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char scale="0.4" x="150" y="-20" />
-2
View File
@@ -1,2 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char scale="0.7" x="100" y="-30" flip="true"/>
-2
View File
@@ -1,2 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char x="130" y="-50"/>
-2
View File
@@ -1,2 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char scale="0.7" x="125" />
-2
View File
@@ -1,2 +0,0 @@
<!DOCTYPE codename-engine-week-character>
<char x="75" y="-35"/>
-11
View File
@@ -1,11 +0,0 @@
# THIS FILE ISNT NECESSARY,
# BUT YOU CAN USE IT TO SORT WEEKS
tutorial
week1
week2
week3
week4
week5
week6
week7
-4
View File
@@ -1,4 +0,0 @@
<!DOCTYPE codename-engine-week>
<week name="" chars="none,bf,gf" sprite="tutorial">
<song>Tutorial</song>
</week>
-6
View File
@@ -1,6 +0,0 @@
<!DOCTYPE codename-engine-week>
<week name="DADDY DEAREST" chars="dad,bf,gf" sprite="week1">
<song>Bopeebo</song>
<song>Fresh</song>
<song>Dadbattle</song>
</week>
-6
View File
@@ -1,6 +0,0 @@
<!DOCTYPE codename-engine-week>
<week name="SPOOKY MONTH" chars="spooky,bf,gf" sprite="week2">
<song>Spookeez</song>
<song>South</song>
<song hide="true">Monster</song>
</week>
-6
View File
@@ -1,6 +0,0 @@
<!DOCTYPE codename-engine-week>
<week name="PICO" chars="pico,bf,gf" sprite="week3">
<song>Pico</song>
<song>Philly Nice</song>
<song>Blammed</song>
</week>
-6
View File
@@ -1,6 +0,0 @@
<!DOCTYPE codename-engine-week>
<week name="MOMMY MUST MURDER" chars="mom,bf,gf" sprite="week4">
<song>Satin Panties</song>
<song>High</song>
<song>MILF</song>
</week>
-6
View File
@@ -1,6 +0,0 @@
<!DOCTYPE codename-engine-week>
<week name="RED SNOW" chars="parents-christmas,bf,gf" sprite="week5">
<song>Cocoa</song>
<song>Eggnog</song>
<song>Winter Horrorland</song>
</week>
-6
View File
@@ -1,6 +0,0 @@
<!DOCTYPE codename-engine-week>
<week name="HATING SIMULATOR FT. MOAWLING" chars="senpai,bf,gf" sprite="week6">
<song>Senpai</song>
<song>Roses</song>
<song hide="true">Thorns</song>
</week>
-6
View File
@@ -1,6 +0,0 @@
<!DOCTYPE codename-engine-week>
<week name="TANKMAN" chars="tankman,bf,gf" sprite="week7">
<song>Ugh</song>
<song>Guns</song>
<song>Stress</song>
</week>

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 KiB

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