Merge remote-tracking branch 'upstream/main' into new-editors-main
# Conflicts: # commandline/commands/Compiler.hx # source/funkin/backend/FunkinSprite.hx # source/funkin/backend/MusicBeatState.hx # source/funkin/backend/MusicBeatSubstate.hx # source/funkin/backend/chart/Chart.hx # source/funkin/backend/chart/EventsData.hx # source/funkin/backend/scripting/GlobalScript.hx # source/funkin/backend/system/Controls.hx # source/funkin/backend/system/MainState.hx # source/funkin/backend/utils/AudioAnalyzer.hx # source/funkin/backend/utils/CoolUtil.hx # source/funkin/editors/character/CharacterInfoScreen.hx # source/funkin/editors/charter/Charter.hx # source/funkin/editors/charter/CharterSelection.hx # source/funkin/editors/charter/CharterStrumline.hx # source/funkin/editors/charter/CharterStrumlineButton.hx # source/funkin/editors/charter/SongCreationScreen.hx # source/funkin/editors/ui/UIDropDown.hx # source/funkin/editors/ui/UIFileExplorer.hx # source/funkin/game/Note.hx # source/funkin/game/PlayState.hx # source/funkin/game/SplashGroup.hx # source/funkin/game/Stage.hx # source/funkin/game/Strum.hx # source/funkin/menus/FreeplayState.hx # source/funkin/options/Options.hx # source/funkin/options/keybinds/KeybindsOptions.hx
@@ -0,0 +1,3 @@
|
|||||||
|
# These are supported funding model platforms
|
||||||
|
|
||||||
|
ko_fi: codename_engine
|
||||||
@@ -7,7 +7,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
name: Linux Build
|
name: Linux Build
|
||||||
permissions: write-all
|
permissions: write-all
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-24.04
|
||||||
steps:
|
steps:
|
||||||
- name: Pulling the source
|
- name: Pulling the source
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
@@ -35,13 +35,13 @@ jobs:
|
|||||||
- name: Building the game
|
- name: Building the game
|
||||||
run: |
|
run: |
|
||||||
haxelib run lime build linux
|
haxelib run lime build linux
|
||||||
- name: Tar files
|
# - name: Tar files
|
||||||
run: tar -zcvf CodenameEngine.tar.gz -C export/release/linux/bin .
|
# run: tar -zcvf CodenameEngine.tar.gz -C export/release/linux/bin .
|
||||||
- name: Uploading artifact (entire build)
|
- name: Uploading artifact (entire build)
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: Codename Engine
|
name: Codename Engine
|
||||||
path: CodenameEngine.tar.gz
|
path: export/release/linux/bin/
|
||||||
# - name: Uploading artifact (executable)
|
# - name: Uploading artifact (executable)
|
||||||
# uses: actions/upload-artifact@v4
|
# uses: actions/upload-artifact@v4
|
||||||
# with:
|
# with:
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
export/
|
export/
|
||||||
dump/
|
dump/
|
||||||
latest/windows/obj/
|
latest/*
|
||||||
latest/windows/haxe/
|
|
||||||
.vscode/*
|
.vscode/*
|
||||||
!.vscode/settings.json
|
!.vscode/settings.json
|
||||||
!.vscode/tasks.json
|
!.vscode/tasks.json
|
||||||
@@ -11,4 +10,6 @@ docs/doc.xml
|
|||||||
mods/*
|
mods/*
|
||||||
addons/*
|
addons/*
|
||||||
!mods/readme.txt
|
!mods/readme.txt
|
||||||
|
addons/*
|
||||||
|
!addons/readme.txt
|
||||||
dev-libs/
|
dev-libs/
|
||||||
|
|||||||
@@ -16,13 +16,14 @@ This changelog lists every change that has been added since the last update (inc
|
|||||||
- Added a function ``WindowUtils.resetAffixes()`` to reset the prefix and suffix of the engine's window title, and fixed a typo ([1d94945](https://github.com/CodenameCrew/CodenameEngine/commit/1d94945faeea86af02bcaecd715f5bea22ef48fd))
|
- Added a function ``WindowUtils.resetAffixes()`` to reset the prefix and suffix of the engine's window title, and fixed a typo ([1d94945](https://github.com/CodenameCrew/CodenameEngine/commit/1d94945faeea86af02bcaecd715f5bea22ef48fd))
|
||||||
- Added a field `extra` to FunkinSprite, which can be used to store any extra data you want (e.g. sprite.extra.set("name", value)) ([fb48570](https://github.com/CodenameCrew/CodenameEngine/commit/fb485701b451d6a7a22a1e696bfc081699f1c6d2))
|
- Added a field `extra` to FunkinSprite, which can be used to store any extra data you want (e.g. sprite.extra.set("name", value)) ([fb48570](https://github.com/CodenameCrew/CodenameEngine/commit/fb485701b451d6a7a22a1e696bfc081699f1c6d2))
|
||||||
- Added default icon colors to every base game character ([814bd71](https://github.com/CodenameCrew/CodenameEngine/commit/814bd712fe2ea2dd21116e9903d9c2babe5341b1))
|
- Added default icon colors to every base game character ([814bd71](https://github.com/CodenameCrew/CodenameEngine/commit/814bd712fe2ea2dd21116e9903d9c2babe5341b1))
|
||||||
- Added more features to cne.bat/cne.sh: ([4ef43df](https://github.com/CodenameCrew/CodenameEngine/commit/4ef43dfbecc79283d038d939f94671966802039e), [0dc166c](https://github.com/CodenameCrew/CodenameEngine/commit/0dc166c601b25e3167a1d04542840265484576b4))
|
- Added more features to cne.bat/cne.sh: ([4ef43df](https://github.com/CodenameCrew/CodenameEngine/commit/4ef43dfbecc79283d038d939f94671966802039e), [0dc166c](https://github.com/CodenameCrew/CodenameEngine/commit/0dc166c601b25e3167a1d04542840265484576b4), [21bba98](https://github.com/CodenameCrew/CodenameEngine/commit/21bba98923307fe75667e1395781d068a7ec47ad))
|
||||||
- Setup
|
- Setup
|
||||||
- `--reinstall` to reinstall all libraries
|
- `--reinstall` to reinstall all libraries
|
||||||
- `--no-vscheck` to skip the Visual Studio check
|
- `--no-vscheck` to skip the Visual Studio check
|
||||||
- `--silent` to not print the download progress
|
- `--silent` to not print the download progress
|
||||||
- project file has conditionals now
|
- libs file has conditionals now
|
||||||
- `--lib=path.xml` to use a specific setup file
|
- `--lib=path.xml` to use a specific setup file
|
||||||
|
- `--fast` for quickly downloading git libraries, but requires you to reinstall it fully when updates happen
|
||||||
- Alphabet now allows multiple lines in the text ([d519db0](https://github.com/CodenameCrew/CodenameEngine/commit/d519db011a14aac0ddfc052089836c6b445f7f44))
|
- Alphabet now allows multiple lines in the text ([d519db0](https://github.com/CodenameCrew/CodenameEngine/commit/d519db011a14aac0ddfc052089836c6b445f7f44))
|
||||||
- Allow importing mod root level modules in hscript, instead of only source/ ([7e66ee8](https://github.com/CodenameCrew/CodenameEngine/commit/7e66ee81e24204cd152de20046fa1500bb9d204b))
|
- Allow importing mod root level modules in hscript, instead of only source/ ([7e66ee8](https://github.com/CodenameCrew/CodenameEngine/commit/7e66ee81e24204cd152de20046fa1500bb9d204b))
|
||||||
- Added a way to force animations in the `Play Animation` event ([d7b6fbe](https://github.com/CodenameCrew/CodenameEngine/commit/d7b6fbe510edeb832112ab5adc8ab19dfe97d77f))
|
- Added a way to force animations in the `Play Animation` event ([d7b6fbe](https://github.com/CodenameCrew/CodenameEngine/commit/d7b6fbe510edeb832112ab5adc8ab19dfe97d77f))
|
||||||
@@ -63,7 +64,6 @@ This changelog lists every change that has been added since the last update (inc
|
|||||||
- Added `bf` shorthand for `boyfriend` in playstate ([2b81220](https://github.com/CodenameCrew/CodenameEngine/commit/2b81220c15ed77acecd17c09a975ed401677165f))
|
- Added `bf` shorthand for `boyfriend` in playstate ([2b81220](https://github.com/CodenameCrew/CodenameEngine/commit/2b81220c15ed77acecd17c09a975ed401677165f))
|
||||||
- Added character script extensions ([682358c](https://github.com/CodenameCrew/CodenameEngine/commit/682358c93a0c17469d1a481de0523e4c4e19c6ec))
|
- Added character script extensions ([682358c](https://github.com/CodenameCrew/CodenameEngine/commit/682358c93a0c17469d1a481de0523e4c4e19c6ec))
|
||||||
- Folder support in the character editor selection ([68c2fea](https://github.com/CodenameCrew/CodenameEngine/commit/68c2feab373db69d4a00b6f274f98afb3d8e3803))
|
- Folder support in the character editor selection ([68c2fea](https://github.com/CodenameCrew/CodenameEngine/commit/68c2feab373db69d4a00b6f274f98afb3d8e3803))
|
||||||
- cne.bat/cne.sh setup --fast for quickly downloading git libraries ([21bba98](https://github.com/CodenameCrew/CodenameEngine/commit/21bba98923307fe75667e1395781d068a7ec47ad))
|
|
||||||
- Allow hold notes to be force deleted ([25b5630](https://github.com/CodenameCrew/CodenameEngine/commit/25b563066fc53ac92ebe3064175c80b5f1ae64bc))
|
- Allow hold notes to be force deleted ([25b5630](https://github.com/CodenameCrew/CodenameEngine/commit/25b563066fc53ac92ebe3064175c80b5f1ae64bc))
|
||||||
- Allow tweening shaders and array values using FlxTween ([3de3c3f](https://github.com/CodenameCrew/CodenameEngine/commit/3de3c3f8286b2b07c9690334e2d85ce052a909c5))
|
- Allow tweening shaders and array values using FlxTween ([3de3c3f](https://github.com/CodenameCrew/CodenameEngine/commit/3de3c3f8286b2b07c9690334e2d85ce052a909c5))
|
||||||
- Made the advanced info show `Mod State: {name}` instead of `State: funkin.backend.scripting.ModState` ([3de3c3f](https://github.com/CodenameCrew/CodenameEngine/commit/3de3c3f8286b2b07c9690334e2d85ce052a909c5))
|
- Made the advanced info show `Mod State: {name}` instead of `State: funkin.backend.scripting.ModState` ([3de3c3f](https://github.com/CodenameCrew/CodenameEngine/commit/3de3c3f8286b2b07c9690334e2d85ce052a909c5))
|
||||||
|
|||||||
@@ -84,7 +84,6 @@ If you don't have a github account please go onto https://fnf-cne-devs.github.io
|
|||||||
<details>
|
<details>
|
||||||
<summary><h2>Credits</h2></summary>
|
<summary><h2>Credits</h2></summary>
|
||||||
|
|
||||||
- Credits to [Ne_Eo](https://twitter.com/Ne_Eo_Twitch) and the [3D-HaxeFlixel](https://github.com/lunarcleint/3D-HaxeFlixel) repository for Away3D Flixel support
|
|
||||||
- Credits to the [FlxAnimate](https://github.com/Dot-Stuff/flxanimate) team for the Animate Atlas support
|
- Credits to the [FlxAnimate](https://github.com/Dot-Stuff/flxanimate) team for the Animate Atlas support
|
||||||
- Credits to Smokey555 for the backup Animate Atlas to spritesheet code
|
- Credits to Smokey555 for the backup Animate Atlas to spritesheet code
|
||||||
- Credits to MAJigsaw77 for [hxvlc](https://github.com/MAJigsaw77/hxvlc) (video cutscene/mp4 support) and [hxdiscord_rpc](https://github.com/MAJigsaw77/hxdiscord_rpc) (discord rpc integration)
|
- Credits to MAJigsaw77 for [hxvlc](https://github.com/MAJigsaw77/hxvlc) (video cutscene/mp4 support) and [hxdiscord_rpc](https://github.com/MAJigsaw77/hxdiscord_rpc) (discord rpc integration)
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
╔═══════════════════════════════════════╗
|
||||||
|
║ HOW TO USE ║
|
||||||
|
╚═══════════════════════════════════════╝
|
||||||
|
DRAG AND DROP YOUR ADDON FOLDER HERE!
|
||||||
|
|
||||||
|
╔═══════════════════════════════════════╗
|
||||||
|
║ ZIP ADDONS ║
|
||||||
|
╚═══════════════════════════════════════╝
|
||||||
|
Zip files are also supported at condition it follows this hierarchy:
|
||||||
|
|
||||||
|
📁addon.zip/
|
||||||
|
📁data
|
||||||
|
📁images
|
||||||
|
📁...
|
||||||
|
|
||||||
|
Instead of this one
|
||||||
|
|
||||||
|
📁addon.zip
|
||||||
|
📁my addon
|
||||||
|
📁data
|
||||||
|
📁images
|
||||||
|
📁...
|
||||||
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 113 KiB |
|
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 251 B After Width: | Height: | Size: 216 B |
|
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 453 KiB After Width: | Height: | Size: 447 KiB |
|
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 448 B After Width: | Height: | Size: 424 B |
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 131 KiB |
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"clientID": "1027994136193810442",
|
"clientID": "1383853614589673472",
|
||||||
"logoKey": "icon"
|
"logoKey": "icon"
|
||||||
}
|
}
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
//
|
|
||||||
function update(elapsed:Float)
|
|
||||||
if (FlxG.keys.justPressed.F5) FlxG.resetState();
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
function onNoteHit(event) if (event.noteType == "Alt Anim Note") event.animSuffix = "-alt";
|
function onNoteHit(event) if (event.noteType == "Alt Anim Note") event.animSuffix = "-alt";
|
||||||
function onPlayerMiss(event) if (event.noteType == "Alt Anim Note") event.animSuffix = "-alt";
|
function onPlayerMiss(event) if (event.noteType == "Alt Anim Note") event.animSuffix = "miss-alt";
|
||||||
@@ -18,9 +18,7 @@ public var daPixelZoom = PlayState.daPixelZoom;
|
|||||||
* UI
|
* UI
|
||||||
*/
|
*/
|
||||||
function onNoteCreation(event) {
|
function onNoteCreation(event) {
|
||||||
if (event.note.strumLine == playerStrums && !pixelNotesForBF) return;
|
if ((event.note.strumLine == playerStrums && !pixelNotesForBF) || (event.note.strumLine == cpuStrums && !pixelNotesForDad)) return;
|
||||||
if (event.note.strumLine == cpuStrums && !pixelNotesForDad) return;
|
|
||||||
|
|
||||||
event.cancel();
|
event.cancel();
|
||||||
|
|
||||||
var note = event.note;
|
var note = event.note;
|
||||||
@@ -38,18 +36,14 @@ function onNoteCreation(event) {
|
|||||||
var strumScale = event.note.strumLine.strumScale;
|
var strumScale = event.note.strumLine.strumScale;
|
||||||
note.scale.set(daPixelZoom*strumScale, daPixelZoom*strumScale);
|
note.scale.set(daPixelZoom*strumScale, daPixelZoom*strumScale);
|
||||||
note.updateHitbox();
|
note.updateHitbox();
|
||||||
|
note.antialiasing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onPostNoteCreation(event) {
|
function onPostNoteCreation(event) if (pixelSplashes)
|
||||||
var splashes = event.note;
|
event.note.splash = "pixel-default";
|
||||||
if (pixelSplashes)
|
|
||||||
splashes.splash = "pixel-default";
|
|
||||||
}
|
|
||||||
|
|
||||||
function onStrumCreation(event) {
|
function onStrumCreation(event) {
|
||||||
if (event.player == 1 && !pixelNotesForBF) return;
|
if ((event.player == 1 && !pixelNotesForBF) || (event.player == 0 && !pixelNotesForDad)) return;
|
||||||
if (event.player == 0 && !pixelNotesForDad) return;
|
|
||||||
|
|
||||||
event.cancel();
|
event.cancel();
|
||||||
|
|
||||||
var strum = event.strum;
|
var strum = event.strum;
|
||||||
@@ -64,6 +58,7 @@ function onStrumCreation(event) {
|
|||||||
var strumScale = strumLines.members[event.player].strumScale;
|
var strumScale = strumLines.members[event.player].strumScale;
|
||||||
strum.scale.set(daPixelZoom*strumScale, daPixelZoom*strumScale);
|
strum.scale.set(daPixelZoom*strumScale, daPixelZoom*strumScale);
|
||||||
strum.updateHitbox();
|
strum.updateHitbox();
|
||||||
|
strum.antialiasing = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onCountdown(event) {
|
function onCountdown(event) {
|
||||||
@@ -94,9 +89,9 @@ function onPlayerHit(event:NoteHitEvent) {
|
|||||||
* CAMERA HACKS!!
|
* CAMERA HACKS!!
|
||||||
*/
|
*/
|
||||||
function postCreate() {
|
function postCreate() {
|
||||||
if (enablePauseMenu) {
|
if (enablePauseMenu)
|
||||||
PauseSubState.script = 'data/scripts/week6-pause';
|
PauseSubState.script = 'data/scripts/week6-pause';
|
||||||
}
|
|
||||||
if (enableCameraHacks) {
|
if (enableCameraHacks) {
|
||||||
camGame.pixelPerfectRender = true;
|
camGame.pixelPerfectRender = true;
|
||||||
camGame.antialiasing = false;
|
camGame.antialiasing = false;
|
||||||
@@ -105,9 +100,6 @@ function postCreate() {
|
|||||||
defaultCamZoom /= daPixelZoom;
|
defaultCamZoom /= daPixelZoom;
|
||||||
}
|
}
|
||||||
|
|
||||||
iconP1.antialiasing = false;
|
|
||||||
iconP2.antialiasing = false;
|
|
||||||
|
|
||||||
if (enablePixelGameOver) {
|
if (enablePixelGameOver) {
|
||||||
gameOverSong = "pixel/gameOver";
|
gameOverSong = "pixel/gameOver";
|
||||||
lossSFX = "pixel/gameOverSFX";
|
lossSFX = "pixel/gameOverSFX";
|
||||||
@@ -115,8 +107,8 @@ function postCreate() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onStartCountdown() {
|
/*function onStartCountdown() {
|
||||||
/*var newNoteCamera = new HudCamera();
|
var newNoteCamera = new HudCamera();
|
||||||
newNoteCamera.bgColor = 0; // transparent
|
newNoteCamera.bgColor = 0; // transparent
|
||||||
FlxG.cameras.add(newNoteCamera, false);
|
FlxG.cameras.add(newNoteCamera, false);
|
||||||
|
|
||||||
@@ -130,8 +122,8 @@ function onStartCountdown() {
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
makeCameraPixely(newNoteCamera);*/
|
makeCameraPixely(newNoteCamera);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Use this to make any camera pixelly (you wont be able to zoom with it anymore!)
|
* Use this to make any camera pixelly (you wont be able to zoom with it anymore!)
|
||||||
@@ -156,33 +148,29 @@ function destroy() {
|
|||||||
FlxG.game.stage.quality = oldStageQuality;
|
FlxG.game.stage.quality = oldStageQuality;
|
||||||
}
|
}
|
||||||
|
|
||||||
function pixelCam(cam) {
|
function pixelCam(cam)
|
||||||
makeCameraPixely(cam);
|
makeCameraPixely(cam);
|
||||||
}
|
|
||||||
|
|
||||||
var pixellyCameras = [];
|
var pixellyCameras = [];
|
||||||
var pixellyShaders = [];
|
var pixellyShaders = [];
|
||||||
|
|
||||||
function postUpdate(elapsed) {
|
function postUpdate() {
|
||||||
for(e in pixellyCameras) {
|
for (e in pixellyCameras) if (Std.isOfType(e, HudCamera))
|
||||||
if (Std.isOfType(e, HudCamera))
|
e.downscroll = camHUD.downscroll;
|
||||||
e.downscroll = camHUD.downscroll;
|
|
||||||
}
|
if (enableCameraHacks) for (p in strumLines) {
|
||||||
if (enableCameraHacks) {
|
p.notes.forEach(function(n) {
|
||||||
for(p in strumLines)
|
if(n.isSustainNote) return; // hacky fix for hold
|
||||||
p.notes.forEach(function(n) {
|
n.y -= n.y % daPixelZoom;
|
||||||
if(n.isSustainNote) return; // hacky fix for hold
|
n.x -= n.x % daPixelZoom;
|
||||||
n.y -= n.y % daPixelZoom;
|
});
|
||||||
n.x -= n.x % daPixelZoom;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var zoom = 1 / daPixelZoom / Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y);
|
var zoom = 1 / daPixelZoom / Math.min(FlxG.scaleMode.scale.x, FlxG.scaleMode.scale.y);
|
||||||
for(e in pixellyCameras) {
|
for (e in pixellyCameras) {
|
||||||
if (!e.exists) continue;
|
if (!e.exists) continue;
|
||||||
e.zoom = zoom;
|
e.zoom = zoom;
|
||||||
}
|
}
|
||||||
for(e in pixellyShaders) {
|
for (e in pixellyShaders)
|
||||||
e.pixelZoom = zoom;
|
e.pixelZoom = zoom;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import flixel.text.FlxText;
|
|||||||
import flixel.text.FlxTextBorderStyle;
|
import flixel.text.FlxTextBorderStyle;
|
||||||
import flixel.util.FlxAxes;
|
import flixel.util.FlxAxes;
|
||||||
|
|
||||||
var pixelScript:Script;
|
var pixelScript:Script = game.scripts.getByName("pixel.hx");
|
||||||
var pauseCam = new FlxCamera();
|
var pauseCam = new FlxCamera();
|
||||||
|
|
||||||
var bg:FlxSprite;
|
var bg:FlxSprite;
|
||||||
@@ -19,47 +19,40 @@ function create(event) {
|
|||||||
|
|
||||||
event.music = isThorns ? "pixel/LunchboxScary" : "pixel/breakfast";
|
event.music = isThorns ? "pixel/LunchboxScary" : "pixel/breakfast";
|
||||||
|
|
||||||
cameras = [];
|
// allowing this pause script even if the pixel script is not loaded - Nex
|
||||||
|
pixelScript?.call("pixelCam", [pauseCam]);
|
||||||
pixelScript = game.scripts.getByName("pixel.hx");
|
|
||||||
pixelScript.call("pixelCam", [pauseCam]);
|
|
||||||
|
|
||||||
FlxG.cameras.add(pauseCam, false);
|
FlxG.cameras.add(pauseCam, false);
|
||||||
|
cameras = [pauseCam];
|
||||||
|
|
||||||
pauseCam.bgColor = isThorns ? 0x88000000 : 0x88FF99CC;
|
pauseCam.bgColor = isThorns ? 0x88000000 : 0x88FF99CC;
|
||||||
pauseCam.alpha = 0;
|
pauseCam.alpha = 0;
|
||||||
|
|
||||||
bg = new FlxSprite(44 * 6, 14 * 6);
|
bg = new FlxSprite(44 * 6, 14 * 6, Paths.image('stages/school/pause/bg'));
|
||||||
bg.loadGraphic(Paths.image('stages/school/pause/bg'));
|
bg.antialiasing = false;
|
||||||
if (isThorns)
|
if (isThorns) bg.color = 0xFF000000;
|
||||||
bg.color = 0xFF000000;
|
|
||||||
bg.scale.set(6, 6);
|
bg.scale.set(6, 6);
|
||||||
bg.updateHitbox();
|
bg.updateHitbox();
|
||||||
bg.scale.y = 4;
|
bg.scale.y = 4;
|
||||||
bg.cameras = [pauseCam];
|
|
||||||
add(bg);
|
add(bg);
|
||||||
|
|
||||||
songText = new FlxText(0, 22 * 6, 0, "Pause", 8, false);
|
songText = new FlxText(0, 22 * 6, 0, "Pause", 8, false);
|
||||||
confText(songText);
|
confText(songText);
|
||||||
add(songText);
|
add(songText);
|
||||||
|
|
||||||
var i = 2;
|
for (i=>e in menuItems) {
|
||||||
for(e in menuItems) {
|
text = new FlxText(0, (22 * 6) + ((i+2) * 9 * 6), 0, e, 8, false);
|
||||||
text = new FlxText(0, (22 * 6) + (i * 9 * 6), 0, e, 8, false);
|
|
||||||
confText(text);
|
confText(text);
|
||||||
add(text);
|
|
||||||
texts.push(text);
|
|
||||||
i++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hand = new FlxSprite().loadGraphic(Paths.image('stages/school/ui/hand_textbox'));
|
hand = new FlxSprite().loadGraphic(Paths.image('stages/school/ui/hand_textbox'));
|
||||||
|
hand.antialiasing = false;
|
||||||
hand.scale.set(6, 6);
|
hand.scale.set(6, 6);
|
||||||
hand.updateHitbox();
|
hand.updateHitbox();
|
||||||
add(hand);
|
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];
|
|
||||||
|
|
||||||
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
|
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
|
||||||
}
|
}
|
||||||
@@ -70,55 +63,50 @@ function confText(text) {
|
|||||||
text.screenCenter(FlxAxes.X);
|
text.screenCenter(FlxAxes.X);
|
||||||
text.borderStyle = FlxTextBorderStyle.OUTLINE;
|
text.borderStyle = FlxTextBorderStyle.OUTLINE;
|
||||||
if (!isThorns) text.borderColor = 0xFF953E3E;
|
if (!isThorns) text.borderColor = 0xFF953E3E;
|
||||||
|
|
||||||
|
text.antialiasing = false;
|
||||||
|
texts.push(text);
|
||||||
|
add(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
function destroy() {
|
function destroy() if (FlxG.cameras.list.contains(pauseCam))
|
||||||
if(FlxG.cameras.list.contains(pauseCam))
|
FlxG.cameras.remove(pauseCam);
|
||||||
FlxG.cameras.remove(pauseCam);
|
|
||||||
}
|
|
||||||
|
|
||||||
var canDoShit = true;
|
var canDoShit = true;
|
||||||
var time:Float = 0;
|
var time:Float = 0;
|
||||||
function update(elapsed) {
|
function update(elapsed) {
|
||||||
pixelScript.call("postUpdate", [elapsed]);
|
pixelScript?.call("postUpdate", [elapsed]);
|
||||||
|
|
||||||
pauseCam.alpha = lerp(pauseCam.alpha, 1, 0.25);
|
pauseCam.alpha = lerp(pauseCam.alpha, 1, 0.25);
|
||||||
time += elapsed;
|
time += elapsed;
|
||||||
|
|
||||||
var curText = texts[curSelected];
|
var curText = texts[curSelected + 1];
|
||||||
hand.setPosition(curText.x - hand.width - 18 + (Math.sin(time * Math.PI * 2) * 12), curText.y + (text.height - hand.height) - 6);
|
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.x -= hand.x % 6;
|
||||||
hand.y -= hand.y % 6;
|
hand.y -= hand.y % 6;
|
||||||
|
|
||||||
if (!canDoShit) return;
|
|
||||||
var oldSec = curSelected;
|
|
||||||
|
|
||||||
changeSelection((controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0) - FlxG.mouse.wheel);
|
changeSelection((controls.UP_P ? -1 : 0) + (controls.DOWN_P ? 1 : 0) - FlxG.mouse.wheel);
|
||||||
|
|
||||||
if (oldSec != curSelected)
|
if (controls.ACCEPT) enterOption();
|
||||||
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/type' : 'pixel/pixelText'));
|
}
|
||||||
|
|
||||||
if (controls.ACCEPT) {
|
var scrollSFX = FlxG.sound.load(Paths.sound(isThorns ? 'pixel/type' : 'pixel/pixelText'));
|
||||||
FlxG.sound.play(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
|
function changeSelection(change) if (canDoShit) { // this overrides the function inside of the normal pause btw, so no event gets called - Nex
|
||||||
var option = menuItems[curSelected];
|
curSelected = FlxMath.wrap(curSelected + change, 0, menuItems.length - 1);
|
||||||
if (option == "Resume" || option == "Exit to menu") {
|
if (change != 0) scrollSFX.play();
|
||||||
|
}
|
||||||
|
|
||||||
|
var enterSFX = FlxG.sound.load(Paths.sound(isThorns ? 'pixel/ANGRY' : 'pixel/clickText'));
|
||||||
|
function enterOption() if (canDoShit) {
|
||||||
|
var option = menuItems[curSelected];
|
||||||
|
enterSFX.play();
|
||||||
|
|
||||||
|
switch(option) {
|
||||||
|
case "Resume", "Exit to menu":
|
||||||
canDoShit = false;
|
canDoShit = false;
|
||||||
for(t in texts) t.visible = false;
|
for(t in texts) t.visible = false;
|
||||||
hand.visible = songText.visible = false;
|
hand.visible = songText.visible = false;
|
||||||
FlxTween.tween(bg, {"scale.y": 0}, 0.125, {ease: FlxEase.cubeOut, onComplete: function() {
|
FlxTween.tween(bg.scale, {y: 0}, 0.125, {ease: FlxEase.cubeOut, onComplete: selectOption});
|
||||||
selectOption();
|
default: selectOption();
|
||||||
}});
|
|
||||||
} else {
|
|
||||||
selectOption();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeSelection(change) { // this overrides the function inside of the normal pause btw, so no event gets called - Nex
|
|
||||||
curSelected += change;
|
|
||||||
|
|
||||||
if (curSelected < 0)
|
|
||||||
curSelected = menuItems.length - 1;
|
|
||||||
if (curSelected >= menuItems.length)
|
|
||||||
curSelected = 0;
|
|
||||||
}
|
|
||||||
@@ -3,13 +3,7 @@ var sound:Sound;
|
|||||||
function create()
|
function create()
|
||||||
sound = Paths.sound('jeffGameover/jeffGameover-' + FlxG.random.int(1, 25, !Options.naughtyness ? [1, 3, 8, 13, 17, 21] : null));
|
sound = Paths.sound('jeffGameover/jeffGameover-' + FlxG.random.int(1, 25, !Options.naughtyness ? [1, 3, 8, 13, 17, 21] : null));
|
||||||
|
|
||||||
function beatHit(cur:Int) {
|
function beatHit(cur:Int) if (cur == 0) {
|
||||||
if(cur != 0) return;
|
FlxG.sound.play(sound, 1, false, null, true, () -> if (!isEnding) FlxG.sound.music.fadeIn(4, 0.2, 1));
|
||||||
|
|
||||||
FlxG.sound.music.volume = 0.2;
|
FlxG.sound.music.volume = 0.2;
|
||||||
FlxG.sound.play(sound, 1, false, null, true, function()
|
|
||||||
{
|
|
||||||
if (!isEnding)
|
|
||||||
FlxG.sound.music.fadeIn(4, 0.2, 1);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
var tankAngle:Float = FlxG.random.int(-90, 45);
|
var tankAngle:Float = FlxG.random.int(-90, 45);
|
||||||
var tankSpeed:Float = FlxG.random.float(5, 7);
|
var tankSpeed:Float = FlxG.random.float(5, 7);
|
||||||
|
|
||||||
function postCreate() if(PlayState.isStoryMode)
|
function postCreate() if (PlayState.isStoryMode)
|
||||||
GameOverSubstate.script = 'data/scripts/week7-balledLines';
|
GameOverSubstate.script = 'data/scripts/week7-balledLines';
|
||||||
|
|
||||||
function update(elapsed:Float) {
|
function update(elapsed:Float) {
|
||||||
@@ -12,7 +12,7 @@ function update(elapsed:Float) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function onPostCountdown(event) {
|
function onPostCountdown(event) {
|
||||||
if(!playCutscenes || event.sprite == null) return;
|
if (!playCutscenes || event.sprite == null) return;
|
||||||
var lastIndex:Int = members.indexOf(event.sprite);
|
var lastIndex:Int = members.indexOf(event.sprite);
|
||||||
remove(event.sprite);
|
remove(event.sprite);
|
||||||
insert(lastIndex + 4, event.sprite);
|
insert(lastIndex + 4, event.sprite);
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
<!DOCTYPE codename-engine-week-character>
|
<!DOCTYPE codename-engine-week-character>
|
||||||
<char scale="0.5" x="80" y="-50"/>
|
<char scale="0.5" x="80" y="-50" beatInterval="1"/>
|
||||||
|
Before Width: | Height: | Size: 978 KiB After Width: | Height: | Size: 960 KiB |
|
Before Width: | Height: | Size: 459 KiB After Width: | Height: | Size: 456 KiB |
|
Before Width: | Height: | Size: 1.6 MiB After Width: | Height: | Size: 1.6 MiB |
|
Before Width: | Height: | Size: 2.0 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 2.2 MiB After Width: | Height: | Size: 2.1 MiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 1.3 MiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 488 KiB After Width: | Height: | Size: 481 KiB |
|
Before Width: | Height: | Size: 579 KiB After Width: | Height: | Size: 562 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 230 KiB After Width: | Height: | Size: 228 KiB |
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 106 KiB After Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 169 KiB After Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 1.8 MiB After Width: | Height: | Size: 1.8 MiB |
|
Before Width: | Height: | Size: 993 KiB After Width: | Height: | Size: 972 KiB |
|
Before Width: | Height: | Size: 792 KiB After Width: | Height: | Size: 779 KiB |
|
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.1 MiB |
|
Before Width: | Height: | Size: 4.5 MiB After Width: | Height: | Size: 4.4 MiB |
|
Before Width: | Height: | Size: 2.8 MiB After Width: | Height: | Size: 2.8 MiB |
|
Before Width: | Height: | Size: 946 KiB After Width: | Height: | Size: 932 KiB |
|
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 40 KiB |
|
Before Width: | Height: | Size: 394 KiB After Width: | Height: | Size: 390 KiB |
|
Before Width: | Height: | Size: 652 KiB After Width: | Height: | Size: 630 KiB |
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 77 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 148 B |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 271 KiB After Width: | Height: | Size: 271 KiB |
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 117 B |
|
Before Width: | Height: | Size: 263 B After Width: | Height: | Size: 250 B |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 460 KiB After Width: | Height: | Size: 457 KiB |
|
Before Width: | Height: | Size: 275 B After Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 126 B |
|
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 144 B |
|
Before Width: | Height: | Size: 184 B After Width: | Height: | Size: 170 B |
|
Before Width: | Height: | Size: 185 B After Width: | Height: | Size: 146 B |
|
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 146 B |
|
Before Width: | Height: | Size: 144 B After Width: | Height: | Size: 131 B |
|
Before Width: | Height: | Size: 183 B After Width: | Height: | Size: 151 B |
|
Before Width: | Height: | Size: 639 B After Width: | Height: | Size: 618 B |
|
Before Width: | Height: | Size: 202 B After Width: | Height: | Size: 177 B |
|
Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 166 B |
|
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 126 B |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 243 B After Width: | Height: | Size: 222 B |
|
Before Width: | Height: | Size: 709 B After Width: | Height: | Size: 695 B |
|
Before Width: | Height: | Size: 151 B After Width: | Height: | Size: 104 B |
|
Before Width: | Height: | Size: 306 B After Width: | Height: | Size: 268 B |
|
Before Width: | Height: | Size: 138 B After Width: | Height: | Size: 125 B |
|
Before Width: | Height: | Size: 181 B After Width: | Height: | Size: 167 B |
|
Before Width: | Height: | Size: 147 B After Width: | Height: | Size: 134 B |
|
Before Width: | Height: | Size: 280 B After Width: | Height: | Size: 256 B |
|
Before Width: | Height: | Size: 148 B After Width: | Height: | Size: 126 B |
|
Before Width: | Height: | Size: 139 B After Width: | Height: | Size: 126 B |
|
Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 404 B |
|
Before Width: | Height: | Size: 567 B After Width: | Height: | Size: 531 B |
|
Before Width: | Height: | Size: 189 B After Width: | Height: | Size: 155 B |
|
Before Width: | Height: | Size: 201 B After Width: | Height: | Size: 167 B |
|
Before Width: | Height: | Size: 657 B After Width: | Height: | Size: 619 B |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 769 B After Width: | Height: | Size: 728 B |
|
Before Width: | Height: | Size: 833 B After Width: | Height: | Size: 804 B |